@@ -11835,36 +11835,33 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
11835
11835
SDValue Value =
11836
11836
SDValue(DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Ops), 0);
11837
11837
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
+ }
11850
11842
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);
11853
11854
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) ;
11856
11857
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};
11860
11860
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);
11867
11863
11864
+ SDValue RetOps[] = {DmrPValue, TF};
11868
11865
return DAG.getMergeValues(RetOps, dl);
11869
11866
}
11870
11867
0 commit comments