diff options
author | Amara Emerson <amara.emerson@arm.com> | 2013-10-31 09:32:11 +0000 |
---|---|---|
committer | Amara Emerson <amara.emerson@arm.com> | 2013-10-31 09:32:11 +0000 |
commit | c2884320feebc543d2ce51151d5418dfc18da9e4 (patch) | |
tree | 0741cd0182a73f25f8f852c90a8b7751323dc4ef /test/CodeGen/AArch64/func-argpassing.ll | |
parent | 0f5e68e3dc64e7dde41577649ad44b4453859276 (diff) | |
download | llvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.gz llvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.bz2 llvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.xz |
[AArch64] Make the use of FP instructions optional, but enabled by default.
This adds a new subtarget feature called FPARMv8 (implied by NEON), and
predicates the support of the FP instructions and registers on this feature.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193739 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/AArch64/func-argpassing.ll')
-rw-r--r-- | test/CodeGen/AArch64/func-argpassing.ll | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/func-argpassing.ll b/test/CodeGen/AArch64/func-argpassing.ll index 83fc0a0e50..430d77f9e9 100644 --- a/test/CodeGen/AArch64/func-argpassing.ll +++ b/test/CodeGen/AArch64/func-argpassing.ll @@ -1,4 +1,5 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu | FileCheck %s +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s %myStruct = type { i64 , i8, i32 } @@ -23,6 +24,7 @@ define void @add_floats(float %val1, float %val2) { ; CHECK-LABEL: add_floats: %newval = fadd float %val1, %val2 ; CHECK: fadd [[ADDRES:s[0-9]+]], s0, s1 +; CHECK-NOFP-NOT: fadd store float %newval, float* @varfloat ; CHECK: str [[ADDRES]], [{{x[0-9]+}}, #:lo12:varfloat] ret void @@ -84,6 +86,7 @@ define double @return_double() { ; CHECK-LABEL: return_double: ret double 3.14 ; CHECK: ldr d0, [{{x[0-9]+}}, #:lo12:.LCPI +; CHECK-NOFP-NOT: ldr d0, } ; This is the kind of IR clang will produce for returning a struct @@ -139,6 +142,7 @@ define i32 @struct_on_stack(i8 %var0, i16 %var1, i32 %var2, i64 %var3, i128 %var store volatile double %notstacked, double* @vardouble ; CHECK-NOT: ldr d0 ; CHECK: str d0, [{{x[0-9]+}}, #:lo12:vardouble +; CHECK-NOFP-NOT: str d0, %retval = load volatile i32* %stacked ret i32 %retval |