mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-02 21:31:41 +00:00
Fix based on post-commit comment on D7816 & rL230177 - BUILD_VECTOR operand truncation was using the the BV's output scalar type instead of the input type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230278 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
770e106ed6
commit
a631cd85ca
@ -11447,10 +11447,11 @@ SDValue DAGCombiner::visitCONCAT_VECTORS(SDNode *N) {
|
||||
if (!SVT.isFloatingPoint())
|
||||
// If BUILD_VECTOR are from built from integer, they may have different
|
||||
// operand types. Get the smaller type and truncate all operands to it.
|
||||
for (const SDValue &Op : N->ops()) {
|
||||
EVT OpSVT = Op.getValueType().getScalarType();
|
||||
MinVT = MinVT.bitsLE(OpSVT) ? MinVT : OpSVT;
|
||||
}
|
||||
for (const SDValue &Op : N->ops())
|
||||
if (ISD::BUILD_VECTOR == Op.getOpcode()) {
|
||||
EVT OpSVT = Op.getOperand(0)->getValueType(0);
|
||||
MinVT = MinVT.bitsLE(OpSVT) ? MinVT : OpSVT;
|
||||
}
|
||||
|
||||
for (const SDValue &Op : N->ops()) {
|
||||
EVT OpVT = Op.getValueType();
|
||||
|
Loading…
x
Reference in New Issue
Block a user