brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 2de29fe Raw
65 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -enable-machine-outliner -mattr=+m -mtriple=riscv64 < %s | FileCheck %s3 4; Ensure that we won't outline CFIs when they are needed in unwinding.5 6define i32 @func1(i32 %x) #0 {7; CHECK-LABEL: func1:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    addi sp, sp, -1610; CHECK-NEXT:    .cfi_def_cfa_offset 1611; CHECK-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill12; CHECK-NEXT:    sd s0, 0(sp) # 8-byte Folded Spill13; CHECK-NEXT:    .cfi_offset ra, -814; CHECK-NEXT:    .cfi_offset s0, -1615; CHECK-NEXT:    mul a0, a0, a016; CHECK-NEXT:    addi s0, a0, 117; CHECK-NEXT:    li a0, 418; CHECK-NEXT:    call __cxa_allocate_exception19; CHECK-NEXT:    sw s0, 0(a0)20; CHECK-NEXT:    lui a1, %hi(_ZTIi)21; CHECK-NEXT:    addi a1, a1, %lo(_ZTIi)22; CHECK-NEXT:    li a2, 023; CHECK-NEXT:    call __cxa_throw24entry:25  %mul = mul i32 %x, %x26  %add = add i32 %mul, 127  %exception = tail call ptr @__cxa_allocate_exception(i64 4)28  store i32 %add, ptr %exception29  tail call void @__cxa_throw(ptr %exception, ptr @_ZTIi, ptr null)30  unreachable31}32 33define i32 @func2(i32 %x) #0 {34; CHECK-LABEL: func2:35; CHECK:       # %bb.0: # %entry36; CHECK-NEXT:    addi sp, sp, -1637; CHECK-NEXT:    .cfi_def_cfa_offset 1638; CHECK-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill39; CHECK-NEXT:    sd s0, 0(sp) # 8-byte Folded Spill40; CHECK-NEXT:    .cfi_offset ra, -841; CHECK-NEXT:    .cfi_offset s0, -1642; CHECK-NEXT:    mul a0, a0, a043; CHECK-NEXT:    addi s0, a0, 144; CHECK-NEXT:    li a0, 445; CHECK-NEXT:    call __cxa_allocate_exception46; CHECK-NEXT:    sw s0, 0(a0)47; CHECK-NEXT:    lui a1, %hi(_ZTIi)48; CHECK-NEXT:    addi a1, a1, %lo(_ZTIi)49; CHECK-NEXT:    li a2, 050; CHECK-NEXT:    call __cxa_throw51entry:52  %mul = mul i32 %x, %x53  %add = add i32 %mul, 154  %exception = tail call ptr @__cxa_allocate_exception(i64 4)55  store i32 %add, ptr %exception56  tail call void @__cxa_throw(ptr %exception, ptr @_ZTIi, ptr null)57  unreachable58}59 60@_ZTIi = external constant ptr61declare ptr @__cxa_allocate_exception(i64)62declare void @__cxa_throw(ptr, ptr, ptr)63 64attributes #0 = { minsize noreturn }65