Skip to content

Commit b15ff11

Browse files
committed
Address review comments on LowerDMFVectorLoad
1 parent 1e796ca commit b15ff11

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
@@ -11945,36 +11945,33 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
1194511945
SDValue Value =
1194611946
SDValue(DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Ops), 0);
1194711947

11948-
SDValue DmrPValue;
11949-
if (IsV2048i1) {
11950-
// This corresponds to v2048i1 which represents a dmr pair.
11951-
SDValue Dmr1Lo(DAG.getMachineNode(PPC::DMXXINSTDMR512, dl, MVT::v512i1,
11952-
Loads[4], Loads[5]),
11953-
0);
11954-
SDValue Dmr1Hi(DAG.getMachineNode(PPC::DMXXINSTDMR512_HI, dl, MVT::v512i1,
11955-
Loads[6], Loads[7]),
11956-
0);
11957-
const SDValue Dmr1Ops[] = {RC, Dmr1Lo, LoSub, Dmr1Hi, HiSub};
11958-
SDValue Dmr1Value = SDValue(
11959-
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Dmr1Ops), 0);
11948+
if (IsV1024i1) {
11949+
SDValue RetOps[] = {Value, TF};
11950+
return DAG.getMergeValues(RetOps, dl);
11951+
}
1196011952

11961-
SDValue Dmr0Sub = DAG.getTargetConstant(PPC::sub_dmr0, dl, MVT::i32);
11962-
SDValue Dmr1Sub = DAG.getTargetConstant(PPC::sub_dmr1, dl, MVT::i32);
11953+
// Handle Loads for V2048i1 which represents a dmr pair.
11954+
SDValue DmrPValue;
11955+
SDValue Dmr1Lo(DAG.getMachineNode(PPC::DMXXINSTDMR512, dl, MVT::v512i1,
11956+
Loads[4], Loads[5]),
11957+
0);
11958+
SDValue Dmr1Hi(DAG.getMachineNode(PPC::DMXXINSTDMR512_HI, dl, MVT::v512i1,
11959+
Loads[6], Loads[7]),
11960+
0);
11961+
const SDValue Dmr1Ops[] = {RC, Dmr1Lo, LoSub, Dmr1Hi, HiSub};
11962+
SDValue Dmr1Value = SDValue(
11963+
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Dmr1Ops), 0);
1196311964

11964-
SDValue DmrPRC = DAG.getTargetConstant(PPC::DMRpRCRegClassID, dl, MVT::i32);
11965-
const SDValue DmrPOps[] = {DmrPRC, Value, Dmr0Sub, Dmr1Value, Dmr1Sub};
11965+
SDValue Dmr0Sub = DAG.getTargetConstant(PPC::sub_dmr0, dl, MVT::i32);
11966+
SDValue Dmr1Sub = DAG.getTargetConstant(PPC::sub_dmr1, dl, MVT::i32);
1196611967

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

11971-
SDValue RetOps[2];
11972-
if (IsV1024i1)
11973-
RetOps[0] = Value;
11974-
else
11975-
RetOps[0] = DmrPValue;
11976-
RetOps[1] = TF;
11971+
DmrPValue = SDValue(
11972+
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v2048i1, DmrPOps), 0);
1197711973

11974+
SDValue RetOps[] = {DmrPValue, TF};
1197811975
return DAG.getMergeValues(RetOps, dl);
1197911976
}
1198011977

0 commit comments

Comments
 (0)