brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · a134fc8 Raw
67 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -debug-entry-values -enable-misched=0 < %s | FileCheck %s3 4; Trivial patchpoint codegen5;6define i64 @trivial_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {7; CHECK-LABEL: trivial_patchpoint_codegen:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    addi sp, sp, -1610; CHECK-NEXT:    .cfi_def_cfa_offset 1611; CHECK-NEXT:    sd s0, 8(sp) # 8-byte Folded Spill12; CHECK-NEXT:    sd s1, 0(sp) # 8-byte Folded Spill13; CHECK-NEXT:    .cfi_offset s0, -814; CHECK-NEXT:    .cfi_offset s1, -1615; CHECK-NEXT:    mv s0, a016; CHECK-NEXT:  .Ltmp0:17; CHECK-NEXT:    lui ra, 356318; CHECK-NEXT:    addi ra, ra, -57719; CHECK-NEXT:    slli ra, ra, 1220; CHECK-NEXT:    addi ra, ra, -25921; CHECK-NEXT:    slli ra, ra, 1222; CHECK-NEXT:    addi ra, ra, -128223; CHECK-NEXT:    jalr ra24; CHECK-NEXT:    mv s1, a025; CHECK-NEXT:    mv a0, s026; CHECK-NEXT:    mv a1, s127; CHECK-NEXT:  .Ltmp1:28; CHECK-NEXT:    lui ra, 356329; CHECK-NEXT:    addi ra, ra, -57730; CHECK-NEXT:    slli ra, ra, 1231; CHECK-NEXT:    addi ra, ra, -25932; CHECK-NEXT:    slli ra, ra, 1233; CHECK-NEXT:    addi ra, ra, -128134; CHECK-NEXT:    jalr ra35; CHECK-NEXT:    mv a0, s136; CHECK-NEXT:    ld s0, 8(sp) # 8-byte Folded Reload37; CHECK-NEXT:    ld s1, 0(sp) # 8-byte Folded Reload38; CHECK-NEXT:    .cfi_restore s039; CHECK-NEXT:    .cfi_restore s140; CHECK-NEXT:    addi sp, sp, 1641; CHECK-NEXT:    .cfi_def_cfa_offset 042; CHECK-NEXT:    ret43entry:44  %resolveCall2 = inttoptr i64 244837814094590 to i8*45  %result = tail call i64 (i64, i32, i8*, i32, ...) @llvm.experimental.patchpoint.i64(i64 2, i32 28, i8* %resolveCall2, i32 4, i64 %p1, i64 %p2, i64 %p3, i64 %p4)46  %resolveCall3 = inttoptr i64 244837814094591 to i8*47  tail call void (i64, i32, i8*, i32, ...) @llvm.experimental.patchpoint.void(i64 3, i32 28, i8* %resolveCall3, i32 2, i64 %p1, i64 %result)48  ret i64 %result49}50 51; Test small patchpoints that don't emit calls.52define void @small_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) {53; CHECK-LABEL: small_patchpoint_codegen:54; CHECK:       # %bb.0: # %entry55; CHECK-NEXT:  .Ltmp2:56; CHECK-NEXT:    nop57; CHECK-NEXT:    nop58; CHECK-NEXT:    nop59; CHECK-NEXT:    nop60; CHECK-NEXT:    nop61; CHECK-NEXT:    ret62entry:63  %result = tail call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 5, i32 20, ptr null, i32 2, i64 %p1, i64 %p2)64  ret void65}66 67