brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 4a4db8c Raw
68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=sparc < %s | FileCheck %s --check-prefix=V83; RUN: llc -mtriple=sparcv9 < %s | FileCheck %s --check-prefix=SPARC644 5; (this should ideally be doing "add 4+7; and -8", instead of6;  "add 7; and -8; add 8"; see comments in LowerDYNAMIC_STACKALLOC)7 8define void @variable_alloca_with_adj_call_stack(i32 %num) nounwind {9; V8-LABEL: variable_alloca_with_adj_call_stack:10; V8:       ! %bb.0: ! %entry11; V8-NEXT:    save %sp, -96, %sp12; V8-NEXT:    add %i0, 7, %i013; V8-NEXT:    and %i0, -8, %i014; V8-NEXT:    sub %sp, %i0, %i015; V8-NEXT:    add %i0, -8, %sp16; V8-NEXT:    add %i0, 88, %o017; V8-NEXT:    add %sp, -16, %sp18; V8-NEXT:    st %o0, [%sp+104]19; V8-NEXT:    st %o0, [%sp+100]20; V8-NEXT:    st %o0, [%sp+96]21; V8-NEXT:    st %o0, [%sp+92]22; V8-NEXT:    mov %o0, %o123; V8-NEXT:    mov %o0, %o224; V8-NEXT:    mov %o0, %o325; V8-NEXT:    mov %o0, %o426; V8-NEXT:    call foo27; V8-NEXT:    mov %o0, %o528; V8-NEXT:    add %sp, 16, %sp29; V8-NEXT:    ret30; V8-NEXT:    restore31;32; SPARC64-LABEL: variable_alloca_with_adj_call_stack:33; SPARC64:       ! %bb.0: ! %entry34; SPARC64-NEXT:    save %sp, -128, %sp35; SPARC64-NEXT:    srl %i0, 0, %i036; SPARC64-NEXT:    add %i0, 15, %i037; SPARC64-NEXT:    sethi 4194303, %i138; SPARC64-NEXT:    or %i1, 1008, %i139; SPARC64-NEXT:    sethi 0, %i240; SPARC64-NEXT:    or %i2, 1, %i241; SPARC64-NEXT:    sllx %i2, 32, %i242; SPARC64-NEXT:    or %i2, %i1, %i143; SPARC64-NEXT:    and %i0, %i1, %i044; SPARC64-NEXT:    sub %sp, %i0, %i045; SPARC64-NEXT:    add %i0, 2175, %o046; SPARC64-NEXT:    mov %i0, %sp47; SPARC64-NEXT:    add %sp, -80, %sp48; SPARC64-NEXT:    stx %o0, [%sp+2247]49; SPARC64-NEXT:    stx %o0, [%sp+2239]50; SPARC64-NEXT:    stx %o0, [%sp+2231]51; SPARC64-NEXT:    stx %o0, [%sp+2223]52; SPARC64-NEXT:    mov %o0, %o153; SPARC64-NEXT:    mov %o0, %o254; SPARC64-NEXT:    mov %o0, %o355; SPARC64-NEXT:    mov %o0, %o456; SPARC64-NEXT:    call foo57; SPARC64-NEXT:    mov %o0, %o558; SPARC64-NEXT:    add %sp, 80, %sp59; SPARC64-NEXT:    ret60; SPARC64-NEXT:    restore61entry:62  %0 = alloca i8, i32 %num, align 863  call void @foo(ptr %0, ptr %0, ptr %0, ptr %0, ptr %0, ptr %0, ptr %0, ptr %0, ptr %0, ptr %0)64  ret void65}66 67declare void @foo(ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr);68