brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 683b5a8 Raw
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