From: Matt Arsenault Date: Tue, 25 Mar 2014 16:50:55 +0000 (+0000) Subject: R600: Add failing testcase for <3 x i32> stores. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=022746175891fa9d865614f0c435d3d68b3da2cc;p=oota-llvm.git R600: Add failing testcase for <3 x i32> stores. This is supposed to have the same store size and alignment as <4 x i32>, but currently is split into a 64-bit and 32-bit store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204729 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/R600/store-v3.ll b/test/CodeGen/R600/store-v3.ll deleted file mode 100644 index 58229f60482..00000000000 --- a/test/CodeGen/R600/store-v3.ll +++ /dev/null @@ -1,28 +0,0 @@ -; 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 -} diff --git a/test/CodeGen/R600/store-v3i32.ll b/test/CodeGen/R600/store-v3i32.ll new file mode 100644 index 00000000000..33578035daa --- /dev/null +++ b/test/CodeGen/R600/store-v3i32.ll @@ -0,0 +1,12 @@ +; XFAIL: * +; RUN: llc -verify-machineinstrs -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI %s + +; 3 vectors have the same size and alignment as 4 vectors, so this +; should be done in a single store. + +; SI-LABEL: @store_v3i32: +; SI: BUFFER_STORE_DWORDX4 +define void @store_v3i32(<3 x i32> addrspace(1)* %out, <3 x i32> %a) nounwind { + store <3 x i32> %a, <3 x i32> addrspace(1)* %out, align 16 + ret void +} diff --git a/test/CodeGen/R600/store-v3i64.ll b/test/CodeGen/R600/store-v3i64.ll new file mode 100644 index 00000000000..58229f60482 --- /dev/null +++ b/test/CodeGen/R600/store-v3i64.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 +}