Fix bug 22641
[oota-llvm.git] / test / Analysis / ScalarEvolution / pr22641.ll
1 ; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s
2
3 define i1 @main(i16 %a) {
4 ; CHECK-LABEL: Classifying expressions for: @main
5 entry:
6   br label %body
7
8 body:
9   %dec2 = phi i16 [ %a, %entry ], [ %dec, %cond ]
10   %dec = add i16 %dec2, -1
11   %conv2 = zext i16 %dec2 to i32
12   %conv = zext i16 %dec to i32
13 ; CHECK:   %conv = zext i16 %dec to i32
14 ; CHECK-NEXT: -->  {(zext i16 (-1 + %a) to i32),+,65535}<nuw><%body>
15 ; CHECK-NOT:  -->  {(65535 + (zext i16 %a to i32)),+,65535}<nuw><%body>
16
17   br label %cond
18
19 cond:
20   br i1 false, label %body, label %exit
21
22 exit:
23   %ret = icmp ne i32 %conv, 0
24   ret i1 %ret
25 }