This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Can't generate a 'movd' instructuction
- From: James HAUXWELL <james dot hauxwell at st dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Fri, 26 Nov 2004 07:52:23 +0000
- Subject: Can't generate a 'movd' instructuction
Hi,
I have a piece of code using mmx/sse intrinsics
ta = __builtin_ia32_pmaddwd(ia, one);
tb = (v2si)__builtin_ia32_psrlq((di)ta, 32);
dest.__v = __builtin_ia32_paddd(ta, tb);
satd = dest.__a[0];
At the phase where I move the bottom 32bits of the mmx register to a
normal register I should be able to use a movd instruction (according to
intel documentation), but what ever I do I can't generate one. It is
currently generating a movq to a memory loacation and then doing a
shorter load from the same location.
should be something like.
ta = __builtin_ia32_pmaddwd(ia, one);
tb = (v2si)__builtin_ia32_psrlq((di)ta, 32);
satd = (int)__builtin_ia32_paddd(ta, tb);
Is anyone familiar enough with intrinsics to know why this doesn't work?
Jim