Skip to content

Commit 25fc59a

Browse files
committed
Address review comments on LowerDMFVectorLoad
1 parent 59486b1 commit 25fc59a

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

llvm/lib/Target/PowerPC/PPCISelLowering.cpp

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11835,36 +11835,33 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
1183511835
SDValue Value =
1183611836
SDValue(DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Ops), 0);
1183711837

11838-
SDValue DmrPValue;
11839-
if (IsV2048i1) {
11840-
// This corresponds to v2048i1 which represents a dmr pair.
11841-
SDValue Dmr1Lo(DAG.getMachineNode(PPC::DMXXINSTDMR512, dl, MVT::v512i1,
11842-
Loads[4], Loads[5]),
11843-
0);
11844-
SDValue Dmr1Hi(DAG.getMachineNode(PPC::DMXXINSTDMR512_HI, dl, MVT::v512i1,
11845-
Loads[6], Loads[7]),
11846-
0);
11847-
const SDValue Dmr1Ops[] = {RC, Dmr1Lo, LoSub, Dmr1Hi, HiSub};
11848-
SDValue Dmr1Value = SDValue(
11849-
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Dmr1Ops), 0);
11838+
if (IsV1024i1) {
11839+
SDValue RetOps[] = {Value, TF};
11840+
return DAG.getMergeValues(RetOps, dl);
11841+
}
1185011842

11851-
SDValue Dmr0Sub = DAG.getTargetConstant(PPC::sub_dmr0, dl, MVT::i32);
11852-
SDValue Dmr1Sub = DAG.getTargetConstant(PPC::sub_dmr1, dl, MVT::i32);
11843+
// Handle Loads for V2048i1 which represents a dmr pair.
11844+
SDValue DmrPValue;
11845+
SDValue Dmr1Lo(DAG.getMachineNode(PPC::DMXXINSTDMR512, dl, MVT::v512i1,
11846+
Loads[4], Loads[5]),
11847+
0);
11848+
SDValue Dmr1Hi(DAG.getMachineNode(PPC::DMXXINSTDMR512_HI, dl, MVT::v512i1,
11849+
Loads[6], Loads[7]),
11850+
0);
11851+
const SDValue Dmr1Ops[] = {RC, Dmr1Lo, LoSub, Dmr1Hi, HiSub};
11852+
SDValue Dmr1Value = SDValue(
11853+
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Dmr1Ops), 0);
1185311854

11854-
SDValue DmrPRC = DAG.getTargetConstant(PPC::DMRpRCRegClassID, dl, MVT::i32);
11855-
const SDValue DmrPOps[] = {DmrPRC, Value, Dmr0Sub, Dmr1Value, Dmr1Sub};
11855+
SDValue Dmr0Sub = DAG.getTargetConstant(PPC::sub_dmr0, dl, MVT::i32);
11856+
SDValue Dmr1Sub = DAG.getTargetConstant(PPC::sub_dmr1, dl, MVT::i32);
1185611857

11857-
DmrPValue = SDValue(
11858-
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v2048i1, DmrPOps), 0);
11859-
}
11858+
SDValue DmrPRC = DAG.getTargetConstant(PPC::DMRpRCRegClassID, dl, MVT::i32);
11859+
const SDValue DmrPOps[] = {DmrPRC, Value, Dmr0Sub, Dmr1Value, Dmr1Sub};
1186011860

11861-
SDValue RetOps[2];
11862-
if (IsV1024i1)
11863-
RetOps[0] = Value;
11864-
else
11865-
RetOps[0] = DmrPValue;
11866-
RetOps[1] = TF;
11861+
DmrPValue = SDValue(
11862+
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v2048i1, DmrPOps), 0);
1186711863

11864+
SDValue RetOps[] = {DmrPValue, TF};
1186811865
return DAG.getMergeValues(RetOps, dl);
1186911866
}
1187011867

0 commit comments

Comments
 (0)