blob: 0ed15bc84039cefe0f171aa82acf74701ac6e599 [file] [log] [blame]
Tim Northoverb49a8a92016-03-22 19:14:38 +00001; RUN: llc -mtriple=thumbv7-linux-gnueabihf %s -o - | FileCheck %s
2
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +00003define arm_aapcs_vfpcc i64 @test_mismatched_call(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +00004; CHECK-LABEL: test_mismatched_call:
Tim Northoverb49a8a92016-03-22 19:14:38 +00005; CHECK: vmov r0, r1, d0
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +00006; CHECK: bl floor
Tim Northoverb49a8a92016-03-22 19:14:38 +00007
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +00008 %val = tail call arm_aapcscc double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +00009 %res = bitcast double %val to i64
10 ret i64 %res
11}
12
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000013define arm_aapcs_vfpcc double @test_matched_call(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +000014; CHECK-LABEL: test_matched_call:
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000015; CHECK: b _floor
Tim Northoverb49a8a92016-03-22 19:14:38 +000016
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000017 %val = tail call arm_aapcs_vfpcc double @_floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000018 ret double %val
19}
20
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000021define arm_aapcs_vfpcc void @test_irrelevant_call(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +000022; CHECK-LABEL: test_irrelevant_call:
23; CHECK-NOT: bl floor
24
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000025 %val = tail call arm_aapcscc double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000026 ret void
27}
28
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000029define arm_aapcs_vfpcc double @test_callingconv(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +000030; CHECK: test_callingconv:
31; CHECK: bl floor
32
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000033 %val = tail call arm_aapcscc double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000034 ret double %val
35}
36
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +000037declare arm_aapcs_vfpcc double @_floor(double) nounwind readonly
38declare arm_aapcscc double @floor(double) nounwind readonly