| # 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 |
| ... |