@@ -17,20 +17,22 @@ body: |
17
17
; GCN: liveins: $vgpr0
18
18
; GCN-NEXT: {{ $}}
19
19
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
20
- ; GCN-NEXT: %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
21
- ; GCN-NEXT: $vgpr0 = COPY %1
20
+ ; GCN-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
21
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
22
+ ;
22
23
; VI-LABEL: name: fptosi_s32_to_s32_vv
23
24
; VI: liveins: $vgpr0
24
25
; VI-NEXT: {{ $}}
25
26
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
26
- ; VI-NEXT: %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
27
- ; VI-NEXT: $vgpr0 = COPY %1
27
+ ; VI-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
28
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
29
+ ;
28
30
; GFX11-LABEL: name: fptosi_s32_to_s32_vv
29
31
; GFX11: liveins: $vgpr0
30
32
; GFX11-NEXT: {{ $}}
31
33
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
32
- ; GFX11-NEXT: %1 :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
33
- ; GFX11-NEXT: $vgpr0 = COPY %1
34
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
35
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
34
36
%0:vgpr(s32) = COPY $vgpr0
35
37
%1:vgpr(s32) = G_FPTOSI %0
36
38
$vgpr0 = COPY %1
@@ -50,20 +52,22 @@ body: |
50
52
; GCN: liveins: $sgpr0
51
53
; GCN-NEXT: {{ $}}
52
54
; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
53
- ; GCN-NEXT: %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
54
- ; GCN-NEXT: $vgpr0 = COPY %1
55
+ ; GCN-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
56
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
57
+ ;
55
58
; VI-LABEL: name: fptosi_s32_to_s32_vs
56
59
; VI: liveins: $sgpr0
57
60
; VI-NEXT: {{ $}}
58
61
; VI-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
59
- ; VI-NEXT: %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
60
- ; VI-NEXT: $vgpr0 = COPY %1
62
+ ; VI-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
63
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
64
+ ;
61
65
; GFX11-LABEL: name: fptosi_s32_to_s32_vs
62
66
; GFX11: liveins: $sgpr0
63
67
; GFX11-NEXT: {{ $}}
64
68
; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
65
- ; GFX11-NEXT: %1 :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
66
- ; GFX11-NEXT: $vgpr0 = COPY %1
69
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
70
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
67
71
%0:sgpr(s32) = COPY $sgpr0
68
72
%1:vgpr(s32) = G_FPTOSI %0
69
73
$vgpr0 = COPY %1
@@ -83,20 +87,22 @@ body: |
83
87
; GCN: liveins: $vgpr0
84
88
; GCN-NEXT: {{ $}}
85
89
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
86
- ; GCN-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
87
- ; GCN-NEXT: $vgpr0 = COPY %2
90
+ ; GCN-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
91
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
92
+ ;
88
93
; VI-LABEL: name: fptosi_s32_to_s32_fneg_vv
89
94
; VI: liveins: $vgpr0
90
95
; VI-NEXT: {{ $}}
91
96
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
92
- ; VI-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
93
- ; VI-NEXT: $vgpr0 = COPY %2
97
+ ; VI-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
98
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
99
+ ;
94
100
; GFX11-LABEL: name: fptosi_s32_to_s32_fneg_vv
95
101
; GFX11: liveins: $vgpr0
96
102
; GFX11-NEXT: {{ $}}
97
103
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
98
- ; GFX11-NEXT: %2 :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
99
- ; GFX11-NEXT: $vgpr0 = COPY %2
104
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e64 1, [[COPY]], 0, 0, implicit $mode, implicit $exec
105
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e64_]]
100
106
%0:vgpr(s32) = COPY $vgpr0
101
107
%1:vgpr(s32) = G_FNEG %0
102
108
%2:vgpr(s32) = G_FPTOSI %1
@@ -117,23 +123,25 @@ body: |
117
123
; GCN: liveins: $vgpr0
118
124
; GCN-NEXT: {{ $}}
119
125
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
120
- ; GCN-NEXT: %3:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
121
- ; GCN-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3, implicit $mode, implicit $exec
122
- ; GCN-NEXT: $vgpr0 = COPY %2
126
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
127
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
128
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
129
+ ;
123
130
; VI-LABEL: name: fptosi_s16_to_s32_vv
124
131
; VI: liveins: $vgpr0
125
132
; VI-NEXT: {{ $}}
126
133
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
127
- ; VI-NEXT: %3:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
128
- ; VI-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3, implicit $mode, implicit $exec
129
- ; VI-NEXT: $vgpr0 = COPY %2
134
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
135
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
136
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
137
+ ;
130
138
; GFX11-LABEL: name: fptosi_s16_to_s32_vv
131
139
; GFX11: liveins: $vgpr0
132
140
; GFX11-NEXT: {{ $}}
133
141
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
134
- ; GFX11-NEXT: %3 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
135
- ; GFX11-NEXT: %2 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3 , implicit $mode, implicit $exec
136
- ; GFX11-NEXT: $vgpr0 = COPY %2
142
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
143
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
144
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
137
145
%0:vgpr(s32) = COPY $vgpr0
138
146
%1:vgpr(s16) = G_TRUNC %0
139
147
%2:vgpr(s32) = G_FPTOSI %1
@@ -154,23 +162,25 @@ body: |
154
162
; GCN: liveins: $sgpr0
155
163
; GCN-NEXT: {{ $}}
156
164
; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
157
- ; GCN-NEXT: %3:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
158
- ; GCN-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3, implicit $mode, implicit $exec
159
- ; GCN-NEXT: $vgpr0 = COPY %2
165
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
166
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
167
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
168
+ ;
160
169
; VI-LABEL: name: fptosi_s16_to_s32_vs
161
170
; VI: liveins: $sgpr0
162
171
; VI-NEXT: {{ $}}
163
172
; VI-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
164
- ; VI-NEXT: %3:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
165
- ; VI-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3, implicit $mode, implicit $exec
166
- ; VI-NEXT: $vgpr0 = COPY %2
173
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
174
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
175
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
176
+ ;
167
177
; GFX11-LABEL: name: fptosi_s16_to_s32_vs
168
178
; GFX11: liveins: $sgpr0
169
179
; GFX11-NEXT: {{ $}}
170
180
; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
171
- ; GFX11-NEXT: %3 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
172
- ; GFX11-NEXT: %2 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %3 , implicit $mode, implicit $exec
173
- ; GFX11-NEXT: $vgpr0 = COPY %2
181
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
182
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
183
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
174
184
%0:sgpr(s32) = COPY $sgpr0
175
185
%1:sgpr(s16) = G_TRUNC %0
176
186
%2:vgpr(s32) = G_FPTOSI %1
@@ -193,27 +203,29 @@ body: |
193
203
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
194
204
; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
195
205
; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
196
- ; GCN-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
197
- ; GCN-NEXT: %3:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
198
- ; GCN-NEXT: $vgpr0 = COPY %3
206
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
207
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
208
+ ; GCN-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
209
+ ;
199
210
; VI-LABEL: name: fptosi_s16_to_s32_fneg_vv
200
211
; VI: liveins: $vgpr0
201
212
; VI-NEXT: {{ $}}
202
213
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
203
214
; VI-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
204
215
; VI-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
205
- ; VI-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
206
- ; VI-NEXT: %3:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
207
- ; VI-NEXT: $vgpr0 = COPY %3
216
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
217
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
218
+ ; VI-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
219
+ ;
208
220
; GFX11-LABEL: name: fptosi_s16_to_s32_fneg_vv
209
221
; GFX11: liveins: $vgpr0
210
222
; GFX11-NEXT: {{ $}}
211
223
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
212
224
; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
213
225
; GFX11-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
214
- ; GFX11-NEXT: %4 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
215
- ; GFX11-NEXT: %3 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4 , implicit $mode, implicit $exec
216
- ; GFX11-NEXT: $vgpr0 = COPY %3
226
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
227
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
228
+ ; GFX11-NEXT: $vgpr0 = COPY [[V_CVT_I32_F32_e32_]]
217
229
%0:vgpr(s32) = COPY $vgpr0
218
230
%1:vgpr(s16) = G_TRUNC %0
219
231
%2:vgpr(s16) = G_FNEG %1
@@ -235,23 +247,25 @@ body: |
235
247
; GCN: liveins: $vgpr0
236
248
; GCN-NEXT: {{ $}}
237
249
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
238
- ; GCN-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
239
- ; GCN-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
240
- ; GCN-NEXT: S_ENDPGM 0, implicit %2
250
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
251
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
252
+ ; GCN-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
253
+ ;
241
254
; VI-LABEL: name: fptosi_s16_to_s1_vv
242
255
; VI: liveins: $vgpr0
243
256
; VI-NEXT: {{ $}}
244
257
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
245
- ; VI-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
246
- ; VI-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
247
- ; VI-NEXT: S_ENDPGM 0, implicit %2
258
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
259
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
260
+ ; VI-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
261
+ ;
248
262
; GFX11-LABEL: name: fptosi_s16_to_s1_vv
249
263
; GFX11: liveins: $vgpr0
250
264
; GFX11-NEXT: {{ $}}
251
265
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
252
- ; GFX11-NEXT: %4 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
253
- ; GFX11-NEXT: %2 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4 , implicit $mode, implicit $exec
254
- ; GFX11-NEXT: S_ENDPGM 0, implicit %2
266
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
267
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
268
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
255
269
%0:vgpr(s32) = COPY $vgpr0
256
270
%1:vgpr(s16) = G_TRUNC %0
257
271
%2:vgpr(s32) = G_FPTOSI %1
@@ -273,23 +287,25 @@ body: |
273
287
; GCN: liveins: $sgpr0
274
288
; GCN-NEXT: {{ $}}
275
289
; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
276
- ; GCN-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
277
- ; GCN-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
278
- ; GCN-NEXT: S_ENDPGM 0, implicit %2
290
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
291
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
292
+ ; GCN-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
293
+ ;
279
294
; VI-LABEL: name: fptosi_s16_to_s1_vs
280
295
; VI: liveins: $sgpr0
281
296
; VI-NEXT: {{ $}}
282
297
; VI-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
283
- ; VI-NEXT: %4:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
284
- ; VI-NEXT: %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4, implicit $mode, implicit $exec
285
- ; VI-NEXT: S_ENDPGM 0, implicit %2
298
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
299
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
300
+ ; VI-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
301
+ ;
286
302
; GFX11-LABEL: name: fptosi_s16_to_s1_vs
287
303
; GFX11: liveins: $sgpr0
288
304
; GFX11-NEXT: {{ $}}
289
305
; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
290
- ; GFX11-NEXT: %4 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
291
- ; GFX11-NEXT: %2 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %4 , implicit $mode, implicit $exec
292
- ; GFX11-NEXT: S_ENDPGM 0, implicit %2
306
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
307
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
308
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
293
309
%0:sgpr(s32) = COPY $sgpr0
294
310
%1:sgpr(s16) = G_TRUNC %0
295
311
%2:vgpr(s32) = G_FPTOSI %1
@@ -313,27 +329,29 @@ body: |
313
329
; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
314
330
; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
315
331
; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
316
- ; GCN-NEXT: %5:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
317
- ; GCN-NEXT: %3:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %5, implicit $mode, implicit $exec
318
- ; GCN-NEXT: S_ENDPGM 0, implicit %3
332
+ ; GCN-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
333
+ ; GCN-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
334
+ ; GCN-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
335
+ ;
319
336
; VI-LABEL: name: fptosi_s16_to_s1_fneg_vv
320
337
; VI: liveins: $vgpr0
321
338
; VI-NEXT: {{ $}}
322
339
; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
323
340
; VI-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
324
341
; VI-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
325
- ; VI-NEXT: %5:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
326
- ; VI-NEXT: %3:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %5, implicit $mode, implicit $exec
327
- ; VI-NEXT: S_ENDPGM 0, implicit %3
342
+ ; VI-NEXT: [[V_CVT_F32_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
343
+ ; VI-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_e64_]], implicit $mode, implicit $exec
344
+ ; VI-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
345
+ ;
328
346
; GFX11-LABEL: name: fptosi_s16_to_s1_fneg_vv
329
347
; GFX11: liveins: $vgpr0
330
348
; GFX11-NEXT: {{ $}}
331
349
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
332
350
; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
333
351
; GFX11-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[S_MOV_B32_]], [[COPY]], implicit $exec
334
- ; GFX11-NEXT: %5 :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
335
- ; GFX11-NEXT: %3 :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 %5 , implicit $mode, implicit $exec
336
- ; GFX11-NEXT: S_ENDPGM 0, implicit %3
352
+ ; GFX11-NEXT: [[V_CVT_F32_F16_t16_e64_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_F32_F16_t16_e64 0, [[V_XOR_B32_e64_]], 0, 0, implicit $mode, implicit $exec
353
+ ; GFX11-NEXT: [[V_CVT_I32_F32_e32_:%[0-9]+]] :vgpr_32 = nofpexcept V_CVT_I32_F32_e32 [[V_CVT_F32_F16_t16_e64_]] , implicit $mode, implicit $exec
354
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CVT_I32_F32_e32_]]
337
355
%0:vgpr(s32) = COPY $vgpr0
338
356
%1:vgpr(s16) = G_TRUNC %0
339
357
%2:vgpr(s16) = G_FNEG %1
0 commit comments