annotate test/CodeGen/AMDGPU/load-local-i16.ll @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,SI,FUNC %s
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,VI,FUNC %s
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
3 ; RUN: llc -march=r600 -mcpu=redwood -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
5 ; FUNC-LABEL: {{^}}local_load_i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 ; GCN: ds_read_u16 v{{[0-9]+}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 ; EG: LDS_SHORT_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
13 define amdgpu_kernel void @local_load_i16(i16 addrspace(3)* %out, i16 addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
14 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 %ld = load i16, i16 addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16 store i16 %ld, i16 addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
20 ; FUNC-LABEL: {{^}}local_load_v2i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 ; GCN: ds_read_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 ; EG: LDS_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
28 define amdgpu_kernel void @local_load_v2i16(<2 x i16> addrspace(3)* %out, <2 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30 %ld = load <2 x i16>, <2 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31 store <2 x i16> %ld, <2 x i16> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 ; FUNC-LABEL: {{^}}local_load_v3i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 ; GCN-DAG: ds_write_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38 ; GCN-DAG: ds_write_b16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 ; EG-DAG: LDS_USHORT_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 ; EG-DAG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
42 define amdgpu_kernel void @local_load_v3i16(<3 x i16> addrspace(3)* %out, <3 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 %ld = load <3 x i16>, <3 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45 store <3 x i16> %ld, <3 x i16> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 ; FUNC-LABEL: {{^}}local_load_v4i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
54 define amdgpu_kernel void @local_load_v4i16(<4 x i16> addrspace(3)* %out, <4 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56 %ld = load <4 x i16>, <4 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 store <4 x i16> %ld, <4 x i16> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
60
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61 ; FUNC-LABEL: {{^}}local_load_v8i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 ; GCN: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
63
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
64 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
65 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
66 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
67 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
68 define amdgpu_kernel void @local_load_v8i16(<8 x i16> addrspace(3)* %out, <8 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
69 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
70 %ld = load <8 x i16>, <8 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
71 store <8 x i16> %ld, <8 x i16> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
72 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
73 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
74
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
75 ; FUNC-LABEL: {{^}}local_load_v16i16:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
76 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:3{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
77 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:1 offset1:2{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
78
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
79
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
80 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
81 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
82 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
83 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
84
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
85 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
86 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
87 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
88 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
89 define amdgpu_kernel void @local_load_v16i16(<16 x i16> addrspace(3)* %out, <16 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
90 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
91 %ld = load <16 x i16>, <16 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
92 store <16 x i16> %ld, <16 x i16> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
93 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
94 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
95
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
96 ; FUNC-LABEL: {{^}}local_zextload_i16_to_i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
97 ; GCN: ds_read_u16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
98 ; GCN: ds_write_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
99
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
100 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
101 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
102 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
103 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
104 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
105 define amdgpu_kernel void @local_zextload_i16_to_i32(i32 addrspace(3)* %out, i16 addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
106 %a = load i16, i16 addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
107 %ext = zext i16 %a to i32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
108 store i32 %ext, i32 addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
109 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
110 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
111
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
112 ; FUNC-LABEL: {{^}}local_sextload_i16_to_i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
113 ; GCN-NOT: s_wqm_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
114 ; GCN: s_mov_b32 m0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
115 ; GCN: ds_read_i16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
116
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
117 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
118 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
119 ; EG-DAG: MOV {{[* ]*}}[[TMP:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
120 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
121 ; EG-DAG: BFE_INT {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], {{.*}}, 0.0, literal
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
122 ; EG: 16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
123 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
124 define amdgpu_kernel void @local_sextload_i16_to_i32(i32 addrspace(3)* %out, i16 addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
125 %a = load i16, i16 addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
126 %ext = sext i16 %a to i32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
127 store i32 %ext, i32 addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
128 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
129 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
130
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
131 ; FUNC-LABEL: {{^}}local_zextload_v1i16_to_v1i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
132 ; GCN: ds_read_u16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
133
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
134 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
135 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
136 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
137 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
138 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
139 define amdgpu_kernel void @local_zextload_v1i16_to_v1i32(<1 x i32> addrspace(3)* %out, <1 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
140 %load = load <1 x i16>, <1 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
141 %ext = zext <1 x i16> %load to <1 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
142 store <1 x i32> %ext, <1 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
143 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
144 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
145
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
146 ; FUNC-LABEL: {{^}}local_sextload_v1i16_to_v1i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
147 ; GCN: ds_read_i16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
148
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
149 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
150 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
151 ; EG-DAG: MOV {{[* ]*}}[[TMP:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
152 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
153 ; EG-DAG: BFE_INT {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], {{.*}}, 0.0, literal
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
154 ; EG: 16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
155 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
156 define amdgpu_kernel void @local_sextload_v1i16_to_v1i32(<1 x i32> addrspace(3)* %out, <1 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
157 %load = load <1 x i16>, <1 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
158 %ext = sext <1 x i16> %load to <1 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
159 store <1 x i32> %ext, <1 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
160 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
161 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
162
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
163 ; FUNC-LABEL: {{^}}local_zextload_v2i16_to_v2i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
164 ; GCN-NOT: s_wqm_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
165 ; GCN: s_mov_b32 m0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
166 ; GCN: ds_read_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
167
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
168 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
169 define amdgpu_kernel void @local_zextload_v2i16_to_v2i32(<2 x i32> addrspace(3)* %out, <2 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
170 %load = load <2 x i16>, <2 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
171 %ext = zext <2 x i16> %load to <2 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
172 store <2 x i32> %ext, <2 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
173 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
174 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
175
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
176 ; FUNC-LABEL: {{^}}local_sextload_v2i16_to_v2i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
177 ; GCN-NOT: s_wqm_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
178 ; GCN: s_mov_b32 m0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
179 ; GCN: ds_read_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
180
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
181 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
182 ; EG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
183 ; EG: BFE_INT
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
184 define amdgpu_kernel void @local_sextload_v2i16_to_v2i32(<2 x i32> addrspace(3)* %out, <2 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
185 %load = load <2 x i16>, <2 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
186 %ext = sext <2 x i16> %load to <2 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
187 store <2 x i32> %ext, <2 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
188 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
189 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
190
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
191 ; FUNC-LABEL: {{^}}local_local_zextload_v3i16_to_v3i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
192 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
193 ; GCN-DAG: ds_write_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
194 ; GCN-DAG: ds_write_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
195
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
196 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
197 define amdgpu_kernel void @local_local_zextload_v3i16_to_v3i32(<3 x i32> addrspace(3)* %out, <3 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
198 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
199 %ld = load <3 x i16>, <3 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
200 %ext = zext <3 x i16> %ld to <3 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
201 store <3 x i32> %ext, <3 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
202 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
203 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
204
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
205 ; FUNC-LABEL: {{^}}local_local_sextload_v3i16_to_v3i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
206 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
207 ; GCN-DAG: ds_write_b32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
208 ; GCN-DAG: ds_write_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
209
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
210 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
211 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
212 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
213 ; EG-DAG: BFE_INT
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
214 define amdgpu_kernel void @local_local_sextload_v3i16_to_v3i32(<3 x i32> addrspace(3)* %out, <3 x i16> addrspace(3)* %in) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
215 entry:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
216 %ld = load <3 x i16>, <3 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
217 %ext = sext <3 x i16> %ld to <3 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
218 store <3 x i32> %ext, <3 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
219 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
220 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
221
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
222 ; FUNC-LABEL: {{^}}local_local_zextload_v4i16_to_v4i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
223 ; GCN-NOT: s_wqm_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
224 ; GCN: s_mov_b32 m0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
225 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
226
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
227 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
228 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
229 define amdgpu_kernel void @local_local_zextload_v4i16_to_v4i32(<4 x i32> addrspace(3)* %out, <4 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
230 %load = load <4 x i16>, <4 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
231 %ext = zext <4 x i16> %load to <4 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
232 store <4 x i32> %ext, <4 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
233 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
234 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
235
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
236 ; FUNC-LABEL: {{^}}local_sextload_v4i16_to_v4i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
237 ; GCN-NOT: s_wqm_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
238 ; GCN: s_mov_b32 m0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
239 ; GCN: ds_read_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
240
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
241 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
242 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
243 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
244 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
245 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
246 ; EG-DAG: BFE_INT
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
247 define amdgpu_kernel void @local_sextload_v4i16_to_v4i32(<4 x i32> addrspace(3)* %out, <4 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
248 %load = load <4 x i16>, <4 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
249 %ext = sext <4 x i16> %load to <4 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
250 store <4 x i32> %ext, <4 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
251 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
252 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
253
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
254 ; FUNC-LABEL: {{^}}local_zextload_v8i16_to_v8i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
255 ; GCN: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
256
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
257 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
258 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
259 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
260 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
261 define amdgpu_kernel void @local_zextload_v8i16_to_v8i32(<8 x i32> addrspace(3)* %out, <8 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
262 %load = load <8 x i16>, <8 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
263 %ext = zext <8 x i16> %load to <8 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
264 store <8 x i32> %ext, <8 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
265 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
266 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
267
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
268 ; FUNC-LABEL: {{^}}local_sextload_v8i16_to_v8i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
269 ; GCN: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
270
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
271 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
272 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
273 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
274 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
275 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
276 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
277 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
278 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
279 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
280 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
281 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
282 ; EG-DAG: BFE_INT
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
283 define amdgpu_kernel void @local_sextload_v8i16_to_v8i32(<8 x i32> addrspace(3)* %out, <8 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
284 %load = load <8 x i16>, <8 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
285 %ext = sext <8 x i16> %load to <8 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
286 store <8 x i32> %ext, <8 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
287 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
288 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
289
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
290 ; FUNC-LABEL: {{^}}local_zextload_v16i16_to_v16i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
291 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
292 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:2 offset1:3{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
293
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
294 ; GCN: ds_write2_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
295 ; GCN: ds_write2_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
296 ; GCN: ds_write2_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
297 ; GCN: ds_write2_b64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
298
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
299 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
300 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
301 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
302 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
303 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
304 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
305 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
306 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
307 define amdgpu_kernel void @local_zextload_v16i16_to_v16i32(<16 x i32> addrspace(3)* %out, <16 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
308 %load = load <16 x i16>, <16 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
309 %ext = zext <16 x i16> %load to <16 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
310 store <16 x i32> %ext, <16 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
311 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
312 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
313
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
314 ; FUNC-LABEL: {{^}}local_sextload_v16i16_to_v16i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
315
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
316 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
317 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:2 offset1:3{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
318
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
319 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
320 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
321 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
322 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
323 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
324 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
325 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
326 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
327 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
328 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
329 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
330 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
331 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
332 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
333 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
334 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
335 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
336 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
337 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
338 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
339 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
340 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
341 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
342 ; EG-DAG: BFE_INT
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
343 define amdgpu_kernel void @local_sextload_v16i16_to_v16i32(<16 x i32> addrspace(3)* %out, <16 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
344 %load = load <16 x i16>, <16 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
345 %ext = sext <16 x i16> %load to <16 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
346 store <16 x i32> %ext, <16 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
347 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
348 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
349
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
350 ; FUNC-LABEL: {{^}}local_zextload_v32i16_to_v32i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
351 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
352 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:2 offset1:3
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
353 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:4 offset1:5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
354 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:6 offset1:7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
355
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
356 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
357 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
358 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
359 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
360 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
361 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
362 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
363 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
364 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
365 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
366 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
367 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
368 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
369 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
370 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
371 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
372 define amdgpu_kernel void @local_zextload_v32i16_to_v32i32(<32 x i32> addrspace(3)* %out, <32 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
373 %load = load <32 x i16>, <32 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
374 %ext = zext <32 x i16> %load to <32 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
375 store <32 x i32> %ext, <32 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
376 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
377 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
378
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
379 ; FUNC-LABEL: {{^}}local_sextload_v32i16_to_v32i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
380 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:2 offset1:3{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
381 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:4 offset1:5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
382 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
383 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:6 offset1:7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
384 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:14 offset1:15
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
385 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:12 offset1:13
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
386 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:10 offset1:11
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
387 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:8 offset1:9
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
388 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:6 offset1:7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
389 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:4 offset1:5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
390 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:2 offset1:3
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
391 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset1:1
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
392
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
393 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
394 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
395 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
396 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
397 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
398 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
399 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
400 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
401 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
402 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
403 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
404 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
405 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
406 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
407 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
408 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
409 define amdgpu_kernel void @local_sextload_v32i16_to_v32i32(<32 x i32> addrspace(3)* %out, <32 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
410 %load = load <32 x i16>, <32 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
411 %ext = sext <32 x i16> %load to <32 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
412 store <32 x i32> %ext, <32 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
413 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
414 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
415
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
416 ; FUNC-LABEL: {{^}}local_zextload_v64i16_to_v64i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
417 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:14 offset1:15
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
418 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset1:1{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
419 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:2 offset1:3
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
420 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:4 offset1:5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
421 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:6 offset1:7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
422 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:8 offset1:9
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
423 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:12 offset1:13
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
424 ; GCN-DAG: ds_read2_b64 v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} offset0:10 offset1:11
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
425 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:30 offset1:31
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
426 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:28 offset1:29
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
427 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:26 offset1:27
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
428 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:24 offset1:25
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
429 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:22 offset1:23
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
430 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:20 offset1:21
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
431 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:18 offset1:19
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
432 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:16 offset1:17
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
433 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:14 offset1:15
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
434 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:12 offset1:13
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
435 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:10 offset1:11
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
436 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:8 offset1:9
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
437 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:6 offset1:7
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
438 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:4 offset1:5
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
439 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset0:2 offset1:3
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
440 ; GCN-DAG: ds_write2_b64 v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, v{{\[[0-9]+:[0-9]+\]}} offset1:1
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
441
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
442 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
443 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
444 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
445 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
446 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
447 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
448 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
449 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
450 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
451 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
452 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
453 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
454 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
455 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
456 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
457 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
458 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
459 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
460 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
461 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
462 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
463 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
464 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
465 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
466 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
467 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
468 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
469 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
470 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
471 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
472 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
473 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
474 define amdgpu_kernel void @local_zextload_v64i16_to_v64i32(<64 x i32> addrspace(3)* %out, <64 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
475 %load = load <64 x i16>, <64 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
476 %ext = zext <64 x i16> %load to <64 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
477 store <64 x i32> %ext, <64 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
478 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
479 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
480
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
481 ; FUNC-LABEL: {{^}}local_sextload_v64i16_to_v64i32:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
482
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
483 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
484 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
485 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
486 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
487 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
488 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
489 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
490 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
491 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
492 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
493 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
494 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
495 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
496 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
497 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
498 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
499 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
500 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
501 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
502 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
503 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
504 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
505 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
506 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
507 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
508 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
509 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
510 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
511 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
512 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
513 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
514 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
515 define amdgpu_kernel void @local_sextload_v64i16_to_v64i32(<64 x i32> addrspace(3)* %out, <64 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
516 %load = load <64 x i16>, <64 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
517 %ext = sext <64 x i16> %load to <64 x i32>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
518 store <64 x i32> %ext, <64 x i32> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
519 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
520 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
521
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
522 ; FUNC-LABEL: {{^}}local_zextload_i16_to_i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
523 ; GCN-DAG: ds_read_u16 v[[LO:[0-9]+]],
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
524 ; GCN-DAG: v_mov_b32_e32 v[[HI:[0-9]+]], 0{{$}}
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
525
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
526 ; GCN: ds_write_b64 v{{[0-9]+}}, v{{\[}}[[LO]]:[[HI]]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
527
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
528 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
529 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
530 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
531 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
532 ; EG-DAG: LDS_WRITE
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
533 define amdgpu_kernel void @local_zextload_i16_to_i64(i64 addrspace(3)* %out, i16 addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
534 %a = load i16, i16 addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
535 %ext = zext i16 %a to i64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
536 store i64 %ext, i64 addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
537 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
538 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
539
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
540 ; FUNC-LABEL: {{^}}local_sextload_i16_to_i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
541 ; FIXME: Need to optimize this sequence to avoid an extra shift.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
542 ; t25: i32,ch = load<LD2[%in(addrspace=3)], anyext from i16> t12, t10, undef:i32
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
543 ; t28: i64 = any_extend t25
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
544 ; t30: i64 = sign_extend_inreg t28, ValueType:ch:i16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
545 ; SI: ds_read_i16 v[[LO:[0-9]+]],
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
546 ; VI: ds_read_u16 v[[ULO:[0-9]+]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
547 ; VI: v_bfe_i32 v[[LO:[0-9]+]], v[[ULO]], 0, 16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
548 ; GCN-DAG: v_ashrrev_i32_e32 v[[HI:[0-9]+]], 31, v[[LO]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
549
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
550 ; GCN: ds_write_b64 v{{[0-9]+}}, v{{\[}}[[LO]]:[[HI]]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
551
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
552 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
553 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
554 ; EG-DAG: MOV {{[* ]*}}[[TMP:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
555 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
556 ; EG-DAG: BFE_INT {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], {{.*}}, 0.0, literal
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
557 ; EG-DAG: LDS_WRITE
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
558 ; EG-DAG: 16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
559 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
560 define amdgpu_kernel void @local_sextload_i16_to_i64(i64 addrspace(3)* %out, i16 addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
561 %a = load i16, i16 addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
562 %ext = sext i16 %a to i64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
563 store i64 %ext, i64 addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
564 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
565 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
566
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
567 ; FUNC-LABEL: {{^}}local_zextload_v1i16_to_v1i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
568
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
569 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
570 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
571 ; EG-DAG: MOV {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
572 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
573 ; EG-DAG: LDS_WRITE
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
574 define amdgpu_kernel void @local_zextload_v1i16_to_v1i64(<1 x i64> addrspace(3)* %out, <1 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
575 %load = load <1 x i16>, <1 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
576 %ext = zext <1 x i16> %load to <1 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
577 store <1 x i64> %ext, <1 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
578 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
579 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
580
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
581 ; FUNC-LABEL: {{^}}local_sextload_v1i16_to_v1i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
582
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
583 ; EG: MOV {{[* ]*}}[[FROM:T[0-9]+\.[XYZW]]], KC0[2].Z
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
584 ; EG: LDS_USHORT_READ_RET {{.*}} [[FROM]]
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
585 ; EG-DAG: MOV {{[* ]*}}[[TMP:T[0-9]+\.[XYZW]]], OQAP
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
586 ; EG-DAG: MOV {{[* ]*}}[[TO:T[0-9]+\.[XYZW]]], KC0[2].Y
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
587 ; EG-DAG: BFE_INT {{[* ]*}}[[DATA:T[0-9]+\.[XYZW]]], {{.*}}, 0.0, literal
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
588 ; EG-DAG: LDS_WRITE
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
589 ; EG-DAG: 16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
590 ; EG: LDS_WRITE {{\*?}} [[TO]], [[DATA]]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
591 define amdgpu_kernel void @local_sextload_v1i16_to_v1i64(<1 x i64> addrspace(3)* %out, <1 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
592 %load = load <1 x i16>, <1 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
593 %ext = sext <1 x i16> %load to <1 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
594 store <1 x i64> %ext, <1 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
595 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
596 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
597
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
598 ; FUNC-LABEL: {{^}}local_zextload_v2i16_to_v2i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
599
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
600 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
601 define amdgpu_kernel void @local_zextload_v2i16_to_v2i64(<2 x i64> addrspace(3)* %out, <2 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
602 %load = load <2 x i16>, <2 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
603 %ext = zext <2 x i16> %load to <2 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
604 store <2 x i64> %ext, <2 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
605 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
606 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
607
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
608 ; FUNC-LABEL: {{^}}local_sextload_v2i16_to_v2i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
609
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
610 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
611 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
612 ; EG-DAG: ASHR
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
613 define amdgpu_kernel void @local_sextload_v2i16_to_v2i64(<2 x i64> addrspace(3)* %out, <2 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
614 %load = load <2 x i16>, <2 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
615 %ext = sext <2 x i16> %load to <2 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
616 store <2 x i64> %ext, <2 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
617 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
618 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
619
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
620 ; FUNC-LABEL: {{^}}local_zextload_v4i16_to_v4i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
621
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
622 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
623 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
624 define amdgpu_kernel void @local_zextload_v4i16_to_v4i64(<4 x i64> addrspace(3)* %out, <4 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
625 %load = load <4 x i16>, <4 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
626 %ext = zext <4 x i16> %load to <4 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
627 store <4 x i64> %ext, <4 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
628 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
629 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
630
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
631 ; FUNC-LABEL: {{^}}local_sextload_v4i16_to_v4i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
632
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
633 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
634 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
635 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
636 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
637 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
638 ; EG-DAG: ASHR
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
639 define amdgpu_kernel void @local_sextload_v4i16_to_v4i64(<4 x i64> addrspace(3)* %out, <4 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
640 %load = load <4 x i16>, <4 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
641 %ext = sext <4 x i16> %load to <4 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
642 store <4 x i64> %ext, <4 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
643 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
644 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
645
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
646 ; FUNC-LABEL: {{^}}local_zextload_v8i16_to_v8i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
647
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
648 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
649 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
650 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
651 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
652 define amdgpu_kernel void @local_zextload_v8i16_to_v8i64(<8 x i64> addrspace(3)* %out, <8 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
653 %load = load <8 x i16>, <8 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
654 %ext = zext <8 x i16> %load to <8 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
655 store <8 x i64> %ext, <8 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
656 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
657 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
658
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
659 ; FUNC-LABEL: {{^}}local_sextload_v8i16_to_v8i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
660
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
661 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
662 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
663 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
664 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
665 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
666 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
667 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
668 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
669 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
670 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
671 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
672 ; EG-DAG: ASHR
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
673 define amdgpu_kernel void @local_sextload_v8i16_to_v8i64(<8 x i64> addrspace(3)* %out, <8 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
674 %load = load <8 x i16>, <8 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
675 %ext = sext <8 x i16> %load to <8 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
676 store <8 x i64> %ext, <8 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
677 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
678 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
679
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
680 ; FUNC-LABEL: {{^}}local_zextload_v16i16_to_v16i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
681
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
682 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
683 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
684 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
685 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
686 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
687 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
688 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
689 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
690 define amdgpu_kernel void @local_zextload_v16i16_to_v16i64(<16 x i64> addrspace(3)* %out, <16 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
691 %load = load <16 x i16>, <16 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
692 %ext = zext <16 x i16> %load to <16 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
693 store <16 x i64> %ext, <16 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
694 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
695 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
696
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
697 ; FUNC-LABEL: {{^}}local_sextload_v16i16_to_v16i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
698
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
699 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
700 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
701 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
702 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
703 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
704 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
705 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
706 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
707 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
708 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
709 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
710 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
711 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
712 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
713 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
714 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
715 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
716 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
717 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
718 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
719 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
720 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
721 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
722 ; EG-DAG: ASHR
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
723 define amdgpu_kernel void @local_sextload_v16i16_to_v16i64(<16 x i64> addrspace(3)* %out, <16 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
724 %load = load <16 x i16>, <16 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
725 %ext = sext <16 x i16> %load to <16 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
726 store <16 x i64> %ext, <16 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
727 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
728 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
729
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
730 ; FUNC-LABEL: {{^}}local_zextload_v32i16_to_v32i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
731
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
732 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
733 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
734 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
735 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
736 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
737 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
738 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
739 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
740 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
741 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
742 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
743 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
744 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
745 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
746 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
747 ; EG: LDS_READ_RET
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
748 define amdgpu_kernel void @local_zextload_v32i16_to_v32i64(<32 x i64> addrspace(3)* %out, <32 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
749 %load = load <32 x i16>, <32 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
750 %ext = zext <32 x i16> %load to <32 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
751 store <32 x i64> %ext, <32 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
752 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
753 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
754
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
755 ; FUNC-LABEL: {{^}}local_sextload_v32i16_to_v32i64:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
756
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
757 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
758 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
759 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
760 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
761 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
762 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
763 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
764 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
765 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
766 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
767 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
768 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
769 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
770 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
771 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
772 ; EG: LDS_READ_RET
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
773 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
774 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
775 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
776 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
777 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
778 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
779 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
780 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
781 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
782 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
783 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
784 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
785 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
786 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
787 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
788 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
789 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
790 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
791 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
792 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
793 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
794 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
795 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
796 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
797 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
798 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
799 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
800 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
801 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
802 ; EG-DAG: BFE_INT
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
803 ; EG-DAG: ASHR
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
804 ; EG-DAG: ASHR
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
805 define amdgpu_kernel void @local_sextload_v32i16_to_v32i64(<32 x i64> addrspace(3)* %out, <32 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
806 %load = load <32 x i16>, <32 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
807 %ext = sext <32 x i16> %load to <32 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
808 store <32 x i64> %ext, <32 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
809 ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
810 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
811
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
812 ; ; XFUNC-LABEL: {{^}}local_zextload_v64i16_to_v64i64:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
813 ; define amdgpu_kernel void @local_zextload_v64i16_to_v64i64(<64 x i64> addrspace(3)* %out, <64 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
814 ; %load = load <64 x i16>, <64 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
815 ; %ext = zext <64 x i16> %load to <64 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
816 ; store <64 x i64> %ext, <64 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
817 ; ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
818 ; }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
819
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
820 ; ; XFUNC-LABEL: {{^}}local_sextload_v64i16_to_v64i64:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
821 ; define amdgpu_kernel void @local_sextload_v64i16_to_v64i64(<64 x i64> addrspace(3)* %out, <64 x i16> addrspace(3)* %in) #0 {
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
822 ; %load = load <64 x i16>, <64 x i16> addrspace(3)* %in
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
823 ; %ext = sext <64 x i16> %load to <64 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
824 ; store <64 x i64> %ext, <64 x i64> addrspace(3)* %out
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
825 ; ret void
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
826 ; }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
827
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
828 attributes #0 = { nounwind }