brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · ce96605 Raw
74 lines · plain
1; RUN: llc -mtriple=mipsel -mcpu=mips32 < %s | FileCheck %s2; RUN: llc -mtriple=mips64el -mcpu=mips4 < %s | \3; RUN:      FileCheck %s -check-prefix=CHECK-MIPS644; RUN: llc -mtriple=mips64el -mcpu=mips64 < %s | \5; RUN:      FileCheck %s -check-prefix=CHECK-MIPS646 7declare ptr @llvm.eh.dwarf.cfa(i32) nounwind8declare ptr @llvm.frameaddress(i32) nounwind readnone9 10define ptr @f1() nounwind {11entry:12  %x = alloca [32 x i8], align 113  %0 = call ptr @llvm.eh.dwarf.cfa(i32 0)14  ret ptr %015 16; CHECK-LABEL: f1:17 18; CHECK:        addiu   $sp, $sp, -3219; CHECK:        addiu   $2, $sp, 3220}21 22 23define ptr @f2() nounwind {24entry:25  %x = alloca [65536 x i8], align 126  %0 = call ptr @llvm.eh.dwarf.cfa(i32 0)27  ret ptr %028 29; CHECK-LABEL: f2:30 31; check stack size (65536 + 8)32; CHECK:        lui     $[[R0:[a-z0-9]+]], 133; CHECK:        addiu   $[[R0]], $[[R0]], 834; CHECK:        subu    $sp, $sp, $[[R0]]35 36; check return value ($sp + stack size)37; CHECK:        lui     $[[R1:[a-z0-9]+]], 138; CHECK:        addu    $[[R1]], $sp, $[[R1]]39; CHECK:        addiu   $2, $[[R1]], 840}41 42 43define i32 @f3() nounwind {44entry:45  %x = alloca [32 x i8], align 146  %0 = call ptr @llvm.eh.dwarf.cfa(i32 0)47  %1 = ptrtoint ptr %0 to i3248  %2 = call ptr @llvm.frameaddress(i32 0)49  %3 = ptrtoint ptr %2 to i3250  %add = add i32 %1, %351  ret i32 %add52 53; CHECK-LABEL: f3:54 55; CHECK:        addiu   $sp, $sp, -4056 57; check return value ($fp + stack size + $fp)58; CHECK:        addiu   $[[R0:[a-z0-9]+]], $fp, 4059; CHECK:        addu    $2, $[[R0]], $fp60}61 62 63define ptr @f4() nounwind {64entry:65  %x = alloca [32 x i8], align 166  %0 = call ptr @llvm.eh.dwarf.cfa(i32 0)67  ret ptr %068 69; CHECK-LABEL: f4:70 71; CHECK-MIPS64:        daddiu   $sp, $sp, -3272; CHECK-MIPS64:        daddiu   $2, $sp, 3273}74