388 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64 -hoist-const-loads=false < %s | FileCheck %s3 4@A = external dso_local local_unnamed_addr global [8 x [8 x i64]], align 85@B = external dso_local local_unnamed_addr global [8 x [8 x i64]], align 86@C = external dso_local local_unnamed_addr global [8 x [8 x i64]], align 87 8define dso_local void @run_test() local_unnamed_addr uwtable {9; CHECK-LABEL: run_test:10; CHECK: // %bb.0: // %entry11; CHECK-NEXT: sub sp, sp, #19212; CHECK-NEXT: .cfi_def_cfa_offset 19213; CHECK-NEXT: stp d15, d14, [sp, #112] // 16-byte Folded Spill14; CHECK-NEXT: stp d13, d12, [sp, #128] // 16-byte Folded Spill15; CHECK-NEXT: stp d11, d10, [sp, #144] // 16-byte Folded Spill16; CHECK-NEXT: stp d9, d8, [sp, #160] // 16-byte Folded Spill17; CHECK-NEXT: stp x20, x19, [sp, #176] // 16-byte Folded Spill18; CHECK-NEXT: .cfi_offset w19, -819; CHECK-NEXT: .cfi_offset w20, -1620; CHECK-NEXT: .cfi_offset b8, -2421; CHECK-NEXT: .cfi_offset b9, -3222; CHECK-NEXT: .cfi_offset b10, -4023; CHECK-NEXT: .cfi_offset b11, -4824; CHECK-NEXT: .cfi_offset b12, -5625; CHECK-NEXT: .cfi_offset b13, -6426; CHECK-NEXT: .cfi_offset b14, -7227; CHECK-NEXT: .cfi_offset b15, -8028; CHECK-NEXT: movi v1.2d, #000000000000000029; CHECK-NEXT: adrp x14, B+4830; CHECK-NEXT: add x14, x14, :lo12:B+4831; CHECK-NEXT: // implicit-def: $q1832; CHECK-NEXT: mov x8, xzr33; CHECK-NEXT: mov w9, #8 // =0x834; CHECK-NEXT: adrp x10, A35; CHECK-NEXT: add x10, x10, :lo12:A36; CHECK-NEXT: mov x11, xzr37; CHECK-NEXT: // kill: killed $q1838; CHECK-NEXT: // implicit-def: $q1839; CHECK-NEXT: mov x12, xzr40; CHECK-NEXT: mov x13, x1441; CHECK-NEXT: // implicit-def: $q042; CHECK-NEXT: // implicit-def: $q243; CHECK-NEXT: // implicit-def: $q344; CHECK-NEXT: // implicit-def: $q445; CHECK-NEXT: // implicit-def: $q546; CHECK-NEXT: // implicit-def: $q647; CHECK-NEXT: // implicit-def: $q1648; CHECK-NEXT: // implicit-def: $q1749; CHECK-NEXT: // implicit-def: $q750; CHECK-NEXT: // implicit-def: $q1951; CHECK-NEXT: // implicit-def: $q2052; CHECK-NEXT: // implicit-def: $q2153; CHECK-NEXT: // implicit-def: $q2254; CHECK-NEXT: // implicit-def: $q2455; CHECK-NEXT: // implicit-def: $q2356; CHECK-NEXT: // implicit-def: $q2557; CHECK-NEXT: // implicit-def: $q2658; CHECK-NEXT: // implicit-def: $q2759; CHECK-NEXT: // implicit-def: $q3060; CHECK-NEXT: // implicit-def: $q861; CHECK-NEXT: // implicit-def: $q1162; CHECK-NEXT: // implicit-def: $q1263; CHECK-NEXT: // implicit-def: $q2964; CHECK-NEXT: // implicit-def: $q1365; CHECK-NEXT: // implicit-def: $q1066; CHECK-NEXT: // implicit-def: $q1567; CHECK-NEXT: // kill: killed $q1868; CHECK-NEXT: // implicit-def: $q1869; CHECK-NEXT: // kill: killed $q1870; CHECK-NEXT: .LBB0_1: // %for.cond1.preheader71; CHECK-NEXT: // =>This Inner Loop Header: Depth=172; CHECK-NEXT: ldr x17, [x8]73; CHECK-NEXT: ldr x15, [x8]74; CHECK-NEXT: mov v18.16b, v0.16b75; CHECK-NEXT: ldr x16, [x9]76; CHECK-NEXT: stp q15, q4, [sp] // 32-byte Folded Spill77; CHECK-NEXT: add x5, x10, x1178; CHECK-NEXT: mul x1, x15, x1779; CHECK-NEXT: ldr x2, [x13], #6480; CHECK-NEXT: ldr x5, [x5, #128]81; CHECK-NEXT: stp q7, q23, [sp, #32] // 32-byte Folded Spill82; CHECK-NEXT: ldr x14, [x14, #8]83; CHECK-NEXT: mul x0, x17, x1784; CHECK-NEXT: ldr q23, [sp, #80] // 16-byte Reload85; CHECK-NEXT: mov v9.16b, v30.16b86; CHECK-NEXT: mov v30.16b, v25.16b87; CHECK-NEXT: mov v25.16b, v20.16b88; CHECK-NEXT: mov v20.16b, v6.16b89; CHECK-NEXT: mul x18, x16, x1790; CHECK-NEXT: mov v6.16b, v1.16b91; CHECK-NEXT: mov v28.16b, v24.16b92; CHECK-NEXT: fmov d14, x193; CHECK-NEXT: mov v24.16b, v19.16b94; CHECK-NEXT: mov v19.16b, v5.16b95; CHECK-NEXT: mul x4, x2, x1796; CHECK-NEXT: mov v31.16b, v26.16b97; CHECK-NEXT: mov v26.16b, v21.16b98; CHECK-NEXT: fmov d15, x099; CHECK-NEXT: mov v21.16b, v16.16b100; CHECK-NEXT: mov v16.16b, v2.16b101; CHECK-NEXT: mov v0.16b, v14.16b102; CHECK-NEXT: mul x20, x2, x5103; CHECK-NEXT: mov v7.16b, v10.16b104; CHECK-NEXT: mov v10.16b, v17.16b105; CHECK-NEXT: mov v17.16b, v3.16b106; CHECK-NEXT: add x11, x11, #8107; CHECK-NEXT: mov v15.d[1], x18108; CHECK-NEXT: mul x3, x14, x17109; CHECK-NEXT: cmp x11, #64110; CHECK-NEXT: mov v0.d[1], x1111; CHECK-NEXT: fmov d1, x4112; CHECK-NEXT: add x12, x12, #1113; CHECK-NEXT: mul x17, x17, x5114; CHECK-NEXT: fmov d5, x20115; CHECK-NEXT: mul x6, x15, x15116; CHECK-NEXT: add v23.2d, v23.2d, v0.2d117; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload118; CHECK-NEXT: mov v1.d[1], x3119; CHECK-NEXT: mul x7, x15, x5120; CHECK-NEXT: add v0.2d, v0.2d, v15.2d121; CHECK-NEXT: fmov d2, x17122; CHECK-NEXT: mul x0, x14, x5123; CHECK-NEXT: fmov d4, x6124; CHECK-NEXT: mul x19, x16, x5125; CHECK-NEXT: stp q0, q23, [sp, #64] // 32-byte Folded Spill126; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload127; CHECK-NEXT: fmov d3, x7128; CHECK-NEXT: ldr q23, [sp, #48] // 16-byte Reload129; CHECK-NEXT: mul x17, x2, x15130; CHECK-NEXT: add v0.2d, v0.2d, v15.2d131; CHECK-NEXT: ldr q15, [sp] // 16-byte Reload132; CHECK-NEXT: mov v5.d[1], x0133; CHECK-NEXT: mov v4.d[1], x6134; CHECK-NEXT: mul x16, x16, x15135; CHECK-NEXT: mov v3.d[1], x7136; CHECK-NEXT: add v15.2d, v15.2d, v1.2d137; CHECK-NEXT: mov v2.d[1], x19138; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill139; CHECK-NEXT: mov v1.16b, v6.16b140; CHECK-NEXT: mul x14, x14, x15141; CHECK-NEXT: mov v6.16b, v20.16b142; CHECK-NEXT: mov v20.16b, v25.16b143; CHECK-NEXT: fmov d0, x17144; CHECK-NEXT: mov v25.16b, v30.16b145; CHECK-NEXT: add v30.2d, v9.2d, v5.2d146; CHECK-NEXT: mov v5.16b, v19.16b147; CHECK-NEXT: mov v19.16b, v24.16b148; CHECK-NEXT: add v11.2d, v11.2d, v3.2d149; CHECK-NEXT: mov v14.d[1], x16150; CHECK-NEXT: mov v3.16b, v17.16b151; CHECK-NEXT: mov v17.16b, v10.16b152; CHECK-NEXT: mov v10.16b, v7.16b153; CHECK-NEXT: add v8.2d, v8.2d, v2.2d154; CHECK-NEXT: mov v2.16b, v16.16b155; CHECK-NEXT: mov v0.d[1], x14156; CHECK-NEXT: mov v16.16b, v21.16b157; CHECK-NEXT: mov v21.16b, v26.16b158; CHECK-NEXT: add v13.2d, v13.2d, v4.2d159; CHECK-NEXT: add v26.2d, v31.2d, v4.2d160; CHECK-NEXT: add v24.2d, v28.2d, v4.2d161; CHECK-NEXT: add v19.2d, v19.2d, v4.2d162; CHECK-NEXT: add v6.2d, v6.2d, v4.2d163; CHECK-NEXT: add v1.2d, v1.2d, v4.2d164; CHECK-NEXT: ldp q4, q7, [sp, #16] // 32-byte Folded Reload165; CHECK-NEXT: add v10.2d, v10.2d, v14.2d166; CHECK-NEXT: add v29.2d, v29.2d, v14.2d167; CHECK-NEXT: add v27.2d, v27.2d, v14.2d168; CHECK-NEXT: add v23.2d, v23.2d, v14.2d169; CHECK-NEXT: add v22.2d, v22.2d, v14.2d170; CHECK-NEXT: add v20.2d, v20.2d, v14.2d171; CHECK-NEXT: add v16.2d, v16.2d, v14.2d172; CHECK-NEXT: add v7.2d, v7.2d, v14.2d173; CHECK-NEXT: add v5.2d, v5.2d, v14.2d174; CHECK-NEXT: add v3.2d, v3.2d, v14.2d175; CHECK-NEXT: add v2.2d, v2.2d, v14.2d176; CHECK-NEXT: add v12.2d, v12.2d, v0.2d177; CHECK-NEXT: add v25.2d, v25.2d, v0.2d178; CHECK-NEXT: add v21.2d, v21.2d, v0.2d179; CHECK-NEXT: add v17.2d, v17.2d, v0.2d180; CHECK-NEXT: add v4.2d, v4.2d, v0.2d181; CHECK-NEXT: add v0.2d, v18.2d, v0.2d182; CHECK-NEXT: mov x14, x13183; CHECK-NEXT: b.ne .LBB0_1184; CHECK-NEXT: // %bb.2: // %for.cond.cleanup185; CHECK-NEXT: ldp q28, q18, [sp, #64] // 32-byte Folded Reload186; CHECK-NEXT: adrp x8, C187; CHECK-NEXT: add x8, x8, :lo12:C188; CHECK-NEXT: ldp x20, x19, [sp, #176] // 16-byte Folded Reload189; CHECK-NEXT: stp q10, q13, [x8, #64]190; CHECK-NEXT: stp q28, q18, [x8]191; CHECK-NEXT: ldr q18, [sp, #96] // 16-byte Reload192; CHECK-NEXT: stp q29, q12, [x8, #96]193; CHECK-NEXT: ldp d13, d12, [sp, #128] // 16-byte Folded Reload194; CHECK-NEXT: stp q18, q15, [x8, #32]195; CHECK-NEXT: ldp d15, d14, [sp, #112] // 16-byte Folded Reload196; CHECK-NEXT: stp q11, q8, [x8, #144]197; CHECK-NEXT: ldp d9, d8, [sp, #160] // 16-byte Folded Reload198; CHECK-NEXT: stp q30, q27, [x8, #176]199; CHECK-NEXT: ldp d11, d10, [sp, #144] // 16-byte Folded Reload200; CHECK-NEXT: str q26, [x8, #208]201; CHECK-NEXT: stp q25, q23, [x8, #240]202; CHECK-NEXT: stp q24, q22, [x8, #272]203; CHECK-NEXT: stp q21, q20, [x8, #304]204; CHECK-NEXT: stp q19, q7, [x8, #336]205; CHECK-NEXT: stp q17, q16, [x8, #368]206; CHECK-NEXT: stp q6, q5, [x8, #400]207; CHECK-NEXT: stp q4, q3, [x8, #432]208; CHECK-NEXT: stp q1, q2, [x8, #464]209; CHECK-NEXT: str q0, [x8, #496]210; CHECK-NEXT: add sp, sp, #192211; CHECK-NEXT: .cfi_def_cfa_offset 0212; CHECK-NEXT: .cfi_restore w19213; CHECK-NEXT: .cfi_restore w20214; CHECK-NEXT: .cfi_restore b8215; CHECK-NEXT: .cfi_restore b9216; CHECK-NEXT: .cfi_restore b10217; CHECK-NEXT: .cfi_restore b11218; CHECK-NEXT: .cfi_restore b12219; CHECK-NEXT: .cfi_restore b13220; CHECK-NEXT: .cfi_restore b14221; CHECK-NEXT: .cfi_restore b15222; CHECK-NEXT: ret223; CH`ECK-NEXT: .cfi_offset b9, -16224entry:225 br label %for.cond1.preheader226 227for.cond1.preheader: ; preds = %for.cond1.preheader, %entry228 %0 = phi <2 x i64> [ undef, %entry ], [ %118, %for.cond1.preheader ]229 %1 = phi <2 x i64> [ undef, %entry ], [ %116, %for.cond1.preheader ]230 %2 = phi <2 x i64> [ zeroinitializer, %entry ], [ %114, %for.cond1.preheader ]231 %3 = phi <2 x i64> [ undef, %entry ], [ %112, %for.cond1.preheader ]232 %4 = phi <2 x i64> [ undef, %entry ], [ %107, %for.cond1.preheader ]233 %5 = phi <2 x i64> [ undef, %entry ], [ %105, %for.cond1.preheader ]234 %6 = phi <2 x i64> [ undef, %entry ], [ %103, %for.cond1.preheader ]235 %7 = phi <2 x i64> [ undef, %entry ], [ %101, %for.cond1.preheader ]236 %8 = phi <2 x i64> [ undef, %entry ], [ %96, %for.cond1.preheader ]237 %9 = phi <2 x i64> [ undef, %entry ], [ %94, %for.cond1.preheader ]238 %10 = phi <2 x i64> [ undef, %entry ], [ %92, %for.cond1.preheader ]239 %11 = phi <2 x i64> [ undef, %entry ], [ %90, %for.cond1.preheader ]240 %12 = phi <2 x i64> [ undef, %entry ], [ %85, %for.cond1.preheader ]241 %13 = phi <2 x i64> [ undef, %entry ], [ %83, %for.cond1.preheader ]242 %14 = phi <2 x i64> [ undef, %entry ], [ %81, %for.cond1.preheader ]243 %15 = phi <2 x i64> [ undef, %entry ], [ %79, %for.cond1.preheader ]244 %16 = phi <2 x i64> [ undef, %entry ], [ %74, %for.cond1.preheader ]245 %17 = phi <2 x i64> [ undef, %entry ], [ %72, %for.cond1.preheader ]246 %18 = phi <2 x i64> [ undef, %entry ], [ %70, %for.cond1.preheader ]247 %19 = phi <2 x i64> [ undef, %entry ], [ %65, %for.cond1.preheader ]248 %20 = phi <2 x i64> [ undef, %entry ], [ %63, %for.cond1.preheader ]249 %21 = phi <2 x i64> [ undef, %entry ], [ %61, %for.cond1.preheader ]250 %22 = phi <2 x i64> [ undef, %entry ], [ %56, %for.cond1.preheader ]251 %23 = phi <2 x i64> [ undef, %entry ], [ %54, %for.cond1.preheader ]252 %24 = phi <2 x i64> [ undef, %entry ], [ %52, %for.cond1.preheader ]253 %25 = phi <2 x i64> [ undef, %entry ], [ %50, %for.cond1.preheader ]254 %26 = phi <2 x i64> [ undef, %entry ], [ %45, %for.cond1.preheader ]255 %27 = phi <2 x i64> [ undef, %entry ], [ %43, %for.cond1.preheader ]256 %28 = phi <2 x i64> [ undef, %entry ], [ %41, %for.cond1.preheader ]257 %29 = phi <2 x i64> [ undef, %entry ], [ %39, %for.cond1.preheader ]258 %indvars.iv40 = phi i64 [ 0, %entry ], [ %indvars.iv.next41, %for.cond1.preheader ]259 %30 = load <2 x i64>, ptr null, align 8260 %31 = load <2 x i64>, ptr undef, align 8261 %arrayidx14.4.phi.trans.insert = getelementptr inbounds [8 x [8 x i64]], ptr @B, i64 0, i64 %indvars.iv40, i64 4262 %32 = load <2 x i64>, ptr null, align 8263 %arrayidx14.6.phi.trans.insert = getelementptr inbounds [8 x [8 x i64]], ptr @B, i64 0, i64 %indvars.iv40, i64 6264 %33 = bitcast ptr %arrayidx14.6.phi.trans.insert to ptr265 %34 = load <2 x i64>, ptr %33, align 8266 %35 = load i64, ptr null, align 8267 %36 = insertelement <2 x i64> undef, i64 %35, i32 0268 %37 = shufflevector <2 x i64> %36, <2 x i64> undef, <2 x i32> zeroinitializer269 %38 = mul nsw <2 x i64> %30, %37270 %39 = add nsw <2 x i64> %29, %38271 %40 = mul nsw <2 x i64> %31, %37272 %41 = add nsw <2 x i64> %28, %40273 %42 = mul nsw <2 x i64> %32, %37274 %43 = add nsw <2 x i64> %27, %42275 %44 = mul nsw <2 x i64> %34, %37276 %45 = add nsw <2 x i64> %26, %44277 %46 = load i64, ptr undef, align 8278 %47 = insertelement <2 x i64> undef, i64 %46, i32 0279 %48 = shufflevector <2 x i64> %47, <2 x i64> undef, <2 x i32> zeroinitializer280 %49 = mul nsw <2 x i64> %30, %48281 %50 = add nsw <2 x i64> %25, %49282 %51 = mul nsw <2 x i64> %31, %48283 %52 = add nsw <2 x i64> %24, %51284 %53 = mul nsw <2 x i64> %32, %48285 %54 = add nsw <2 x i64> %23, %53286 %55 = mul nsw <2 x i64> %34, %48287 %56 = add nsw <2 x i64> %22, %55288 %arrayidx10.2 = getelementptr inbounds [8 x [8 x i64]], ptr @A, i64 0, i64 2, i64 %indvars.iv40289 %57 = load i64, ptr %arrayidx10.2, align 8290 %58 = insertelement <2 x i64> undef, i64 %57, i32 0291 %59 = shufflevector <2 x i64> %58, <2 x i64> undef, <2 x i32> zeroinitializer292 %60 = mul nsw <2 x i64> %31, %59293 %61 = add nsw <2 x i64> %21, %60294 %62 = mul nsw <2 x i64> %32, %59295 %63 = add nsw <2 x i64> %20, %62296 %64 = mul nsw <2 x i64> %34, %59297 %65 = add nsw <2 x i64> %19, %64298 %66 = load i64, ptr undef, align 8299 %67 = insertelement <2 x i64> undef, i64 %66, i32 0300 %68 = shufflevector <2 x i64> %67, <2 x i64> undef, <2 x i32> zeroinitializer301 %69 = mul nsw <2 x i64> %30, %68302 %70 = add nsw <2 x i64> %18, %69303 %71 = mul nsw <2 x i64> %31, %68304 %72 = add nsw <2 x i64> %17, %71305 %73 = mul nsw <2 x i64> %34, %68306 %74 = add nsw <2 x i64> %16, %73307 %75 = load i64, ptr undef, align 8308 %76 = insertelement <2 x i64> undef, i64 %75, i32 0309 %77 = shufflevector <2 x i64> %76, <2 x i64> undef, <2 x i32> zeroinitializer310 %78 = mul nsw <2 x i64> %30, %77311 %79 = add nsw <2 x i64> %15, %78312 %80 = mul nsw <2 x i64> %31, %77313 %81 = add nsw <2 x i64> %14, %80314 %82 = mul nsw <2 x i64> %32, %77315 %83 = add nsw <2 x i64> %13, %82316 %84 = mul nsw <2 x i64> %34, %77317 %85 = add nsw <2 x i64> %12, %84318 %86 = load i64, ptr undef, align 8319 %87 = insertelement <2 x i64> undef, i64 %86, i32 0320 %88 = shufflevector <2 x i64> %87, <2 x i64> undef, <2 x i32> zeroinitializer321 %89 = mul nsw <2 x i64> %30, %88322 %90 = add nsw <2 x i64> %11, %89323 %91 = mul nsw <2 x i64> %31, %88324 %92 = add nsw <2 x i64> %10, %91325 %93 = mul nsw <2 x i64> %32, %88326 %94 = add nsw <2 x i64> %9, %93327 %95 = mul nsw <2 x i64> %34, %88328 %96 = add nsw <2 x i64> %8, %95329 %97 = load i64, ptr undef, align 8330 %98 = insertelement <2 x i64> undef, i64 %97, i32 0331 %99 = shufflevector <2 x i64> %98, <2 x i64> undef, <2 x i32> zeroinitializer332 %100 = mul nsw <2 x i64> %30, %99333 %101 = add nsw <2 x i64> %7, %100334 %102 = mul nsw <2 x i64> %31, %99335 %103 = add nsw <2 x i64> %6, %102336 %104 = mul nsw <2 x i64> %32, %99337 %105 = add nsw <2 x i64> %5, %104338 %106 = mul nsw <2 x i64> %34, %99339 %107 = add nsw <2 x i64> %4, %106340 %108 = load i64, ptr undef, align 8341 %109 = insertelement <2 x i64> undef, i64 %108, i32 0342 %110 = shufflevector <2 x i64> %109, <2 x i64> undef, <2 x i32> zeroinitializer343 %111 = mul nsw <2 x i64> %30, %110344 %112 = add nsw <2 x i64> %3, %111345 %113 = mul nsw <2 x i64> %31, %110346 %114 = add nsw <2 x i64> %2, %113347 %115 = mul nsw <2 x i64> %32, %110348 %116 = add nsw <2 x i64> %1, %115349 %117 = mul nsw <2 x i64> %34, %110350 %118 = add nsw <2 x i64> %0, %117351 %indvars.iv.next41 = add nuw nsw i64 %indvars.iv40, 1352 %exitcond42 = icmp eq i64 %indvars.iv.next41, 8353 br i1 %exitcond42, label %for.cond.cleanup, label %for.cond1.preheader354 355for.cond.cleanup: ; preds = %for.cond1.preheader356 store <2 x i64> %39, ptr @C, align 8357 store <2 x i64> %41, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 0, i64 2), align 8358 store <2 x i64> %43, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 0, i64 4), align 8359 store <2 x i64> %45, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 0, i64 6), align 8360 store <2 x i64> %50, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 1, i64 0), align 8361 store <2 x i64> %52, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 1, i64 2), align 8362 store <2 x i64> %54, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 1, i64 4), align 8363 store <2 x i64> %56, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 1, i64 6), align 8364 store <2 x i64> %61, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 2, i64 2), align 8365 store <2 x i64> %63, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 2, i64 4), align 8366 store <2 x i64> %65, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 2, i64 6), align 8367 store <2 x i64> %70, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 3, i64 0), align 8368 store <2 x i64> %72, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 3, i64 2), align 8369 store <2 x i64> %74, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 3, i64 6), align 8370 store <2 x i64> %79, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 4, i64 0), align 8371 store <2 x i64> %81, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 4, i64 2), align 8372 store <2 x i64> %83, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 4, i64 4), align 8373 store <2 x i64> %85, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 4, i64 6), align 8374 store <2 x i64> %90, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 5, i64 0), align 8375 store <2 x i64> %92, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 5, i64 2), align 8376 store <2 x i64> %94, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 5, i64 4), align 8377 store <2 x i64> %96, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 5, i64 6), align 8378 store <2 x i64> %101, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 6, i64 0), align 8379 store <2 x i64> %103, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 6, i64 2), align 8380 store <2 x i64> %105, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 6, i64 4), align 8381 store <2 x i64> %107, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 6, i64 6), align 8382 store <2 x i64> %112, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 7, i64 0), align 8383 store <2 x i64> %114, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 7, i64 2), align 8384 store <2 x i64> %116, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 7, i64 4), align 8385 store <2 x i64> %118, ptr getelementptr inbounds ([8 x [8 x i64]], ptr @C, i64 0, i64 7, i64 6), align 8386 ret void387}388