30 lines
1.1 KiB
YAML
30 lines
1.1 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
|
|
# RUN: llc -mtriple=i386-unknown-linux-gnu -mattr=slow-3ops-lea -run-pass x86-fixup-LEAs -o - %s | FileCheck %s
|
|
|
|
--- |
|
|
define i32 @square(i32 %0) local_unnamed_addr {
|
|
%blub = getelementptr i8, ptr blockaddress(@square, %2), i32 %0
|
|
indirectbr ptr %blub, [label %2]
|
|
|
|
2:
|
|
ret i32 0
|
|
}
|
|
|
|
---
|
|
name: square
|
|
body: |
|
|
; CHECK-LABEL: name: square
|
|
; CHECK: bb.0:
|
|
; CHECK-NEXT: renamable $eax = LEA32r renamable $ebx, 1, renamable $ebp, 0, $noreg
|
|
; CHECK-NEXT: $eax = ADD32ri $eax, target-flags(x86-gotoff) blockaddress(@square, %ir-block.1), implicit-def $eflags
|
|
; CHECK-NEXT: JMP32r killed renamable $eax
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1 (%ir-block.1, ir-block-address-taken %ir-block.1):
|
|
; CHECK-NEXT: RET 0
|
|
bb.0:
|
|
renamable $eax = LEA32r renamable $ebp, 1, renamable $ebx, target-flags(x86-gotoff) blockaddress(@square, %ir-block.1), $noreg
|
|
JMP32r killed renamable $eax
|
|
|
|
bb.1 (%ir-block.1, ir-block-address-taken %ir-block.1):
|
|
RET 0
|
|
...
|