|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 |
| 2 | +; RUN: llc %s -mtriple=riscv64 -regalloc-csr-first-time-cost=0 | FileCheck %s -check-prefix=ZERO-COST |
| 3 | +; RUN: llc %s -mtriple=riscv64 -regalloc-csr-first-time-cost=64 | FileCheck %s -check-prefix=SOME-COST |
| 4 | + |
| 5 | +define fastcc void @Perl_sv_setnv(ptr %.str.54.3682) nounwind { |
| 6 | +; ZERO-COST-LABEL: Perl_sv_setnv: |
| 7 | +; ZERO-COST: # %bb.0: # %entry |
| 8 | +; ZERO-COST-NEXT: addi sp, sp, -32 |
| 9 | +; ZERO-COST-NEXT: sd ra, 24(sp) # 8-byte Folded Spill |
| 10 | +; ZERO-COST-NEXT: sd s0, 16(sp) # 8-byte Folded Spill |
| 11 | +; ZERO-COST-NEXT: sd s1, 8(sp) # 8-byte Folded Spill |
| 12 | +; ZERO-COST-NEXT: bnez zero, .LBB0_5 |
| 13 | +; ZERO-COST-NEXT: # %bb.1: # %entry |
| 14 | +; ZERO-COST-NEXT: li a1, 1 |
| 15 | +; ZERO-COST-NEXT: bnez a1, .LBB0_6 |
| 16 | +; ZERO-COST-NEXT: .LBB0_2: # %entry |
| 17 | +; ZERO-COST-NEXT: mv s0, a0 |
| 18 | +; ZERO-COST-NEXT: beqz zero, .LBB0_4 |
| 19 | +; ZERO-COST-NEXT: # %bb.3: # %sw.bb34.i |
| 20 | +; ZERO-COST-NEXT: li s0, 0 |
| 21 | +; ZERO-COST-NEXT: .LBB0_4: # %Perl_sv_reftype.exit |
| 22 | +; ZERO-COST-NEXT: li s1, 0 |
| 23 | +; ZERO-COST-NEXT: li a0, 0 |
| 24 | +; ZERO-COST-NEXT: li a1, 0 |
| 25 | +; ZERO-COST-NEXT: jalr s1 |
| 26 | +; ZERO-COST-NEXT: li a0, 0 |
| 27 | +; ZERO-COST-NEXT: mv a1, s0 |
| 28 | +; ZERO-COST-NEXT: li a2, 0 |
| 29 | +; ZERO-COST-NEXT: jalr s1 |
| 30 | +; ZERO-COST-NEXT: .LBB0_5: # %entry |
| 31 | +; ZERO-COST-NEXT: beqz zero, .LBB0_2 |
| 32 | +; ZERO-COST-NEXT: .LBB0_6: # %sw.bb3 |
| 33 | +; ZERO-COST-NEXT: ld ra, 24(sp) # 8-byte Folded Reload |
| 34 | +; ZERO-COST-NEXT: ld s0, 16(sp) # 8-byte Folded Reload |
| 35 | +; ZERO-COST-NEXT: ld s1, 8(sp) # 8-byte Folded Reload |
| 36 | +; ZERO-COST-NEXT: addi sp, sp, 32 |
| 37 | +; ZERO-COST-NEXT: ret |
| 38 | +; |
| 39 | +; SOME-COST-LABEL: Perl_sv_setnv: |
| 40 | +; SOME-COST: # %bb.0: # %entry |
| 41 | +; SOME-COST-NEXT: addi sp, sp, -32 |
| 42 | +; SOME-COST-NEXT: sd ra, 24(sp) # 8-byte Folded Spill |
| 43 | +; SOME-COST-NEXT: sd s0, 16(sp) # 8-byte Folded Spill |
| 44 | +; SOME-COST-NEXT: bnez zero, .LBB0_5 |
| 45 | +; SOME-COST-NEXT: # %bb.1: # %entry |
| 46 | +; SOME-COST-NEXT: li a1, 1 |
| 47 | +; SOME-COST-NEXT: bnez a1, .LBB0_6 |
| 48 | +; SOME-COST-NEXT: .LBB0_2: # %entry |
| 49 | +; SOME-COST-NEXT: sd a0, 8(sp) # 8-byte Folded Spill |
| 50 | +; SOME-COST-NEXT: beqz zero, .LBB0_4 |
| 51 | +; SOME-COST-NEXT: # %bb.3: # %sw.bb34.i |
| 52 | +; SOME-COST-NEXT: sd zero, 8(sp) # 8-byte Folded Spill |
| 53 | +; SOME-COST-NEXT: .LBB0_4: # %Perl_sv_reftype.exit |
| 54 | +; SOME-COST-NEXT: li s0, 0 |
| 55 | +; SOME-COST-NEXT: li a0, 0 |
| 56 | +; SOME-COST-NEXT: li a1, 0 |
| 57 | +; SOME-COST-NEXT: jalr s0 |
| 58 | +; SOME-COST-NEXT: li a0, 0 |
| 59 | +; SOME-COST-NEXT: ld a1, 8(sp) # 8-byte Folded Reload |
| 60 | +; SOME-COST-NEXT: li a2, 0 |
| 61 | +; SOME-COST-NEXT: jalr s0 |
| 62 | +; SOME-COST-NEXT: .LBB0_5: # %entry |
| 63 | +; SOME-COST-NEXT: beqz zero, .LBB0_2 |
| 64 | +; SOME-COST-NEXT: .LBB0_6: # %sw.bb3 |
| 65 | +; SOME-COST-NEXT: ld ra, 24(sp) # 8-byte Folded Reload |
| 66 | +; SOME-COST-NEXT: ld s0, 16(sp) # 8-byte Folded Reload |
| 67 | +; SOME-COST-NEXT: addi sp, sp, 32 |
| 68 | +; SOME-COST-NEXT: ret |
| 69 | +entry: |
| 70 | + switch i8 0, label %Perl_sv_reftype.exit [ |
| 71 | + i8 1, label %sw.bb4 |
| 72 | + i8 12, label %sw.bb34.i |
| 73 | + i8 3, label %sw.bb3 |
| 74 | + i8 0, label %sw.bb3 |
| 75 | + ] |
| 76 | + |
| 77 | +sw.bb3: ; preds = %entry, %entry |
| 78 | + ret void |
| 79 | + |
| 80 | +sw.bb4: ; preds = %entry |
| 81 | + br label %Perl_sv_reftype.exit |
| 82 | + |
| 83 | +sw.bb34.i: ; preds = %entry |
| 84 | + br label %Perl_sv_reftype.exit |
| 85 | + |
| 86 | +Perl_sv_reftype.exit: ; preds = %sw.bb34.i, %sw.bb4, %entry |
| 87 | + %retval.0.i = phi ptr [ null, %sw.bb34.i ], [ null, %sw.bb4 ], [ %.str.54.3682, %entry ] |
| 88 | + %call17 = tail call fastcc i64 null(ptr null, i32 0) |
| 89 | + tail call void (ptr, ...) null(ptr null, ptr %retval.0.i, ptr null) |
| 90 | + unreachable |
| 91 | +} |
0 commit comments