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;

Reply via email to