[LLVMdev] proposal to add MVT::vAny type

Dan Gohman gohman at apple.com
Sun Aug 9 06:29:56 PDT 2009


Hi Bob,

An alternative would be to model the operations as regular shuffle,  
load, and store operators, combined to describe the actual  
instructions.  This would make them easier for target-independent code  
to understand.

Dan

On Aug 8, 2009, at 11:47 PM, Bob Wilson <bob.wilson at apple.com> wrote:

> The ARM Neon load, store and shuffle operations that I've been
> implementing recently with LLVM intrinsics do not care about the
> distinction between vectors with i32 and f32 elements -- only the size
> matters.  But, because we have only MVT::fAny and MVT::iAny types,
> I've been having to define separate intrinsics for the operations with
> floating-point vector elements.  It didn't bother me when there were
> only a few intrinsics like this, but now there are more, and I
> realized this weekend that I still need to add more for the load/store
> lane operations.
>
> I had been thinking about trying to bitcast my way out of this, but it
> struck me that it would make a lot more sense to have a new MVT::vAny
> type that TableGen would match to any vector type.  That would more
> accurately reflect the type constraints on these intrinsics.
>
> It seems like since these "*Any" types are confined to TableGen, it
> should be pretty easy to add another one.  I looked at the places
> using iAny and fAny and they seem pretty easy to extend to handle a
> new vAny type.  Does this seem like a good idea?  Any objections?
>
> I'd like to get the Neon intrinsics finalized before the 2.6 release,
> since it may be harder to change them later.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list