brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 868dc03 Raw
38 lines · plain
1; RUN: llc < %s -mcpu=cortex-a15 -verify-machineinstrs -arm-atomic-cfg-tidy=0 | FileCheck %s2 3; Check a spill right after a function call with large struct byval is correctly4; generated.5; PR163936 7; We expect 4-byte spill and reload to be generated.8 9; CHECK-LABEL: set_stored_macroblock_parameters:10; CHECK:         str r0, [sp, #{{[0-9]}}] @ 4-byte Spill11; CHECK:         @APP12; CHECK:         bl RestoreMVBlock8x813; CHECK:         ldr r0, [sp, #{{[0-9]}}] @ 4-byte Reload14 15target triple = "armv7l-unknown-linux-gnueabihf"16 17%structN = type { i32, [16 x [16 x i32]], [16 x [16 x i32]], [16 x [16 x i32]], [3 x [16 x [16 x i32]]], [4 x i16], [4 x i8], [4 x i8], [4 x i8], [16 x [16 x i16]], [16 x [16 x i16]], [16 x [16 x i32]] }18 19@tr8x8 = external global %structN, align 420@luma_transform_size_8x8_flag = external global i32, align 421 22; Function Attrs: nounwind23define void @set_stored_macroblock_parameters(i16 %a0, i32 %a1) #1 {24entry:25  %0 = load i32, ptr @luma_transform_size_8x8_flag, align 426  tail call void asm sideeffect "", "~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11}"()27  tail call void @RestoreMVBlock8x8(i32 1, i32 2, ptr byval(%structN) @tr8x8, i32 0)28  %arrayidx313 = getelementptr inbounds ptr, ptr null, i32 %029  %1 = load ptr, ptr %arrayidx313, align 430  store i8 -1, ptr %1, align 131  ret void32}33 34; Function Attrs: nounwind35declare void @RestoreMVBlock8x8(i32, i32, ptr byval(%structN) nocapture, i32) #136 37attributes #1 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "use-soft-float"="false" }38