[llvm] [AMDGPU] [PeepholeOpt] Eliminate unnecessary packing in wider f16 vectors for sdwa/opsel-able instruction (PR #137137)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 24 01:33:52 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp -- llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp b/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
index 295726ddb..b8bb27430 100644
--- a/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
+++ b/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
@@ -1456,54 +1456,66 @@ static bool checkForRightSrcRootAccess(MachineInstr *Def0MI,
Register SrcRootReg,
const SIInstrInfo *TII) {
// As if could, the Def1MI would have been sdwa-ed
- if(!TII->isSDWA(Def1MI->getOpcode()))
+ if (!TII->isSDWA(Def1MI->getOpcode()))
return false;
- MachineOperand *Def1Src0 = TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src0);
- MachineOperand *Def1Src1 = TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src1);
- MachineOperand *Def0Src0 = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0);
- MachineOperand *Def0Src1 = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1);
-
- if(Def1Src0 && Def1Src0->isReg() && (Def1Src0->getReg() == SrcRootReg)) {
- MachineOperand *Def1Src0Sel = TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src0_sel);
- if(!Def1Src0Sel || (Def1Src0Sel->getImm() != AMDGPU::SDWA::SdwaSel::WORD_1))
+ MachineOperand *Def1Src0 =
+ TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src0);
+ MachineOperand *Def1Src1 =
+ TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src1);
+ MachineOperand *Def0Src0 =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0);
+ MachineOperand *Def0Src1 =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1);
+
+ if (Def1Src0 && Def1Src0->isReg() && (Def1Src0->getReg() == SrcRootReg)) {
+ MachineOperand *Def1Src0Sel =
+ TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src0_sel);
+ if (!Def1Src0Sel ||
+ (Def1Src0Sel->getImm() != AMDGPU::SDWA::SdwaSel::WORD_1))
return false;
- if(Def0Src0 && Def0Src0->isReg() && (Def0Src0->getReg() == SrcRootReg)) {
- MachineOperand *Def0Src0Sel = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0_sel);
- if(!Def0Src0Sel)
+ if (Def0Src0 && Def0Src0->isReg() && (Def0Src0->getReg() == SrcRootReg)) {
+ MachineOperand *Def0Src0Sel =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0_sel);
+ if (!Def0Src0Sel)
return true;
- if(Def0Src0Sel && Def0Src0Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
+ if (Def0Src0Sel && Def0Src0Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
return true;
}
- if(Def0Src1 && Def0Src1->isReg() && (Def0Src1->getReg() == SrcRootReg)) {
- MachineOperand *Def0Src1Sel = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1_sel);
- if(!Def0Src1Sel)
+ if (Def0Src1 && Def0Src1->isReg() && (Def0Src1->getReg() == SrcRootReg)) {
+ MachineOperand *Def0Src1Sel =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1_sel);
+ if (!Def0Src1Sel)
return true;
- if(Def0Src1Sel && Def0Src1Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
+ if (Def0Src1Sel && Def0Src1Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
return true;
}
}
- if(Def1Src1 && Def1Src1->isReg() && (Def1Src1->getReg() == SrcRootReg)) {
- MachineOperand *Def1Src1Sel = TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src1_sel);
- if(!Def1Src1Sel || (Def1Src1Sel->getImm() != AMDGPU::SDWA::SdwaSel::WORD_1))
+ if (Def1Src1 && Def1Src1->isReg() && (Def1Src1->getReg() == SrcRootReg)) {
+ MachineOperand *Def1Src1Sel =
+ TII->getNamedOperand(*Def1MI, AMDGPU::OpName::src1_sel);
+ if (!Def1Src1Sel ||
+ (Def1Src1Sel->getImm() != AMDGPU::SDWA::SdwaSel::WORD_1))
return false;
- if(Def0Src0 && Def0Src0->isReg() && (Def0Src0->getReg() == SrcRootReg)) {
- MachineOperand *Def0Src0Sel = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0_sel);
- if(!Def0Src0Sel)
+ if (Def0Src0 && Def0Src0->isReg() && (Def0Src0->getReg() == SrcRootReg)) {
+ MachineOperand *Def0Src0Sel =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src0_sel);
+ if (!Def0Src0Sel)
return true;
- if(Def0Src0Sel && Def0Src0Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
+ if (Def0Src0Sel && Def0Src0Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
return true;
}
- if(Def0Src1 && Def0Src1->isReg() && (Def0Src1->getReg() == SrcRootReg)) {
- MachineOperand *Def0Src1Sel = TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1_sel);
- if(!Def0Src1Sel)
+ if (Def0Src1 && Def0Src1->isReg() && (Def0Src1->getReg() == SrcRootReg)) {
+ MachineOperand *Def0Src1Sel =
+ TII->getNamedOperand(*Def0MI, AMDGPU::OpName::src1_sel);
+ if (!Def0Src1Sel)
return true;
- if(Def0Src1Sel && Def0Src1Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
+ if (Def0Src1Sel && Def0Src1Sel->getImm() == AMDGPU::SDWA::SdwaSel::WORD_0)
return true;
}
}
@@ -1712,7 +1724,7 @@ void SIPeepholeSDWA::eliminateFP16Packing(MachineBasicBlock &MBB,
if (SrcRootMOReg == AMDGPU::NoRegister)
continue;
- // Also we need to ensure that each of the DefXRootMI should access the
+ // Also we need to ensure that each of the DefXRootMI should access the
// lower and upper half word of SrcRootMOReg respectively.
if (!checkForRightSrcRootAccess(Def0RootMI, Def1RootMI, SrcRootMOReg,
TII))
``````````
</details>
https://github.com/llvm/llvm-project/pull/137137
More information about the llvm-commits
mailing list