• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s
2
3define i1 @main(i16 %a) {
4; CHECK-LABEL: Classifying expressions for: @main
5entry:
6  br label %body
7
8body:
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
19cond:
20  br i1 false, label %body, label %exit
21
22exit:
23  %ret = icmp ne i32 %conv, 0
24  ret i1 %ret
25}
26