1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=thumbv7-linux-gnueabihf %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i64 @test_mismatched_call(double %in) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_mismatched_call: 5*9880d681SAndroid Build Coastguard Worker; CHECK: bl floor 6*9880d681SAndroid Build Coastguard Worker; CHECK: vmov r0, r1, d0 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker %val = tail call double @floor(double %in) 9*9880d681SAndroid Build Coastguard Worker %res = bitcast double %val to i64 10*9880d681SAndroid Build Coastguard Worker ret i64 %res 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine double @test_matched_call(double %in) { 14*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_matched_call: 15*9880d681SAndroid Build Coastguard Worker; CHECK: b floor 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker %val = tail call double @floor(double %in) 18*9880d681SAndroid Build Coastguard Worker ret double %val 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine void @test_irrelevant_call(double %in) { 22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_irrelevant_call: 23*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: bl floor 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker %val = tail call double @floor(double %in) 26*9880d681SAndroid Build Coastguard Worker ret void 27*9880d681SAndroid Build Coastguard Worker} 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdefine arm_aapcscc double @test_callingconv(double %in) { 30*9880d681SAndroid Build Coastguard Worker; CHECK: test_callingconv: 31*9880d681SAndroid Build Coastguard Worker; CHECK: bl floor 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker %val = tail call double @floor(double %in) 34*9880d681SAndroid Build Coastguard Worker ret double %val 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdeclare double @floor(double) nounwind readonly 38