linux-packaging-mono/external/llvm/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir
Xamarin Public Jenkins (auto-signing) 64ac736ec5 Imported Upstream version 6.0.0.172
Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
2019-04-12 14:10:50 +00:00

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: