|
| 1 | +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| 2 | +# RUN: not --crash llc -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs -run-pass=si-lower-sgpr-spills %s -o /dev/null 2>&1 | FileCheck -check-prefix=VERIFIER %s |
| 3 | + |
| 4 | +# FIXME : Currently, MRI's liveIn check for registers does not take the corresponding live-in's sub-registers into account. As a result |
| 5 | +# in SILowerSGPRSpills, the SubReg spill gets marked KILLED even though its SuperReg is in the function Live-ins. This causes machine |
| 6 | +# verifier to now fail at direct usage of that SubReg, which intially should not be any problem before adding spill. |
| 7 | + |
| 8 | +# VERIFIER: After SI lower SGPR spill instructions |
| 9 | + |
| 10 | +# VERIFIER: *** Bad machine code: Using an undefined physical register *** |
| 11 | +# VERIFIER: - instruction: S_NOP 0, implicit $sgpr50 |
| 12 | +# VERIFIER-NEXT: - operand 1: implicit $sgpr50 |
| 13 | + |
| 14 | +# VERIFIER: *** Bad machine code: Using an undefined physical register *** |
| 15 | +# VERIFIER: - instruction: S_NOP 0, implicit $sgpr52 |
| 16 | +# VERIFIER-NEXT: - operand 1: implicit $sgpr52 |
| 17 | + |
| 18 | +# VERIFIER: *** Bad machine code: Using an undefined physical register *** |
| 19 | +# VERIFIER: - instruction: S_NOP 0, implicit $sgpr55 |
| 20 | +# VERIFIER-NEXT: - operand 1: implicit $sgpr55 |
| 21 | + |
| 22 | +# VERIFIER: LLVM ERROR: Found 3 machine code errors. |
| 23 | +--- |
| 24 | +name: spill_partial_live_csr_sgpr_test |
| 25 | +tracksRegLiveness: true |
| 26 | +liveins: |
| 27 | + - { reg: '$sgpr50_sgpr51' } |
| 28 | + - { reg: '$sgpr52_sgpr53' } |
| 29 | + - { reg: '$sgpr54_sgpr55' } |
| 30 | +body: | |
| 31 | + bb.0: |
| 32 | + liveins: $sgpr50_sgpr51, $sgpr52_sgpr53, $sgpr54_sgpr55 |
| 33 | +
|
| 34 | + S_NOP 0, implicit $sgpr50 |
| 35 | + $sgpr50 = S_MOV_B32 0 |
| 36 | + S_NOP 0, implicit $sgpr52 |
| 37 | + $sgpr52_sgpr53 = S_MOV_B64 0 |
| 38 | + S_NOP 0, implicit $sgpr55 |
| 39 | + $sgpr54_sgpr55 = S_MOV_B64 0 |
| 40 | + $sgpr56 = S_MOV_B32 0 |
| 41 | +... |
| 42 | + |
0 commit comments