1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64" 3*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-unknown-linux-gnu" 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 6*9880d681SAndroid Build Coastguard Workerdefine void @foo(double* noalias nocapture %a, double* noalias nocapture readonly %b) #0 { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker br label %vector.body 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @foo 11*9880d681SAndroid Build Coastguard Worker; Make sure that the offset constants we use are all even (only the last should be odd). 12*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1056 13*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1088 14*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1152 15*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1216 16*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1280 17*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1344 18*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1408 19*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1472 20*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1536 21*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1600 22*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1568 23*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1664 24*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1632 25*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1728 26*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1696 27*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1792 28*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1760 29*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1856 30*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1824 31*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1920 32*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1888 33*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1984 34*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1952 35*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 2016 36*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1024 37*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1120 38*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1184 39*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1248 40*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1312 41*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1376 42*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1440 43*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 1504 44*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: li {{[0-9]+}}, 2047 45*9880d681SAndroid Build Coastguard Worker; CHECK: blr 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workervector.body: ; preds = %vector.body, %entry 48*9880d681SAndroid Build Coastguard Worker %index = phi i64 [ 0, %entry ], [ %index.next.15, %vector.body ] 49*9880d681SAndroid Build Coastguard Worker %0 = shl i64 %index, 1 50*9880d681SAndroid Build Coastguard Worker %1 = getelementptr inbounds double, double* %b, i64 %0 51*9880d681SAndroid Build Coastguard Worker %2 = bitcast double* %1 to <8 x double>* 52*9880d681SAndroid Build Coastguard Worker %wide.vec = load <8 x double>, <8 x double>* %2, align 8 53*9880d681SAndroid Build Coastguard Worker %strided.vec = shufflevector <8 x double> %wide.vec, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 54*9880d681SAndroid Build Coastguard Worker %3 = fadd <4 x double> %strided.vec, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 55*9880d681SAndroid Build Coastguard Worker %4 = getelementptr inbounds double, double* %a, i64 %index 56*9880d681SAndroid Build Coastguard Worker %5 = bitcast double* %4 to <4 x double>* 57*9880d681SAndroid Build Coastguard Worker store <4 x double> %3, <4 x double>* %5, align 8 58*9880d681SAndroid Build Coastguard Worker %index.next = or i64 %index, 4 59*9880d681SAndroid Build Coastguard Worker %6 = shl i64 %index.next, 1 60*9880d681SAndroid Build Coastguard Worker %7 = getelementptr inbounds double, double* %b, i64 %6 61*9880d681SAndroid Build Coastguard Worker %8 = bitcast double* %7 to <8 x double>* 62*9880d681SAndroid Build Coastguard Worker %wide.vec.1 = load <8 x double>, <8 x double>* %8, align 8 63*9880d681SAndroid Build Coastguard Worker %strided.vec.1 = shufflevector <8 x double> %wide.vec.1, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 64*9880d681SAndroid Build Coastguard Worker %9 = fadd <4 x double> %strided.vec.1, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 65*9880d681SAndroid Build Coastguard Worker %10 = getelementptr inbounds double, double* %a, i64 %index.next 66*9880d681SAndroid Build Coastguard Worker %11 = bitcast double* %10 to <4 x double>* 67*9880d681SAndroid Build Coastguard Worker store <4 x double> %9, <4 x double>* %11, align 8 68*9880d681SAndroid Build Coastguard Worker %index.next.1 = or i64 %index, 8 69*9880d681SAndroid Build Coastguard Worker %12 = shl i64 %index.next.1, 1 70*9880d681SAndroid Build Coastguard Worker %13 = getelementptr inbounds double, double* %b, i64 %12 71*9880d681SAndroid Build Coastguard Worker %14 = bitcast double* %13 to <8 x double>* 72*9880d681SAndroid Build Coastguard Worker %wide.vec.2 = load <8 x double>, <8 x double>* %14, align 8 73*9880d681SAndroid Build Coastguard Worker %strided.vec.2 = shufflevector <8 x double> %wide.vec.2, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 74*9880d681SAndroid Build Coastguard Worker %15 = fadd <4 x double> %strided.vec.2, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 75*9880d681SAndroid Build Coastguard Worker %16 = getelementptr inbounds double, double* %a, i64 %index.next.1 76*9880d681SAndroid Build Coastguard Worker %17 = bitcast double* %16 to <4 x double>* 77*9880d681SAndroid Build Coastguard Worker store <4 x double> %15, <4 x double>* %17, align 8 78*9880d681SAndroid Build Coastguard Worker %index.next.2 = or i64 %index, 12 79*9880d681SAndroid Build Coastguard Worker %18 = shl i64 %index.next.2, 1 80*9880d681SAndroid Build Coastguard Worker %19 = getelementptr inbounds double, double* %b, i64 %18 81*9880d681SAndroid Build Coastguard Worker %20 = bitcast double* %19 to <8 x double>* 82*9880d681SAndroid Build Coastguard Worker %wide.vec.3 = load <8 x double>, <8 x double>* %20, align 8 83*9880d681SAndroid Build Coastguard Worker %strided.vec.3 = shufflevector <8 x double> %wide.vec.3, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 84*9880d681SAndroid Build Coastguard Worker %21 = fadd <4 x double> %strided.vec.3, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 85*9880d681SAndroid Build Coastguard Worker %22 = getelementptr inbounds double, double* %a, i64 %index.next.2 86*9880d681SAndroid Build Coastguard Worker %23 = bitcast double* %22 to <4 x double>* 87*9880d681SAndroid Build Coastguard Worker store <4 x double> %21, <4 x double>* %23, align 8 88*9880d681SAndroid Build Coastguard Worker %index.next.3 = or i64 %index, 16 89*9880d681SAndroid Build Coastguard Worker %24 = shl i64 %index.next.3, 1 90*9880d681SAndroid Build Coastguard Worker %25 = getelementptr inbounds double, double* %b, i64 %24 91*9880d681SAndroid Build Coastguard Worker %26 = bitcast double* %25 to <8 x double>* 92*9880d681SAndroid Build Coastguard Worker %wide.vec.4 = load <8 x double>, <8 x double>* %26, align 8 93*9880d681SAndroid Build Coastguard Worker %strided.vec.4 = shufflevector <8 x double> %wide.vec.4, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 94*9880d681SAndroid Build Coastguard Worker %27 = fadd <4 x double> %strided.vec.4, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 95*9880d681SAndroid Build Coastguard Worker %28 = getelementptr inbounds double, double* %a, i64 %index.next.3 96*9880d681SAndroid Build Coastguard Worker %29 = bitcast double* %28 to <4 x double>* 97*9880d681SAndroid Build Coastguard Worker store <4 x double> %27, <4 x double>* %29, align 8 98*9880d681SAndroid Build Coastguard Worker %index.next.4 = or i64 %index, 20 99*9880d681SAndroid Build Coastguard Worker %30 = shl i64 %index.next.4, 1 100*9880d681SAndroid Build Coastguard Worker %31 = getelementptr inbounds double, double* %b, i64 %30 101*9880d681SAndroid Build Coastguard Worker %32 = bitcast double* %31 to <8 x double>* 102*9880d681SAndroid Build Coastguard Worker %wide.vec.5 = load <8 x double>, <8 x double>* %32, align 8 103*9880d681SAndroid Build Coastguard Worker %strided.vec.5 = shufflevector <8 x double> %wide.vec.5, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 104*9880d681SAndroid Build Coastguard Worker %33 = fadd <4 x double> %strided.vec.5, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 105*9880d681SAndroid Build Coastguard Worker %34 = getelementptr inbounds double, double* %a, i64 %index.next.4 106*9880d681SAndroid Build Coastguard Worker %35 = bitcast double* %34 to <4 x double>* 107*9880d681SAndroid Build Coastguard Worker store <4 x double> %33, <4 x double>* %35, align 8 108*9880d681SAndroid Build Coastguard Worker %index.next.5 = or i64 %index, 24 109*9880d681SAndroid Build Coastguard Worker %36 = shl i64 %index.next.5, 1 110*9880d681SAndroid Build Coastguard Worker %37 = getelementptr inbounds double, double* %b, i64 %36 111*9880d681SAndroid Build Coastguard Worker %38 = bitcast double* %37 to <8 x double>* 112*9880d681SAndroid Build Coastguard Worker %wide.vec.6 = load <8 x double>, <8 x double>* %38, align 8 113*9880d681SAndroid Build Coastguard Worker %strided.vec.6 = shufflevector <8 x double> %wide.vec.6, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 114*9880d681SAndroid Build Coastguard Worker %39 = fadd <4 x double> %strided.vec.6, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 115*9880d681SAndroid Build Coastguard Worker %40 = getelementptr inbounds double, double* %a, i64 %index.next.5 116*9880d681SAndroid Build Coastguard Worker %41 = bitcast double* %40 to <4 x double>* 117*9880d681SAndroid Build Coastguard Worker store <4 x double> %39, <4 x double>* %41, align 8 118*9880d681SAndroid Build Coastguard Worker %index.next.6 = or i64 %index, 28 119*9880d681SAndroid Build Coastguard Worker %42 = shl i64 %index.next.6, 1 120*9880d681SAndroid Build Coastguard Worker %43 = getelementptr inbounds double, double* %b, i64 %42 121*9880d681SAndroid Build Coastguard Worker %44 = bitcast double* %43 to <8 x double>* 122*9880d681SAndroid Build Coastguard Worker %wide.vec.7 = load <8 x double>, <8 x double>* %44, align 8 123*9880d681SAndroid Build Coastguard Worker %strided.vec.7 = shufflevector <8 x double> %wide.vec.7, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 124*9880d681SAndroid Build Coastguard Worker %45 = fadd <4 x double> %strided.vec.7, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 125*9880d681SAndroid Build Coastguard Worker %46 = getelementptr inbounds double, double* %a, i64 %index.next.6 126*9880d681SAndroid Build Coastguard Worker %47 = bitcast double* %46 to <4 x double>* 127*9880d681SAndroid Build Coastguard Worker store <4 x double> %45, <4 x double>* %47, align 8 128*9880d681SAndroid Build Coastguard Worker %index.next.7 = or i64 %index, 32 129*9880d681SAndroid Build Coastguard Worker %48 = shl i64 %index.next.7, 1 130*9880d681SAndroid Build Coastguard Worker %49 = getelementptr inbounds double, double* %b, i64 %48 131*9880d681SAndroid Build Coastguard Worker %50 = bitcast double* %49 to <8 x double>* 132*9880d681SAndroid Build Coastguard Worker %wide.vec.8 = load <8 x double>, <8 x double>* %50, align 8 133*9880d681SAndroid Build Coastguard Worker %strided.vec.8 = shufflevector <8 x double> %wide.vec.8, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 134*9880d681SAndroid Build Coastguard Worker %51 = fadd <4 x double> %strided.vec.8, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 135*9880d681SAndroid Build Coastguard Worker %52 = getelementptr inbounds double, double* %a, i64 %index.next.7 136*9880d681SAndroid Build Coastguard Worker %53 = bitcast double* %52 to <4 x double>* 137*9880d681SAndroid Build Coastguard Worker store <4 x double> %51, <4 x double>* %53, align 8 138*9880d681SAndroid Build Coastguard Worker %index.next.8 = or i64 %index, 36 139*9880d681SAndroid Build Coastguard Worker %54 = shl i64 %index.next.8, 1 140*9880d681SAndroid Build Coastguard Worker %55 = getelementptr inbounds double, double* %b, i64 %54 141*9880d681SAndroid Build Coastguard Worker %56 = bitcast double* %55 to <8 x double>* 142*9880d681SAndroid Build Coastguard Worker %wide.vec.9 = load <8 x double>, <8 x double>* %56, align 8 143*9880d681SAndroid Build Coastguard Worker %strided.vec.9 = shufflevector <8 x double> %wide.vec.9, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 144*9880d681SAndroid Build Coastguard Worker %57 = fadd <4 x double> %strided.vec.9, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 145*9880d681SAndroid Build Coastguard Worker %58 = getelementptr inbounds double, double* %a, i64 %index.next.8 146*9880d681SAndroid Build Coastguard Worker %59 = bitcast double* %58 to <4 x double>* 147*9880d681SAndroid Build Coastguard Worker store <4 x double> %57, <4 x double>* %59, align 8 148*9880d681SAndroid Build Coastguard Worker %index.next.9 = or i64 %index, 40 149*9880d681SAndroid Build Coastguard Worker %60 = shl i64 %index.next.9, 1 150*9880d681SAndroid Build Coastguard Worker %61 = getelementptr inbounds double, double* %b, i64 %60 151*9880d681SAndroid Build Coastguard Worker %62 = bitcast double* %61 to <8 x double>* 152*9880d681SAndroid Build Coastguard Worker %wide.vec.10 = load <8 x double>, <8 x double>* %62, align 8 153*9880d681SAndroid Build Coastguard Worker %strided.vec.10 = shufflevector <8 x double> %wide.vec.10, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 154*9880d681SAndroid Build Coastguard Worker %63 = fadd <4 x double> %strided.vec.10, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 155*9880d681SAndroid Build Coastguard Worker %64 = getelementptr inbounds double, double* %a, i64 %index.next.9 156*9880d681SAndroid Build Coastguard Worker %65 = bitcast double* %64 to <4 x double>* 157*9880d681SAndroid Build Coastguard Worker store <4 x double> %63, <4 x double>* %65, align 8 158*9880d681SAndroid Build Coastguard Worker %index.next.10 = or i64 %index, 44 159*9880d681SAndroid Build Coastguard Worker %66 = shl i64 %index.next.10, 1 160*9880d681SAndroid Build Coastguard Worker %67 = getelementptr inbounds double, double* %b, i64 %66 161*9880d681SAndroid Build Coastguard Worker %68 = bitcast double* %67 to <8 x double>* 162*9880d681SAndroid Build Coastguard Worker %wide.vec.11 = load <8 x double>, <8 x double>* %68, align 8 163*9880d681SAndroid Build Coastguard Worker %strided.vec.11 = shufflevector <8 x double> %wide.vec.11, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 164*9880d681SAndroid Build Coastguard Worker %69 = fadd <4 x double> %strided.vec.11, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 165*9880d681SAndroid Build Coastguard Worker %70 = getelementptr inbounds double, double* %a, i64 %index.next.10 166*9880d681SAndroid Build Coastguard Worker %71 = bitcast double* %70 to <4 x double>* 167*9880d681SAndroid Build Coastguard Worker store <4 x double> %69, <4 x double>* %71, align 8 168*9880d681SAndroid Build Coastguard Worker %index.next.11 = or i64 %index, 48 169*9880d681SAndroid Build Coastguard Worker %72 = shl i64 %index.next.11, 1 170*9880d681SAndroid Build Coastguard Worker %73 = getelementptr inbounds double, double* %b, i64 %72 171*9880d681SAndroid Build Coastguard Worker %74 = bitcast double* %73 to <8 x double>* 172*9880d681SAndroid Build Coastguard Worker %wide.vec.12 = load <8 x double>, <8 x double>* %74, align 8 173*9880d681SAndroid Build Coastguard Worker %strided.vec.12 = shufflevector <8 x double> %wide.vec.12, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 174*9880d681SAndroid Build Coastguard Worker %75 = fadd <4 x double> %strided.vec.12, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 175*9880d681SAndroid Build Coastguard Worker %76 = getelementptr inbounds double, double* %a, i64 %index.next.11 176*9880d681SAndroid Build Coastguard Worker %77 = bitcast double* %76 to <4 x double>* 177*9880d681SAndroid Build Coastguard Worker store <4 x double> %75, <4 x double>* %77, align 8 178*9880d681SAndroid Build Coastguard Worker %index.next.12 = or i64 %index, 52 179*9880d681SAndroid Build Coastguard Worker %78 = shl i64 %index.next.12, 1 180*9880d681SAndroid Build Coastguard Worker %79 = getelementptr inbounds double, double* %b, i64 %78 181*9880d681SAndroid Build Coastguard Worker %80 = bitcast double* %79 to <8 x double>* 182*9880d681SAndroid Build Coastguard Worker %wide.vec.13 = load <8 x double>, <8 x double>* %80, align 8 183*9880d681SAndroid Build Coastguard Worker %strided.vec.13 = shufflevector <8 x double> %wide.vec.13, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 184*9880d681SAndroid Build Coastguard Worker %81 = fadd <4 x double> %strided.vec.13, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 185*9880d681SAndroid Build Coastguard Worker %82 = getelementptr inbounds double, double* %a, i64 %index.next.12 186*9880d681SAndroid Build Coastguard Worker %83 = bitcast double* %82 to <4 x double>* 187*9880d681SAndroid Build Coastguard Worker store <4 x double> %81, <4 x double>* %83, align 8 188*9880d681SAndroid Build Coastguard Worker %index.next.13 = or i64 %index, 56 189*9880d681SAndroid Build Coastguard Worker %84 = shl i64 %index.next.13, 1 190*9880d681SAndroid Build Coastguard Worker %85 = getelementptr inbounds double, double* %b, i64 %84 191*9880d681SAndroid Build Coastguard Worker %86 = bitcast double* %85 to <8 x double>* 192*9880d681SAndroid Build Coastguard Worker %wide.vec.14 = load <8 x double>, <8 x double>* %86, align 8 193*9880d681SAndroid Build Coastguard Worker %strided.vec.14 = shufflevector <8 x double> %wide.vec.14, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 194*9880d681SAndroid Build Coastguard Worker %87 = fadd <4 x double> %strided.vec.14, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 195*9880d681SAndroid Build Coastguard Worker %88 = getelementptr inbounds double, double* %a, i64 %index.next.13 196*9880d681SAndroid Build Coastguard Worker %89 = bitcast double* %88 to <4 x double>* 197*9880d681SAndroid Build Coastguard Worker store <4 x double> %87, <4 x double>* %89, align 8 198*9880d681SAndroid Build Coastguard Worker %index.next.14 = or i64 %index, 60 199*9880d681SAndroid Build Coastguard Worker %90 = shl i64 %index.next.14, 1 200*9880d681SAndroid Build Coastguard Worker %91 = getelementptr inbounds double, double* %b, i64 %90 201*9880d681SAndroid Build Coastguard Worker %92 = bitcast double* %91 to <8 x double>* 202*9880d681SAndroid Build Coastguard Worker %wide.vec.15 = load <8 x double>, <8 x double>* %92, align 8 203*9880d681SAndroid Build Coastguard Worker %strided.vec.15 = shufflevector <8 x double> %wide.vec.15, <8 x double> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 204*9880d681SAndroid Build Coastguard Worker %93 = fadd <4 x double> %strided.vec.15, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00> 205*9880d681SAndroid Build Coastguard Worker %94 = getelementptr inbounds double, double* %a, i64 %index.next.14 206*9880d681SAndroid Build Coastguard Worker %95 = bitcast double* %94 to <4 x double>* 207*9880d681SAndroid Build Coastguard Worker store <4 x double> %93, <4 x double>* %95, align 8 208*9880d681SAndroid Build Coastguard Worker %index.next.15 = add nsw i64 %index, 64 209*9880d681SAndroid Build Coastguard Worker %96 = icmp eq i64 %index.next.15, 1600 210*9880d681SAndroid Build Coastguard Worker br i1 %96, label %for.cond.cleanup, label %vector.body 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerfor.cond.cleanup: ; preds = %vector.body 213*9880d681SAndroid Build Coastguard Worker ret void 214*9880d681SAndroid Build Coastguard Worker} 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "target-cpu"="a2q" } 217*9880d681SAndroid Build Coastguard Worker 218