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