[llvm-branch-commits] [llvm] [AMDGPU][GlobalISel] Combine (sext (trunc (sext_in_reg x))) (PR #131312)
Pierre van Houtryve via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Mar 14 05:07:00 PDT 2025
================
@@ -258,6 +258,14 @@ def sext_trunc_sextload : GICombineRule<
[{ return Helper.matchSextTruncSextLoad(*${d}); }]),
(apply [{ Helper.applySextTruncSextLoad(*${d}); }])>;
+def sext_trunc_sextinreg : GICombineRule<
+ (defs root:$dst),
+ (match (G_SEXT_INREG $sir, $src, $width),
+ (G_TRUNC $trunc, $sir),
+ (G_SEXT $dst, $trunc),
+ [{ return (MRI.getType(${trunc}.getReg()).getScalarSizeInBits() >= ${width}.getImm()); }]),
----------------
Pierre-vh wrote:
Apply isn't allowed to fail. It's just that the presence of `GIReplaceReg` triggers emission of a `canReplaceReg` call during the matching portion of the match table rule.
> On a related note, couldn't you split this whole combine into two independently useful parts:
Good idea, I can try that
https://github.com/llvm/llvm-project/pull/131312
More information about the llvm-branch-commits
mailing list