[llvm-commits] [llvm] r75308 - in /llvm/trunk: include/llvm/CodeGen/ValueTypes.h include/llvm/CodeGen/ValueTypes.td lib/VMCore/ValueTypes.cpp utils/TableGen/CodeGenTarget.cpp

Duncan Sands baldrick at free.fr
Sat Jul 11 03:01:21 PDT 2009


Hi Bob,

>>> +      v24i8          =  18,   // 24 x i8
>>> +      v32i8          =  19,   // 32 x i8
>>> +      v48i8          =  20,   // 48 x i8
>> type legalization could be taught to exploit this by
>> (for example) splitting a v96i8 into two v48i8, or
>> by widening v20i8 to v24i8.  Currently it doesn't do
>> this - should it be taught to do it?  Also, if you
>> *don't* want this to happen then that might cause
>> problems later if some platform has a native type such
>> as v3i8 where they do want the type exploited for
>> splitting and widening.  Then there would need to be
>> some kind of mechanism for telling the type legalizer
>> which types are really usable and which ones are fake.
> 
> I can see no reason why type legalization should not produce these  
> types by splitting or widening, but at least for now, I don't think  
> implementing that is a priority.

similar functionality is needed for type legalization of integers to
support platforms that have (for example) 24 bit registers.  On the
level of the type legalizer I think support for this (for both integers
and vectors) can be added quite easily, though I'm not planning to do it
any time soon.

Ciao,

Duncan.



More information about the llvm-commits mailing list