@@ -217,3 +217,91 @@ body: |
217
217
%4:vgpr(p5) = G_PTR_ADD %3, %2
218
218
S_ENDPGM 0, implicit %4
219
219
...
220
+
221
+ ---
222
+
223
+ name : add_p3_s32_vgpr_vgpr_vgpr
224
+ legalized : true
225
+ regBankSelected : true
226
+ tracksRegLiveness : true
227
+
228
+ body : |
229
+ bb.0:
230
+ liveins: $vgpr0, $vgpr1, $vgpr2
231
+
232
+ ; GFX8-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
233
+ ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
234
+ ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
235
+ ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
236
+ ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
237
+ ; GFX8: %3:vgpr_32, dead %6:sreg_64_xexec = V_ADD_I32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
238
+ ; GFX8: %4:vgpr_32, dead %5:sreg_64_xexec = V_ADD_I32_e64 [[COPY2]], %3, 0, implicit $exec
239
+ ; GFX8: S_ENDPGM 0, implicit %4
240
+ ; GFX9-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
241
+ ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
242
+ ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
243
+ ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
244
+ ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
245
+ ; GFX9: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
246
+ ; GFX9: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
247
+ ; GFX9: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
248
+ ; GFX10-LABEL: name: add_p3_s32_vgpr_vgpr_vgpr
249
+ ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
250
+ ; GFX10: $vcc_hi = IMPLICIT_DEF
251
+ ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
252
+ ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
253
+ ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
254
+ ; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
255
+ ; GFX10: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
256
+ ; GFX10: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
257
+ %0:vgpr(s32) = COPY $vgpr0
258
+ %1:vgpr(s32) = COPY $vgpr1
259
+ %2:vgpr(p3) = COPY $vgpr2
260
+ %3:vgpr(s32) = G_ADD %0, %1
261
+ %4:vgpr(p3) = G_PTR_ADD %2, %3
262
+ S_ENDPGM 0, implicit %4
263
+ ...
264
+
265
+ ---
266
+
267
+ name : add_p5_s32_vgpr_vgpr_vgpr
268
+ legalized : true
269
+ regBankSelected : true
270
+ tracksRegLiveness : true
271
+
272
+ body : |
273
+ bb.0:
274
+ liveins: $vgpr0, $vgpr1, $vgpr2
275
+
276
+ ; GFX8-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
277
+ ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
278
+ ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
279
+ ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
280
+ ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
281
+ ; GFX8: %3:vgpr_32, dead %6:sreg_64_xexec = V_ADD_I32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
282
+ ; GFX8: %4:vgpr_32, dead %5:sreg_64_xexec = V_ADD_I32_e64 [[COPY2]], %3, 0, implicit $exec
283
+ ; GFX8: S_ENDPGM 0, implicit %4
284
+ ; GFX9-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
285
+ ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
286
+ ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
287
+ ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
288
+ ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
289
+ ; GFX9: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
290
+ ; GFX9: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
291
+ ; GFX9: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
292
+ ; GFX10-LABEL: name: add_p5_s32_vgpr_vgpr_vgpr
293
+ ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
294
+ ; GFX10: $vcc_hi = IMPLICIT_DEF
295
+ ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
296
+ ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
297
+ ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
298
+ ; GFX10: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[COPY1]], 0, implicit $exec
299
+ ; GFX10: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY2]], [[V_ADD_U32_e64_]], 0, implicit $exec
300
+ ; GFX10: S_ENDPGM 0, implicit [[V_ADD_U32_e64_1]]
301
+ %0:vgpr(s32) = COPY $vgpr0
302
+ %1:vgpr(s32) = COPY $vgpr1
303
+ %2:vgpr(p5) = COPY $vgpr2
304
+ %3:vgpr(s32) = G_ADD %0, %1
305
+ %4:vgpr(p5) = G_PTR_ADD %2, %3
306
+ S_ENDPGM 0, implicit %4
307
+ ...
0 commit comments