Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||||
; RUN: llc -global-isel -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s | ; RUN: llc -global-isel -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s | ||||
declare void @byval_i32(i32* byval(i32) %ptr) | declare void @byval_i32(i32* byval(i32) %ptr) | ||||
define void @call_byval_i32(i32* %incoming) { | define void @call_byval_i32(i32* %incoming) { | ||||
; CHECK-LABEL: call_byval_i32: | ; CHECK-LABEL: call_byval_i32: | ||||
; CHECK: // %bb.0: | ; CHECK: // %bb.0: | ||||
; CHECK-NEXT: sub sp, sp, #32 | ; CHECK-NEXT: sub sp, sp, #32 | ||||
; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill | ; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill | ||||
; CHECK-NEXT: .cfi_def_cfa_offset 32 | ; CHECK-NEXT: .cfi_def_cfa_offset 32 | ||||
; CHECK-NEXT: .cfi_offset w30, -16 | ; CHECK-NEXT: .cfi_offset w30, -16 | ||||
; CHECK-NEXT: ldr w8, [x0] | ; CHECK-NEXT: ldr w8, [x0] | ||||
; CHECK-NEXT: str w8, [sp] | ; CHECK-NEXT: str w8, [sp] | ||||
; CHECK-NEXT: bl byval_i32 | ; CHECK-NEXT: bl byval_i32 | ||||
; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload | ; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload | ||||
; CHECK-NEXT: .cfi_adjust_cfa_offset 16 | |||||
; CHECK-NEXT: add sp, sp, #32 | ; CHECK-NEXT: add sp, sp, #32 | ||||
; CHECK-NEXT: ret | ; CHECK-NEXT: ret | ||||
call void @byval_i32(i32* byval(i32) %incoming) | call void @byval_i32(i32* byval(i32) %incoming) | ||||
ret void | ret void | ||||
} | } | ||||
declare void @byval_a64i32([64 x i32]* byval([64 x i32]) %ptr) | declare void @byval_a64i32([64 x i32]* byval([64 x i32]) %ptr) | ||||
▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines |