From 26bc2c8eedb06854b56e2dacb0e7c6bf85907ac2 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 7 Feb 2014 20:29:40 +0000 Subject: [PATCH] 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 --- test/CodeGen/R600/store-v3.ll | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/CodeGen/R600/store-v3.ll diff --git a/test/CodeGen/R600/store-v3.ll b/test/CodeGen/R600/store-v3.ll new file mode 100644 index 00000000000..58229f60482 --- /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 +} -- 2.34.1