https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115977

--- Comment #4 from A. Wilcox (awilfox) <awilfox at adelielinux dot org> ---
I don't see how that tracks.  I think -ffp-contract=off is changing the upper
passes enough that the optimiser no longer trips over it, similar to how
-mcpu=970 affects it.  Checking the tree dumps and assembler diffs between
revisions, I don't see any floating-point operations being significantly
altered.  I do, however, see this in the esra pass (- is good compiler, + is
bad):


-  SR.112_259 = MEM <float> [(struct vec *)&D.6847];
-  SR.113_248 = MEM <float> [(struct vec *)&D.6847 + 4B];
-  SR.114_239 = MEM <float> [(struct vec *)&D.6847 + 8B];
-  axis_224 = SR.112_259;
-  axis$4_204 = SR.113_248;
-  axis$8_194 = SR.114_239;
+  axis = D.6846;
+  axis_259 = MEM <float> [(struct vec *)&D.6846];
+  axis$4_248 = MEM <float> [(struct vec *)&D.6846 + 4B];
+  axis$8_239 = MEM <float> [(struct vec *)&D.6846 + 8B];
+  D.6846 ={v} {CLOBBER(eol)};


I am unfortunately not skilled enough in the internals of GCC to understand
what has gone wrong here.

Reply via email to