1# RUN: llc -run-pass=livevars,twoaddressinstruction -mtriple=x86_64-- -o - %s | FileCheck %s
2---
3name:            foo
4tracksRegLiveness: true
5body:             |
6  bb.0:
7    liveins: $edi
8
9    %0:gr32 = COPY killed $edi
10    %1:gr32 = COPY killed %0
11    %4:gr32 = XOR32ri8 %1, 1, implicit-def dead $eflags
12    DBG_VALUE %4
13    %5:gr32 = COPY %4
14    PUSH32r killed %1, implicit-def $esp, implicit $esp
15    $eax = COPY killed %5
16    RETQ implicit killed $eax
17
18...
19
20# Verify that the DBG_VALUE instruction does not inhibit
21# TwoAddressInstructionPass::rescheduleMIBelowKill optimization
22
23# CHECK: PUSH32r %1, implicit-def $esp, implicit $esp
24# CHECK-NEXT: %2:gr32 = COPY killed %1
25# CHECK-NEXT: %2:gr32 = XOR32ri8 %2, 1, implicit-def dead $eflags
26# CHECK-NEXT: DBG_VALUE %2
27# CHECK-NEXT: %3:gr32 = COPY killed %2
28