[llvm] [PowerPC] replace inline code with DMFInsert1024 (PR #175997)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 14 09:24:44 PST 2026
https://github.com/RolandF77 created https://github.com/llvm/llvm-project/pull/175997
Since we have a method for loading 1024 bits into a DMR, replace inline code that does that with a method call.
>From e555f606820e47b4f931beb183c52c1788139aca Mon Sep 17 00:00:00 2001
From: Roland Froese <froese at ca.ibm.com>
Date: Mon, 12 Jan 2026 19:41:04 +0000
Subject: [PATCH] use DMFInsert1024
---
llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 24 ++++-----------------
1 file changed, 4 insertions(+), 20 deletions(-)
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index ef211bf8c8982..934e24465cc69 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -12011,31 +12011,15 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
}
SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, LoadChains);
- SDValue Lo =
- DAG.getNode(PPCISD::INST512, dl, MVT::v512i1, Loads[0], Loads[1]);
- SDValue LoSub = DAG.getTargetConstant(PPC::sub_wacc_lo, dl, MVT::i32);
- SDValue Hi =
- DAG.getNode(PPCISD::INST512HI, dl, MVT::v512i1, Loads[2], Loads[3]);
- SDValue HiSub = DAG.getTargetConstant(PPC::sub_wacc_hi, dl, MVT::i32);
- SDValue RC = DAG.getTargetConstant(PPC::DMRRCRegClassID, dl, MVT::i32);
- const SDValue Ops[] = {RC, Lo, LoSub, Hi, HiSub};
-
- SDValue Value =
- SDValue(DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Ops), 0);
+ SDValue Value = DMFInsert1024(Loads, dl, DAG);
if (IsV1024i1) {
return DAG.getMergeValues({Value, TF}, dl);
}
// Handle Loads for V2048i1 which represents a dmr pair.
- SDValue DmrPValue;
- SDValue Dmr1Lo =
- DAG.getNode(PPCISD::INST512, dl, MVT::v512i1, Loads[4], Loads[5]);
- SDValue Dmr1Hi =
- DAG.getNode(PPCISD::INST512HI, dl, MVT::v512i1, Loads[6], Loads[7]);
- const SDValue Dmr1Ops[] = {RC, Dmr1Lo, LoSub, Dmr1Hi, HiSub};
- SDValue Dmr1Value = SDValue(
- DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v1024i1, Dmr1Ops), 0);
+ SmallVector<SDValue, 4> MoreLoads{Loads[4], Loads[5], Loads[6], Loads[7]};
+ SDValue Dmr1Value = DMFInsert1024(MoreLoads, dl, DAG);
SDValue Dmr0Sub = DAG.getTargetConstant(PPC::sub_dmr0, dl, MVT::i32);
SDValue Dmr1Sub = DAG.getTargetConstant(PPC::sub_dmr1, dl, MVT::i32);
@@ -12043,7 +12027,7 @@ SDValue PPCTargetLowering::LowerDMFVectorLoad(SDValue Op,
SDValue DmrPRC = DAG.getTargetConstant(PPC::DMRpRCRegClassID, dl, MVT::i32);
const SDValue DmrPOps[] = {DmrPRC, Value, Dmr0Sub, Dmr1Value, Dmr1Sub};
- DmrPValue = SDValue(
+ SDValue DmrPValue = SDValue(
DAG.getMachineNode(PPC::REG_SEQUENCE, dl, MVT::v2048i1, DmrPOps), 0);
return DAG.getMergeValues({DmrPValue, TF}, dl);
More information about the llvm-commits
mailing list