1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -loop-reduce 2*9880d681SAndroid Build Coastguard Worker; PR6453 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine void @_ZNK15PolynomialSpaceILi3EE13compute_indexEjRA3_j() nounwind { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker br label %bb6 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerbb6: 11*9880d681SAndroid Build Coastguard Worker %t4 = phi i32 [ 0, %entry ], [ %t3, %bb5 ] 12*9880d681SAndroid Build Coastguard Worker %t16 = sub i32 undef, %t4 13*9880d681SAndroid Build Coastguard Worker %t25 = sub i32 undef, %t4 14*9880d681SAndroid Build Coastguard Worker %t26 = add i32 undef, %t25 15*9880d681SAndroid Build Coastguard Worker br label %bb4 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerbb4: 18*9880d681SAndroid Build Coastguard Worker %t2 = phi i32 [ %t1, %bb3 ], [ 0, %bb6 ] 19*9880d681SAndroid Build Coastguard Worker %t17 = mul i32 %t2, %t16 20*9880d681SAndroid Build Coastguard Worker %t18 = zext i32 %t2 to i33 21*9880d681SAndroid Build Coastguard Worker %t19 = add i32 %t2, -1 22*9880d681SAndroid Build Coastguard Worker %t20 = zext i32 %t19 to i33 23*9880d681SAndroid Build Coastguard Worker %t21 = mul i33 %t18, %t20 24*9880d681SAndroid Build Coastguard Worker %t22 = lshr i33 %t21, 1 25*9880d681SAndroid Build Coastguard Worker %t23 = trunc i33 %t22 to i32 26*9880d681SAndroid Build Coastguard Worker %t24 = sub i32 %t17, %t23 27*9880d681SAndroid Build Coastguard Worker %t27 = add i32 %t24, %t26 28*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb1, label %bb5 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerbb1: 31*9880d681SAndroid Build Coastguard Worker %t = icmp ugt i32 %t27, undef 32*9880d681SAndroid Build Coastguard Worker br i1 %t, label %bb2, label %bb3 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerbb3: 35*9880d681SAndroid Build Coastguard Worker %t1 = add i32 %t2, 1 36*9880d681SAndroid Build Coastguard Worker br label %bb4 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerbb5: 39*9880d681SAndroid Build Coastguard Worker %t3 = add i32 %t4, 1 40*9880d681SAndroid Build Coastguard Worker br label %bb6 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerbb2: 43*9880d681SAndroid Build Coastguard Worker ret void 44*9880d681SAndroid Build Coastguard Worker} 45