1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK: _f 4*9880d681SAndroid Build Coastguard Worker; CHECK: adds 5*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: cmp 6*9880d681SAndroid Build Coastguard Worker; CHECK: bleq _h 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdefine i32 @f(i32 %a, i32 %b) nounwind ssp { 9*9880d681SAndroid Build Coastguard Workerentry: 10*9880d681SAndroid Build Coastguard Worker %add = add nsw i32 %b, %a 11*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %add, 0 12*9880d681SAndroid Build Coastguard Worker br i1 %cmp, label %if.then, label %if.end 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 15*9880d681SAndroid Build Coastguard Worker tail call void (...) @h(i32 %a, i32 %b) nounwind 16*9880d681SAndroid Build Coastguard Worker br label %if.end 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %if.then, %entry 19*9880d681SAndroid Build Coastguard Worker ret i32 %add 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; CHECK: _g 23*9880d681SAndroid Build Coastguard Worker; CHECK: orrs 24*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: cmp 25*9880d681SAndroid Build Coastguard Worker; CHECK: bleq _h 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine i32 @g(i32 %a, i32 %b) nounwind ssp { 28*9880d681SAndroid Build Coastguard Workerentry: 29*9880d681SAndroid Build Coastguard Worker %add = or i32 %b, %a 30*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %add, 0 31*9880d681SAndroid Build Coastguard Worker br i1 %cmp, label %if.then, label %if.end 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 34*9880d681SAndroid Build Coastguard Worker tail call void (...) @h(i32 %a, i32 %b) nounwind 35*9880d681SAndroid Build Coastguard Worker br label %if.end 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %if.then, %entry 38*9880d681SAndroid Build Coastguard Worker ret i32 %add 39*9880d681SAndroid Build Coastguard Worker} 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerdeclare void @h(...) 42