[LLVMdev] Vectors in structures

Renato Golin rengolin at systemcall.org
Tue Sep 28 02:07:36 PDT 2010


On 27 September 2010 23:45, Bob Wilson <bob.wilson at apple.com> wrote:
> An implementation, such as in GCC, that does not use structures is compatible with ARM's specification in only one direction.  GCC will accept any code written for RVCT, but not the other way around.  And, as Al pointed out, there are also compatibility issues with how you can initialize vectors.  (In fact, if you stick to the documented interfaces, the only way you can initialize a vector to an arbitrary value is by loading from memory.)

Hi Bob,

Can you clarify what compatibility problems you had with GCC? And that
by using structures in Clang you made it work with armcc?

Is it just a source code compatibility issue?



> Can we get an official position from ARM on this?

I really don't know what you want here. I can't tell you that it will
be safe to remove the structures from Clang, since I don't know enough
about the vector types (and all other back-ends that use it) and what
the problems you had with gcc/armcc compatibility. Maybe, because of
the way vectors are implemented in LLVM, there is no other way...
maybe not.



> Wait a minute....  VCEQ does not have a special polynomial version.  There is only VCEQ.I8.  What I said about support for polynomial types in Clang is still true, but for this particular case, there is no difference between vceq_s8, vceq_u8, and vceq_p8 (aside from the types of the intrinsic arguments).

Sorry, bad example... (and wrong copy&past test generation) ;)


-- 
cheers,
--renato

http://systemcall.org/

Reclaim your digital rights, eliminate DRM, learn more at
http://www.defectivebydesign.org/what_is_drm




More information about the llvm-dev mailing list