1*9880d681SAndroid Build Coastguard Worker; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i1 @main(i16 %a) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: Classifying expressions for: @main 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker br label %body 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerbody: 9*9880d681SAndroid Build Coastguard Worker %dec2 = phi i16 [ %a, %entry ], [ %dec, %cond ] 10*9880d681SAndroid Build Coastguard Worker %dec = add i16 %dec2, -1 11*9880d681SAndroid Build Coastguard Worker %conv2 = zext i16 %dec2 to i32 12*9880d681SAndroid Build Coastguard Worker %conv = zext i16 %dec to i32 13*9880d681SAndroid Build Coastguard Worker; CHECK: %conv = zext i16 %dec to i32 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: --> {(zext i16 (-1 + %a) to i32),+,65535}<nuw><%body> 15*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: --> {(65535 + (zext i16 %a to i32)),+,65535}<nuw><%body> 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker br label %cond 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workercond: 20*9880d681SAndroid Build Coastguard Worker br i1 false, label %body, label %exit 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerexit: 23*9880d681SAndroid Build Coastguard Worker %ret = icmp ne i32 %conv, 0 24*9880d681SAndroid Build Coastguard Worker ret i1 %ret 25*9880d681SAndroid Build Coastguard Worker} 26