Allow target intrinsics that return multiple values, i.e., struct types,
authorBob Wilson <bob.wilson@apple.com>
Fri, 31 Jul 2009 22:41:21 +0000 (22:41 +0000)
committerBob Wilson <bob.wilson@apple.com>
Fri, 31 Jul 2009 22:41:21 +0000 (22:41 +0000)
commit84aa855ead2be7462a3ae6671554c4799d4508f0
tree0fd6e459acd6c6885056dd69ff1daf6518ebc8a0
parent645bb0fc71f0cd514bd9051f5a69d2d3028822cc
Allow target intrinsics that return multiple values, i.e., struct types,
in SelectionDAGLowering::visitTargetIntrinsic.

This removes a bit of special-case code for vector types.  After staring
at it for a while, I managed to convince myself that it is not necessary.
The only case where TLI.getValueType() differs from MVT::getMVT is for iPTR,
so this code could potentially make a difference for a vector of pointers.
But, it looks like that is not supported.  Calling TLI.getValueType() on
a vector of pointers leads to the following sequence of calls:

TargetLowering::getValueType
MVT::getMVT
MVT::getVectorVT(iPTR, num elements)
MVT::getExtendedVectorVT
MVT::getTypeForMVT for iPTR
assertion fails "Type is not extended!"

So, unless I'm really missing something, this bit of code is irrelevant to
the current version of LLVM, which is consistent with the fact that I don't
see this code in other similar places.

llvm-svn: 77747
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp