llvm-project/llvm/test/CodeGen/X86/unreachable-mbb-undef-phi.mir

39 lines
964 B
YAML

# RUN: llc -march=x86-64 %s -o - -run-pass=processimpdefs -run-pass=unreachable-mbb-elimination | FileCheck %s
---
name: f
tracksRegLiveness: true
registers:
- { id: 0, class: gr32, preferred-register: '' }
- { id: 1, class: gr32, preferred-register: '' }
- { id: 2, class: gr32, preferred-register: '' }
body: |
bb.0:
%0 = IMPLICIT_DEF
JMP_1 %bb.1
bb.1:
%1 = PHI %0, %bb.0, %2, %bb.2
%2 = ADD32ri8 killed %1, 1, implicit-def %eflags
JMP_1 %bb.3
bb.2:
JMP_1 %bb.1
bb.3:
...
# bb2 above is dead and should be removed and the PHI should be replaced with a
# COPY from an undef value since the bb0 value in the PHI is undef.
# CHECK: bb.0:
# CHECK: successors: %bb.1
# CHECK: JMP_1 %bb.1
# CHECK: bb.1:
# CHECK: successors: %bb.2
# CHECK: [[TMP1:%[0-9]+]]:gr32 = COPY undef %{{[0-9]+}}
# CHECK: %{{[0-9]+}}:gr32 = ADD32ri8 killed [[TMP1]], 1
# CHECK: JMP_1 %bb.2
# CHECK: bb.2: