summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-07 20:29:40 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-07 20:29:40 +0000
commit26bc2c8eedb06854b56e2dacb0e7c6bf85907ac2 (patch)
tree2927fc9efb5dd18e3f9629683213d0f37c363e90 /test
parent703197fc9488e5ef477e0a52e2a52b6472e93d13 (diff)
downloadllvm-26bc2c8eedb06854b56e2dacb0e7c6bf85907ac2.tar.gz
llvm-26bc2c8eedb06854b56e2dacb0e7c6bf85907ac2.tar.bz2
llvm-26bc2c8eedb06854b56e2dacb0e7c6bf85907ac2.tar.xz
R600/SI: Add failing test for 3 x i64 vectors.
Stores of <4 x i64> do work (although they do expand to 4 stores instead of 2), but 3 x i64 vectors fail to select. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200989 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/R600/store-v3.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/R600/store-v3.ll b/test/CodeGen/R600/store-v3.ll
new file mode 100644
index 0000000000..58229f6048
--- /dev/null
+++ b/test/CodeGen/R600/store-v3.ll
@@ -0,0 +1,28 @@
+; XFAIL: *
+; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI
+
+; SI-LABEL: @global_store_v3i64:
+; SI: BUFFER_STORE_DWORDX4
+; SI: BUFFER_STORE_DWORDX4
+define void @global_store_v3i64(<3 x i64> addrspace(1)* %out, <3 x i64> %x) {
+ store <3 x i64> %x, <3 x i64> addrspace(1)* %out, align 32
+ ret void
+}
+
+; SI-LABEL: @global_store_v3i64_unaligned:
+define void @global_store_v3i64_unaligned(<3 x i64> addrspace(1)* %out, <3 x i64> %x) {
+ store <3 x i64> %x, <3 x i64> addrspace(1)* %out, align 1
+ ret void
+}
+
+; SI-LABEL: @local_store_v3i64:
+define void @local_store_v3i64(<3 x i64> addrspace(3)* %out, <3 x i64> %x) {
+ store <3 x i64> %x, <3 x i64> addrspace(3)* %out, align 32
+ ret void
+}
+
+; SI-LABEL: @local_store_v3i64_unaligned:
+define void @local_store_v3i64_unaligned(<3 x i64> addrspace(1)* %out, <3 x i64> %x) {
+ store <3 x i64> %x, <3 x i64> addrspace(1)* %out, align 1
+ ret void
+}