Skip to content

Commit 5532a4c

Browse files
committed
DAG: Fix legalization of vector addrspacecasts
1 parent 09a4bcf commit 5532a4c

File tree

4 files changed

+1200
-12
lines changed

4 files changed

+1200
-12
lines changed

llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4364,6 +4364,9 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
43644364
Results.push_back(DAG.getNode(ISD::FP_TO_SINT, dl, ResVT, RoundNode));
43654365
break;
43664366
}
4367+
case ISD::ADDRSPACECAST:
4368+
Results.push_back(DAG.UnrollVectorOp(Node));
4369+
break;
43674370
case ISD::GLOBAL_OFFSET_TABLE:
43684371
case ISD::GlobalAddress:
43694372
case ISD::GlobalTLSAddress:

llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12583,6 +12583,14 @@ SDValue SelectionDAG::UnrollVectorOp(SDNode *N, unsigned ResNE) {
1258312583
Scalars.push_back(getNode(N->getOpcode(), dl, EltVT,
1258412584
Operands[0],
1258512585
getValueType(ExtVT)));
12586+
break;
12587+
}
12588+
case ISD::ADDRSPACECAST: {
12589+
const auto *ASC = cast<AddrSpaceCastSDNode>(N);
12590+
Scalars.push_back(getAddrSpaceCast(dl, EltVT, Operands[0],
12591+
ASC->getSrcAddressSpace(),
12592+
ASC->getDestAddressSpace()));
12593+
break;
1258612594
}
1258712595
}
1258812596
}

llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -512,18 +512,18 @@ AMDGPUTargetLowering::AMDGPUTargetLowering(const TargetMachine &TM,
512512

513513
for (MVT VT : VectorIntTypes) {
514514
// Expand the following operations for the current type by default.
515-
setOperationAction({ISD::ADD, ISD::AND, ISD::FP_TO_SINT,
516-
ISD::FP_TO_UINT, ISD::MUL, ISD::MULHU,
517-
ISD::MULHS, ISD::OR, ISD::SHL,
518-
ISD::SRA, ISD::SRL, ISD::ROTL,
519-
ISD::ROTR, ISD::SUB, ISD::SINT_TO_FP,
520-
ISD::UINT_TO_FP, ISD::SDIV, ISD::UDIV,
521-
ISD::SREM, ISD::UREM, ISD::SMUL_LOHI,
522-
ISD::UMUL_LOHI, ISD::SDIVREM, ISD::UDIVREM,
523-
ISD::SELECT, ISD::VSELECT, ISD::SELECT_CC,
524-
ISD::XOR, ISD::BSWAP, ISD::CTPOP,
525-
ISD::CTTZ, ISD::CTLZ, ISD::VECTOR_SHUFFLE,
526-
ISD::SETCC},
515+
setOperationAction({ISD::ADD, ISD::AND, ISD::FP_TO_SINT,
516+
ISD::FP_TO_UINT, ISD::MUL, ISD::MULHU,
517+
ISD::MULHS, ISD::OR, ISD::SHL,
518+
ISD::SRA, ISD::SRL, ISD::ROTL,
519+
ISD::ROTR, ISD::SUB, ISD::SINT_TO_FP,
520+
ISD::UINT_TO_FP, ISD::SDIV, ISD::UDIV,
521+
ISD::SREM, ISD::UREM, ISD::SMUL_LOHI,
522+
ISD::UMUL_LOHI, ISD::SDIVREM, ISD::UDIVREM,
523+
ISD::SELECT, ISD::VSELECT, ISD::SELECT_CC,
524+
ISD::XOR, ISD::BSWAP, ISD::CTPOP,
525+
ISD::CTTZ, ISD::CTLZ, ISD::VECTOR_SHUFFLE,
526+
ISD::SETCC, ISD::ADDRSPACECAST},
527527
VT, Expand);
528528
}
529529

0 commit comments

Comments
 (0)