1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux-gnu \ 3; RUN: -mcpu=pwr10 -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names < %s \ 4; RUN: | FileCheck %s 5; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux-gnu \ 6; RUN: -mcpu=pwr10 -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \ 7; RUN: -ppc-track-subreg-liveness < %s | FileCheck %s --check-prefix=TRACKLIVE 8 9%0 = type <{ double }> 10%1 = type <{ double }> 11 12define void @acc_regalloc(i32* %arg, [0 x %0]* %arg1, [0 x %1]* %arg2) local_unnamed_addr { 13; CHECK-LABEL: acc_regalloc: 14; CHECK: # %bb.0: # %bb 15; CHECK-NEXT: lwz r3, 0(r3) 16; CHECK-NEXT: lxv v4, 0(0) 17; CHECK-NEXT: xxlxor v0, v0, v0 18; CHECK-NEXT: xxlxor v1, v1, v1 19; CHECK-NEXT: xxlxor v2, v2, v2 20; CHECK-NEXT: li r6, 1 21; CHECK-NEXT: li r4, 16 22; CHECK-NEXT: stfd f14, -144(r1) # 8-byte Folded Spill 23; CHECK-NEXT: stfd f15, -136(r1) # 8-byte Folded Spill 24; CHECK-NEXT: extswsli r3, r3, 3 25; CHECK-NEXT: xvmaddadp v1, v4, v1 26; CHECK-NEXT: lxvdsx v5, 0, r3 27; CHECK-NEXT: xvmaddadp v0, v5, v0 28; CHECK-NEXT: .p2align 4 29; CHECK-NEXT: .LBB0_1: # %bb9 30; CHECK-NEXT: # 31; CHECK-NEXT: addi r6, r6, 2 32; CHECK-NEXT: lxv vs0, 16(0) 33; CHECK-NEXT: lxv vs1, -64(r5) 34; CHECK-NEXT: xxlxor v7, v7, v7 35; CHECK-NEXT: vmr v9, v0 36; CHECK-NEXT: xxlxor v10, v10, v10 37; CHECK-NEXT: mulld r6, r6, r3 38; CHECK-NEXT: xvmaddadp v7, vs0, v5 39; CHECK-NEXT: xvmuldp v6, vs0, v2 40; CHECK-NEXT: lxv vs0, -16(r5) 41; CHECK-NEXT: xvmaddadp v9, vs1, v2 42; CHECK-NEXT: xxlxor v8, v8, v8 43; CHECK-NEXT: xvmaddadp v7, v2, v2 44; CHECK-NEXT: xvmaddadp v6, v2, v2 45; CHECK-NEXT: lxvdsx v14, r6, r4 46; CHECK-NEXT: li r6, 0 47; CHECK-NEXT: xvmaddadp v8, vs1, v8 48; CHECK-NEXT: xvmaddadp v10, vs0, v10 49; CHECK-NEXT: xvmuldp v3, vs1, v14 50; CHECK-NEXT: xvmuldp v11, vs0, v14 51; CHECK-NEXT: xvmuldp vs5, v14, v2 52; CHECK-NEXT: xvmuldp v13, v4, v14 53; CHECK-NEXT: xxlor vs0, v2, v2 54; CHECK-NEXT: vmr v12, v2 55; CHECK-NEXT: xxlor vs14, v10, v10 56; CHECK-NEXT: xxlor vs4, v2, v2 57; CHECK-NEXT: # kill: def $vsrp2 killed $vsrp2 def $uacc1 58; CHECK-NEXT: xxlor vs6, v6, v6 59; CHECK-NEXT: xxlor vs7, v7, v7 60; CHECK-NEXT: xxlor vs8, v12, v12 61; CHECK-NEXT: xxlor vs9, v13, v13 62; CHECK-NEXT: vmr v12, v1 63; CHECK-NEXT: xxlor vs1, v3, v3 64; CHECK-NEXT: xxlor vs2, v8, v8 65; CHECK-NEXT: xxlor vs3, v9, v9 66; CHECK-NEXT: xxlor vs15, v11, v11 67; CHECK-NEXT: vmr v10, v2 68; CHECK-NEXT: xxlor vs10, v12, v12 69; CHECK-NEXT: xxlor vs11, v13, v13 70; CHECK-NEXT: xxmtacc acc1 71; CHECK-NEXT: xxlor vs12, v10, v10 72; CHECK-NEXT: xxlor vs13, v11, v11 73; CHECK-NEXT: xxmtacc acc0 74; CHECK-NEXT: xxmtacc acc2 75; CHECK-NEXT: xxmtacc acc3 76; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 77; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 78; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 79; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 80; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 81; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 82; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 83; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 84; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 85; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 86; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 87; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 88; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 89; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 90; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 91; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 92; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 93; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 94; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 95; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 96; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 97; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 98; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 99; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 100; CHECK-NEXT: xvf64gerpp acc0, vsp34, vs0 101; CHECK-NEXT: xvf64gerpp acc1, vsp34, vs0 102; CHECK-NEXT: xvf64gerpp acc2, vsp34, vs0 103; CHECK-NEXT: xvf64gerpp acc3, vsp34, vs0 104; CHECK-NEXT: xxmfacc acc0 105; CHECK-NEXT: xxmfacc acc1 106; CHECK-NEXT: xxmfacc acc2 107; CHECK-NEXT: xxmfacc acc3 108; CHECK-NEXT: stxv vs1, 0(r3) 109; CHECK-NEXT: stxv vs9, 32(r3) 110; CHECK-NEXT: stxv vs4, 16(0) 111; CHECK-NEXT: stxv vs12, 48(0) 112; CHECK-NEXT: b .LBB0_1 113; 114; TRACKLIVE-LABEL: acc_regalloc: 115; TRACKLIVE: # %bb.0: # %bb 116; TRACKLIVE-NEXT: lwz r3, 0(r3) 117; TRACKLIVE-NEXT: lxv v4, 0(0) 118; TRACKLIVE-NEXT: xxlxor v0, v0, v0 119; TRACKLIVE-NEXT: xxlxor v1, v1, v1 120; TRACKLIVE-NEXT: xxlxor v2, v2, v2 121; TRACKLIVE-NEXT: li r6, 1 122; TRACKLIVE-NEXT: li r4, 16 123; TRACKLIVE-NEXT: stfd f14, -144(r1) # 8-byte Folded Spill 124; TRACKLIVE-NEXT: stfd f15, -136(r1) # 8-byte Folded Spill 125; TRACKLIVE-NEXT: extswsli r3, r3, 3 126; TRACKLIVE-NEXT: xvmaddadp v1, v4, v1 127; TRACKLIVE-NEXT: lxvdsx v5, 0, r3 128; TRACKLIVE-NEXT: xvmaddadp v0, v5, v0 129; TRACKLIVE-NEXT: .p2align 4 130; TRACKLIVE-NEXT: .LBB0_1: # %bb9 131; TRACKLIVE-NEXT: # 132; TRACKLIVE-NEXT: addi r6, r6, 2 133; TRACKLIVE-NEXT: lxv vs0, 16(0) 134; TRACKLIVE-NEXT: lxv vs1, -64(r5) 135; TRACKLIVE-NEXT: xxlxor vs7, vs7, vs7 136; TRACKLIVE-NEXT: xxlor vs3, v0, v0 137; TRACKLIVE-NEXT: xxlxor vs2, vs2, vs2 138; TRACKLIVE-NEXT: xxlxor vs12, vs12, vs12 139; TRACKLIVE-NEXT: mulld r6, r6, r3 140; TRACKLIVE-NEXT: xxlor vs10, v2, v2 141; TRACKLIVE-NEXT: xxlor vs4, v2, v2 142; TRACKLIVE-NEXT: xxlor vs8, vs10, vs10 143; TRACKLIVE-NEXT: xxlor vs10, v1, v1 144; TRACKLIVE-NEXT: xvmaddadp vs7, vs0, v5 145; TRACKLIVE-NEXT: xvmuldp vs6, vs0, v2 146; TRACKLIVE-NEXT: lxv vs0, -16(r5) 147; TRACKLIVE-NEXT: xvmaddadp vs3, vs1, v2 148; TRACKLIVE-NEXT: xvmaddadp vs2, vs1, vs2 149; TRACKLIVE-NEXT: lxvdsx v6, r6, r4 150; TRACKLIVE-NEXT: li r6, 0 151; TRACKLIVE-NEXT: xvmaddadp vs7, v2, v2 152; TRACKLIVE-NEXT: xvmaddadp vs6, v2, v2 153; TRACKLIVE-NEXT: xvmaddadp vs12, vs0, vs12 154; TRACKLIVE-NEXT: xvmuldp v3, vs1, v6 155; TRACKLIVE-NEXT: xvmuldp vs11, v4, v6 156; TRACKLIVE-NEXT: xvmuldp vs13, vs0, v6 157; TRACKLIVE-NEXT: xvmuldp vs5, v6, v2 158; TRACKLIVE-NEXT: xxlor vs0, v2, v2 159; TRACKLIVE-NEXT: xxlor vs14, vs12, vs12 160; TRACKLIVE-NEXT: xxlor vs12, v2, v2 161; TRACKLIVE-NEXT: xxlor vs1, v3, v3 162; TRACKLIVE-NEXT: xxlor vs9, vs11, vs11 163; TRACKLIVE-NEXT: xxlor vs15, vs13, vs13 164; TRACKLIVE-NEXT: xxmtacc acc1 165; TRACKLIVE-NEXT: xxmtacc acc0 166; TRACKLIVE-NEXT: xxmtacc acc2 167; TRACKLIVE-NEXT: xxmtacc acc3 168; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 169; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 170; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 171; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 172; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 173; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 174; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 175; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 176; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 177; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 178; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 179; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 180; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 181; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 182; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 183; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 184; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 185; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 186; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 187; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 188; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 189; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 190; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 191; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 192; TRACKLIVE-NEXT: xvf64gerpp acc0, vsp34, vs0 193; TRACKLIVE-NEXT: xvf64gerpp acc1, vsp34, vs0 194; TRACKLIVE-NEXT: xvf64gerpp acc2, vsp34, vs0 195; TRACKLIVE-NEXT: xvf64gerpp acc3, vsp34, vs0 196; TRACKLIVE-NEXT: xxmfacc acc0 197; TRACKLIVE-NEXT: xxmfacc acc1 198; TRACKLIVE-NEXT: xxmfacc acc2 199; TRACKLIVE-NEXT: xxmfacc acc3 200; TRACKLIVE-NEXT: stxv vs1, 0(r3) 201; TRACKLIVE-NEXT: stxv vs9, 32(r3) 202; TRACKLIVE-NEXT: stxv vs4, 16(0) 203; TRACKLIVE-NEXT: stxv vs12, 48(0) 204; TRACKLIVE-NEXT: b .LBB0_1 205bb: 206 %i = load i32, i32* %arg, align 4 207 %i3 = sext i32 %i to i64 208 %i4 = shl nsw i64 %i3, 3 209 %i5 = bitcast [0 x %0]* %arg1 to i8* 210 %i6 = getelementptr i8, i8* %i5, i64 undef 211 %i7 = getelementptr [0 x %1], [0 x %1]* %arg2, i64 0, i64 -8 212 %i8 = getelementptr i8, i8* %i6, i64 undef 213 br label %bb9 214 215bb9: ; preds = %bb95, %bb 216 %i10 = phi i64 [ 1, %bb ], [ 0, %bb95 ] 217 %i11 = getelementptr %1, %1* null, i64 2 218 %i12 = bitcast %1* %i11 to <2 x double>* 219 %i13 = load <2 x double>, <2 x double>* %i12, align 1 220 %i14 = add nuw nsw i64 %i10, 2 221 %i15 = getelementptr inbounds %1, %1* %i7, i64 undef 222 %i16 = bitcast %1* %i15 to <2 x double>* 223 %i17 = load <2 x double>, <2 x double>* %i16, align 1 224 %i18 = load <2 x double>, <2 x double>* null, align 1 225 %i19 = getelementptr %1, %1* %i15, i64 6 226 %i20 = bitcast %1* %i19 to <2 x double>* 227 %i21 = load <2 x double>, <2 x double>* %i20, align 1 228 %i22 = load i64, i64* undef, align 8 229 %i23 = insertelement <2 x i64> poison, i64 %i22, i32 0 230 %i24 = bitcast <2 x i64> %i23 to <2 x double> 231 %i25 = shufflevector <2 x double> %i24, <2 x double> undef, <2 x i32> zeroinitializer 232 %i26 = mul i64 %i14, %i4 233 %i27 = getelementptr i8, i8* null, i64 %i26 234 %i28 = getelementptr inbounds i8, i8* %i27, i64 0 235 %i29 = getelementptr i8, i8* %i28, i64 16 236 %i30 = bitcast i8* %i29 to i64* 237 %i31 = load i64, i64* %i30, align 8 238 %i32 = insertelement <2 x i64> poison, i64 %i31, i32 0 239 %i33 = bitcast <2 x i64> %i32 to <2 x double> 240 %i34 = shufflevector <2 x double> %i33, <2 x double> undef, <2 x i32> zeroinitializer 241 %i35 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> zeroinitializer, <2 x double> %i25, <2 x double> zeroinitializer) 242 %i36 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> %i13, <2 x double> %i25, <2 x double> zeroinitializer) 243 %i37 = fmul contract <2 x double> %i13, zeroinitializer 244 %i38 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> %i17, <2 x double> zeroinitializer, <2 x double> %i35) 245 %i39 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> zeroinitializer, <2 x double> zeroinitializer, <2 x double> %i36) 246 %i40 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> %i17, <2 x double> zeroinitializer, <2 x double> zeroinitializer) 247 %i41 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> zeroinitializer, <2 x double> zeroinitializer, <2 x double> %i37) 248 %i42 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> %i18, <2 x double> zeroinitializer, <2 x double> zeroinitializer) 249 %i43 = tail call contract <2 x double> @llvm.fma.v2f64(<2 x double> %i21, <2 x double> zeroinitializer, <2 x double> zeroinitializer) 250 %i44 = fmul contract <2 x double> %i17, %i34 251 %i45 = fmul contract <2 x double> zeroinitializer, %i34 252 %i46 = fmul contract <2 x double> %i18, %i34 253 %i47 = fmul contract <2 x double> %i21, %i34 254 %i48 = bitcast <2 x double> %i44 to <16 x i8> 255 %i49 = bitcast <2 x double> %i40 to <16 x i8> 256 %i50 = bitcast <2 x double> %i38 to <16 x i8> 257 %i51 = tail call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> zeroinitializer, <16 x i8> %i48, <16 x i8> %i49, <16 x i8> %i50) 258 %i52 = bitcast <2 x double> %i45 to <16 x i8> 259 %i53 = bitcast <2 x double> %i41 to <16 x i8> 260 %i54 = bitcast <2 x double> %i39 to <16 x i8> 261 %i55 = tail call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> zeroinitializer, <16 x i8> %i52, <16 x i8> %i53, <16 x i8> %i54) 262 %i56 = bitcast <2 x double> %i46 to <16 x i8> 263 %i57 = bitcast <2 x double> %i42 to <16 x i8> 264 %i58 = tail call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> zeroinitializer, <16 x i8> %i56, <16 x i8> %i57, <16 x i8> %i56) 265 %i59 = bitcast <2 x double> %i47 to <16 x i8> 266 %i60 = bitcast <2 x double> %i43 to <16 x i8> 267 %i61 = tail call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> zeroinitializer, <16 x i8> %i59, <16 x i8> %i60, <16 x i8> %i59) 268 %i62 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i51, <256 x i1> undef, <16 x i8> undef) 269 %i63 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i55, <256 x i1> undef, <16 x i8> undef) 270 %i64 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i58, <256 x i1> undef, <16 x i8> undef) 271 %i65 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i61, <256 x i1> undef, <16 x i8> undef) 272 %i66 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i62, <256 x i1> undef, <16 x i8> undef) 273 %i67 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i63, <256 x i1> undef, <16 x i8> undef) 274 %i68 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i64, <256 x i1> undef, <16 x i8> undef) 275 %i69 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i65, <256 x i1> undef, <16 x i8> undef) 276 %i70 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i66, <256 x i1> undef, <16 x i8> undef) 277 %i71 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i67, <256 x i1> undef, <16 x i8> undef) 278 %i72 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i68, <256 x i1> undef, <16 x i8> undef) 279 %i73 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i69, <256 x i1> undef, <16 x i8> undef) 280 %i74 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i70, <256 x i1> undef, <16 x i8> undef) 281 %i75 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i71, <256 x i1> undef, <16 x i8> undef) 282 %i76 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i72, <256 x i1> undef, <16 x i8> undef) 283 %i77 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i73, <256 x i1> undef, <16 x i8> undef) 284 %i78 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i74, <256 x i1> undef, <16 x i8> undef) 285 %i79 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i75, <256 x i1> undef, <16 x i8> undef) 286 %i80 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i76, <256 x i1> undef, <16 x i8> undef) 287 %i81 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i77, <256 x i1> undef, <16 x i8> undef) 288 br label %bb82 289 290bb82: ; preds = %bb82, %bb9 291 %i83 = phi <512 x i1> [ %i94, %bb82 ], [ %i81, %bb9 ] 292 %i84 = phi <512 x i1> [ %i93, %bb82 ], [ %i80, %bb9 ] 293 %i85 = phi <512 x i1> [ %i92, %bb82 ], [ %i79, %bb9 ] 294 %i86 = phi <512 x i1> [ %i91, %bb82 ], [ %i78, %bb9 ] 295 %i87 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i86, <256 x i1> undef, <16 x i8> undef) 296 %i88 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i85, <256 x i1> undef, <16 x i8> undef) 297 %i89 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i84, <256 x i1> undef, <16 x i8> undef) 298 %i90 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i83, <256 x i1> undef, <16 x i8> undef) 299 %i91 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i87, <256 x i1> undef, <16 x i8> undef) 300 %i92 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i88, <256 x i1> undef, <16 x i8> undef) 301 %i93 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i89, <256 x i1> undef, <16 x i8> undef) 302 %i94 = tail call <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1> %i90, <256 x i1> undef, <16 x i8> undef) 303 br i1 undef, label %bb95, label %bb82 304 305bb95: ; preds = %bb82 306 %i96 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %i91) 307 %i97 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i96, 2 308 %i98 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %i92) 309 %i99 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i98, 3 310 %i100 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %i93) 311 %i101 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i100, 2 312 %i102 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %i94) 313 %i103 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i102, 3 314 %i104 = getelementptr inbounds i8, i8* %i8, i64 undef 315 %i105 = bitcast i8* %i104 to <16 x i8>* 316 store <16 x i8> %i97, <16 x i8>* %i105, align 1 317 %i106 = getelementptr i8, i8* %i104, i64 32 318 %i107 = bitcast i8* %i106 to <16 x i8>* 319 store <16 x i8> %i101, <16 x i8>* %i107, align 1 320 %i108 = getelementptr i8, i8* null, i64 16 321 %i109 = bitcast i8* %i108 to <16 x i8>* 322 store <16 x i8> %i99, <16 x i8>* %i109, align 1 323 %i110 = getelementptr i8, i8* null, i64 48 324 %i111 = bitcast i8* %i110 to <16 x i8>* 325 store <16 x i8> %i103, <16 x i8>* %i111, align 1 326 br label %bb9 327} 328 329declare <2 x double> @llvm.fma.v2f64(<2 x double>, <2 x double>, <2 x double>) 330declare <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>) 331declare <512 x i1> @llvm.ppc.mma.xvf64gerpp(<512 x i1>, <256 x i1>, <16 x i8>) 332declare { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1>) 333 334