mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-24 12:29:33 +00:00
Scalarized vector stores need not be legal, e.g. if the vector element type
needs to be promoted or expanded. Relegalize the scalar store once created. This fixes CodeGen/Generic/vector.ll:test1 on non-SSE x86 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27293 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4c5701d271
commit
2ae2e98d4f
@ -1477,6 +1477,9 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
|||||||
Tmp3 = PackVectorOp(Node->getOperand(1), EVT);
|
Tmp3 = PackVectorOp(Node->getOperand(1), EVT);
|
||||||
Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp3, Tmp2,
|
Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp3, Tmp2,
|
||||||
Node->getOperand(3));
|
Node->getOperand(3));
|
||||||
|
// The scalarized value type may not be legal, e.g. it might require
|
||||||
|
// promotion or expansion. Relegalize the scalar store.
|
||||||
|
Result = LegalizeOp(Result);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
SplitVectorOp(Node->getOperand(1), Lo, Hi);
|
SplitVectorOp(Node->getOperand(1), Lo, Hi);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user