[llvm] [DAGCombiner] Ensure poison-generating flags are stripped in `freeze` op (PR #114582)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 2 01:28:53 PDT 2024
================
@@ -0,0 +1,25 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -mtriple=arm-linux-gnueabi -mcpu=arm1022e -o - %s | FileCheck %s
+
+; Ensure poison-generating flags are stripped by the time a freeze operand is visited.
+
+define i1 @drop_flags(i32 noundef %numentries, i64 %cond, i64 %arg) {
+; CHECK-LABEL: drop_flags:
+; CHECK: @ %bb.0: @ %entry
+; CHECK-NEXT: ldm sp, {r1, r12}
+; CHECK-NEXT: subs r1, r2, r1
+; CHECK-NEXT: sbcs r1, r3, r12
+; CHECK-NEXT: movlo r0, r2
+; CHECK-NEXT: clz r0, r0
+; CHECK-NEXT: lsr r0, r0, #5
+; CHECK-NEXT: bx lr
+entry:
+ %cmp4 = icmp samesign ult i64 %cond, %arg
+ %conv6 = trunc nuw i64 %cond to i32
+ %spec.select = select i1 %cmp4, i32 %conv6, i32 %numentries
+ %spec.select.fr = freeze i32 %spec.select
+ %cmpz = icmp eq i32 %spec.select.fr, 0
+ ret i1 %cmpz
+}
+
+declare i32 @llvm.ctlz.i32(i32, i1)
----------------
dtcxzyw wrote:
Unused.
https://github.com/llvm/llvm-project/pull/114582
More information about the llvm-commits
mailing list