brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 82c0dab Raw
73 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc --mtriple=xtensa < %s | FileCheck -check-prefixes=CHECK %s3; RUN: llc --mtriple=xtensa --mattr=+windowed < %s | FileCheck -check-prefixes=CHECK-WINDOWED %s4 5declare ptr @llvm.stacksave()6 7declare void @llvm.stackrestore(ptr)8 9declare void @use_addr(ptr)10 11define void @test_saverestore(i64 %n) {12; CHECK-LABEL: test_saverestore:13; CHECK:         .cfi_startproc14; CHECK-NEXT:  # %bb.0:15; CHECK-NEXT:    addi a8, a1, -1616; CHECK-NEXT:    or a1, a8, a817; CHECK-NEXT:    .cfi_def_cfa_offset 1618; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill19; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill20; CHECK-NEXT:    s32i a15, a1, 0 # 4-byte Folded Spill21; CHECK-NEXT:    .cfi_offset a0, -422; CHECK-NEXT:    .cfi_offset a12, -823; CHECK-NEXT:    .cfi_offset a15, -1224; CHECK-NEXT:    or a15, a1, a125; CHECK-NEXT:    .cfi_def_cfa_register a1526; CHECK-NEXT:    addi a8, a2, 327; CHECK-NEXT:    movi a9, -428; CHECK-NEXT:    and a8, a8, a929; CHECK-NEXT:    addi a8, a8, 3130; CHECK-NEXT:    movi a9, -3231; CHECK-NEXT:    and a8, a8, a932; CHECK-NEXT:    or a12, a1, a133; CHECK-NEXT:    sub a1, a1, a834; CHECK-NEXT:    or a2, a1, a135; CHECK-NEXT:    l32r a8, .LCPI0_036; CHECK-NEXT:    callx0 a837; CHECK-NEXT:    or a1, a12, a1238; CHECK-NEXT:    or a1, a15, a1539; CHECK-NEXT:    l32i a15, a1, 0 # 4-byte Folded Reload40; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload41; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload42; CHECK-NEXT:    addi a8, a1, 1643; CHECK-NEXT:    or a1, a8, a844; CHECK-NEXT:    ret45;46; CHECK-WINDOWED-LABEL: test_saverestore:47; CHECK-WINDOWED:         .cfi_startproc48; CHECK-WINDOWED-NEXT:  # %bb.0:49; CHECK-WINDOWED-NEXT:    entry a1, 3250; CHECK-WINDOWED-NEXT:    or a7, a1, a151; CHECK-WINDOWED-NEXT:    .cfi_def_cfa a7, 3252; CHECK-WINDOWED-NEXT:    addi a8, a2, 353; CHECK-WINDOWED-NEXT:    movi a9, -454; CHECK-WINDOWED-NEXT:    and a8, a8, a955; CHECK-WINDOWED-NEXT:    addi a8, a8, 3156; CHECK-WINDOWED-NEXT:    movi a9, -3257; CHECK-WINDOWED-NEXT:    and a8, a8, a958; CHECK-WINDOWED-NEXT:    or a6, a1, a159; CHECK-WINDOWED-NEXT:    sub a8, a1, a860; CHECK-WINDOWED-NEXT:    movsp a1, a861; CHECK-WINDOWED-NEXT:    or a10, a1, a162; CHECK-WINDOWED-NEXT:    l32r a8, .LCPI0_063; CHECK-WINDOWED-NEXT:    callx8 a864; CHECK-WINDOWED-NEXT:    movsp a1, a665; CHECK-WINDOWED-NEXT:    retw66 67  %sp = call ptr @llvm.stacksave.p0()68  %addr = alloca i8, i64 %n69  call void @use_addr(ptr %addr)70  call void @llvm.stackrestore.p0(ptr %sp)71  ret void72}73