[cfe-dev] Implementing Altivec vector support questions
john.thompson.jtsoftware at gmail.com
Wed Dec 9 15:37:49 PST 2009
The Altivec standard specifies that __vector comes first as a type
specifier, and is a keyword. It also says that vector can be either a macro
or a context-sensitive keyword. Having it be a macro, of course, is not a
good idea. Which is probably why gcc (at least the PS3 version) does it the
context-sensitive way. Thus __vector cannot be a declaration name, but
On Wed, Dec 9, 2009 at 2:05 PM, Jens Ayton <mailing-lists.jens at ayton.se>wrote:
> On Dec 8, 2009, at 20:36, Chris Lattner wrote:
> > On Dec 8, 2009, at 11:30 AM, John Thompson wrote:
> >> My understanding is that "__vector" (or "vector") in this context is
> always followed by a numeric type, i.e. "_vector unsigned int". My guess
> was that this would be effecticvely equivalent to
> "__attribute__((vector_size(16))) unsigned int", so the plan would then be
> to have the resulting type for these two be the same after the semantic
> > so 'vector' doesn't work as a type qualifier? For others type
> qualifiers, you can arrange them, e.g. "const int" == "int const" etc.
> In GCC with -faltivec, vector does not work as a type qualifier, but
> __vector does.
> #include <altivec.h> // warning: ignoring <altivec.h> because "-faltivec"
> int main (int argc, const char * argv)
> vector int a; // warning: unused variable 'a'
> int vector; // warning: unused variable 'vector'
> int vector b; // error: nested functions are disabled (thanks, gcc)
> __vector int c; // warning: unused variable 'c'
> int __vector; // warning: useless type name in empty declaration
> int __vector d; // warning: unused variable 'd'
> return 0;
> Without -faltivec, vector is defined as __vector and acts as a qualifier
> (so the above code compiles with six warnings).
> Jens Ayton
John.Thompson.JTSoftware at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev