[llvm] [InstCombine] Fold icmp eq (and X, 1), 0 --> xor (trunc X to i1) (PR #219320)
Kevin Choi via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 2 09:02:52 PDT 2026
================
@@ -1121,10 +1122,11 @@ define void @assume_makes_and_known_assume_on_arg(ptr %p, i32 %x) {
define void @assume_makes_and_known_assume_on_mul(ptr %p, i32 %a, i32 %b) {
; CHECK-LABEL: @assume_makes_and_known_assume_on_mul(
; CHECK-NEXT: [[X:%.*]] = mul i32 [[A:%.*]], [[B:%.*]]
-; CHECK-NEXT: [[AND:%.*]] = and i32 [[X]], 1
-; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[AND]], 0
+; CHECK-NEXT: [[TMP1:%.*]] = trunc i32 [[X]] to i1
+; CHECK-NEXT: [[CMP:%.*]] = xor i1 [[TMP1]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[CMP]])
-; CHECK-NEXT: store i32 0, ptr [[P:%.*]], align 4
+; CHECK-NEXT: [[AND2:%.*]] = and i32 [[X]], 1
----------------
choikwa wrote:
I assume the ValueTracking PR will address this llvm.assume regression?
https://github.com/llvm/llvm-project/pull/219320
More information about the llvm-commits
mailing list