brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · 65ffe3c Raw
82 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple aarch64 -mcpu=cortex-a57 -mattr=+slow-paired-128 < %s | FileCheck %s --check-prefixes=DEFAULT3; RUN: llc -mtriple aarch64 -mcpu=cortex-a57 -mattr=+slow-paired-128 -mattr=+ascend-store-address < %s | FileCheck %s --check-prefixes=ASCEND4 5target triple = "aarch64-unknown-linux-gnu"6 7define dso_local void @memset_unroll2(ptr nocapture %array, i64 %size) {8; DEFAULT-LABEL: memset_unroll2:9; DEFAULT:       // %bb.0: // %entry10; DEFAULT-NEXT:    fmov v0.2d, #2.0000000011; DEFAULT-NEXT:    add x8, x0, #6412; DEFAULT-NEXT:    .p2align 4, , 813; DEFAULT-NEXT:  .LBB0_1: // %vector.body14; DEFAULT-NEXT:    // =>This Inner Loop Header: Depth=115; DEFAULT-NEXT:    stur q0, [x8, #-64]16; DEFAULT-NEXT:    subs x1, x1, #417; DEFAULT-NEXT:    stur q0, [x8, #-48]18; DEFAULT-NEXT:    str q0, [x8]19; DEFAULT-NEXT:    str q0, [x8, #16]20; DEFAULT-NEXT:    str q0, [x8, #32]21; DEFAULT-NEXT:    str q0, [x8, #48]22; DEFAULT-NEXT:    stur q0, [x8, #-32]23; DEFAULT-NEXT:    stur q0, [x8, #-16]24; DEFAULT-NEXT:    add x8, x8, #12825; DEFAULT-NEXT:    b.ne .LBB0_126; DEFAULT-NEXT:  // %bb.2: // %cleanup27; DEFAULT-NEXT:    ret28;29; ASCEND-LABEL: memset_unroll2:30; ASCEND:       // %bb.0: // %entry31; ASCEND-NEXT:    fmov v0.2d, #2.0000000032; ASCEND-NEXT:    add x8, x0, #6433; ASCEND-NEXT:    .p2align 4, , 834; ASCEND-NEXT:  .LBB0_1: // %vector.body35; ASCEND-NEXT:    // =>This Inner Loop Header: Depth=136; ASCEND-NEXT:    stur q0, [x8, #-64]37; ASCEND-NEXT:    subs x1, x1, #438; ASCEND-NEXT:    stur q0, [x8, #-48]39; ASCEND-NEXT:    stur q0, [x8, #-32]40; ASCEND-NEXT:    stur q0, [x8, #-16]41; ASCEND-NEXT:    str q0, [x8]42; ASCEND-NEXT:    str q0, [x8, #16]43; ASCEND-NEXT:    str q0, [x8, #32]44; ASCEND-NEXT:    str q0, [x8, #48]45; ASCEND-NEXT:    add x8, x8, #12846; ASCEND-NEXT:    b.ne .LBB0_147; ASCEND-NEXT:  // %bb.2: // %cleanup48; ASCEND-NEXT:    ret49entry:50  br label %vector.body51 52vector.body:                                      ; preds = %vector.body, %entry53  %index = phi i64 [ 0, %entry ], [ %index16, %vector.body ]54  %niter = phi i64 [ %size, %entry ], [ %niter.nsub.3, %vector.body ]55  %array0 = getelementptr inbounds double, ptr %array, i64 %index56  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array0, align 857  %array2 = getelementptr inbounds double, ptr %array0, i64 258  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array2, align 859  %index4 = or disjoint i64 %index, 460  %array4 = getelementptr inbounds double, ptr %array, i64 %index461  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array4, align 862  %array6 = getelementptr inbounds double, ptr %array4, i64 263  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array6, align 864  %index8 = or disjoint i64 %index, 865  %array8 = getelementptr inbounds double, ptr %array, i64 %index866  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array8, align 867  %array10 = getelementptr inbounds double, ptr %array8, i64 268  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array10, align 869  %index12 = or disjoint i64 %index, 1270  %array12 = getelementptr inbounds double, ptr %array, i64 %index1271  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array12, align 872  %array14 = getelementptr inbounds double, ptr %array12, i64 273  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %array14, align 874  %index16 = add i64 %index, 1675  %niter.nsub.3 = add i64 %niter, -476  %niter.ncmp.3 = icmp eq i64 %niter.nsub.3, 077  br i1 %niter.ncmp.3, label %cleanup, label %vector.body78 79cleanup:                           ; preds = %vector.body80  ret void81}82