@@ -447,3 +447,29 @@ body: |
447
447
%13:vreg_64 = REG_SEQUENCE %9, %subreg.sub0, %11, %subreg.sub1
448
448
%15:vgpr_32 = FLAT_ATOMIC_ADD_RTN %13:vreg_64, %0.sub0, 0, 0, implicit $exec, implicit $flat_scr
449
449
...
450
+
451
+ ---
452
+ # GCN-LABEL: name: nullptr_negative_offset
453
+ # GCN: V_ADD_CO_U32_e64 -1, 0, 0
454
+ # GCN: V_ADDC_U32_e64 -1, $vgpr1, $vcc, 0
455
+
456
+ name : nullptr_negative_offset
457
+ body : |
458
+ bb.0.entry:
459
+ $sgpr0_sgpr1 = S_MOV_B64 $src_private_base
460
+ $vgpr1 = COPY $sgpr1
461
+ $vgpr0, $vcc = V_ADD_CO_U32_e64 -1, 0, 0, implicit $exec
462
+ $vgpr1, dead $vcc = V_ADDC_U32_e64 -1, $vgpr1, $vcc, 0, implicit $exec
463
+ $vgpr0 = FLAT_LOAD_UBYTE $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
464
+ $vcc = V_CMP_EQ_U16_e64 0, $vgpr0, implicit $exec
465
+ $sgpr0_sgpr1 = S_MOV_B64 0
466
+
467
+ bb.1:
468
+ $sgpr2_sgpr3 = S_AND_B64 $exec, $vcc, implicit-def $scc
469
+ $sgpr0_sgpr1 = S_OR_B64 $sgpr2_sgpr3, $sgpr0_sgpr1, implicit-def $scc
470
+ $exec = S_ANDN2_B64_term $exec, $sgpr0_sgpr1, implicit-def $scc
471
+ S_CBRANCH_EXECNZ %bb.1, implicit $exec
472
+ S_BRANCH %bb.2
473
+
474
+ bb.2:
475
+ S_ENDPGM 0
0 commit comments