------- Comment #2 from rguenth at gcc dot gnu dot org 2008-08-01 12:04 ------- Google leads me to VC++ reference which says "Moves the lower 64 bits of the lower 64 bits of the result, zeroing the upper bits.
I guess inlining and type fixing messes this up very early. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992