Home | History | Annotate | Download | only in ScalarEvolution
      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 }
     26