#include <mmintrin.h> int foo( __m64 x ) { int y; __builtin_memcpy( &y, &x, sizeof( y ) ); return y; }
gcc movd.c -O2 -S produces: foo: movq %xmm0, -24(%rsp) movl -24(%rsp), %eax ret while 'movd xmm0, eax' was expected. -- Summary: missed movd opcode (32bits mm -> r/m32). Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC target triplet: x86-gnu-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38320