llvm-mirror/test/CodeGen/AArch64/machine-outliner-tail.ll
Eli Friedman e346f11594 [MachineOutliner] Don't save/restore LR for tail calls.
The cost computation assumes we do this correctly, but the actual
lowering was wrong.

Differential Revision: https://reviews.llvm.org/D46923

llvm-svn: 332514
2018-05-16 19:49:01 +00:00

23 lines
553 B
LLVM

; RUN: llc -verify-machineinstrs -enable-machine-outliner -mtriple=aarch64-linux-gnu < %s | FileCheck %s
; CHECK: OUTLINED_FUNCTION_0:
; CHECK: orr w0, wzr, #0x1
; CHECK-NEXT: orr w1, wzr, #0x2
; CHECK-NEXT: orr w2, wzr, #0x3
; CHECK-NEXT: orr w3, wzr, #0x4
; CHECK-NEXT: b z
define void @a() {
entry:
tail call void @z(i32 1, i32 2, i32 3, i32 4)
ret void
}
declare void @z(i32, i32, i32, i32)
define dso_local void @b(i32* nocapture readnone %p) {
entry:
tail call void @z(i32 1, i32 2, i32 3, i32 4)
ret void
}