summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHao Liu <Hao.Liu@arm.com>2014-02-13 02:36:58 +0000
committerHao Liu <Hao.Liu@arm.com>2014-02-13 02:36:58 +0000
commit4f2256187cf518356475d6846198e5d8c004e076 (patch)
treee22ee14427a60f21bde9c80b62156301781d5463 /test
parent2798b77586abff91dca088cd678dd9fc0c6da3cd (diff)
downloadllvm-4f2256187cf518356475d6846198e5d8c004e076.tar.gz
llvm-4f2256187cf518356475d6846198e5d8c004e076.tar.bz2
llvm-4f2256187cf518356475d6846198e5d8c004e076.tar.xz
[AArch64]Add support for spilling FPR8/FPR16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201287 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/AArch64/neon-spill-fpr8-fpr16.ll30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/neon-spill-fpr8-fpr16.ll b/test/CodeGen/AArch64/neon-spill-fpr8-fpr16.ll
new file mode 100644
index 0000000000..bb3300ee9a
--- /dev/null
+++ b/test/CodeGen/AArch64/neon-spill-fpr8-fpr16.ll
@@ -0,0 +1,30 @@
+; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon < %s | FileCheck %s
+
+; This file tests the spill of FPR8/FPR16. The volatile loads/stores force the
+; allocator to keep the value live until it's needed.
+
+%bigtype_v1i8 = type [20 x <1 x i8>]
+
+define void @spill_fpr8(%bigtype_v1i8* %addr) {
+; CHECK-LABEL: spill_fpr8:
+; CHECK: 1-byte Folded Spill
+; CHECK: 1-byte Folded Reload
+ %val1 = load volatile %bigtype_v1i8* %addr
+ %val2 = load volatile %bigtype_v1i8* %addr
+ store volatile %bigtype_v1i8 %val1, %bigtype_v1i8* %addr
+ store volatile %bigtype_v1i8 %val2, %bigtype_v1i8* %addr
+ ret void
+}
+
+%bigtype_v1i16 = type [20 x <1 x i16>]
+
+define void @spill_fpr16(%bigtype_v1i16* %addr) {
+; CHECK-LABEL: spill_fpr16:
+; CHECK: 2-byte Folded Spill
+; CHECK: 2-byte Folded Reload
+ %val1 = load volatile %bigtype_v1i16* %addr
+ %val2 = load volatile %bigtype_v1i16* %addr
+ store volatile %bigtype_v1i16 %val1, %bigtype_v1i16* %addr
+ store volatile %bigtype_v1i16 %val2, %bigtype_v1i16* %addr
+ ret void
+} \ No newline at end of file