[llvm] [AMDGPU][GlobalISel] Combine (or s64, zext(s32)) (PR #151519)
Mirko BrkuĊĦanin via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 1 10:05:30 PDT 2025
================
@@ -516,3 +516,29 @@ bool AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(
return true;
}
+
+void AMDGPUCombinerHelper::applyCombineOrS64S32(MachineInstr &MI,
+ Register SrcS64,
+ Register SrcS32) const {
+ Register DstReg = MI.getOperand(0).getReg();
+
+ auto UnmergeParts = Builder.buildUnmerge(LLT::scalar(32), SrcS64);
+ Register SrcS64Lo = UnmergeParts.getReg(0);
+ Register SrcS64Hi = UnmergeParts.getReg(1);
+
+ auto Or = Builder.buildOr(LLT::scalar(32), SrcS64Lo, SrcS32).getReg(0);
+ Builder.buildMergeValues(DstReg, {Or, SrcS64Hi});
+ MI.eraseFromParent();
----------------
mbrkusanin wrote:
Rewritten in tablegen
https://github.com/llvm/llvm-project/pull/151519
More information about the llvm-commits
mailing list