[llvm] [DAGCombiner] Fold subtraction if above a constant threshold to `umin` (PR #135194)
Piotr Fusik via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 10 08:01:46 PDT 2025
================
@@ -1720,45 +1720,67 @@ define i32 @sub_if_uge_multiuse_cmp_store_i32(i32 %x, i32 %y, ptr %z) {
}
define i8 @sub_if_uge_C_i8(i8 zeroext %x) {
-; CHECK-LABEL: sub_if_uge_C_i8:
-; CHECK: # %bb.0:
-; CHECK-NEXT: sltiu a1, a0, 13
-; CHECK-NEXT: addi a1, a1, -1
-; CHECK-NEXT: andi a1, a1, -13
-; CHECK-NEXT: add a0, a0, a1
-; CHECK-NEXT: ret
+; RV32I-LABEL: sub_if_uge_C_i8:
+; RV32I: # %bb.0:
+; RV32I-NEXT: sltiu a1, a0, 13
+; RV32I-NEXT: addi a1, a1, -1
+; RV32I-NEXT: andi a1, a1, -13
+; RV32I-NEXT: add a0, a0, a1
+; RV32I-NEXT: ret
+;
+; RV32ZBB-LABEL: sub_if_uge_C_i8:
+; RV32ZBB: # %bb.0:
+; RV32ZBB-NEXT: addi a1, a0, -13
+; RV32ZBB-NEXT: zext.b a1, a1
----------------
pfusik wrote:
`zext.b` is redundant here. How to get rid of it?
https://github.com/llvm/llvm-project/pull/135194
More information about the llvm-commits
mailing list