mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-20 09:30:43 +00:00
Fix a few places vector operations were not getting
the operand's type from the right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43195 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f7c9695a38
commit
e526962fc5
@ -1919,8 +1919,9 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
|||||||
Result = LegalizeOp(Result);
|
Result = LegalizeOp(Result);
|
||||||
} else {
|
} else {
|
||||||
SDNode *InVal = Tmp2.Val;
|
SDNode *InVal = Tmp2.Val;
|
||||||
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(0));
|
int InIx = Tmp2.ResNo;
|
||||||
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(0));
|
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(InIx));
|
||||||
|
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(InIx));
|
||||||
|
|
||||||
// Figure out if there is a simple type corresponding to this Vector
|
// Figure out if there is a simple type corresponding to this Vector
|
||||||
// type. If so, convert to the vector type.
|
// type. If so, convert to the vector type.
|
||||||
@ -2114,8 +2115,9 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
|||||||
// in the high half of the vector.
|
// in the high half of the vector.
|
||||||
if (MVT::isVector(ST->getValue().getValueType())) {
|
if (MVT::isVector(ST->getValue().getValueType())) {
|
||||||
SDNode *InVal = ST->getValue().Val;
|
SDNode *InVal = ST->getValue().Val;
|
||||||
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(0));
|
int InIx = ST->getValue().ResNo;
|
||||||
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(0));
|
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(InIx));
|
||||||
|
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(InIx));
|
||||||
|
|
||||||
// Figure out if there is a simple type corresponding to this Vector
|
// Figure out if there is a simple type corresponding to this Vector
|
||||||
// type. If so, convert to the vector type.
|
// type. If so, convert to the vector type.
|
||||||
@ -3260,8 +3262,9 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
|||||||
// The input has to be a vector type, we have to either scalarize it, pack
|
// The input has to be a vector type, we have to either scalarize it, pack
|
||||||
// it, or convert it based on whether the input vector type is legal.
|
// it, or convert it based on whether the input vector type is legal.
|
||||||
SDNode *InVal = Node->getOperand(0).Val;
|
SDNode *InVal = Node->getOperand(0).Val;
|
||||||
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(0));
|
int InIx = Node->getOperand(0).ResNo;
|
||||||
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(0));
|
unsigned NumElems = MVT::getVectorNumElements(InVal->getValueType(InIx));
|
||||||
|
MVT::ValueType EVT = MVT::getVectorElementType(InVal->getValueType(InIx));
|
||||||
|
|
||||||
// Figure out if there is a simple type corresponding to this Vector
|
// Figure out if there is a simple type corresponding to this Vector
|
||||||
// type. If so, convert to the vector type.
|
// type. If so, convert to the vector type.
|
||||||
|
Loading…
Reference in New Issue
Block a user