xref: /llvm-project/llvm/test/CodeGen/AMDGPU/coalescer-subranges-prune-kill-copy.mir (revision e7900e695e7dfb36be8651d914a31f42a5d6c634)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=register-coalescer -o - %s | FileCheck -check-prefix=GCN %s
3
4# Test used to crash with message:
5# JoinVals::ConflictResolution (anonymous namespace)::JoinVals::analyzeValue(unsigned int, (anonymous namespace)::JoinVals &): Assertion `DefMI != nullptr' failed
6
7---
8name:            test
9tracksRegLiveness: true
10body:             |
11  ; GCN-LABEL: name: test
12  ; GCN: bb.0:
13  ; GCN-NEXT:   successors: %bb.2(0x80000000)
14  ; GCN-NEXT: {{  $}}
15  ; GCN-NEXT:   undef [[DEF:%[0-9]+]].sub0:vreg_128 = IMPLICIT_DEF
16  ; GCN-NEXT:   [[DEF:%[0-9]+]].sub1:vreg_128 = IMPLICIT_DEF
17  ; GCN-NEXT:   S_BRANCH %bb.2
18  ; GCN-NEXT: {{  $}}
19  ; GCN-NEXT: bb.1:
20  ; GCN-NEXT:   successors: %bb.2(0x80000000)
21  ; GCN-NEXT: {{  $}}
22  ; GCN-NEXT:   [[DEF:%[0-9]+]]:vreg_128 = IMPLICIT_DEF
23  ; GCN-NEXT: {{  $}}
24  ; GCN-NEXT: bb.2:
25  ; GCN-NEXT:   [[DEF:%[0-9]+]].sub2:vreg_128 = COPY undef %3:sreg_32
26  ; GCN-NEXT:   S_ENDPGM 0, implicit [[DEF]]
27  bb.0:
28    undef %0.sub0:vreg_128 = IMPLICIT_DEF
29    %0.sub1:vreg_128 = IMPLICIT_DEF
30    %1:vreg_128 = COPY %0
31    %2:vreg_128 = COPY killed %0
32    S_BRANCH %bb.2
33
34  bb.1:
35    %1:vreg_128 = COPY killed undef %1
36
37  bb.2:
38    %1.sub2:vreg_128 = COPY undef %3:sreg_32
39    %2:vreg_128 = COPY killed %1
40    %4:vreg_128 = COPY killed %2
41    S_ENDPGM 0, implicit killed %4
42
43...
44