[Bug tree-optimization/18503] _mm_move_ss SSE intrinsic causes erroneous

torgeihe at stud dot ntnu dot no gcc-bugzilla@gcc.gnu.org
Mon Nov 15 16:26:00 GMT 2004


------- Additional Comments From torgeihe at stud dot ntnu dot no  2004-11-15 16:26 -------
Subject: Re:  _mm_move_ss SSE intrinsic causes
 erroneous

pinskia at gcc dot gnu dot org wrote:
> ------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-15 15:47 -------
> No you are reading the asm backwards, the corresponding intel asm is:
> bug:        subss   %xmm0, %xmm1
> ret
> 
> Which you can  get with -masm=intel.
> 

Yes, I know AT&T syntax is backwards compared to Intel, have I 
misinterpreted the intrinsics or resulting code somehow? To be more 
clear, I expected the C function to return the following vector:

   v0 = a0
   v1 = a1 - b1
   v2 = a2 - b2
   v3 = a3 - b3

Instead it seems to return:

   v0 = a0 - b0
   v1 = a1
   v2 = a2
   v3 = a3

_mm_move_ss should the three upper values from its first argument, and 
the lower from its second, no?

Torgeir



-- 


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



More information about the Gcc-bugs mailing list