------- Comment #2 from ubizjak at gmail dot com  2008-08-13 13:47 -------
(In reply to comment #0)

> Here, the code that initializes xmm1 (also the xmm1 in my pseudo-code above):
> 
>     107e:       48 8b 44 24 38          mov    0x38(%rsp),%rax
>     1083:       48 83 c0 08             add    $0x8,%rax
>     1087:       66 48 0f 6e c8          movq   %rax,%xmm1
>     108c:       0f 12 4c 24 38          movlps 0x38(%rsp),%xmm1

This code should implement following statement (from _.optimized dump):

<bb 12>:
  vect_vec_iv_.590 = {rptr, rptr + 8};
  ivtmp.642 = 0;
  ivtmp.644 = 0B;

this dump is with -fverbose-asm:

        movq    56(%rsp), %rax  # rptr, tmp114
        addq    $8, %rax        #, tmp114
        movd    %rax, %xmm1     # tmp114,
        movlps  56(%rsp), %xmm1 # rptr,
        movdqa  %xmm1, %xmm0    #, vect_vec_iv_.590
        xorl    %edx, %edx      # ivtmp.642
        xorl    %eax, %eax      # ivtmp.644

It looks to me, that movhps should be there instead of movlps. What happens if
you manually change this movlps into movhps in generated asm and recompile this
changed asm?


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-08-13 13:47:27
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37101

Reply via email to