brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 79f2ef3 Raw
219 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:   -mcpu=pwr9 < %s | FileCheck %s4 5define void @foo(ptr readonly %0, ptr %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7) {6; CHECK-LABEL: foo:7; CHECK:       # %bb.0:8; CHECK-NEXT:    cmpd 5, 79; CHECK-NEXT:    bgelr 010; CHECK-NEXT:  # %bb.1: # %.preheader11; CHECK-NEXT:    std 27, -40(1) # 8-byte Folded Spill12; CHECK-NEXT:    addi 27, 5, 213; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill14; CHECK-NEXT:    addi 28, 5, 315; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill16; CHECK-NEXT:    addi 30, 5, 117; CHECK-NEXT:    mulld 12, 8, 518; CHECK-NEXT:    mulld 0, 9, 819; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill20; CHECK-NEXT:    addi 29, 3, 1621; CHECK-NEXT:    sldi 11, 10, 322; CHECK-NEXT:    std 22, -80(1) # 8-byte Folded Spill23; CHECK-NEXT:    std 23, -72(1) # 8-byte Folded Spill24; CHECK-NEXT:    std 24, -64(1) # 8-byte Folded Spill25; CHECK-NEXT:    std 25, -56(1) # 8-byte Folded Spill26; CHECK-NEXT:    std 26, -48(1) # 8-byte Folded Spill27; CHECK-NEXT:    mulld 30, 8, 3028; CHECK-NEXT:    mulld 28, 8, 2829; CHECK-NEXT:    mulld 8, 8, 2730; CHECK-NEXT:    b .LBB0_331; CHECK-NEXT:    .p2align 432; CHECK-NEXT:  .LBB0_2:33; CHECK-NEXT:    add 5, 5, 934; CHECK-NEXT:    add 12, 12, 035; CHECK-NEXT:    add 30, 30, 036; CHECK-NEXT:    add 28, 28, 037; CHECK-NEXT:    add 8, 8, 038; CHECK-NEXT:    cmpd 5, 739; CHECK-NEXT:    bge 0, .LBB0_640; CHECK-NEXT:  .LBB0_3: # =>This Loop Header: Depth=141; CHECK-NEXT:    # Child Loop BB0_5 Depth 242; CHECK-NEXT:    sub 27, 5, 1043; CHECK-NEXT:    cmpd 6, 2744; CHECK-NEXT:    bge 0, .LBB0_245; CHECK-NEXT:  # %bb.4:46; CHECK-NEXT:    add 25, 6, 1247; CHECK-NEXT:    add 24, 6, 848; CHECK-NEXT:    sldi 26, 6, 349; CHECK-NEXT:    sldi 23, 25, 350; CHECK-NEXT:    add 25, 6, 3051; CHECK-NEXT:    sldi 24, 24, 352; CHECK-NEXT:    add 26, 4, 2653; CHECK-NEXT:    sldi 22, 25, 354; CHECK-NEXT:    add 25, 6, 2855; CHECK-NEXT:    add 24, 29, 2456; CHECK-NEXT:    add 23, 3, 2357; CHECK-NEXT:    sldi 25, 25, 358; CHECK-NEXT:    add 22, 3, 2259; CHECK-NEXT:    add 25, 29, 2560; CHECK-NEXT:    .p2align 561; CHECK-NEXT:  .LBB0_5: # Parent Loop BB0_3 Depth=162; CHECK-NEXT:    # => This Inner Loop Header: Depth=263; CHECK-NEXT:    lfd 0, 0(26)64; CHECK-NEXT:    lfd 1, 0(23)65; CHECK-NEXT:    add 6, 6, 1066; CHECK-NEXT:    cmpd 6, 2767; CHECK-NEXT:    xsadddp 0, 0, 168; CHECK-NEXT:    lfd 1, 8(23)69; CHECK-NEXT:    xsadddp 0, 0, 170; CHECK-NEXT:    lfd 1, 16(23)71; CHECK-NEXT:    xsadddp 0, 0, 172; CHECK-NEXT:    lfd 1, 24(23)73; CHECK-NEXT:    add 23, 23, 1174; CHECK-NEXT:    xsadddp 0, 0, 175; CHECK-NEXT:    lfd 1, 0(22)76; CHECK-NEXT:    xsadddp 0, 0, 177; CHECK-NEXT:    lfd 1, 8(22)78; CHECK-NEXT:    xsadddp 0, 0, 179; CHECK-NEXT:    lfd 1, 16(22)80; CHECK-NEXT:    xsadddp 0, 0, 181; CHECK-NEXT:    lfd 1, 24(22)82; CHECK-NEXT:    add 22, 22, 1183; CHECK-NEXT:    xsadddp 0, 0, 184; CHECK-NEXT:    lfd 1, -16(24)85; CHECK-NEXT:    xsadddp 0, 0, 186; CHECK-NEXT:    lfd 1, -8(24)87; CHECK-NEXT:    xsadddp 0, 0, 188; CHECK-NEXT:    lfd 1, 0(24)89; CHECK-NEXT:    xsadddp 0, 0, 190; CHECK-NEXT:    lfd 1, 8(24)91; CHECK-NEXT:    add 24, 24, 1192; CHECK-NEXT:    xsadddp 0, 0, 193; CHECK-NEXT:    lfd 1, -16(25)94; CHECK-NEXT:    xsadddp 0, 0, 195; CHECK-NEXT:    lfd 1, -8(25)96; CHECK-NEXT:    xsadddp 0, 0, 197; CHECK-NEXT:    lfd 1, 0(25)98; CHECK-NEXT:    xsadddp 0, 0, 199; CHECK-NEXT:    lfd 1, 8(25)100; CHECK-NEXT:    add 25, 25, 11101; CHECK-NEXT:    xsadddp 0, 0, 1102; CHECK-NEXT:    stfd 0, 0(26)103; CHECK-NEXT:    add 26, 26, 11104; CHECK-NEXT:    blt 0, .LBB0_5105; CHECK-NEXT:    b .LBB0_2106; CHECK-NEXT:  .LBB0_6:107; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload108; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload109; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload110; CHECK-NEXT:    ld 27, -40(1) # 8-byte Folded Reload111; CHECK-NEXT:    ld 26, -48(1) # 8-byte Folded Reload112; CHECK-NEXT:    ld 25, -56(1) # 8-byte Folded Reload113; CHECK-NEXT:    ld 24, -64(1) # 8-byte Folded Reload114; CHECK-NEXT:    ld 23, -72(1) # 8-byte Folded Reload115; CHECK-NEXT:    ld 22, -80(1) # 8-byte Folded Reload116; CHECK-NEXT:    blr117  %9 = icmp slt i64 %2, %4118  br i1 %9, label %10, label %97119 12010:                                               ; preds = %8, %93121  %11 = phi i64 [ %95, %93 ], [ %2, %8 ]122  %12 = phi i64 [ %94, %93 ], [ %3, %8 ]123  %13 = sub nsw i64 %11, %7124  %14 = icmp slt i64 %12, %13125  br i1 %14, label %15, label %93126 12715:                                               ; preds = %10128  %16 = mul nsw i64 %11, %5129  %17 = add nsw i64 %11, 1130  %18 = mul nsw i64 %17, %5131  %19 = add nsw i64 %11, 2132  %20 = mul nsw i64 %19, %5133  %21 = add nsw i64 %11, 3134  %22 = mul nsw i64 %21, %5135  br label %23136 13723:                                               ; preds = %15, %23138  %24 = phi i64 [ %12, %15 ], [ %91, %23 ]139  %25 = getelementptr inbounds double, ptr %1, i64 %24140  %26 = load double, ptr %25, align 8141  %27 = add nsw i64 %24, %16142  %28 = getelementptr inbounds double, ptr %0, i64 %27143  %29 = load double, ptr %28, align 8144  %30 = fadd double %26, %29145  %31 = add nsw i64 %27, 1146  %32 = getelementptr inbounds double, ptr %0, i64 %31147  %33 = load double, ptr %32, align 8148  %34 = fadd double %30, %33149  %35 = add nsw i64 %27, 2150  %36 = getelementptr inbounds double, ptr %0, i64 %35151  %37 = load double, ptr %36, align 8152  %38 = fadd double %34, %37153  %39 = add nsw i64 %27, 3154  %40 = getelementptr inbounds double, ptr %0, i64 %39155  %41 = load double, ptr %40, align 8156  %42 = fadd double %38, %41157  %43 = add nsw i64 %24, %18158  %44 = getelementptr inbounds double, ptr %0, i64 %43159  %45 = load double, ptr %44, align 8160  %46 = fadd double %42, %45161  %47 = add nsw i64 %43, 1162  %48 = getelementptr inbounds double, ptr %0, i64 %47163  %49 = load double, ptr %48, align 8164  %50 = fadd double %46, %49165  %51 = add nsw i64 %43, 2166  %52 = getelementptr inbounds double, ptr %0, i64 %51167  %53 = load double, ptr %52, align 8168  %54 = fadd double %50, %53169  %55 = add nsw i64 %43, 3170  %56 = getelementptr inbounds double, ptr %0, i64 %55171  %57 = load double, ptr %56, align 8172  %58 = fadd double %54, %57173  %59 = add nsw i64 %24, %20174  %60 = getelementptr inbounds double, ptr %0, i64 %59175  %61 = load double, ptr %60, align 8176  %62 = fadd double %58, %61177  %63 = add nsw i64 %59, 1178  %64 = getelementptr inbounds double, ptr %0, i64 %63179  %65 = load double, ptr %64, align 8180  %66 = fadd double %62, %65181  %67 = add nsw i64 %59, 2182  %68 = getelementptr inbounds double, ptr %0, i64 %67183  %69 = load double, ptr %68, align 8184  %70 = fadd double %66, %69185  %71 = add nsw i64 %59, 3186  %72 = getelementptr inbounds double, ptr %0, i64 %71187  %73 = load double, ptr %72, align 8188  %74 = fadd double %70, %73189  %75 = add nsw i64 %24, %22190  %76 = getelementptr inbounds double, ptr %0, i64 %75191  %77 = load double, ptr %76, align 8192  %78 = fadd double %74, %77193  %79 = add nsw i64 %75, 1194  %80 = getelementptr inbounds double, ptr %0, i64 %79195  %81 = load double, ptr %80, align 8196  %82 = fadd double %78, %81197  %83 = add nsw i64 %75, 2198  %84 = getelementptr inbounds double, ptr %0, i64 %83199  %85 = load double, ptr %84, align 8200  %86 = fadd double %82, %85201  %87 = add nsw i64 %75, 3202  %88 = getelementptr inbounds double, ptr %0, i64 %87203  %89 = load double, ptr %88, align 8204  %90 = fadd double %86, %89205  store double %90, ptr %25, align 8206  %91 = add nsw i64 %24, %7207  %92 = icmp slt i64 %91, %13208  br i1 %92, label %23, label %93209 21093:                                               ; preds = %23, %10211  %94 = phi i64 [ %12, %10 ], [ %91, %23 ]212  %95 = add nsw i64 %11, %6213  %96 = icmp slt i64 %95, %4214  br i1 %96, label %10, label %97215 21697:                                               ; preds = %93, %8217  ret void218}219