30 lines
1 KiB
LLVM
30 lines
1 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
|
|
; RUN: llc -global-isel %s -o - | FileCheck %s
|
|
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
|
target triple = "arm64-apple-macosx14.0.0"
|
|
|
|
define void @test() {
|
|
; CHECK-LABEL: test:
|
|
; CHECK: ; %bb.0: ; %entry
|
|
; CHECK-NEXT: sub sp, sp, #32
|
|
; CHECK-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill
|
|
; CHECK-NEXT: .cfi_def_cfa_offset 32
|
|
; CHECK-NEXT: .cfi_offset w30, -8
|
|
; CHECK-NEXT: .cfi_offset w29, -16
|
|
; CHECK-NEXT: mov x0, xzr
|
|
; CHECK-NEXT: mov x1, xzr
|
|
; CHECK-NEXT: ldr x8, [x0]
|
|
; CHECK-NEXT: ldr w9, [x8], #8
|
|
; CHECK-NEXT: str x8, [x0]
|
|
; CHECK-NEXT: str x9, [sp]
|
|
; CHECK-NEXT: bl _sprintf
|
|
; CHECK-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
|
|
; CHECK-NEXT: add sp, sp, #32
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%0 = va_arg ptr null, i32
|
|
%sprintf1776 = tail call i32 (ptr, ptr, ...) @sprintf(ptr null, ptr null, i32 %0)
|
|
ret void
|
|
}
|
|
|
|
declare i32 @sprintf(ptr, ptr, ...)
|