@@ -11945,36 +11945,33 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
11945
11945
SDValue Value =
11946
11946
SDValue(DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Ops), 0);
11947
11947
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
+ }
11960
11952
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);
11963
11964
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) ;
11966
11967
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};
11970
11970
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);
11977
11973
11974
+ SDValue RetOps[] = {DmrPValue, TF};
11978
11975
return DAG.getMergeValues(RetOps, dl);
11979
11976
}
11980
11977
0 commit comments