xref: /llvm-project/llvm/test/DebugInfo/MIR/InstrRef/x86-lea-fixup-2.mir (revision c81a121f3f230cfe468b6def6d2904b4aefb855b)
1# RUN: llc -run-pass x86-fixup-LEAs -mtriple=i386 -verify-machineinstrs -mcpu=corei7-avx -o - %s | FileCheck %s
2#
3# Test that several LEA => ADD transforms get substitutions applied to them,
4# for corner cases that we can only hit with -mtriple=i386.
5---
6name:            test2add_32
7# CHECK: name: test2add_32
8alignment:       16
9tracksRegLiveness: true
10debugInstrRef: true
11liveins:
12  - { reg: '$eax' }
13  - { reg: '$ebp' }
14# CHECK:       debugValueSubstitutions:
15# CHECK-NAME:  - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
16body:             |
17  bb.0:
18    liveins: $eax, $ebp
19
20    ; CHECK: $eax = ADD32ri {{.*}} debug-instr-number 2
21    $eax = LEA32r killed $eax, 1, killed $ebp, -5, $noreg, debug-instr-number 1
22    RET64 $eax
23
24...
25---
26name:            testleais_ebp_32
27# CHECK-LABEL: name: testleais_ebp_32
28alignment:       16
29tracksRegLiveness: true
30debugInstrRef: true
31liveins:
32  - { reg: '$eax' }
33  - { reg: '$ebx' }
34  - { reg: '$ebp' }
35# CHECK:       debugValueSubstitutions:
36# CHECK-NEXT:  - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
37body:             |
38  bb.0:
39    liveins: $eax, $ebp, $ebx
40
41    ; CHECK: $ebx = LEA32r $noreg, 2, $ebp, 0, $noreg, debug-instr-number 2
42    $ebx = LEA32r killed $ebp, 1, $ebp, 0, $noreg, debug-instr-number 1
43    RET64 $ebx
44
45...
46---
47name:            testleabid_ebp_leaisd_32
48# CHECK-LABEL: name: testleabid_ebp_leaisd_32
49alignment:       16
50tracksRegLiveness: true
51debugInstrRef: true
52liveins:
53  - { reg: '$ebx' }
54  - { reg: '$ebp' }
55# CHECK:       debugValueSubstitutions:
56# CHECK-NEXT:  - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
57body:             |
58  bb.0:
59    liveins: $eax, $ebp, $ebx
60
61    ; CHECK: $ebx = LEA32r $noreg, 2, $ebp, 5, $noreg, debug-instr-number 2
62    $ebx = LEA32r $ebp, 1, $ebp, 5, $noreg, debug-instr-number 1
63    RET64 $ebx
64
65...
66