[EMAIL PROTECTED] tmp]$ cat x.c typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
__m64 upper = {0x7eff7eff7eff7eff}; [EMAIL PROTECTED] tmp]$ /usr/gcc-4.4/bin/gcc -S x.c x.c:3: warning: overflow in implicit constant conversion [EMAIL PROTECTED] tmp]$ cat y.c typedef long long __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); __m64 upper = {0x7eff7eff7eff7eff}; [EMAIL PROTECTED] tmp]$ /usr/gcc-4.4/bin/gcc -S y.c [EMAIL PROTECTED] tmp]$ In both cases, __m64 has the same size. Why doesn't typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); take 64bit constant? -- Summary: __m64 can't be initialized with 64bit constant Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl dot tools at gmail dot com GCC target triplet: x86_64-unknown-linux-gnu i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35601