brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 4aadd03 Raw
172 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \3; RUN:   | FileCheck %s4 5declare fastcc i1 @S_reginclass()6 7declare fastcc ptr @Perl_av_store(i64)8 9define fastcc i32 @S_regrepeat(ptr %startposp, i32 %max, i8 %0, i1 %cmp343) nounwind {10; CHECK-LABEL: S_regrepeat:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    addi sp, sp, -3213; CHECK-NEXT:    sd ra, 24(sp) # 8-byte Folded Spill14; CHECK-NEXT:    sd s0, 16(sp) # 8-byte Folded Spill15; CHECK-NEXT:    sd s1, 8(sp) # 8-byte Folded Spill16; CHECK-NEXT:    sd s2, 0(sp) # 8-byte Folded Spill17; CHECK-NEXT:    zext.b a2, a218; CHECK-NEXT:    addi a4, a2, -1919; CHECK-NEXT:    li a5, 220; CHECK-NEXT:    mv a0, a121; CHECK-NEXT:    bltu a4, a5, .LBB0_422; CHECK-NEXT:  # %bb.1: # %entry23; CHECK-NEXT:    li a1, 124; CHECK-NEXT:    bltu a1, a2, .LBB0_825; CHECK-NEXT:  # %bb.2: # %do_exactf26; CHECK-NEXT:    andi a3, a3, 127; CHECK-NEXT:    beqz a3, .LBB0_1028; CHECK-NEXT:  # %bb.3: # %land.rhs25129; CHECK-NEXT:    lw zero, 0(zero)30; CHECK-NEXT:    li s0, 131; CHECK-NEXT:    bnez s0, .LBB0_932; CHECK-NEXT:    j .LBB0_833; CHECK-NEXT:  .LBB0_4: # %sw.bb33634; CHECK-NEXT:    mv s1, a035; CHECK-NEXT:    li s0, 036; CHECK-NEXT:    andi s2, a3, 137; CHECK-NEXT:  .LBB0_5: # %land.rhs34538; CHECK-NEXT:    # =>This Inner Loop Header: Depth=139; CHECK-NEXT:    call S_reginclass40; CHECK-NEXT:    andi a0, a0, 141; CHECK-NEXT:    beqz a0, .LBB0_742; CHECK-NEXT:  # %bb.6: # %while.body35043; CHECK-NEXT:    # in Loop: Header=BB0_5 Depth=144; CHECK-NEXT:    addiw s0, s0, 145; CHECK-NEXT:    bnez s2, .LBB0_546; CHECK-NEXT:    j .LBB0_847; CHECK-NEXT:  .LBB0_7:48; CHECK-NEXT:    mv a0, s149; CHECK-NEXT:    bnez s0, .LBB0_950; CHECK-NEXT:  .LBB0_8: # %if.else149251; CHECK-NEXT:    li a0, 052; CHECK-NEXT:  .LBB0_9: # %if.end149753; CHECK-NEXT:    ld ra, 24(sp) # 8-byte Folded Reload54; CHECK-NEXT:    ld s0, 16(sp) # 8-byte Folded Reload55; CHECK-NEXT:    ld s1, 8(sp) # 8-byte Folded Reload56; CHECK-NEXT:    ld s2, 0(sp) # 8-byte Folded Reload57; CHECK-NEXT:    addi sp, sp, 3258; CHECK-NEXT:    ret59; CHECK-NEXT:  .LBB0_10:60; CHECK-NEXT:    j .LBB0_861entry:62  switch i8 %0, label %if.else1492 [63    i8 19, label %sw.bb33664    i8 20, label %sw.bb33665    i8 1, label %do_exactf66    i8 0, label %do_exactf67  ]68 69do_exactf:                                        ; preds = %entry, %entry70  br i1 %cmp343, label %land.rhs251, label %if.end33471 72land.rhs251:                                      ; preds = %do_exactf73  %bcmp414 = load volatile i32, ptr null, align 474  br label %if.end33475 76if.end334:                                        ; preds = %land.rhs251, %do_exactf77  %hardcount.7 = phi i32 [ 0, %do_exactf ], [ 1, %land.rhs251 ]78  call void @llvm.lifetime.end.p0(i64 0, ptr null)79  br label %sw.epilog148980 81sw.bb336:                                         ; preds = %entry, %entry82  br label %land.rhs34583 84land.rhs345:                                      ; preds = %while.body350, %sw.bb33685  %hardcount.8634 = phi i32 [ %inc356, %while.body350 ], [ 0, %sw.bb336 ]86  %call347 = call fastcc i1 @S_reginclass()87  br i1 %call347, label %while.body350, label %sw.epilog148988 89while.body350:                                    ; preds = %land.rhs34590  %inc356 = add i32 %hardcount.8634, 191  br i1 %cmp343, label %land.rhs345, label %if.end149792 93sw.epilog1489:                                    ; preds = %land.rhs345, %if.end33494  %hardcount.20 = phi i32 [ %hardcount.7, %if.end334 ], [ %hardcount.8634, %land.rhs345 ]95  %tobool1490.not = icmp eq i32 %hardcount.20, 096  br i1 %tobool1490.not, label %if.else1492, label %if.end149797 98if.else1492:                                      ; preds = %sw.epilog1489, %entry99  br label %if.end1497100 101if.end1497:                                       ; preds = %if.else1492, %sw.epilog1489, %while.body350102  %c.0 = phi i32 [ 0, %if.else1492 ], [ %max, %sw.epilog1489 ], [ 0, %while.body350 ]103  ret i32 %c.0104}105 106define ptr @Perl_pp_refassign(ptr %PL_stack_sp, i1 %tobool.not, i1 %tobool3.not, i1 %cond1) nounwind {107; CHECK-LABEL: Perl_pp_refassign:108; CHECK:       # %bb.0: # %entry109; CHECK-NEXT:    andi a1, a1, 1110; CHECK-NEXT:    beqz a1, .LBB1_3111; CHECK-NEXT:  # %bb.1:112; CHECK-NEXT:    li a1, 0113; CHECK-NEXT:    andi a2, a2, 1114; CHECK-NEXT:    bnez a2, .LBB1_4115; CHECK-NEXT:  .LBB1_2: # %cond.true4116; CHECK-NEXT:    ld a0, 0(a0)117; CHECK-NEXT:    snez a0, a0118; CHECK-NEXT:    bnez a0, .LBB1_5119; CHECK-NEXT:    j .LBB1_6120; CHECK-NEXT:  .LBB1_3: # %cond.true121; CHECK-NEXT:    ld a1, 0(a0)122; CHECK-NEXT:    andi a2, a2, 1123; CHECK-NEXT:    beqz a2, .LBB1_2124; CHECK-NEXT:  .LBB1_4:125; CHECK-NEXT:    j .LBB1_6126; CHECK-NEXT:  .LBB1_5: # %sw.bb85127; CHECK-NEXT:    addi sp, sp, -16128; CHECK-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill129; CHECK-NEXT:    ld a0, 0(a1)130; CHECK-NEXT:    call Perl_av_store131; CHECK-NEXT:    ld ra, 8(sp) # 8-byte Folded Reload132; CHECK-NEXT:    addi sp, sp, 16133; CHECK-NEXT:  .LBB1_6: # %common.ret134; CHECK-NEXT:    li a0, 0135; CHECK-NEXT:    ret136entry:137  br i1 %tobool.not, label %cond.end, label %cond.true138 139cond.true:                                        ; preds = %entry140  %0 = load ptr, ptr %PL_stack_sp, align 8141  br label %cond.end142 143cond.end:                                         ; preds = %cond.true, %entry144  %cond = phi ptr [ %0, %cond.true ], [ null, %entry ]145  br i1 %tobool3.not, label %cond.end7, label %cond.true4146 147cond.true4:                                       ; preds = %cond.end148  %1 = load ptr, ptr %PL_stack_sp, align 8149  %2 = icmp ne ptr %1, null150  br label %cond.end7151 152cond.end7:                                        ; preds = %cond.true4, %cond.end153  %cond84 = phi i1 [ %2, %cond.true4 ], [ false, %cond.end ]154  br i1 %cond1, label %if.end48, label %sw.bb155 156sw.bb:                                            ; preds = %cond.end7157  call void @llvm.assume(i1 %tobool.not)158  br label %if.end48159 160if.end48:                                         ; preds = %sw.bb, %cond.end7161  br i1 %cond84, label %sw.bb85, label %common.ret162 163common.ret:                                       ; preds = %sw.bb85, %if.end48164  ret ptr null165 166sw.bb85:                                          ; preds = %if.end48167  %3 = load i64, ptr %cond, align 8168  %call125 = call fastcc ptr @Perl_av_store(i64 %3)169  br label %common.ret170}171 172