https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41464
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.9.0 Known to work| |4.9.0 Known to fail| |4.4.7, 4.5.3, 4.7.1, 4.8.1, | |4.8.5 Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- 4.8.5 did: movaps xmm0, xmm1 add ecx, 1 movlps xmm0, QWORD PTR [rdi+rax] movhps xmm0, QWORD PTR [rdi+8+rax] mulps xmm0, xmm2 movlps QWORD PTR [rsi+rax], xmm0 movhps QWORD PTR [rsi+8+rax], xmm0 But 4.9.0 has: movaps xmm0, XMMWORD PTR [rbp+0+r9] add r10d, 1 mulps xmm0, xmm1 movups XMMWORD PTR [rax+r9], xmm0 So all fixed for GCC 4.9.0. 4.9.0 vect__11.13_94 = MEM[base: vectp_i.12_90, index: ivtmp.28_28, offset: 0B]; vect__12.14_96 = vect__11.13_94 * { 3.1415927410125732421875e+0, 3.1415927410125732421875e+0, 3.1415927410125732421875e+0, 3.1415927410125732421875e+0 }; MEM[base: vectp_f.17_97, index: ivtmp.28_28, offset: 0B] = vect__12.14_96;