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