http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56788
--- Comment #6 from Marc Glisse <glisse at gcc dot gnu.org> --- Uros, I can't seem to find the AMD documentation anymore (marketing has gotten hold of the website and tech info got hidden somewhere deep), but if I remember correctly, vfrczsd %xmm0, %xmm1 does: xmm0[0]=frcz(xmm1[0]) xmm0[1+]=0 That's why I think the builtin should take a single argument, and if you want the Microsoft behavior, you need an additional movsd.