| # 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: |