1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp
2; RUN: llc < %s | FileCheck %s
3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4target triple = "x86_64-unknown-linux-gnu"
5
6declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg);
7
8; it's important that we don't use the call as a probe here
9define void @foo() local_unnamed_addr #0 {
10; CHECK-LABEL: foo:
11; CHECK:       # %bb.0:
12; CHECK-NEXT:    subq $4096, %rsp # imm = 0x1000
13; CHECK-NEXT:    .cfi_adjust_cfa_offset 4096
14; CHECK-NEXT:    movq $0, (%rsp)
15; CHECK-NEXT:    subq $3912, %rsp # imm = 0xF48
16; CHECK-NEXT:    .cfi_def_cfa_offset 8016
17; CHECK-NEXT:    movq %rsp, %rdi
18; CHECK-NEXT:    movl $8000, %edx # imm = 0x1F40
19; CHECK-NEXT:    xorl %esi, %esi
20; CHECK-NEXT:    callq memset@PLT
21; CHECK-NEXT:    addq $8008, %rsp # imm = 0x1F48
22; CHECK-NEXT:    .cfi_def_cfa_offset 8
23; CHECK-NEXT:    retq
24  %a = alloca i8, i64 8000, align 16
25  call void @llvm.memset.p0i8.i64(i8* align 16 %a, i8 0, i64 8000, i1 false)
26  ret void
27}
28
29attributes #0 =  {"probe-stack"="inline-asm"}
30