[ARM] Better OR's for MVE compares
[llvm-core.git] / test / Transforms / IndVarSimplify / pr24952.ll
blobc430cae98f58e30e61f1f0cf0a6321bb275d0bd2
1 ; RUN: opt -indvars -S < %s | FileCheck %s
3 declare void @use(i1)
5 define void @f() {
6 ; CHECK-LABEL: @f(
7  entry:
8   %x = alloca i32
9   %y = alloca i32
10   br label %loop
12  loop:
13   %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]
14   %iv.inc = add i32 %iv, 1
16   %x.gep = getelementptr i32, i32* %x, i32 %iv
17   %eql = icmp eq i32* %x.gep, %y
18 ; CHECK-NOT: @use(i1 true)
19   call void @use(i1 %eql)
21   ; %be.cond deliberately 'false' -- we want want the trip count to be 0.
22   %be.cond = icmp ult i32 %iv, 0
23   br i1 %be.cond, label %loop, label %leave
25  leave:
26   ret void