66 lines
1.8 KiB
Text
66 lines
1.8 KiB
Text
|
# RUN: llc -run-pass x86-fixup-LEAs -mtriple=i386 -verify-machineinstrs -mcpu=corei7-avx -o - %s | FileCheck %s
|
||
|
#
|
||
|
# Test that several LEA => ADD transforms get substitutions applied to them,
|
||
|
# for corner cases that we can only hit with -mtriple=i386.
|
||
|
---
|
||
|
name: test2add_32
|
||
|
# CHECK: name: test2add_32
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
debugInstrRef: true
|
||
|
liveins:
|
||
|
- { reg: '$eax' }
|
||
|
- { reg: '$ebp' }
|
||
|
# CHECK: debugValueSubstitutions:
|
||
|
# CHECK-NAME: - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $eax, $ebp
|
||
|
|
||
|
; CHECK: $eax = ADD32ri {{.*}} debug-instr-number 2
|
||
|
$eax = LEA32r killed $eax, 1, killed $ebp, -5, $noreg, debug-instr-number 1
|
||
|
RET64 $eax
|
||
|
|
||
|
...
|
||
|
---
|
||
|
name: testleais_ebp_32
|
||
|
# CHECK-LABEL: name: testleais_ebp_32
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
debugInstrRef: true
|
||
|
liveins:
|
||
|
- { reg: '$eax' }
|
||
|
- { reg: '$ebx' }
|
||
|
- { reg: '$ebp' }
|
||
|
# CHECK: debugValueSubstitutions:
|
||
|
# CHECK-NEXT: - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $eax, $ebp, $ebx
|
||
|
|
||
|
; CHECK: $ebx = LEA32r $noreg, 2, $ebp, 0, $noreg, debug-instr-number 2
|
||
|
$ebx = LEA32r killed $ebp, 1, $ebp, 0, $noreg, debug-instr-number 1
|
||
|
RET64 $ebx
|
||
|
|
||
|
...
|
||
|
---
|
||
|
name: testleabid_ebp_leaisd_32
|
||
|
# CHECK-LABEL: name: testleabid_ebp_leaisd_32
|
||
|
alignment: 16
|
||
|
tracksRegLiveness: true
|
||
|
debugInstrRef: true
|
||
|
liveins:
|
||
|
- { reg: '$ebx' }
|
||
|
- { reg: '$ebp' }
|
||
|
# CHECK: debugValueSubstitutions:
|
||
|
# CHECK-NEXT: - { srcinst: 1, srcop: 0, dstinst: 2, dstop: 0, subreg: 0 }
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $eax, $ebp, $ebx
|
||
|
|
||
|
; CHECK: $ebx = LEA32r $noreg, 2, $ebp, 5, $noreg, debug-instr-number 2
|
||
|
$ebx = LEA32r $ebp, 1, $ebp, 5, $noreg, debug-instr-number 1
|
||
|
RET64 $ebx
|
||
|
|
||
|
...
|