1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -tailcallopt -mtriple=i686-pc-linux-gnu -relocation-model=pic | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; This test uses guaranteed TCO so these will be tail calls, despite the early 4*9880d681SAndroid Build Coastguard Worker; binding issues. 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine protected fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker ret i32 %a3 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine fastcc i32 @tailcaller(i32 %in1, i32 %in2) { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker %tmp11 = tail call fastcc i32 @tailcallee( i32 %in1, i32 %in2, i32 %in1, i32 %in2 ) ; <i32> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker ret i32 %tmp11 15*9880d681SAndroid Build Coastguard Worker; CHECK: jmp tailcallee 16*9880d681SAndroid Build Coastguard Worker} 17