83 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp2; RUN: llc < %s | FileCheck %s3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-linux-gnu"6 7define i32 @foo_noprotect() local_unnamed_addr {8; CHECK-LABEL: foo_noprotect:9; CHECK: # %bb.0:10; CHECK-NEXT: pushq %rbp11; CHECK-NEXT: .cfi_def_cfa_offset 1612; CHECK-NEXT: .cfi_offset %rbp, -1613; CHECK-NEXT: movq %rsp, %rbp14; CHECK-NEXT: .cfi_def_cfa_register %rbp15; CHECK-NEXT: andq $-4096, %rsp # imm = 0xF00016; CHECK-NEXT: subq $73728, %rsp # imm = 0x1200017; CHECK-NEXT: movl $1, 392(%rsp)18; CHECK-NEXT: movl $1, 28792(%rsp)19; CHECK-NEXT: movl (%rsp), %eax20; CHECK-NEXT: movq %rbp, %rsp21; CHECK-NEXT: popq %rbp22; CHECK-NEXT: .cfi_def_cfa %rsp, 823; CHECK-NEXT: retq24 %a = alloca i32, i64 18000, align 409625 %b0 = getelementptr inbounds i32, ptr %a, i64 9826 %b1 = getelementptr inbounds i32, ptr %a, i64 719827 store volatile i32 1, ptr %b028 store volatile i32 1, ptr %b129 %c = load volatile i32, ptr %a30 ret i32 %c31}32 33define i32 @foo_protect() local_unnamed_addr #0 {34; CHECK-LABEL: foo_protect:35; CHECK: # %bb.0:36; CHECK-NEXT: pushq %rbp37; CHECK-NEXT: .cfi_def_cfa_offset 1638; CHECK-NEXT: .cfi_offset %rbp, -1639; CHECK-NEXT: movq %rsp, %rbp40; CHECK-NEXT: .cfi_def_cfa_register %rbp41; CHECK-NEXT: movq %rsp, %r1142; CHECK-NEXT: andq $-4096, %r11 # imm = 0xF00043; CHECK-NEXT: cmpq %rsp, %r1144; CHECK-NEXT: je .LBB1_445; CHECK-NEXT: # %bb.1:46; CHECK-NEXT: subq $4096, %rsp # imm = 0x100047; CHECK-NEXT: cmpq %r11, %rsp48; CHECK-NEXT: jb .LBB1_349; CHECK-NEXT: .LBB1_2: # =>This Inner Loop Header: Depth=150; CHECK-NEXT: movq $0, (%rsp)51; CHECK-NEXT: subq $4096, %rsp # imm = 0x100052; CHECK-NEXT: cmpq %rsp, %r1153; CHECK-NEXT: jb .LBB1_254; CHECK-NEXT: .LBB1_3:55; CHECK-NEXT: movq %r11, %rsp56; CHECK-NEXT: movq $0, (%rsp)57; CHECK-NEXT: .LBB1_4:58; CHECK-NEXT: movq %rsp, %r1159; CHECK-NEXT: subq $73728, %r11 # imm = 0x1200060; CHECK-NEXT: .LBB1_5: # =>This Inner Loop Header: Depth=161; CHECK-NEXT: subq $4096, %rsp # imm = 0x100062; CHECK-NEXT: movq $0, (%rsp)63; CHECK-NEXT: cmpq %r11, %rsp64; CHECK-NEXT: jne .LBB1_565; CHECK-NEXT: # %bb.6:66; CHECK-NEXT: movl $1, 392(%rsp)67; CHECK-NEXT: movl $1, 28792(%rsp)68; CHECK-NEXT: movl (%rsp), %eax69; CHECK-NEXT: movq %rbp, %rsp70; CHECK-NEXT: popq %rbp71; CHECK-NEXT: .cfi_def_cfa %rsp, 872; CHECK-NEXT: retq73 %a = alloca i32, i64 18000, align 409674 %b0 = getelementptr inbounds i32, ptr %a, i64 9875 %b1 = getelementptr inbounds i32, ptr %a, i64 719876 store volatile i32 1, ptr %b077 store volatile i32 1, ptr %b178 %c = load volatile i32, ptr %a79 ret i32 %c80}81 82attributes #0 = {"probe-stack"="inline-asm"}83