{Spam?} Re: Vector types and type conversions

Paolo Bonzini paolo.bonzini@lu.unisi.ch
Wed Apr 19 15:16:00 GMT 2006


>  > The short answer is that AltiVec dictated this behavior. :-(  Longer 
>  > answers were given by Ian and Paul, and I agree with them.
>
> OK, so: firstly, is this behaviour actually documented anywhere?  In
> AltiVec docs, maybe?
>   
http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03altivec_types.htm

"Vector types can be cast to other vector types. The cast does not 
perform a conversion: it preserves the 128-bit pattern, but not 
necessarily the value. A cast between a vector type and a scalar type is 
not allowed."
> Secondly, can we fix it?
>   
We can do anything we want.  Or we can do nothing -- it depends on the 
point of view. :-)  While looking at PR10735, one or two years ago I set 
to implement some rules resembling the ones outlined by Ian, only to 
find that I would break the Altivec tests in a horrible way.

For sure, we cannot fix the Altivec spec.  Consider that Altivec does 
not even have an instruction for a value-preserving V4SF->V4SI or 
V4SI->V4SF conversion.

Paolo



More information about the Gcc mailing list