| ; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s | |
| define i1 @main(i16 %a) { | |
| ; CHECK-LABEL: Classifying expressions for: @main | |
| entry: | |
| br label %body | |
| body: | |
| %dec2 = phi i16 [ %a, %entry ], [ %dec, %cond ] | |
| %dec = add i16 %dec2, -1 | |
| %conv2 = zext i16 %dec2 to i32 | |
| %conv = zext i16 %dec to i32 | |
| ; CHECK: %conv = zext i16 %dec to i32 | |
| ; CHECK-NEXT: --> {(zext i16 (-1 + %a) to i32),+,65535}<nuw><%body> | |
| ; CHECK-NOT: --> {(65535 + (zext i16 %a to i32)),+,65535}<nuw><%body> | |
| br label %cond | |
| cond: | |
| br i1 false, label %body, label %exit | |
| exit: | |
| %ret = icmp ne i32 %conv, 0 | |
| ret i1 %ret | |
| } |