xref: /llvm-project/llvm/test/CodeGen/NVPTX/vector-stores.ll (revision 932d9c13faa3de1deca3874d3b864901aa5ec9a5)
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
3
4; CHECK-LABEL: .visible .func foo1
5; CHECK: st.v2.f32
6define void @foo1(<2 x float> %val, ptr %ptr) {
7  store <2 x float> %val, ptr %ptr
8  ret void
9}
10
11; CHECK-LABEL: .visible .func foo2
12; CHECK: st.v4.f32
13define void @foo2(<4 x float> %val, ptr %ptr) {
14  store <4 x float> %val, ptr %ptr
15  ret void
16}
17
18; CHECK-LABEL: .visible .func foo3
19; CHECK: st.v2.u32
20define void @foo3(<2 x i32> %val, ptr %ptr) {
21  store <2 x i32> %val, ptr %ptr
22  ret void
23}
24
25; CHECK-LABEL: .visible .func foo4
26; CHECK: st.v4.u32
27define void @foo4(<4 x i32> %val, ptr %ptr) {
28  store <4 x i32> %val, ptr %ptr
29  ret void
30}
31
32; CHECK-LABEL: .visible .func v16i8
33define void @v16i8(ptr %a, ptr %b) {
34; CHECK: ld.v4.b32
35; CHECK: st.v4.b32
36  %v = load <16 x i8>, ptr %a
37  store <16 x i8> %v, ptr %b
38  ret void
39}
40