You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.2 KiB
43 lines
1.2 KiB
# RUN: llc -run-pass=twoaddressinstruction -mtriple=x86_64-- -o - %s -experimental-debug-variable-locations | FileCheck %s
|
|
#
|
|
# REQUIRES: x86-registered-target
|
|
#
|
|
# Test that a new instruction (LEA) is created when the two-addr add below is
|
|
# converted to three address; and that an appropriate substitution is created.
|
|
# Maybe at some point we'll normalise DBG_INSTR_REFs on output, but until then,
|
|
# lets not.
|
|
#
|
|
# CHECK: debugValueSubstitutions:
|
|
# CHECK-NEXT: - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0 }
|
|
#
|
|
# CHECK: LEA64_32r
|
|
# CHECK-SAME: debug-instr-number 2
|
|
#
|
|
# CHECK: DBG_INSTR_REF 1, 0
|
|
---
|
|
name: test1
|
|
alignment: 16
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: gr32 }
|
|
- { id: 1, class: gr32 }
|
|
- { id: 2, class: gr32 }
|
|
liveins:
|
|
- { reg: '$edi', virtual-reg: '%0' }
|
|
frameInfo:
|
|
maxAlignment: 1
|
|
machineFunctionInfo: {}
|
|
body: |
|
|
bb.0:
|
|
liveins: $edi
|
|
|
|
%0:gr32 = COPY killed $edi
|
|
%1:gr32 = SHL32ri killed %0, 5, implicit-def dead $eflags
|
|
%2:gr32 = ADD32ri8_DB killed %1, 3, implicit-def dead $eflags, debug-instr-number 1
|
|
DBG_INSTR_REF 1, 0
|
|
$eax = COPY killed %2
|
|
RET 0, killed $eax
|
|
|
|
...
|
|
|