brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 83297cf Raw
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