1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/test/CodeGen/AArch64/machine-outliner-bad-adrp.mir
Jessica Paquette b8eb640cc8 [MachineOutliner] AArch64: Don't outline ADRPs with un-outlinable operands
If an ADRP appears with, say, a CPI operand, we shouldn't outline it.

This moves the check for unsafe operands so that it occurs before the special-case
for ADRPs. Also add a test for outlining ADRPs.

llvm-svn: 328674
2018-03-27 22:23:48 +00:00

42 lines
1.1 KiB
YAML

# RUN: llc -mtriple=aarch64--- -verify-machineinstrs -simplify-mir -run-pass=machine-outliner %s -o - | FileCheck %s
--- |
define void @foo() #0 {
ret void
}
attributes #0 = { noredzone }
...
---
name: foo
constants:
- id: 0
value: 'float 1.990000e+02'
alignment: 4
isTargetSpecific: false
body: |
bb.0:
liveins: $w1, $w10, $x14, $x15, $x16, $x10, $lr
; CHECK-NOT: BL
$w10 = MOVZWi 4, 0, implicit-def $x10
renamable $x14 = ADRP target-flags(aarch64-page) %const.0
renamable $x15 = ADRP target-flags(aarch64-page) %const.0
renamable $x16 = ADRP target-flags(aarch64-page) %const.0
$w10 = MOVZWi 5, 0, implicit-def $x10
renamable $x14 = ADRP target-flags(aarch64-page) %const.0
renamable $x15 = ADRP target-flags(aarch64-page) %const.0
renamable $x16 = ADRP target-flags(aarch64-page) %const.0
$w10 = MOVZWi 6, 0, implicit-def $x10
renamable $x14 = ADRP target-flags(aarch64-page) %const.0
renamable $x15 = ADRP target-flags(aarch64-page) %const.0
renamable $x16 = ADRP target-flags(aarch64-page) %const.0
RET undef $lr