annotate llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.a16.dim.ll @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1f2b6ac9f198
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
anatofuz
parents:
diff changeset
2 ; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9 %s
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
3 ; RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10PLUS,GFX10 %s
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
4 ; RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10PLUS,GFX11 %s
150
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 define amdgpu_ps <4 x float> @load_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
7 ; GFX9-LABEL: load_1d:
anatofuz
parents:
diff changeset
8 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
9 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
10 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
11 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
12 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
13 ; GFX10PLUS-LABEL: load_1d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
14 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
15 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
16 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
17 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
18 main_body:
anatofuz
parents:
diff changeset
19 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
20 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
21 ret <4 x float> %v
anatofuz
parents:
diff changeset
22 }
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 define amdgpu_ps <4 x float> @load_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
25 ; GFX9-LABEL: load_2d:
anatofuz
parents:
diff changeset
26 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
27 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
28 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
29 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
30 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
31 ; GFX10PLUS-LABEL: load_2d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
32 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
33 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
34 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
35 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
36 main_body:
anatofuz
parents:
diff changeset
37 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
38 %t = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
39 %v = call <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
40 ret <4 x float> %v
anatofuz
parents:
diff changeset
41 }
anatofuz
parents:
diff changeset
42
anatofuz
parents:
diff changeset
43 define amdgpu_ps <4 x float> @load_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
44 ; GFX9-LABEL: load_3d:
anatofuz
parents:
diff changeset
45 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
46 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
47 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
48 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
49 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
50 ; GFX10PLUS-LABEL: load_3d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
51 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
52 ; GFX10PLUS-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
53 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
54 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
55 main_body:
anatofuz
parents:
diff changeset
56 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
57 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
58 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
59 %v = call <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
60 ret <4 x float> %v
anatofuz
parents:
diff changeset
61 }
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 define amdgpu_ps <4 x float> @load_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
64 ; GFX9-LABEL: load_cube:
anatofuz
parents:
diff changeset
65 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
66 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
67 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
68 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
69 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
70 ; GFX10PLUS-LABEL: load_cube:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
71 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
72 ; GFX10PLUS-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
73 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
74 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
75 main_body:
anatofuz
parents:
diff changeset
76 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
77 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
78 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
79 %v = call <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
80 ret <4 x float> %v
anatofuz
parents:
diff changeset
81 }
anatofuz
parents:
diff changeset
82
anatofuz
parents:
diff changeset
83 define amdgpu_ps <4 x float> @load_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
84 ; GFX9-LABEL: load_1darray:
anatofuz
parents:
diff changeset
85 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
86 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
87 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
88 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
89 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
90 ; GFX10PLUS-LABEL: load_1darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
91 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
92 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
93 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
94 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
95 main_body:
anatofuz
parents:
diff changeset
96 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
97 %slice = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
98 %v = call <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
99 ret <4 x float> %v
anatofuz
parents:
diff changeset
100 }
anatofuz
parents:
diff changeset
101
anatofuz
parents:
diff changeset
102 define amdgpu_ps <4 x float> @load_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
103 ; GFX9-LABEL: load_2darray:
anatofuz
parents:
diff changeset
104 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
105 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
106 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
107 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
108 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
109 ; GFX10PLUS-LABEL: load_2darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
110 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
111 ; GFX10PLUS-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
112 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
113 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
114 main_body:
anatofuz
parents:
diff changeset
115 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
116 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
117 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
118 %v = call <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
119 ret <4 x float> %v
anatofuz
parents:
diff changeset
120 }
anatofuz
parents:
diff changeset
121
anatofuz
parents:
diff changeset
122 define amdgpu_ps <4 x float> @load_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
123 ; GFX9-LABEL: load_2dmsaa:
anatofuz
parents:
diff changeset
124 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
125 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
126 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
127 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
128 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
129 ; GFX10PLUS-LABEL: load_2dmsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
130 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
131 ; GFX10PLUS-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
132 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
133 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
134 main_body:
anatofuz
parents:
diff changeset
135 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
136 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
137 %fragid = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
138 %v = call <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
139 ret <4 x float> %v
anatofuz
parents:
diff changeset
140 }
anatofuz
parents:
diff changeset
141
anatofuz
parents:
diff changeset
142 define amdgpu_ps <4 x float> @load_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
143 ; GFX9-LABEL: load_2darraymsaa:
anatofuz
parents:
diff changeset
144 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
145 ; GFX9-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
146 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
147 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
148 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
149 ; GFX10PLUS-LABEL: load_2darraymsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
150 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
151 ; GFX10PLUS-NEXT: image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
152 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
153 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
154 main_body:
anatofuz
parents:
diff changeset
155 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
156 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
157 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
158 %fragid = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
159 %v = call <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
160 ret <4 x float> %v
anatofuz
parents:
diff changeset
161 }
anatofuz
parents:
diff changeset
162
anatofuz
parents:
diff changeset
163 define amdgpu_ps <4 x float> @load_mip_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
164 ; GFX9-LABEL: load_mip_1d:
anatofuz
parents:
diff changeset
165 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
166 ; GFX9-NEXT: image_load_mip v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
167 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
168 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
169 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
170 ; GFX10PLUS-LABEL: load_mip_1d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
171 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
172 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
173 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
174 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
175 main_body:
anatofuz
parents:
diff changeset
176 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
177 %mip = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
178 %v = call <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
179 ret <4 x float> %v
anatofuz
parents:
diff changeset
180 }
anatofuz
parents:
diff changeset
181
anatofuz
parents:
diff changeset
182 define amdgpu_ps <4 x float> @load_mip_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
183 ; GFX9-LABEL: load_mip_2d:
anatofuz
parents:
diff changeset
184 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
185 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
186 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
187 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
188 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
189 ; GFX10PLUS-LABEL: load_mip_2d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
190 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
191 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
192 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
193 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
194 main_body:
anatofuz
parents:
diff changeset
195 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
196 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
197 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
198 %v = call <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
199 ret <4 x float> %v
anatofuz
parents:
diff changeset
200 }
anatofuz
parents:
diff changeset
201
anatofuz
parents:
diff changeset
202 define amdgpu_ps <4 x float> @load_mip_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
203 ; GFX9-LABEL: load_mip_3d:
anatofuz
parents:
diff changeset
204 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
205 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
206 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
207 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
208 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
209 ; GFX10PLUS-LABEL: load_mip_3d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
210 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
211 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
212 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
213 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
214 main_body:
anatofuz
parents:
diff changeset
215 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
216 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
217 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
218 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
219 %v = call <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
220 ret <4 x float> %v
anatofuz
parents:
diff changeset
221 }
anatofuz
parents:
diff changeset
222
anatofuz
parents:
diff changeset
223 define amdgpu_ps <4 x float> @load_mip_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
224 ; GFX9-LABEL: load_mip_cube:
anatofuz
parents:
diff changeset
225 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
226 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
227 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
228 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
229 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
230 ; GFX10PLUS-LABEL: load_mip_cube:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
231 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
232 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
233 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
234 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
235 main_body:
anatofuz
parents:
diff changeset
236 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
237 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
238 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
239 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
240 %v = call <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
241 ret <4 x float> %v
anatofuz
parents:
diff changeset
242 }
anatofuz
parents:
diff changeset
243
anatofuz
parents:
diff changeset
244 define amdgpu_ps <4 x float> @load_mip_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
245 ; GFX9-LABEL: load_mip_1darray:
anatofuz
parents:
diff changeset
246 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
247 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
248 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
249 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
250 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
251 ; GFX10PLUS-LABEL: load_mip_1darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
252 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
253 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
254 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
255 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
256 main_body:
anatofuz
parents:
diff changeset
257 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
258 %slice = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
259 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
260 %v = call <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
261 ret <4 x float> %v
anatofuz
parents:
diff changeset
262 }
anatofuz
parents:
diff changeset
263
anatofuz
parents:
diff changeset
264 define amdgpu_ps <4 x float> @load_mip_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
265 ; GFX9-LABEL: load_mip_2darray:
anatofuz
parents:
diff changeset
266 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
267 ; GFX9-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
268 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
269 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
270 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
271 ; GFX10PLUS-LABEL: load_mip_2darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
272 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
273 ; GFX10PLUS-NEXT: image_load_mip v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
274 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
275 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
276 main_body:
anatofuz
parents:
diff changeset
277 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
278 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
279 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
280 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
281 %v = call <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
282 ret <4 x float> %v
anatofuz
parents:
diff changeset
283 }
anatofuz
parents:
diff changeset
284
anatofuz
parents:
diff changeset
285 define amdgpu_ps void @store_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
286 ; GFX9-LABEL: store_1d:
anatofuz
parents:
diff changeset
287 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
288 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
289 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
290 ;
anatofuz
parents:
diff changeset
291 ; GFX10-LABEL: store_1d:
anatofuz
parents:
diff changeset
292 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
293 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
294 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
295 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
296 ; GFX11-LABEL: store_1d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
297 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
298 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
299 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
300 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
301 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
302 main_body:
anatofuz
parents:
diff changeset
303 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
304 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
305 ret void
anatofuz
parents:
diff changeset
306 }
anatofuz
parents:
diff changeset
307
anatofuz
parents:
diff changeset
308 define amdgpu_ps void @store_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
309 ; GFX9-LABEL: store_2d:
anatofuz
parents:
diff changeset
310 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
311 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
312 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
313 ;
anatofuz
parents:
diff changeset
314 ; GFX10-LABEL: store_2d:
anatofuz
parents:
diff changeset
315 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
316 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
317 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
318 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
319 ; GFX11-LABEL: store_2d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
320 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
321 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
322 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
323 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
324 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
325 main_body:
anatofuz
parents:
diff changeset
326 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
327 %t = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
328 call void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
329 ret void
anatofuz
parents:
diff changeset
330 }
anatofuz
parents:
diff changeset
331
anatofuz
parents:
diff changeset
332 define amdgpu_ps void @store_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
333 ; GFX9-LABEL: store_3d:
anatofuz
parents:
diff changeset
334 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
335 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
336 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
337 ;
anatofuz
parents:
diff changeset
338 ; GFX10-LABEL: store_3d:
anatofuz
parents:
diff changeset
339 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
340 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
341 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
342 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
343 ; GFX11-LABEL: store_3d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
344 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
345 ; GFX11-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
346 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
347 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
348 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
349 main_body:
anatofuz
parents:
diff changeset
350 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
351 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
352 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
353 call void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
354 ret void
anatofuz
parents:
diff changeset
355 }
anatofuz
parents:
diff changeset
356
anatofuz
parents:
diff changeset
357 define amdgpu_ps void @store_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
358 ; GFX9-LABEL: store_cube:
anatofuz
parents:
diff changeset
359 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
360 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
361 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
362 ;
anatofuz
parents:
diff changeset
363 ; GFX10-LABEL: store_cube:
anatofuz
parents:
diff changeset
364 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
365 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
366 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
367 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
368 ; GFX11-LABEL: store_cube:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
369 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
370 ; GFX11-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
371 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
372 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
373 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
374 main_body:
anatofuz
parents:
diff changeset
375 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
376 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
377 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
378 call void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
379 ret void
anatofuz
parents:
diff changeset
380 }
anatofuz
parents:
diff changeset
381
anatofuz
parents:
diff changeset
382 define amdgpu_ps void @store_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
383 ; GFX9-LABEL: store_1darray:
anatofuz
parents:
diff changeset
384 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
385 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
386 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
387 ;
anatofuz
parents:
diff changeset
388 ; GFX10-LABEL: store_1darray:
anatofuz
parents:
diff changeset
389 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
390 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
391 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
392 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
393 ; GFX11-LABEL: store_1darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
394 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
395 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
396 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
397 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
398 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
399 main_body:
anatofuz
parents:
diff changeset
400 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
401 %slice = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
402 call void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
403 ret void
anatofuz
parents:
diff changeset
404 }
anatofuz
parents:
diff changeset
405
anatofuz
parents:
diff changeset
406 define amdgpu_ps void @store_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
407 ; GFX9-LABEL: store_2darray:
anatofuz
parents:
diff changeset
408 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
409 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
410 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
411 ;
anatofuz
parents:
diff changeset
412 ; GFX10-LABEL: store_2darray:
anatofuz
parents:
diff changeset
413 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
414 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
415 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
416 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
417 ; GFX11-LABEL: store_2darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
418 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
419 ; GFX11-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
420 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
421 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
422 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
423 main_body:
anatofuz
parents:
diff changeset
424 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
425 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
426 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
427 call void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
428 ret void
anatofuz
parents:
diff changeset
429 }
anatofuz
parents:
diff changeset
430
anatofuz
parents:
diff changeset
431 define amdgpu_ps void @store_2dmsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
432 ; GFX9-LABEL: store_2dmsaa:
anatofuz
parents:
diff changeset
433 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
434 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
435 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
436 ;
anatofuz
parents:
diff changeset
437 ; GFX10-LABEL: store_2dmsaa:
anatofuz
parents:
diff changeset
438 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
439 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
anatofuz
parents:
diff changeset
440 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
441 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
442 ; GFX11-LABEL: store_2dmsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
443 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
444 ; GFX11-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
445 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
446 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
447 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
448 main_body:
anatofuz
parents:
diff changeset
449 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
450 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
451 %fragid = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
452 call void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
453 ret void
anatofuz
parents:
diff changeset
454 }
anatofuz
parents:
diff changeset
455
anatofuz
parents:
diff changeset
456 define amdgpu_ps void @store_2darraymsaa(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
457 ; GFX9-LABEL: store_2darraymsaa:
anatofuz
parents:
diff changeset
458 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
459 ; GFX9-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
460 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
461 ;
anatofuz
parents:
diff changeset
462 ; GFX10-LABEL: store_2darraymsaa:
anatofuz
parents:
diff changeset
463 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
464 ; GFX10-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
anatofuz
parents:
diff changeset
465 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
466 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
467 ; GFX11-LABEL: store_2darraymsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
468 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
469 ; GFX11-NEXT: image_store v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
470 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
471 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
472 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
473 main_body:
anatofuz
parents:
diff changeset
474 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
475 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
476 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
477 %fragid = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
478 call void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %fragid, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
479 ret void
anatofuz
parents:
diff changeset
480 }
anatofuz
parents:
diff changeset
481
anatofuz
parents:
diff changeset
482 define amdgpu_ps void @store_mip_1d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
483 ; GFX9-LABEL: store_mip_1d:
anatofuz
parents:
diff changeset
484 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
485 ; GFX9-NEXT: image_store_mip v[0:3], v4, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
486 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
487 ;
anatofuz
parents:
diff changeset
488 ; GFX10-LABEL: store_mip_1d:
anatofuz
parents:
diff changeset
489 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
490 ; GFX10-NEXT: image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
491 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
492 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
493 ; GFX11-LABEL: store_mip_1d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
494 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
495 ; GFX11-NEXT: image_store_mip v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
496 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
497 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
498 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
499 main_body:
anatofuz
parents:
diff changeset
500 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
501 %mip = extractelement <2 x i16> %coords, i32 1
anatofuz
parents:
diff changeset
502 call void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
503 ret void
anatofuz
parents:
diff changeset
504 }
anatofuz
parents:
diff changeset
505
anatofuz
parents:
diff changeset
506 define amdgpu_ps void @store_mip_2d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
507 ; GFX9-LABEL: store_mip_2d:
anatofuz
parents:
diff changeset
508 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
509 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
510 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
511 ;
anatofuz
parents:
diff changeset
512 ; GFX10-LABEL: store_mip_2d:
anatofuz
parents:
diff changeset
513 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
514 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
anatofuz
parents:
diff changeset
515 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
516 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
517 ; GFX11-LABEL: store_mip_2d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
518 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
519 ; GFX11-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
520 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
521 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
522 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
523 main_body:
anatofuz
parents:
diff changeset
524 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
525 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
526 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
527 call void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
528 ret void
anatofuz
parents:
diff changeset
529 }
anatofuz
parents:
diff changeset
530
anatofuz
parents:
diff changeset
531 define amdgpu_ps void @store_mip_3d(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
532 ; GFX9-LABEL: store_mip_3d:
anatofuz
parents:
diff changeset
533 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
534 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
535 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
536 ;
anatofuz
parents:
diff changeset
537 ; GFX10-LABEL: store_mip_3d:
anatofuz
parents:
diff changeset
538 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
539 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
anatofuz
parents:
diff changeset
540 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
541 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
542 ; GFX11-LABEL: store_mip_3d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
543 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
544 ; GFX11-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
545 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
546 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
547 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
548 main_body:
anatofuz
parents:
diff changeset
549 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
550 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
551 %r = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
552 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
553 call void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %r, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
554 ret void
anatofuz
parents:
diff changeset
555 }
anatofuz
parents:
diff changeset
556
anatofuz
parents:
diff changeset
557 define amdgpu_ps void @store_mip_cube(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
558 ; GFX9-LABEL: store_mip_cube:
anatofuz
parents:
diff changeset
559 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
560 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
561 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
562 ;
anatofuz
parents:
diff changeset
563 ; GFX10-LABEL: store_mip_cube:
anatofuz
parents:
diff changeset
564 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
565 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
anatofuz
parents:
diff changeset
566 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
567 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
568 ; GFX11-LABEL: store_mip_cube:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
569 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
570 ; GFX11-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
571 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
572 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
573 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
574 main_body:
anatofuz
parents:
diff changeset
575 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
576 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
577 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
578 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
579 call void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
580 ret void
anatofuz
parents:
diff changeset
581 }
anatofuz
parents:
diff changeset
582
anatofuz
parents:
diff changeset
583 define amdgpu_ps void @store_mip_1darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
584 ; GFX9-LABEL: store_mip_1darray:
anatofuz
parents:
diff changeset
585 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
586 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
587 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
588 ;
anatofuz
parents:
diff changeset
589 ; GFX10-LABEL: store_mip_1darray:
anatofuz
parents:
diff changeset
590 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
591 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
anatofuz
parents:
diff changeset
592 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
593 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
594 ; GFX11-LABEL: store_mip_1darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
595 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
596 ; GFX11-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
597 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
598 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
599 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
600 main_body:
anatofuz
parents:
diff changeset
601 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
602 %slice = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
603 %mip = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
604 call void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
605 ret void
anatofuz
parents:
diff changeset
606 }
anatofuz
parents:
diff changeset
607
anatofuz
parents:
diff changeset
608 define amdgpu_ps void @store_mip_2darray(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords_lo, <2 x i16> %coords_hi) {
anatofuz
parents:
diff changeset
609 ; GFX9-LABEL: store_mip_2darray:
anatofuz
parents:
diff changeset
610 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
611 ; GFX9-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
612 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
613 ;
anatofuz
parents:
diff changeset
614 ; GFX10-LABEL: store_mip_2darray:
anatofuz
parents:
diff changeset
615 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
616 ; GFX10-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
anatofuz
parents:
diff changeset
617 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
618 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
619 ; GFX11-LABEL: store_mip_2darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
620 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
621 ; GFX11-NEXT: image_store_mip v[0:3], v[4:5], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
622 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
623 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
624 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
625 main_body:
anatofuz
parents:
diff changeset
626 %s = extractelement <2 x i16> %coords_lo, i32 0
anatofuz
parents:
diff changeset
627 %t = extractelement <2 x i16> %coords_lo, i32 1
anatofuz
parents:
diff changeset
628 %slice = extractelement <2 x i16> %coords_hi, i32 0
anatofuz
parents:
diff changeset
629 %mip = extractelement <2 x i16> %coords_hi, i32 1
anatofuz
parents:
diff changeset
630 call void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, i16 %t, i16 %slice, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
631 ret void
anatofuz
parents:
diff changeset
632 }
anatofuz
parents:
diff changeset
633
anatofuz
parents:
diff changeset
634 define amdgpu_ps <4 x float> @getresinfo_1d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
635 ; GFX9-LABEL: getresinfo_1d:
anatofuz
parents:
diff changeset
636 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
637 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
638 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
639 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
640 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
641 ; GFX10PLUS-LABEL: getresinfo_1d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
642 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
643 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
644 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
645 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
646 main_body:
anatofuz
parents:
diff changeset
647 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
648 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
649 ret <4 x float> %v
anatofuz
parents:
diff changeset
650 }
anatofuz
parents:
diff changeset
651
anatofuz
parents:
diff changeset
652 define amdgpu_ps <4 x float> @getresinfo_2d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
653 ; GFX9-LABEL: getresinfo_2d:
anatofuz
parents:
diff changeset
654 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
655 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
656 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
657 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
658 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
659 ; GFX10PLUS-LABEL: getresinfo_2d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
660 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
661 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
662 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
663 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
664 main_body:
anatofuz
parents:
diff changeset
665 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
666 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
667 ret <4 x float> %v
anatofuz
parents:
diff changeset
668 }
anatofuz
parents:
diff changeset
669
anatofuz
parents:
diff changeset
670 define amdgpu_ps <4 x float> @getresinfo_3d(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
671 ; GFX9-LABEL: getresinfo_3d:
anatofuz
parents:
diff changeset
672 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
673 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
674 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
675 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
676 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
677 ; GFX10PLUS-LABEL: getresinfo_3d:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
678 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
679 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
680 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
681 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
682 main_body:
anatofuz
parents:
diff changeset
683 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
684 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
685 ret <4 x float> %v
anatofuz
parents:
diff changeset
686 }
anatofuz
parents:
diff changeset
687
anatofuz
parents:
diff changeset
688 define amdgpu_ps <4 x float> @getresinfo_cube(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
689 ; GFX9-LABEL: getresinfo_cube:
anatofuz
parents:
diff changeset
690 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
691 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
692 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
693 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
694 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
695 ; GFX10PLUS-LABEL: getresinfo_cube:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
696 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
697 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_CUBE unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
698 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
699 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
700 main_body:
anatofuz
parents:
diff changeset
701 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
702 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
703 ret <4 x float> %v
anatofuz
parents:
diff changeset
704 }
anatofuz
parents:
diff changeset
705
anatofuz
parents:
diff changeset
706 define amdgpu_ps <4 x float> @getresinfo_1darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
707 ; GFX9-LABEL: getresinfo_1darray:
anatofuz
parents:
diff changeset
708 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
709 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
710 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
711 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
712 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
713 ; GFX10PLUS-LABEL: getresinfo_1darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
714 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
715 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
716 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
717 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
718 main_body:
anatofuz
parents:
diff changeset
719 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
720 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
721 ret <4 x float> %v
anatofuz
parents:
diff changeset
722 }
anatofuz
parents:
diff changeset
723
anatofuz
parents:
diff changeset
724 define amdgpu_ps <4 x float> @getresinfo_2darray(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
725 ; GFX9-LABEL: getresinfo_2darray:
anatofuz
parents:
diff changeset
726 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
727 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
728 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
729 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
730 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
731 ; GFX10PLUS-LABEL: getresinfo_2darray:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
732 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
733 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
734 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
735 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
736 main_body:
anatofuz
parents:
diff changeset
737 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
738 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
739 ret <4 x float> %v
anatofuz
parents:
diff changeset
740 }
anatofuz
parents:
diff changeset
741
anatofuz
parents:
diff changeset
742 define amdgpu_ps <4 x float> @getresinfo_2dmsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
743 ; GFX9-LABEL: getresinfo_2dmsaa:
anatofuz
parents:
diff changeset
744 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
745 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16
anatofuz
parents:
diff changeset
746 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
747 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
748 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
749 ; GFX10PLUS-LABEL: getresinfo_2dmsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
750 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
751 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
752 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
753 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
754 main_body:
anatofuz
parents:
diff changeset
755 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
756 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
757 ret <4 x float> %v
anatofuz
parents:
diff changeset
758 }
anatofuz
parents:
diff changeset
759
anatofuz
parents:
diff changeset
760 define amdgpu_ps <4 x float> @getresinfo_2darraymsaa(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
761 ; GFX9-LABEL: getresinfo_2darraymsaa:
anatofuz
parents:
diff changeset
762 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
763 ; GFX9-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf unorm a16 da
anatofuz
parents:
diff changeset
764 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
765 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
766 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
767 ; GFX10PLUS-LABEL: getresinfo_2darraymsaa:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
768 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
769 ; GFX10PLUS-NEXT: image_get_resinfo v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
770 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
771 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
772 main_body:
anatofuz
parents:
diff changeset
773 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
774 %v = call <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32 15, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
775 ret <4 x float> %v
anatofuz
parents:
diff changeset
776 }
anatofuz
parents:
diff changeset
777
anatofuz
parents:
diff changeset
778 define amdgpu_ps float @load_1d_V1(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
779 ; GFX9-LABEL: load_1d_V1:
anatofuz
parents:
diff changeset
780 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
781 ; GFX9-NEXT: image_load v0, v0, s[0:7] dmask:0x8 unorm a16
anatofuz
parents:
diff changeset
782 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
783 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
784 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
785 ; GFX10PLUS-LABEL: load_1d_V1:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
786 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
787 ; GFX10PLUS-NEXT: image_load v0, v0, s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
788 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
789 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
790 main_body:
anatofuz
parents:
diff changeset
791 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
792 %v = call float @llvm.amdgcn.image.load.1d.f32.i16(i32 8, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
793 ret float %v
anatofuz
parents:
diff changeset
794 }
anatofuz
parents:
diff changeset
795
anatofuz
parents:
diff changeset
796 define amdgpu_ps <2 x float> @load_1d_V2(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
797 ; GFX9-LABEL: load_1d_V2:
anatofuz
parents:
diff changeset
798 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
799 ; GFX9-NEXT: image_load v[0:1], v0, s[0:7] dmask:0x9 unorm a16
anatofuz
parents:
diff changeset
800 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
801 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
802 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
803 ; GFX10PLUS-LABEL: load_1d_V2:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
804 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
805 ; GFX10PLUS-NEXT: image_load v[0:1], v0, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D unorm a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
806 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
807 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
808 main_body:
anatofuz
parents:
diff changeset
809 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
810 %v = call <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32 9, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
811 ret <2 x float> %v
anatofuz
parents:
diff changeset
812 }
anatofuz
parents:
diff changeset
813
anatofuz
parents:
diff changeset
814 define amdgpu_ps void @store_1d_V1(<8 x i32> inreg %rsrc, float %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
815 ; GFX9-LABEL: store_1d_V1:
anatofuz
parents:
diff changeset
816 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
817 ; GFX9-NEXT: image_store v0, v1, s[0:7] dmask:0x2 unorm a16
anatofuz
parents:
diff changeset
818 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
819 ;
anatofuz
parents:
diff changeset
820 ; GFX10-LABEL: store_1d_V1:
anatofuz
parents:
diff changeset
821 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
822 ; GFX10-NEXT: image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
823 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
824 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
825 ; GFX11-LABEL: store_1d_V1:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
826 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
827 ; GFX11-NEXT: image_store v0, v1, s[0:7] dmask:0x2 dim:SQ_RSRC_IMG_1D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
828 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
829 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
830 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
831 main_body:
anatofuz
parents:
diff changeset
832 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
833 call void @llvm.amdgcn.image.store.1d.f32.i16(float %vdata, i32 2, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
834 ret void
anatofuz
parents:
diff changeset
835 }
anatofuz
parents:
diff changeset
836
anatofuz
parents:
diff changeset
837 define amdgpu_ps void @store_1d_V2(<8 x i32> inreg %rsrc, <2 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
838 ; GFX9-LABEL: store_1d_V2:
anatofuz
parents:
diff changeset
839 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
840 ; GFX9-NEXT: image_store v[0:1], v2, s[0:7] dmask:0xc unorm a16
anatofuz
parents:
diff changeset
841 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
842 ;
anatofuz
parents:
diff changeset
843 ; GFX10-LABEL: store_1d_V2:
anatofuz
parents:
diff changeset
844 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
845 ; GFX10-NEXT: image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D unorm a16
anatofuz
parents:
diff changeset
846 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
847 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
848 ; GFX11-LABEL: store_1d_V2:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
849 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
850 ; GFX11-NEXT: image_store v[0:1], v2, s[0:7] dmask:0xc dim:SQ_RSRC_IMG_1D unorm a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
851 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
852 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
853 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
854 main_body:
anatofuz
parents:
diff changeset
855 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
856 call void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float> %vdata, i32 12, i16 %s, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
857 ret void
anatofuz
parents:
diff changeset
858 }
anatofuz
parents:
diff changeset
859
anatofuz
parents:
diff changeset
860 define amdgpu_ps <4 x float> @load_1d_glc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
861 ; GFX9-LABEL: load_1d_glc:
anatofuz
parents:
diff changeset
862 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
863 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc a16
anatofuz
parents:
diff changeset
864 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
865 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
866 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
867 ; GFX10PLUS-LABEL: load_1d_glc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
868 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
869 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
870 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
871 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
872 main_body:
anatofuz
parents:
diff changeset
873 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
874 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)
anatofuz
parents:
diff changeset
875 ret <4 x float> %v
anatofuz
parents:
diff changeset
876 }
anatofuz
parents:
diff changeset
877
anatofuz
parents:
diff changeset
878 define amdgpu_ps <4 x float> @load_1d_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
879 ; GFX9-LABEL: load_1d_slc:
anatofuz
parents:
diff changeset
880 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
881 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm slc a16
anatofuz
parents:
diff changeset
882 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
883 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
884 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
885 ; GFX10PLUS-LABEL: load_1d_slc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
886 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
887 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
888 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
889 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
890 main_body:
anatofuz
parents:
diff changeset
891 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
892 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)
anatofuz
parents:
diff changeset
893 ret <4 x float> %v
anatofuz
parents:
diff changeset
894 }
anatofuz
parents:
diff changeset
895
anatofuz
parents:
diff changeset
896 define amdgpu_ps <4 x float> @load_1d_glc_slc(<8 x i32> inreg %rsrc, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
897 ; GFX9-LABEL: load_1d_glc_slc:
anatofuz
parents:
diff changeset
898 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
899 ; GFX9-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf unorm glc slc a16
anatofuz
parents:
diff changeset
900 ; GFX9-NEXT: s_waitcnt vmcnt(0)
anatofuz
parents:
diff changeset
901 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
902 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
903 ; GFX10PLUS-LABEL: load_1d_glc_slc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
904 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
905 ; GFX10PLUS-NEXT: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
906 ; GFX10PLUS-NEXT: s_waitcnt vmcnt(0)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
907 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
908 main_body:
anatofuz
parents:
diff changeset
909 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
910 %v = call <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)
anatofuz
parents:
diff changeset
911 ret <4 x float> %v
anatofuz
parents:
diff changeset
912 }
anatofuz
parents:
diff changeset
913
anatofuz
parents:
diff changeset
914 define amdgpu_ps void @store_1d_glc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
915 ; GFX9-LABEL: store_1d_glc:
anatofuz
parents:
diff changeset
916 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
917 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc a16
anatofuz
parents:
diff changeset
918 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
919 ;
anatofuz
parents:
diff changeset
920 ; GFX10-LABEL: store_1d_glc:
anatofuz
parents:
diff changeset
921 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
922 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16
anatofuz
parents:
diff changeset
923 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
924 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
925 ; GFX11-LABEL: store_1d_glc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
926 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
927 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
928 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
929 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
930 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
931 main_body:
anatofuz
parents:
diff changeset
932 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
933 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 1)
anatofuz
parents:
diff changeset
934 ret void
anatofuz
parents:
diff changeset
935 }
anatofuz
parents:
diff changeset
936
anatofuz
parents:
diff changeset
937 define amdgpu_ps void @store_1d_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
938 ; GFX9-LABEL: store_1d_slc:
anatofuz
parents:
diff changeset
939 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
940 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm slc a16
anatofuz
parents:
diff changeset
941 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
942 ;
anatofuz
parents:
diff changeset
943 ; GFX10-LABEL: store_1d_slc:
anatofuz
parents:
diff changeset
944 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
945 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16
anatofuz
parents:
diff changeset
946 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
947 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
948 ; GFX11-LABEL: store_1d_slc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
949 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
950 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm slc a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
951 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
952 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
953 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
954 main_body:
anatofuz
parents:
diff changeset
955 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
956 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 2)
anatofuz
parents:
diff changeset
957 ret void
anatofuz
parents:
diff changeset
958 }
anatofuz
parents:
diff changeset
959
anatofuz
parents:
diff changeset
960 define amdgpu_ps void @store_1d_glc_slc(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) {
anatofuz
parents:
diff changeset
961 ; GFX9-LABEL: store_1d_glc_slc:
anatofuz
parents:
diff changeset
962 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
963 ; GFX9-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf unorm glc slc a16
anatofuz
parents:
diff changeset
964 ; GFX9-NEXT: s_endpgm
anatofuz
parents:
diff changeset
965 ;
anatofuz
parents:
diff changeset
966 ; GFX10-LABEL: store_1d_glc_slc:
anatofuz
parents:
diff changeset
967 ; GFX10: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
968 ; GFX10-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16
anatofuz
parents:
diff changeset
969 ; GFX10-NEXT: s_endpgm
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
970 ;
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
971 ; GFX11-LABEL: store_1d_glc_slc:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
972 ; GFX11: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
973 ; GFX11-NEXT: image_store v[0:3], v4, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D unorm glc slc a16
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
974 ; GFX11-NEXT: s_nop 0
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
975 ; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
976 ; GFX11-NEXT: s_endpgm
150
anatofuz
parents:
diff changeset
977 main_body:
anatofuz
parents:
diff changeset
978 %s = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
979 call void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float> %vdata, i32 15, i16 %s, <8 x i32> %rsrc, i32 0, i32 3)
anatofuz
parents:
diff changeset
980 ret void
anatofuz
parents:
diff changeset
981 }
anatofuz
parents:
diff changeset
982
anatofuz
parents:
diff changeset
983 define amdgpu_ps <4 x float> @getresinfo_dmask0(<8 x i32> inreg %rsrc, <4 x float> %vdata, <2 x i16> %coords) #0 {
anatofuz
parents:
diff changeset
984 ; GFX9-LABEL: getresinfo_dmask0:
anatofuz
parents:
diff changeset
985 ; GFX9: ; %bb.0: ; %main_body
anatofuz
parents:
diff changeset
986 ; GFX9-NEXT: ; return to shader part epilog
anatofuz
parents:
diff changeset
987 ;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
988 ; GFX10PLUS-LABEL: getresinfo_dmask0:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
989 ; GFX10PLUS: ; %bb.0: ; %main_body
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
990 ; GFX10PLUS-NEXT: ; return to shader part epilog
150
anatofuz
parents:
diff changeset
991 main_body:
anatofuz
parents:
diff changeset
992 %mip = extractelement <2 x i16> %coords, i32 0
anatofuz
parents:
diff changeset
993 %r = call <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32 0, i16 %mip, <8 x i32> %rsrc, i32 0, i32 0)
anatofuz
parents:
diff changeset
994 ret <4 x float> %r
anatofuz
parents:
diff changeset
995 }
anatofuz
parents:
diff changeset
996
anatofuz
parents:
diff changeset
997 declare <4 x float> @llvm.amdgcn.image.load.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
998 declare <4 x float> @llvm.amdgcn.image.load.2d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
999 declare <4 x float> @llvm.amdgcn.image.load.3d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1000 declare <4 x float> @llvm.amdgcn.image.load.cube.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1001 declare <4 x float> @llvm.amdgcn.image.load.1darray.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1002 declare <4 x float> @llvm.amdgcn.image.load.2darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1003 declare <4 x float> @llvm.amdgcn.image.load.2dmsaa.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1004 declare <4 x float> @llvm.amdgcn.image.load.2darraymsaa.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1005
anatofuz
parents:
diff changeset
1006 declare <4 x float> @llvm.amdgcn.image.load.mip.1d.v4f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1007 declare <4 x float> @llvm.amdgcn.image.load.mip.2d.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1008 declare <4 x float> @llvm.amdgcn.image.load.mip.3d.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1009 declare <4 x float> @llvm.amdgcn.image.load.mip.cube.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1010 declare <4 x float> @llvm.amdgcn.image.load.mip.1darray.v4f32.i16(i32, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1011 declare <4 x float> @llvm.amdgcn.image.load.mip.2darray.v4f32.i16(i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1012
anatofuz
parents:
diff changeset
1013 declare void @llvm.amdgcn.image.store.1d.v4f32.i16(<4 x float>, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1014 declare void @llvm.amdgcn.image.store.2d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1015 declare void @llvm.amdgcn.image.store.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1016 declare void @llvm.amdgcn.image.store.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1017 declare void @llvm.amdgcn.image.store.1darray.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1018 declare void @llvm.amdgcn.image.store.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1019 declare void @llvm.amdgcn.image.store.2dmsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1020 declare void @llvm.amdgcn.image.store.2darraymsaa.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1021
anatofuz
parents:
diff changeset
1022 declare void @llvm.amdgcn.image.store.mip.1d.v4f32.i16(<4 x float>, i32, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1023 declare void @llvm.amdgcn.image.store.mip.2d.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1024 declare void @llvm.amdgcn.image.store.mip.3d.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1025 declare void @llvm.amdgcn.image.store.mip.cube.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1026 declare void @llvm.amdgcn.image.store.mip.1darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1027 declare void @llvm.amdgcn.image.store.mip.2darray.v4f32.i16(<4 x float>, i32, i16, i16, i16, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1028
anatofuz
parents:
diff changeset
1029 declare <4 x float> @llvm.amdgcn.image.getresinfo.1d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1030 declare <4 x float> @llvm.amdgcn.image.getresinfo.2d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1031 declare <4 x float> @llvm.amdgcn.image.getresinfo.3d.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1032 declare <4 x float> @llvm.amdgcn.image.getresinfo.cube.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1033 declare <4 x float> @llvm.amdgcn.image.getresinfo.1darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1034 declare <4 x float> @llvm.amdgcn.image.getresinfo.2darray.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1035 declare <4 x float> @llvm.amdgcn.image.getresinfo.2dmsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1036 declare <4 x float> @llvm.amdgcn.image.getresinfo.2darraymsaa.v4f32.i16(i32, i16, <8 x i32>, i32, i32) #2
anatofuz
parents:
diff changeset
1037
anatofuz
parents:
diff changeset
1038 declare float @llvm.amdgcn.image.load.1d.f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1039 declare float @llvm.amdgcn.image.load.2d.f32.i16(i32, i16, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1040 declare <2 x float> @llvm.amdgcn.image.load.1d.v2f32.i16(i32, i16, <8 x i32>, i32, i32) #1
anatofuz
parents:
diff changeset
1041 declare void @llvm.amdgcn.image.store.1d.f32.i16(float, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1042 declare void @llvm.amdgcn.image.store.1d.v2f32.i16(<2 x float>, i32, i16, <8 x i32>, i32, i32) #0
anatofuz
parents:
diff changeset
1043
anatofuz
parents:
diff changeset
1044 attributes #0 = { nounwind }
anatofuz
parents:
diff changeset
1045 attributes #1 = { nounwind readonly }
anatofuz
parents:
diff changeset
1046 attributes #2 = { nounwind readnone }