1*9880d681SAndroid Build Coastguard Worker; RUN: opt -indvars -S < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare void @use(i1) 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine void @f() { 6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @f( 7*9880d681SAndroid Build Coastguard Worker entry: 8*9880d681SAndroid Build Coastguard Worker %x = alloca i32 9*9880d681SAndroid Build Coastguard Worker %y = alloca i32 10*9880d681SAndroid Build Coastguard Worker br label %loop 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker loop: 13*9880d681SAndroid Build Coastguard Worker %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ] 14*9880d681SAndroid Build Coastguard Worker %iv.inc = add i32 %iv, 1 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker %x.gep = getelementptr i32, i32* %x, i32 %iv 17*9880d681SAndroid Build Coastguard Worker %eql = icmp eq i32* %x.gep, %y 18*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: @use(i1 true) 19*9880d681SAndroid Build Coastguard Worker call void @use(i1 %eql) 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker ; %be.cond deliberately 'false' -- we want want the trip count to be 0. 22*9880d681SAndroid Build Coastguard Worker %be.cond = icmp ult i32 %iv, 0 23*9880d681SAndroid Build Coastguard Worker br i1 %be.cond, label %loop, label %leave 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker leave: 26*9880d681SAndroid Build Coastguard Worker ret void 27*9880d681SAndroid Build Coastguard Worker} 28