This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: {Spam?} Re: Vector types and type conversions


Paolo Bonzini writes:
 > 
 > >  > 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."

Everything becomes clear.  I would never have started this thread of
I'd realized there was a spec somewhere.  There doesn't seem to be any
way to discover this stuff by reading the gcc docs.

 > > 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.

So, is Altivec a de facto standard to be faithfully adhered to by all
compilers?  A point of departure?

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]