@@ -17,20 +17,22 @@ body: |
1717 ; GCN: liveins: $vgpr0
1818 ; GCN-NEXT: {{ $}}
1919 ; 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+ ;
2223 ; VI-LABEL: name: fptosi_s32_to_s32_vv
2324 ; VI: liveins: $vgpr0
2425 ; VI-NEXT: {{ $}}
2526 ; 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+ ;
2830 ; GFX11-LABEL: name: fptosi_s32_to_s32_vv
2931 ; GFX11: liveins: $vgpr0
3032 ; GFX11-NEXT: {{ $}}
3133 ; 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_]]
3436 %0:vgpr(s32) = COPY $vgpr0
3537 %1:vgpr(s32) = G_FPTOSI %0
3638 $vgpr0 = COPY %1
@@ -50,20 +52,22 @@ body: |
5052 ; GCN: liveins: $sgpr0
5153 ; GCN-NEXT: {{ $}}
5254 ; 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+ ;
5558 ; VI-LABEL: name: fptosi_s32_to_s32_vs
5659 ; VI: liveins: $sgpr0
5760 ; VI-NEXT: {{ $}}
5861 ; 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+ ;
6165 ; GFX11-LABEL: name: fptosi_s32_to_s32_vs
6266 ; GFX11: liveins: $sgpr0
6367 ; GFX11-NEXT: {{ $}}
6468 ; 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_]]
6771 %0:sgpr(s32) = COPY $sgpr0
6872 %1:vgpr(s32) = G_FPTOSI %0
6973 $vgpr0 = COPY %1
@@ -83,20 +87,22 @@ body: |
8387 ; GCN: liveins: $vgpr0
8488 ; GCN-NEXT: {{ $}}
8589 ; 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+ ;
8893 ; VI-LABEL: name: fptosi_s32_to_s32_fneg_vv
8994 ; VI: liveins: $vgpr0
9095 ; VI-NEXT: {{ $}}
9196 ; 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+ ;
94100 ; GFX11-LABEL: name: fptosi_s32_to_s32_fneg_vv
95101 ; GFX11: liveins: $vgpr0
96102 ; GFX11-NEXT: {{ $}}
97103 ; 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_]]
100106 %0:vgpr(s32) = COPY $vgpr0
101107 %1:vgpr(s32) = G_FNEG %0
102108 %2:vgpr(s32) = G_FPTOSI %1
@@ -117,23 +123,25 @@ body: |
117123 ; GCN: liveins: $vgpr0
118124 ; GCN-NEXT: {{ $}}
119125 ; 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+ ;
123130 ; VI-LABEL: name: fptosi_s16_to_s32_vv
124131 ; VI: liveins: $vgpr0
125132 ; VI-NEXT: {{ $}}
126133 ; 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+ ;
130138 ; GFX11-LABEL: name: fptosi_s16_to_s32_vv
131139 ; GFX11: liveins: $vgpr0
132140 ; GFX11-NEXT: {{ $}}
133141 ; 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_]]
137145 %0:vgpr(s32) = COPY $vgpr0
138146 %1:vgpr(s16) = G_TRUNC %0
139147 %2:vgpr(s32) = G_FPTOSI %1
@@ -154,23 +162,25 @@ body: |
154162 ; GCN: liveins: $sgpr0
155163 ; GCN-NEXT: {{ $}}
156164 ; 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+ ;
160169 ; VI-LABEL: name: fptosi_s16_to_s32_vs
161170 ; VI: liveins: $sgpr0
162171 ; VI-NEXT: {{ $}}
163172 ; 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+ ;
167177 ; GFX11-LABEL: name: fptosi_s16_to_s32_vs
168178 ; GFX11: liveins: $sgpr0
169179 ; GFX11-NEXT: {{ $}}
170180 ; 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_]]
174184 %0:sgpr(s32) = COPY $sgpr0
175185 %1:sgpr(s16) = G_TRUNC %0
176186 %2:vgpr(s32) = G_FPTOSI %1
@@ -193,27 +203,29 @@ body: |
193203 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
194204 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
195205 ; 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+ ;
199210 ; VI-LABEL: name: fptosi_s16_to_s32_fneg_vv
200211 ; VI: liveins: $vgpr0
201212 ; VI-NEXT: {{ $}}
202213 ; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
203214 ; VI-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
204215 ; 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+ ;
208220 ; GFX11-LABEL: name: fptosi_s16_to_s32_fneg_vv
209221 ; GFX11: liveins: $vgpr0
210222 ; GFX11-NEXT: {{ $}}
211223 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
212224 ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
213225 ; 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_]]
217229 %0:vgpr(s32) = COPY $vgpr0
218230 %1:vgpr(s16) = G_TRUNC %0
219231 %2:vgpr(s16) = G_FNEG %1
@@ -235,23 +247,25 @@ body: |
235247 ; GCN: liveins: $vgpr0
236248 ; GCN-NEXT: {{ $}}
237249 ; 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+ ;
241254 ; VI-LABEL: name: fptosi_s16_to_s1_vv
242255 ; VI: liveins: $vgpr0
243256 ; VI-NEXT: {{ $}}
244257 ; 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+ ;
248262 ; GFX11-LABEL: name: fptosi_s16_to_s1_vv
249263 ; GFX11: liveins: $vgpr0
250264 ; GFX11-NEXT: {{ $}}
251265 ; 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_]]
255269 %0:vgpr(s32) = COPY $vgpr0
256270 %1:vgpr(s16) = G_TRUNC %0
257271 %2:vgpr(s32) = G_FPTOSI %1
@@ -273,23 +287,25 @@ body: |
273287 ; GCN: liveins: $sgpr0
274288 ; GCN-NEXT: {{ $}}
275289 ; 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+ ;
279294 ; VI-LABEL: name: fptosi_s16_to_s1_vs
280295 ; VI: liveins: $sgpr0
281296 ; VI-NEXT: {{ $}}
282297 ; 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+ ;
286302 ; GFX11-LABEL: name: fptosi_s16_to_s1_vs
287303 ; GFX11: liveins: $sgpr0
288304 ; GFX11-NEXT: {{ $}}
289305 ; 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_]]
293309 %0:sgpr(s32) = COPY $sgpr0
294310 %1:sgpr(s16) = G_TRUNC %0
295311 %2:vgpr(s32) = G_FPTOSI %1
@@ -313,27 +329,29 @@ body: |
313329 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
314330 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
315331 ; 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+ ;
319336 ; VI-LABEL: name: fptosi_s16_to_s1_fneg_vv
320337 ; VI: liveins: $vgpr0
321338 ; VI-NEXT: {{ $}}
322339 ; VI-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
323340 ; VI-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
324341 ; 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+ ;
328346 ; GFX11-LABEL: name: fptosi_s16_to_s1_fneg_vv
329347 ; GFX11: liveins: $vgpr0
330348 ; GFX11-NEXT: {{ $}}
331349 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
332350 ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 32768
333351 ; 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_]]
337355 %0:vgpr(s32) = COPY $vgpr0
338356 %1:vgpr(s16) = G_TRUNC %0
339357 %2:vgpr(s16) = G_FNEG %1
0 commit comments