annotate llvm/test/CodeGen/AMDGPU/ret.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
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1 ; RUN: llc -global-isel=0 -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
2 ; RUN: llc -global-isel=1 -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
3 ; RUN: llc -global-isel=0 -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
4 ; RUN: llc -global-isel=1 -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
150
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 ; GCN-LABEL: {{^}}vgpr:
anatofuz
parents:
diff changeset
7 ; GCN-DAG: v_mov_b32_e32 v1, v0
anatofuz
parents:
diff changeset
8 ; GCN-DAG: exp mrt0 v0, v0, v0, v0 done vm
anatofuz
parents:
diff changeset
9 ; GCN: s_waitcnt expcnt(0)
anatofuz
parents:
diff changeset
10 ; GCN: v_add_f32_e32 v0, 1.0, v1
anatofuz
parents:
diff changeset
11 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
12 define amdgpu_vs { float, float } @vgpr(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
13 bb:
anatofuz
parents:
diff changeset
14 call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %arg3, float %arg3, float %arg3, float %arg3, i1 true, i1 true) #0
anatofuz
parents:
diff changeset
15 %x = fadd float %arg3, 1.000000e+00
anatofuz
parents:
diff changeset
16 %a = insertvalue { float, float } undef, float %x, 0
anatofuz
parents:
diff changeset
17 %b = insertvalue { float, float } %a, float %arg3, 1
anatofuz
parents:
diff changeset
18 ret { float, float } %b
anatofuz
parents:
diff changeset
19 }
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 ; GCN-LABEL: {{^}}vgpr_literal:
anatofuz
parents:
diff changeset
22 ; GCN: exp mrt0 v0, v0, v0, v0 done vm
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 ; GCN-DAG: v_mov_b32_e32 v0, 1.0
anatofuz
parents:
diff changeset
25 ; GCN-DAG: v_mov_b32_e32 v1, 2.0
anatofuz
parents:
diff changeset
26 ; GCN-DAG: v_mov_b32_e32 v2, 4.0
anatofuz
parents:
diff changeset
27 ; GCN-DAG: v_mov_b32_e32 v3, -1.0
anatofuz
parents:
diff changeset
28 ; GCN-DAG: s_waitcnt expcnt(0)
anatofuz
parents:
diff changeset
29 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
30 define amdgpu_vs { float, float, float, float } @vgpr_literal(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
31 bb:
anatofuz
parents:
diff changeset
32 call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %arg3, float %arg3, float %arg3, float %arg3, i1 true, i1 true) #0
anatofuz
parents:
diff changeset
33 ret { float, float, float, float } { float 1.000000e+00, float 2.000000e+00, float 4.000000e+00, float -1.000000e+00 }
anatofuz
parents:
diff changeset
34 }
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 ; GCN: .long 165580
anatofuz
parents:
diff changeset
37 ; GCN-NEXT: .long 562
anatofuz
parents:
diff changeset
38 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
39 ; GCN-NEXT: .long 562
anatofuz
parents:
diff changeset
40 ; GCN-LABEL: {{^}}vgpr_ps_addr0:
anatofuz
parents:
diff changeset
41 ; GCN-NOT: v_mov_b32_e32 v0
anatofuz
parents:
diff changeset
42 ; GCN-NOT: v_mov_b32_e32 v1
anatofuz
parents:
diff changeset
43 ; GCN-NOT: v_mov_b32_e32 v2
anatofuz
parents:
diff changeset
44 ; GCN: v_mov_b32_e32 v3, v4
anatofuz
parents:
diff changeset
45 ; GCN: v_mov_b32_e32 v4, v6
anatofuz
parents:
diff changeset
46 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
47 define amdgpu_ps { float, float, float, float, float } @vgpr_ps_addr0(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #1 {
150
anatofuz
parents:
diff changeset
48 bb:
anatofuz
parents:
diff changeset
49 %i0 = extractelement <2 x i32> %arg4, i32 0
anatofuz
parents:
diff changeset
50 %i1 = extractelement <2 x i32> %arg4, i32 1
anatofuz
parents:
diff changeset
51 %i2 = extractelement <2 x i32> %arg7, i32 0
anatofuz
parents:
diff changeset
52 %i3 = extractelement <2 x i32> %arg8, i32 0
anatofuz
parents:
diff changeset
53 %f0 = bitcast i32 %i0 to float
anatofuz
parents:
diff changeset
54 %f1 = bitcast i32 %i1 to float
anatofuz
parents:
diff changeset
55 %f2 = bitcast i32 %i2 to float
anatofuz
parents:
diff changeset
56 %f3 = bitcast i32 %i3 to float
anatofuz
parents:
diff changeset
57 %r0 = insertvalue { float, float, float, float, float } undef, float %f0, 0
anatofuz
parents:
diff changeset
58 %r1 = insertvalue { float, float, float, float, float } %r0, float %f1, 1
anatofuz
parents:
diff changeset
59 %r2 = insertvalue { float, float, float, float, float } %r1, float %f2, 2
anatofuz
parents:
diff changeset
60 %r3 = insertvalue { float, float, float, float, float } %r2, float %f3, 3
anatofuz
parents:
diff changeset
61 %r4 = insertvalue { float, float, float, float, float } %r3, float %arg12, 4
anatofuz
parents:
diff changeset
62 ret { float, float, float, float, float } %r4
anatofuz
parents:
diff changeset
63 }
anatofuz
parents:
diff changeset
64
anatofuz
parents:
diff changeset
65 ; GCN: .long 165580
anatofuz
parents:
diff changeset
66 ; GCN-NEXT: .long 1
anatofuz
parents:
diff changeset
67 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
68 ; GCN-NEXT: .long 1
anatofuz
parents:
diff changeset
69 ; GCN-LABEL: {{^}}ps_input_ena_no_inputs:
anatofuz
parents:
diff changeset
70 ; GCN: v_mov_b32_e32 v0, 1.0
anatofuz
parents:
diff changeset
71 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 define amdgpu_ps float @ps_input_ena_no_inputs(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #1 {
150
anatofuz
parents:
diff changeset
73 bb:
anatofuz
parents:
diff changeset
74 ret float 1.000000e+00
anatofuz
parents:
diff changeset
75 }
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 ; GCN: .long 165580
anatofuz
parents:
diff changeset
78 ; GCN-NEXT: .long 2081
anatofuz
parents:
diff changeset
79 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
80 ; GCN-NEXT: .long 2081
anatofuz
parents:
diff changeset
81 ; GCN-LABEL: {{^}}ps_input_ena_pos_w:
anatofuz
parents:
diff changeset
82 ; GCN-DAG: v_mov_b32_e32 v0, v4
anatofuz
parents:
diff changeset
83 ; GCN-DAG: v_mov_b32_e32 v1, v2
anatofuz
parents:
diff changeset
84 ; GCN-DAG: v_mov_b32_e32 v2, v3
anatofuz
parents:
diff changeset
85 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
86 define amdgpu_ps { float, <2 x float> } @ps_input_ena_pos_w(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #1 {
150
anatofuz
parents:
diff changeset
87 bb:
anatofuz
parents:
diff changeset
88 %f = bitcast <2 x i32> %arg8 to <2 x float>
anatofuz
parents:
diff changeset
89 %s = insertvalue { float, <2 x float> } undef, float %arg14, 0
anatofuz
parents:
diff changeset
90 %s1 = insertvalue { float, <2 x float> } %s, <2 x float> %f, 1
anatofuz
parents:
diff changeset
91 ret { float, <2 x float> } %s1
anatofuz
parents:
diff changeset
92 }
anatofuz
parents:
diff changeset
93
anatofuz
parents:
diff changeset
94 ; GCN: .long 165580
anatofuz
parents:
diff changeset
95 ; GCN-NEXT: .long 562
anatofuz
parents:
diff changeset
96 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
97 ; GCN-NEXT: .long 563
anatofuz
parents:
diff changeset
98 ; GCN-LABEL: {{^}}vgpr_ps_addr1:
anatofuz
parents:
diff changeset
99 ; GCN-DAG: v_mov_b32_e32 v0, v2
anatofuz
parents:
diff changeset
100 ; GCN-DAG: v_mov_b32_e32 v1, v3
anatofuz
parents:
diff changeset
101 ; GCN: v_mov_b32_e32 v2, v4
anatofuz
parents:
diff changeset
102 ; GCN-DAG: v_mov_b32_e32 v3, v6
anatofuz
parents:
diff changeset
103 ; GCN-DAG: v_mov_b32_e32 v4, v8
anatofuz
parents:
diff changeset
104 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
105 define amdgpu_ps { float, float, float, float, float } @vgpr_ps_addr1(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #2 {
150
anatofuz
parents:
diff changeset
106 bb:
anatofuz
parents:
diff changeset
107 %i0 = extractelement <2 x i32> %arg4, i32 0
anatofuz
parents:
diff changeset
108 %i1 = extractelement <2 x i32> %arg4, i32 1
anatofuz
parents:
diff changeset
109 %i2 = extractelement <2 x i32> %arg7, i32 0
anatofuz
parents:
diff changeset
110 %i3 = extractelement <2 x i32> %arg8, i32 0
anatofuz
parents:
diff changeset
111 %f0 = bitcast i32 %i0 to float
anatofuz
parents:
diff changeset
112 %f1 = bitcast i32 %i1 to float
anatofuz
parents:
diff changeset
113 %f2 = bitcast i32 %i2 to float
anatofuz
parents:
diff changeset
114 %f3 = bitcast i32 %i3 to float
anatofuz
parents:
diff changeset
115 %r0 = insertvalue { float, float, float, float, float } undef, float %f0, 0
anatofuz
parents:
diff changeset
116 %r1 = insertvalue { float, float, float, float, float } %r0, float %f1, 1
anatofuz
parents:
diff changeset
117 %r2 = insertvalue { float, float, float, float, float } %r1, float %f2, 2
anatofuz
parents:
diff changeset
118 %r3 = insertvalue { float, float, float, float, float } %r2, float %f3, 3
anatofuz
parents:
diff changeset
119 %r4 = insertvalue { float, float, float, float, float } %r3, float %arg12, 4
anatofuz
parents:
diff changeset
120 ret { float, float, float, float, float } %r4
anatofuz
parents:
diff changeset
121 }
anatofuz
parents:
diff changeset
122
anatofuz
parents:
diff changeset
123 ; GCN: .long 165580
anatofuz
parents:
diff changeset
124 ; GCN-NEXT: .long 562
anatofuz
parents:
diff changeset
125 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
126 ; GCN-NEXT: .long 631
anatofuz
parents:
diff changeset
127 ; GCN-LABEL: {{^}}vgpr_ps_addr119:
anatofuz
parents:
diff changeset
128 ; GCN-DAG: v_mov_b32_e32 v0, v2
anatofuz
parents:
diff changeset
129 ; GCN-DAG: v_mov_b32_e32 v1, v3
anatofuz
parents:
diff changeset
130 ; GCN-DAG: v_mov_b32_e32 v2, v6
anatofuz
parents:
diff changeset
131 ; GCN-DAG: v_mov_b32_e32 v3, v8
anatofuz
parents:
diff changeset
132 ; GCN-DAG: v_mov_b32_e32 v4, v12
anatofuz
parents:
diff changeset
133 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
134 define amdgpu_ps { float, float, float, float, float } @vgpr_ps_addr119(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #3 {
150
anatofuz
parents:
diff changeset
135 bb:
anatofuz
parents:
diff changeset
136 %i0 = extractelement <2 x i32> %arg4, i32 0
anatofuz
parents:
diff changeset
137 %i1 = extractelement <2 x i32> %arg4, i32 1
anatofuz
parents:
diff changeset
138 %i2 = extractelement <2 x i32> %arg7, i32 0
anatofuz
parents:
diff changeset
139 %i3 = extractelement <2 x i32> %arg8, i32 0
anatofuz
parents:
diff changeset
140 %f0 = bitcast i32 %i0 to float
anatofuz
parents:
diff changeset
141 %f1 = bitcast i32 %i1 to float
anatofuz
parents:
diff changeset
142 %f2 = bitcast i32 %i2 to float
anatofuz
parents:
diff changeset
143 %f3 = bitcast i32 %i3 to float
anatofuz
parents:
diff changeset
144 %r0 = insertvalue { float, float, float, float, float } undef, float %f0, 0
anatofuz
parents:
diff changeset
145 %r1 = insertvalue { float, float, float, float, float } %r0, float %f1, 1
anatofuz
parents:
diff changeset
146 %r2 = insertvalue { float, float, float, float, float } %r1, float %f2, 2
anatofuz
parents:
diff changeset
147 %r3 = insertvalue { float, float, float, float, float } %r2, float %f3, 3
anatofuz
parents:
diff changeset
148 %r4 = insertvalue { float, float, float, float, float } %r3, float %arg12, 4
anatofuz
parents:
diff changeset
149 ret { float, float, float, float, float } %r4
anatofuz
parents:
diff changeset
150 }
anatofuz
parents:
diff changeset
151
anatofuz
parents:
diff changeset
152 ; GCN: .long 165580
anatofuz
parents:
diff changeset
153 ; GCN-NEXT: .long 562
anatofuz
parents:
diff changeset
154 ; GCN-NEXT: .long 165584
anatofuz
parents:
diff changeset
155 ; GCN-NEXT: .long 946
anatofuz
parents:
diff changeset
156 ; GCN-LABEL: {{^}}vgpr_ps_addr418:
anatofuz
parents:
diff changeset
157 ; GCN-NOT: v_mov_b32_e32 v0
anatofuz
parents:
diff changeset
158 ; GCN-NOT: v_mov_b32_e32 v1
anatofuz
parents:
diff changeset
159 ; GCN-NOT: v_mov_b32_e32 v2
anatofuz
parents:
diff changeset
160 ; GCN: v_mov_b32_e32 v3, v4
anatofuz
parents:
diff changeset
161 ; GCN: v_mov_b32_e32 v4, v8
anatofuz
parents:
diff changeset
162 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
163 define amdgpu_ps { float, float, float, float, float } @vgpr_ps_addr418(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <2 x i32> %arg4, <2 x i32> %arg5, <3 x i32> %arg6, <2 x i32> %arg7, <2 x i32> %arg8, <2 x i32> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, float %arg15, float %arg16, float %arg17, float %arg18) #4 {
150
anatofuz
parents:
diff changeset
164 bb:
anatofuz
parents:
diff changeset
165 %i0 = extractelement <2 x i32> %arg4, i32 0
anatofuz
parents:
diff changeset
166 %i1 = extractelement <2 x i32> %arg4, i32 1
anatofuz
parents:
diff changeset
167 %i2 = extractelement <2 x i32> %arg7, i32 0
anatofuz
parents:
diff changeset
168 %i3 = extractelement <2 x i32> %arg8, i32 0
anatofuz
parents:
diff changeset
169 %f0 = bitcast i32 %i0 to float
anatofuz
parents:
diff changeset
170 %f1 = bitcast i32 %i1 to float
anatofuz
parents:
diff changeset
171 %f2 = bitcast i32 %i2 to float
anatofuz
parents:
diff changeset
172 %f3 = bitcast i32 %i3 to float
anatofuz
parents:
diff changeset
173 %r0 = insertvalue { float, float, float, float, float } undef, float %f0, 0
anatofuz
parents:
diff changeset
174 %r1 = insertvalue { float, float, float, float, float } %r0, float %f1, 1
anatofuz
parents:
diff changeset
175 %r2 = insertvalue { float, float, float, float, float } %r1, float %f2, 2
anatofuz
parents:
diff changeset
176 %r3 = insertvalue { float, float, float, float, float } %r2, float %f3, 3
anatofuz
parents:
diff changeset
177 %r4 = insertvalue { float, float, float, float, float } %r3, float %arg12, 4
anatofuz
parents:
diff changeset
178 ret { float, float, float, float, float } %r4
anatofuz
parents:
diff changeset
179 }
anatofuz
parents:
diff changeset
180
anatofuz
parents:
diff changeset
181 ; GCN-LABEL: {{^}}sgpr:
anatofuz
parents:
diff changeset
182 ; GCN-DAG: s_mov_b32 s2, s3
anatofuz
parents:
diff changeset
183 ; GCN-DAG: s_add_{{i|u}}32 s0, s3, 2
anatofuz
parents:
diff changeset
184 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
185 define amdgpu_vs { i32, i32, i32 } @sgpr(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
186 bb:
anatofuz
parents:
diff changeset
187 %x = add i32 %arg2, 2
anatofuz
parents:
diff changeset
188 %a = insertvalue { i32, i32, i32 } undef, i32 %x, 0
anatofuz
parents:
diff changeset
189 %b = insertvalue { i32, i32, i32 } %a, i32 %arg1, 1
anatofuz
parents:
diff changeset
190 %c = insertvalue { i32, i32, i32 } %a, i32 %arg2, 2
anatofuz
parents:
diff changeset
191 ret { i32, i32, i32 } %c
anatofuz
parents:
diff changeset
192 }
anatofuz
parents:
diff changeset
193
anatofuz
parents:
diff changeset
194 ; GCN-LABEL: {{^}}sgpr_literal:
anatofuz
parents:
diff changeset
195 ; GCN: s_mov_b32 s0, 5
anatofuz
parents:
diff changeset
196 ; GCN-NOT: s_mov_b32 s0, s0
anatofuz
parents:
diff changeset
197 ; GCN-DAG: s_mov_b32 s1, 6
anatofuz
parents:
diff changeset
198 ; GCN-DAG: s_mov_b32 s2, 7
anatofuz
parents:
diff changeset
199 ; GCN-DAG: s_mov_b32 s3, 8
anatofuz
parents:
diff changeset
200 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
201 define amdgpu_vs { i32, i32, i32, i32 } @sgpr_literal(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
202 bb:
anatofuz
parents:
diff changeset
203 %x = add i32 %arg2, 2
anatofuz
parents:
diff changeset
204 ret { i32, i32, i32, i32 } { i32 5, i32 6, i32 7, i32 8 }
anatofuz
parents:
diff changeset
205 }
anatofuz
parents:
diff changeset
206
anatofuz
parents:
diff changeset
207 ; GCN-LABEL: {{^}}both:
anatofuz
parents:
diff changeset
208 ; GCN-DAG: exp mrt0 v0, v0, v0, v0 done vm
anatofuz
parents:
diff changeset
209 ; GCN-DAG: v_mov_b32_e32 v1, v0
anatofuz
parents:
diff changeset
210 ; GCN-DAG: s_mov_b32 s1, s2
anatofuz
parents:
diff changeset
211 ; GCN-DAG: s_waitcnt expcnt(0)
anatofuz
parents:
diff changeset
212 ; GCN-DAG: v_add_f32_e32 v0, 1.0, v1
anatofuz
parents:
diff changeset
213 ; GCN-DAG: s_add_{{i|u}}32 s0, s3, 2
anatofuz
parents:
diff changeset
214 ; GCN-DAG: s_mov_b32 s2, s3
anatofuz
parents:
diff changeset
215 ; GCN-NOT: s_endpgm
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
216 define amdgpu_vs { float, i32, float, i32, i32 } @both(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
217 bb:
anatofuz
parents:
diff changeset
218 call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %arg3, float %arg3, float %arg3, float %arg3, i1 true, i1 true) #0
anatofuz
parents:
diff changeset
219 %v = fadd float %arg3, 1.000000e+00
anatofuz
parents:
diff changeset
220 %s = add i32 %arg2, 2
anatofuz
parents:
diff changeset
221 %a0 = insertvalue { float, i32, float, i32, i32 } undef, float %v, 0
anatofuz
parents:
diff changeset
222 %a1 = insertvalue { float, i32, float, i32, i32 } %a0, i32 %s, 1
anatofuz
parents:
diff changeset
223 %a2 = insertvalue { float, i32, float, i32, i32 } %a1, float %arg3, 2
anatofuz
parents:
diff changeset
224 %a3 = insertvalue { float, i32, float, i32, i32 } %a2, i32 %arg1, 3
anatofuz
parents:
diff changeset
225 %a4 = insertvalue { float, i32, float, i32, i32 } %a3, i32 %arg2, 4
anatofuz
parents:
diff changeset
226 ret { float, i32, float, i32, i32 } %a4
anatofuz
parents:
diff changeset
227 }
anatofuz
parents:
diff changeset
228
anatofuz
parents:
diff changeset
229 ; GCN-LABEL: {{^}}structure_literal:
anatofuz
parents:
diff changeset
230 ; GCN: exp mrt0 v0, v0, v0, v0 done vm
anatofuz
parents:
diff changeset
231
anatofuz
parents:
diff changeset
232 ; GCN-DAG: v_mov_b32_e32 v0, 1.0
anatofuz
parents:
diff changeset
233 ; GCN-DAG: s_mov_b32 s0, 2
anatofuz
parents:
diff changeset
234 ; GCN-DAG: s_mov_b32 s1, 3
anatofuz
parents:
diff changeset
235 ; GCN-DAG: v_mov_b32_e32 v1, 2.0
anatofuz
parents:
diff changeset
236 ; GCN-DAG: v_mov_b32_e32 v2, 4.0
anatofuz
parents:
diff changeset
237 ; GCN-DAG: s_waitcnt expcnt(0)
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
238 define amdgpu_vs { { float, i32 }, { i32, <2 x float> } } @structure_literal(ptr addrspace(4) inreg %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {
150
anatofuz
parents:
diff changeset
239 bb:
anatofuz
parents:
diff changeset
240 call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %arg3, float %arg3, float %arg3, float %arg3, i1 true, i1 true) #0
anatofuz
parents:
diff changeset
241 ret { { float, i32 }, { i32, <2 x float> } } { { float, i32 } { float 1.000000e+00, i32 2 }, { i32, <2 x float> } { i32 3, <2 x float> <float 2.000000e+00, float 4.000000e+00> } }
anatofuz
parents:
diff changeset
242 }
anatofuz
parents:
diff changeset
243
anatofuz
parents:
diff changeset
244 ; GCN-LABEL: {{^}}ret_return_to_epilog_pseudo_size:
anatofuz
parents:
diff changeset
245 ; GCN: codeLenInByte = 0{{$}}
anatofuz
parents:
diff changeset
246 define amdgpu_ps float @ret_return_to_epilog_pseudo_size() #0 {
anatofuz
parents:
diff changeset
247 ret float undef
anatofuz
parents:
diff changeset
248 }
anatofuz
parents:
diff changeset
249
anatofuz
parents:
diff changeset
250 declare void @llvm.amdgcn.exp.f32(i32, i32, float, float, float, float, i1, i1) #0
anatofuz
parents:
diff changeset
251
anatofuz
parents:
diff changeset
252 attributes #0 = { nounwind }
anatofuz
parents:
diff changeset
253 attributes #1 = { nounwind "InitialPSInputAddr"="0" }
anatofuz
parents:
diff changeset
254 attributes #2 = { nounwind "InitialPSInputAddr"="1" }
anatofuz
parents:
diff changeset
255 attributes #3 = { nounwind "InitialPSInputAddr"="119" }
anatofuz
parents:
diff changeset
256 attributes #4 = { nounwind "InitialPSInputAddr"="418" }