------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-24 12:35 ------- This was exposed by: 2005-08-23 Paolo Bonzini <[EMAIL PROTECTED]>
PR middle-end/23517 * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert between vectors. * convert.c (convert_to_integer, convert_to_vector): Likewise. Reduced testcase: typedef int __m64 __attribute__ ((__vector_size__ (8))); typedef char __v8qi __attribute__ ((__vector_size__ (8))); static __inline __m64 _mm_cvtsi32_si64 (int __i) { } static __inline __m64 _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) { return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2); } static __inline __m64 _mm_setzero_si64 (void) { return (__m64)0LL; } typedef unsigned long CARD32; static __inline__ __m64 load8888 (CARD32 v) { return _mm_unpacklo_pi8 (_mm_cvtsi32_si64 (v), _mm_setzero_si64()); } __attribute__((regparm(3))) void mmxCombineMaskU (CARD32 *src, const CARD32 *mask, int width) { const CARD32 *end = mask + width; while (mask < end) { __m64 a = load8888(*mask); ++mask; } } -- What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at gcc dot gnu dot | |org, bonzini at gcc dot gnu | |dot org Status|UNCONFIRMED |NEW Ever Confirmed| |1 Known to work|3.4.0 |3.4.0 4.0.0 Last reconfirmed|0000-00-00 00:00:00 |2005-08-24 12:35:03 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23546