108 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=riscv64 -regalloc-csr-first-time-cost=0 < %s | FileCheck %s -check-prefix=ZERO-COST3; RUN: llc -mtriple=riscv64 < %s | FileCheck %s -check-prefix=DEFAULT-COST4 5define fastcc void @Perl_sv_setnv(i8 %c, ptr %.str.54.3682) nounwind {6; ZERO-COST-LABEL: Perl_sv_setnv:7; ZERO-COST: # %bb.0: # %entry8; ZERO-COST-NEXT: addi sp, sp, -329; ZERO-COST-NEXT: sd ra, 24(sp) # 8-byte Folded Spill10; ZERO-COST-NEXT: sd s0, 16(sp) # 8-byte Folded Spill11; ZERO-COST-NEXT: sd s1, 8(sp) # 8-byte Folded Spill12; ZERO-COST-NEXT: zext.b a0, a013; ZERO-COST-NEXT: li a2, 214; ZERO-COST-NEXT: blt a2, a0, .LBB0_315; ZERO-COST-NEXT: # %bb.1: # %entry16; ZERO-COST-NEXT: beqz a0, .LBB0_417; ZERO-COST-NEXT: # %bb.2: # %entry18; ZERO-COST-NEXT: mv s0, a119; ZERO-COST-NEXT: li a1, 120; ZERO-COST-NEXT: beq a0, a1, .LBB0_621; ZERO-COST-NEXT: j .LBB0_722; ZERO-COST-NEXT: .LBB0_3: # %entry23; ZERO-COST-NEXT: li a2, 324; ZERO-COST-NEXT: bne a0, a2, .LBB0_525; ZERO-COST-NEXT: .LBB0_4: # %sw.bb326; ZERO-COST-NEXT: ld ra, 24(sp) # 8-byte Folded Reload27; ZERO-COST-NEXT: ld s0, 16(sp) # 8-byte Folded Reload28; ZERO-COST-NEXT: ld s1, 8(sp) # 8-byte Folded Reload29; ZERO-COST-NEXT: addi sp, sp, 3230; ZERO-COST-NEXT: ret31; ZERO-COST-NEXT: .LBB0_5: # %entry32; ZERO-COST-NEXT: mv s0, a133; ZERO-COST-NEXT: li a1, 1234; ZERO-COST-NEXT: bne a0, a1, .LBB0_735; ZERO-COST-NEXT: .LBB0_6: # %sw.bb34.i36; ZERO-COST-NEXT: li s0, 037; ZERO-COST-NEXT: .LBB0_7: # %Perl_sv_reftype.exit38; ZERO-COST-NEXT: li s1, 039; ZERO-COST-NEXT: li a0, 040; ZERO-COST-NEXT: li a1, 041; ZERO-COST-NEXT: jalr s142; ZERO-COST-NEXT: li a0, 043; ZERO-COST-NEXT: mv a1, s044; ZERO-COST-NEXT: li a2, 045; ZERO-COST-NEXT: jalr s146;47; DEFAULT-COST-LABEL: Perl_sv_setnv:48; DEFAULT-COST: # %bb.0: # %entry49; DEFAULT-COST-NEXT: addi sp, sp, -3250; DEFAULT-COST-NEXT: sd ra, 24(sp) # 8-byte Folded Spill51; DEFAULT-COST-NEXT: sd s0, 16(sp) # 8-byte Folded Spill52; DEFAULT-COST-NEXT: zext.b a0, a053; DEFAULT-COST-NEXT: li a2, 254; DEFAULT-COST-NEXT: blt a2, a0, .LBB0_355; DEFAULT-COST-NEXT: # %bb.1: # %entry56; DEFAULT-COST-NEXT: beqz a0, .LBB0_457; DEFAULT-COST-NEXT: # %bb.2: # %entry58; DEFAULT-COST-NEXT: sd a1, 8(sp) # 8-byte Folded Spill59; DEFAULT-COST-NEXT: li a1, 160; DEFAULT-COST-NEXT: beq a0, a1, .LBB0_661; DEFAULT-COST-NEXT: j .LBB0_762; DEFAULT-COST-NEXT: .LBB0_3: # %entry63; DEFAULT-COST-NEXT: li a2, 364; DEFAULT-COST-NEXT: bne a0, a2, .LBB0_565; DEFAULT-COST-NEXT: .LBB0_4: # %sw.bb366; DEFAULT-COST-NEXT: ld ra, 24(sp) # 8-byte Folded Reload67; DEFAULT-COST-NEXT: ld s0, 16(sp) # 8-byte Folded Reload68; DEFAULT-COST-NEXT: addi sp, sp, 3269; DEFAULT-COST-NEXT: ret70; DEFAULT-COST-NEXT: .LBB0_5: # %entry71; DEFAULT-COST-NEXT: sd a1, 8(sp) # 8-byte Folded Spill72; DEFAULT-COST-NEXT: li a1, 1273; DEFAULT-COST-NEXT: bne a0, a1, .LBB0_774; DEFAULT-COST-NEXT: .LBB0_6: # %sw.bb34.i75; DEFAULT-COST-NEXT: sd zero, 8(sp) # 8-byte Folded Spill76; DEFAULT-COST-NEXT: .LBB0_7: # %Perl_sv_reftype.exit77; DEFAULT-COST-NEXT: li s0, 078; DEFAULT-COST-NEXT: li a0, 079; DEFAULT-COST-NEXT: li a1, 080; DEFAULT-COST-NEXT: jalr s081; DEFAULT-COST-NEXT: li a0, 082; DEFAULT-COST-NEXT: ld a1, 8(sp) # 8-byte Folded Reload83; DEFAULT-COST-NEXT: li a2, 084; DEFAULT-COST-NEXT: jalr s085entry:86 switch i8 %c, label %Perl_sv_reftype.exit [87 i8 1, label %sw.bb488 i8 12, label %sw.bb34.i89 i8 3, label %sw.bb390 i8 0, label %sw.bb391 ]92 93sw.bb3: ; preds = %entry, %entry94 ret void95 96sw.bb4: ; preds = %entry97 br label %Perl_sv_reftype.exit98 99sw.bb34.i: ; preds = %entry100 br label %Perl_sv_reftype.exit101 102Perl_sv_reftype.exit: ; preds = %sw.bb34.i, %sw.bb4, %entry103 %retval.0.i = phi ptr [ null, %sw.bb34.i ], [ null, %sw.bb4 ], [ %.str.54.3682, %entry ]104 %call17 = tail call fastcc i64 null(ptr null, i32 0)105 tail call void (ptr, ...) null(ptr null, ptr %retval.0.i, ptr null)106 unreachable107}108