this is a fork from bug 16104 ------------------------------------------------------------------------------------------ int foo (int __attribute__ ((__mode__ (__V2SI__))) i) { return (long long) i; } ------------------------------------------------------------------------------------------
3.3.4 error: can't convert between vector values of different size 3.4.3 internal compiler error: in convert_move, at expr.c:588 4.4.0 error: invalid cast from type ‘int __vector__’ to type ‘long long int’
For a slightly different test: int foo (int __attribute__ ((vector_size (8))) i) { return (long long) i; } you only get an ICE if you add -mmmx.
gcc and g++ 3.3.4: error: can't convert between vector values of different size gcc and g++ 3.4.0: internal compiler error: in convert_move, at expr.c:588 g++ 4.0.0: invalid cast from type ‘int __vector__’ to type ‘long long int’ my gcc 4.0.0 accepted this even with -mmmx, hmm...
Note I was using -O2.
*** This bug has been marked as a duplicate of 16104 ***