Issue 139102
Summary [AMDGPU] Bundling in SIInsertHardClauses can break physical register liveness
Labels backend:AMDGPU
Assignees
Reporter jayfoad
    With this [test case](https://github.com/user-attachments/files/20105970/r.txt) I get:
```
# After SI Insert Hard Clauses
# Machine code for function clause_implicit_def: IsSSA, NoPHIs, TracksLiveness, NoVRegs

bb.0:
 liveins: $vgpr0, $sgpr32
  BUNDLE implicit-def $vgpr2, implicit-def $vgpr2_lo16, implicit-def $vgpr2_hi16, implicit-def $vgpr3, implicit-def $vgpr3_lo16, implicit-def $vgpr3_hi16, implicit $vgpr0, implicit $sgpr32, implicit $exec, implicit $flat_scr, implicit $vgpr2_vgpr3 {
    S_CLAUSE 1
 SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr
    $vgpr2 = IMPLICIT_DEF
    $vgpr3 = IMPLICIT_DEF
 SCRATCH_STORE_DWORDX2_SADDR $vgpr2_vgpr3, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr
  }

# End machine code for function clause_implicit_def.

*** Bad machine code: Using an undefined physical register ***
- function:    clause_implicit_def
- basic block: %bb.0 (0x2a2d18a8)
- instruction: BUNDLE implicit-def $vgpr2, implicit-def $vgpr2_lo16, implicit-def $vgpr2_hi16, implicit-def $vgpr3, implicit-def $vgpr3_lo16, implicit-def $vgpr3_hi16, implicit $vgpr0, implicit $sgpr32, implicit $exec, implicit $flat_scr, implicit $vgpr2_vgpr3
- operand 10: implicit $vgpr2_vgpr3

*** Bad machine code: Using an undefined physical register ***
- function:    clause_implicit_def
- basic block: %bb.0 (0x2a2d18a8)
- instruction: SCRATCH_STORE_DWORDX2_SADDR $vgpr2_vgpr3, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr
- operand 0: $vgpr2_vgpr3
LLVM ERROR: Found 2 machine code errors.
```


_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to