diff options
Diffstat (limited to 'llvm/test/CodeGen/AArch64/arm64-rounding.ll')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/arm64-rounding.ll | 193 |
1 files changed, 57 insertions, 136 deletions
diff --git a/llvm/test/CodeGen/AArch64/arm64-rounding.ll b/llvm/test/CodeGen/AArch64/arm64-rounding.ll index b2686b6b05f..d487aabccc4 100644 --- a/llvm/test/CodeGen/AArch64/arm64-rounding.ll +++ b/llvm/test/CodeGen/AArch64/arm64-rounding.ll @@ -1,13 +1,8 @@ -; RUN: llc -O3 < %s -mtriple=arm64-apple-ios7.0 | FileCheck %s --check-prefix=CHECK-INEXACT -; RUN: llc -O3 < %s -mtriple=aarch64-linux-gnu | FileCheck %s --check-prefix=CHECK-FAST +; RUN: llc -O3 < %s -mtriple=arm64 | FileCheck %s -; CHECK-INEXACT-LABEL: test1: -; CHECK-INEXACT-DAG: frintm -; CHECK-INEXACT-DAG: frintx - -; CHECK-FAST-LABEL: test1: -; CHECK-FAST: frintm -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test1: +; CHECK: frintm +; CHECK-NOT: frintx define float @test1(float %a) #0 { entry: %call = tail call float @floorf(float %a) nounwind readnone @@ -16,13 +11,9 @@ entry: declare float @floorf(float) nounwind readnone -; CHECK-INEXACT-LABEL: test2: -; CHECK-INEXACT: frintm -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test2: -; CHECK-FAST: frintm -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test2: +; CHECK: frintm +; CHECK-NOT: frintx define double @test2(double %a) #0 { entry: %call = tail call double @floor(double %a) nounwind readnone @@ -31,11 +22,8 @@ entry: declare double @floor(double) nounwind readnone -; CHECK-INEXACT-LABEL: test3: -; CHECK-INEXACT: frinti - -; CHECK-FAST-LABEL: test3: -; CHECK-FAST: frinti +; CHECK-LABEL: test3: +; CHECK: frinti define float @test3(float %a) #0 { entry: %call = tail call float @nearbyintf(float %a) nounwind readnone @@ -44,11 +32,8 @@ entry: declare float @nearbyintf(float) nounwind readnone -; CHECK-INEXACT-LABEL: test4: -; CHECK-INEXACT: frinti - -; CHECK-FAST-LABEL: test4: -; CHECK-FAST: frinti +; CHECK-LABEL: test4: +; CHECK: frinti define double @test4(double %a) #0 { entry: %call = tail call double @nearbyint(double %a) nounwind readnone @@ -57,13 +42,9 @@ entry: declare double @nearbyint(double) nounwind readnone -; CHECK-INEXACT-LABEL: test5: -; CHECK-INEXACT: frintp -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test5: -; CHECK-FAST: frintp -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test5: +; CHECK: frintp +; CHECK-NOT: frintx define float @test5(float %a) #0 { entry: %call = tail call float @ceilf(float %a) nounwind readnone @@ -72,13 +53,9 @@ entry: declare float @ceilf(float) nounwind readnone -; CHECK-INEXACT-LABEL: test6: -; CHECK-INEXACT: frintp -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test6: -; CHECK-FAST: frintp -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test6: +; CHECK: frintp +; CHECK-NOT: frintx define double @test6(double %a) #0 { entry: %call = tail call double @ceil(double %a) nounwind readnone @@ -87,11 +64,8 @@ entry: declare double @ceil(double) nounwind readnone -; CHECK-INEXACT-LABEL: test7: -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test7: -; CHECK-FAST: frintx +; CHECK-LABEL: test7: +; CHECK: frintx define float @test7(float %a) #0 { entry: %call = tail call float @rintf(float %a) nounwind readnone @@ -100,11 +74,8 @@ entry: declare float @rintf(float) nounwind readnone -; CHECK-INEXACT-LABEL: test8: -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test8: -; CHECK-FAST: frintx +; CHECK-LABEL: test8: +; CHECK: frintx define double @test8(double %a) #0 { entry: %call = tail call double @rint(double %a) nounwind readnone @@ -113,13 +84,9 @@ entry: declare double @rint(double) nounwind readnone -; CHECK-INEXACT-LABEL: test9: -; CHECK-INEXACT: frintz -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test9: -; CHECK-FAST: frintz -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test9: +; CHECK: frintz +; CHECK-NOT: frintx define float @test9(float %a) #0 { entry: %call = tail call float @truncf(float %a) nounwind readnone @@ -128,13 +95,9 @@ entry: declare float @truncf(float) nounwind readnone -; CHECK-INEXACT-LABEL: test10: -; CHECK-INEXACT: frintz -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test10: -; CHECK-FAST: frintz -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test10: +; CHECK: frintz +; CHECK-NOT: frintx define double @test10(double %a) #0 { entry: %call = tail call double @trunc(double %a) nounwind readnone @@ -143,13 +106,9 @@ entry: declare double @trunc(double) nounwind readnone -; CHECK-INEXACT-LABEL: test11: -; CHECK-INEXACT: frinta -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test11: -; CHECK-FAST: frinta -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test11: +; CHECK: frinta +; CHECK-NOT: frintx define float @test11(float %a) #0 { entry: %call = tail call float @roundf(float %a) nounwind readnone @@ -158,13 +117,9 @@ entry: declare float @roundf(float %a) nounwind readnone -; CHECK-INEXACT-LABEL: test12: -; CHECK-INEXACT: frinta -; CHECK-INEXACT: frintx - -; CHECK-FAST-LABEL: test12: -; CHECK-FAST: frinta -; CHECK-FAST-NOT: frintx +; CHECK-LABEL: test12: +; CHECK: frinta +; CHECK-NOT: frintx define double @test12(double %a) #0 { entry: %call = tail call double @round(double %a) nounwind readnone @@ -173,111 +128,77 @@ entry: declare double @round(double %a) nounwind readnone -; CHECK-INEXACT-LABEL: test13: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintm - -; CHECK-FAST-LABEL: test13: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintm +; CHECK-LABEL: test13: +; CHECK-NOT: frintx +; CHECK: frintm define float @test13(float %a) #1 { entry: %call = tail call float @floorf(float %a) nounwind readnone ret float %call } -; CHECK-INEXACT-LABEL: test14: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintm - -; CHECK-FAST-LABEL: test14: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintm +; CHECK-LABEL: test14: +; CHECK-NOT: frintx +; CHECK: frintm define double @test14(double %a) #1 { entry: %call = tail call double @floor(double %a) nounwind readnone ret double %call } -; CHECK-INEXACT-LABEL: test15: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintp - -; CHECK-FAST-LABEL: test15: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintp +; CHECK-LABEL: test15: +; CHECK-NOT: frintx +; CHECK: frintp define float @test15(float %a) #1 { entry: %call = tail call float @ceilf(float %a) nounwind readnone ret float %call } -; CHECK-INEXACT-LABEL: test16: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintp - -; CHECK-FAST-LABEL: test16: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintp +; CHECK-LABEL: test16: +; CHECK-NOT: frintx +; CHECK: frintp define double @test16(double %a) #1 { entry: %call = tail call double @ceil(double %a) nounwind readnone ret double %call } -; CHECK-INEXACT-LABEL: test17: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintz - -; CHECK-FAST-LABEL: test17: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintz +; CHECK-LABEL: test17: +; CHECK-NOT: frintx +; CHECK: frintz define float @test17(float %a) #1 { entry: %call = tail call float @truncf(float %a) nounwind readnone ret float %call } -; CHECK-INEXACT-LABEL: test18: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frintz - -; CHECK-FAST-LABEL: test18: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frintz +; CHECK-LABEL: test18: +; CHECK-NOT: frintx +; CHECK: frintz define double @test18(double %a) #1 { entry: %call = tail call double @trunc(double %a) nounwind readnone ret double %call } -; CHECK-INEXACT-LABEL: test19: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frinta - -; CHECK-FAST-LABEL: test19: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frinta +; CHECK-LABEL: test19: +; CHECK-NOT: frintx +; CHECK: frinta define float @test19(float %a) #1 { entry: %call = tail call float @roundf(float %a) nounwind readnone ret float %call } -; CHECK-INEXACT-LABEL: test20: -; CHECK-INEXACT-NOT: frintx -; CHECK-INEXACT: frinta - -; CHECK-FAST-LABEL: test20: -; CHECK-FAST-NOT: frintx -; CHECK-FAST: frinta +; CHECK-LABEL: test20: +; CHECK-NOT: frintx +; CHECK: frinta define double @test20(double %a) #1 { entry: %call = tail call double @round(double %a) nounwind readnone ret double %call } - - attributes #0 = { nounwind } attributes #1 = { nounwind "unsafe-fp-math"="true" } |

