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