------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-28 18:43 ------- And here is a testcase which fails from 3.3 and upwards at -O2 (on the mainline you have to supply -fno-tree-ccp -fno-tree-store-ccp as we optimize it at the tree level): void f (void) { static const float rp[4] = {1.0e+0, 1.0e+0, 1.0e+0, 1.0e+0}; static const float rn[4] = {-1.0e+0, -1.0e+0, -1.0e+0, -1.0e+0};
if (__builtin_fabsf(rp[0] - 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L16; else goto L24; L3:; if (__builtin_fabsf(rn[0] + 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L18; else goto L33; L10:; return; L16:; __builtin_abort (); L18:; __builtin_abort (); L24:; if (__builtin_fabsf (rp[1] - 1.0e+0f) > 9.99999974737875163555145263671875e-6) goto L16; else goto L27; L27:; if (__builtin_fabsf (rp[2] - 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L16; else goto L30; L30:; if (__builtin_fabsf (rp[3] - 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L16; else goto L3; L33:; if (__builtin_fabsf(rn[1] + 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L18; else goto L36; L36:; if (__builtin_fabsf(rn[2] + 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L18; else goto L39; L39:; if (__builtin_fabsf(rn[3] + 1.0e+0f) > 9.99999974737875163555145263671875e-6f) goto L18; else goto L10; } -- What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |3.3.3 3.4.0 4.0.0 4.1.0 Known to work| |3.2.3 Summary|[4.1 regression] Compilation|[3.4/4.0/4.1 regression] |failure for real_const_1.f |Compilation failure for |and real_const_2.f90 |real_const_1.f and | |real_const_2.f90 Target Milestone|4.1.0 |4.0.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22619