47 lines · plain
1; RUN: llc < %s -stack-symbol-ordering=0 -mcpu=generic -stackrealign -mattr=+avx -mtriple=x86_64-apple-darwin10 | FileCheck %s2; rdar://114964343declare void @t1_helper(ptr)4declare void @t3_helper(ptr, ptr)5 6; Test when forcing stack alignment7define i32 @t8() nounwind uwtable {8entry:9 %a = alloca i32, align 410 call void @t1_helper(ptr %a) nounwind11 %0 = load i32, ptr %a, align 412 %add = add nsw i32 %0, 1313 ret i32 %add14 15; CHECK: _t816; CHECK: movq %rsp, %rbp17; CHECK: andq $-32, %rsp18; CHECK-NEXT: subq $32, %rsp19; CHECK: movq %rbp, %rsp20; CHECK: popq %rbp21}22 23; VLAs24define i32 @t9(i64 %sz) nounwind uwtable {25entry:26 %a = alloca i32, align 427 %vla = alloca i32, i64 %sz, align 1628 call void @t3_helper(ptr %a, ptr %vla) nounwind29 %0 = load i32, ptr %a, align 430 %add = add nsw i32 %0, 1331 ret i32 %add32 33; CHECK: _t934; CHECK: pushq %rbp35; CHECK: movq %rsp, %rbp36; CHECK: pushq %rbx37; CHECK: andq $-32, %rsp38; CHECK: subq $32, %rsp39; CHECK: movq %rsp, %rbx40 41; CHECK: leaq -8(%rbp), %rsp42; CHECK: popq %rbx43; CHECK: popq %rbp44}45!llvm.module.flags = !{!0}46!0 = !{i32 2, !"override-stack-alignment", i32 32}47