blob: c829cc52462ee0c5fd8f831c291dd89c1559691a [file] [log] [blame]
Tim Northoverb49a8a92016-03-22 19:14:38 +00001; RUN: llc -mtriple=thumbv7-linux-gnueabihf %s -o - | FileCheck %s
2
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +00003define i64 @test_mismatched_call(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +00004; CHECK-LABEL: test_mismatched_call:
Saleem Abdulrasoola6519b12016-09-06 00:28:43 +00005; CHECK: bl floor
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +00006; CHECK: vmov r0, r1, d0
Tim Northoverb49a8a92016-03-22 19:14:38 +00007
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +00008 %val = tail call 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 Abdulrasoola7ade332016-09-07 03:17:19 +000013define double @test_matched_call(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +000014; CHECK-LABEL: test_matched_call:
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000015; CHECK: b floor
Tim Northoverb49a8a92016-03-22 19:14:38 +000016
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000017 %val = tail call double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000018 ret double %val
19}
20
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000021define 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 Abdulrasoola7ade332016-09-07 03:17:19 +000025 %val = tail call double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000026 ret void
27}
28
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000029define arm_aapcscc double @test_callingconv(double %in) {
Tim Northoverb49a8a92016-03-22 19:14:38 +000030; CHECK: test_callingconv:
31; CHECK: bl floor
32
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000033 %val = tail call double @floor(double %in)
Tim Northoverb49a8a92016-03-22 19:14:38 +000034 ret double %val
35}
36
Saleem Abdulrasoola7ade332016-09-07 03:17:19 +000037declare double @floor(double) nounwind readonly