1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon < %s 2*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workertarget triple = "hexagon" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdeclare void @foo() #0 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdefine hidden fastcc void @fred(i32 %a, i64 %b, i64 %c) unnamed_addr #1 { 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker %cmp17 = icmp ne i64 %c, 0 11*9880d681SAndroid Build Coastguard Worker %conv19 = zext i1 %cmp17 to i64 12*9880d681SAndroid Build Coastguard Worker %or = or i64 %conv19, %b 13*9880d681SAndroid Build Coastguard Worker store i64 %or, i64* undef, align 8 14*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then44, label %if.end96 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerif.then44: ; preds = %entry 17*9880d681SAndroid Build Coastguard Worker br i1 undef, label %overflow, label %lor.lhs.false 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerlor.lhs.false: ; preds = %if.then44 20*9880d681SAndroid Build Coastguard Worker br i1 undef, label %overflow, label %if.end52 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerif.end52: ; preds = %lor.lhs.false 23*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then55, label %if.end96 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerif.then55: ; preds = %if.end52 26*9880d681SAndroid Build Coastguard Worker %cmp60 = icmp slt i32 %a, 0 27*9880d681SAndroid Build Coastguard Worker %or.cond = or i1 %cmp60, false 28*9880d681SAndroid Build Coastguard Worker %cmp63 = icmp ule i64 %or, undef 29*9880d681SAndroid Build Coastguard Worker %.cmp63 = or i1 %cmp63, %or.cond 30*9880d681SAndroid Build Coastguard Worker call void @foo() 31*9880d681SAndroid Build Coastguard Worker %or.cond299 = and i1 %.cmp63, undef 32*9880d681SAndroid Build Coastguard Worker br i1 %or.cond299, label %if.then72, label %if.end73 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerif.then72: ; preds = %if.then55 35*9880d681SAndroid Build Coastguard Worker unreachable 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerif.end73: ; preds = %if.then55 38*9880d681SAndroid Build Coastguard Worker unreachable 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workerif.end96: ; preds = %if.end52, %entry 41*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end102, label %if.then98 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerif.then98: ; preds = %if.end96 44*9880d681SAndroid Build Coastguard Worker br label %if.end102 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workerif.end102: ; preds = %if.then98, %if.end96 47*9880d681SAndroid Build Coastguard Worker unreachable 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workeroverflow: ; preds = %lor.lhs.false, %if.then44 50*9880d681SAndroid Build Coastguard Worker ret void 51*9880d681SAndroid Build Coastguard Worker} 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerattributes #0 = { noinline norecurse nounwind } 54*9880d681SAndroid Build Coastguard Workerattributes #1 = { noinline nounwind } 55*9880d681SAndroid Build Coastguard Worker 56