71 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=arm64-none-linux-gnu -frame-pointer=non-leaf -disable-post-ra < %s | FileCheck %s2declare void @use_addr(ptr)3 4@addr = global ptr null5 6define void @test_bigframe() {7; CHECK-LABEL: test_bigframe:8; CHECK: .cfi_startproc9 10 %var1 = alloca i8, i32 2000000011 %var2 = alloca i8, i32 1612 %var3 = alloca i8, i32 2000000013 14; CHECK: sub sp, sp, #4095, lsl #12 // =1677312015; CHECK-NEXT: sub sp, sp, #4095, lsl #12 // =1677312016; CHECK-NEXT: sub sp, sp, #1575, lsl #12 // =645120017; CHECK-NEXT: sub sp, sp, #257618; CHECK-NEXT: .cfi_def_cfa_offset 4000003219 20; CHECK: add [[TMP:x[0-9]+]], sp, #4095, lsl #1221; CHECK: add [[TMP1:x[0-9]+]], [[TMP]], #787, lsl #1222; CHECK: add {{x[0-9]+}}, [[TMP1]], #334423 store volatile ptr %var1, ptr @addr24 25 %var1plus2 = getelementptr i8, ptr %var1, i32 226 store volatile ptr %var1plus2, ptr @addr27 28; CHECK: add [[TMP:x[0-9]+]], sp, #4095, lsl #1229; CHECK: add [[TMP1:x[0-9]+]], [[TMP]], #787, lsl #1230; CHECK: add {{x[0-9]+}}, [[TMP1]], #332831 store volatile ptr %var2, ptr @addr32 33 %var2plus2 = getelementptr i8, ptr %var2, i32 234 store volatile ptr %var2plus2, ptr @addr35 36 store volatile ptr %var3, ptr @addr37 38 %var3plus2 = getelementptr i8, ptr %var3, i32 239 store volatile ptr %var3plus2, ptr @addr40 41; CHECK: add sp, sp, #4095, lsl #1242; CHECK: add sp, sp, #4095, lsl #1243; CHECK: add sp, sp, #1575, lsl #1244; CHECK: add sp, sp, #257645; CHECK: .cfi_endproc46 ret void47}48 49define void @test_mediumframe() {50; CHECK-LABEL: test_mediumframe:51 %var1 = alloca i8, i32 100000052 %var2 = alloca i8, i32 1653 %var3 = alloca i8, i32 100000054 55; CHECK: sub sp, sp, #488, lsl #12 // =199884856; CHECK-NEXT: sub sp, sp, #116857; CHECK-NEXT: .cfi_def_cfa_offset 200003258 59 store volatile ptr %var1, ptr @addr60; CHECK: add [[VAR1ADDR:x[0-9]+]], sp, #244, lsl #1261; CHECK: add [[VAR1ADDR]], [[VAR1ADDR]], #59262 63; CHECK: add [[VAR2ADDR:x[0-9]+]], sp, #244, lsl #1264; CHECK: add [[VAR2ADDR]], [[VAR2ADDR]], #57665 66 store volatile ptr %var2, ptr @addr67; CHECK: add sp, sp, #488, lsl #1268; CHECK: add sp, sp, #116869 ret void70}71