brintos

brintos / llvm-project-archived public Read only

0
0
Text · 40.0 KiB · 1760353 Raw
718 lines · plain
1! RUN: %flang_fc1 -flang-experimental-hlfir -triple powerpc64le-unknown-unknown -target-cpu pwr10 -emit-llvm %s -o - | FileCheck --check-prefixes="LLVMIR" %s2! REQUIRES: target=powerpc{{.*}}3 4! mma_assemble_acc5 6      subroutine test_assemble_acc_i1()7      use, intrinsic :: mma8      implicit none9      vector(integer(1)) vi10, vi11, vi12, vi1310      __vector_quad :: cq11      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)12      end subroutine test_assemble_acc_i113 14! CHECK-LABEL: @test_assemble_acc_i115 16! LLVMIR:         %[[VAL_0:.*]] = alloca <16 x i8>, i64 1, align 1617! LLVMIR:         %[[VAL_1:.*]] = alloca <16 x i8>, i64 1, align 1618! LLVMIR:         %[[VAL_2:.*]] = alloca <16 x i8>, i64 1, align 1619! LLVMIR:         %[[VAL_3:.*]] = alloca <16 x i8>, i64 1, align 1620! LLVMIR:         %[[VAL_4:.*]] = alloca <512 x i1>, i64 1, align 6421! LLVMIR:         %[[VAL_5:.*]] = load <16 x i8>, ptr %[[VAL_3]], align 1622! LLVMIR:         %[[VAL_6:.*]] = load <16 x i8>, ptr %[[VAL_2]], align 1623! LLVMIR:         %[[VAL_7:.*]] = load <16 x i8>, ptr %[[VAL_1]], align 1624! LLVMIR:         %[[VAL_8:.*]] = load <16 x i8>, ptr %[[VAL_0]], align 1625! LLVMIR:         %[[VAL_9:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_5]], <16 x i8> %[[VAL_6]], <16 x i8> %[[VAL_7]], <16 x i8> %[[VAL_8]])26! LLVMIR:         store <512 x i1> %[[VAL_9]], ptr %[[VAL_4]], align 6427 28      subroutine test_assemble_acc_i2()29      use, intrinsic :: mma30      implicit none31      vector(integer(2)) vi10, vi11, vi12, vi1332      __vector_quad :: cq33      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)34      end subroutine test_assemble_acc_i235 36! CHECK-LABEL: @test_assemble_acc_i237! LLVMIR:         %[[VAL_10:.*]] = alloca <8 x i16>, i64 1, align 1638! LLVMIR:         %[[VAL_11:.*]] = alloca <8 x i16>, i64 1, align 1639! LLVMIR:         %[[VAL_12:.*]] = alloca <8 x i16>, i64 1, align 1640! LLVMIR:         %[[VAL_13:.*]] = alloca <8 x i16>, i64 1, align 1641! LLVMIR:         %[[VAL_14:.*]] = alloca <512 x i1>, i64 1, align 6442! LLVMIR:         %[[VAL_15:.*]] = load <8 x i16>, ptr %[[VAL_13]], align 1643! LLVMIR:         %[[VAL_16:.*]] = load <8 x i16>, ptr %[[VAL_12]], align 1644! LLVMIR:         %[[VAL_17:.*]] = load <8 x i16>, ptr %[[VAL_11]], align 1645! LLVMIR:         %[[VAL_18:.*]] = load <8 x i16>, ptr %[[VAL_10]], align 1646! LLVMIR:         %[[VAL_19:.*]] = bitcast <8 x i16> %[[VAL_15]] to <16 x i8>47! LLVMIR:         %[[VAL_20:.*]] = bitcast <8 x i16> %[[VAL_16]] to <16 x i8>48! LLVMIR:         %[[VAL_21:.*]] = bitcast <8 x i16> %[[VAL_17]] to <16 x i8>49! LLVMIR:         %[[VAL_22:.*]] = bitcast <8 x i16> %[[VAL_18]] to <16 x i8>50! LLVMIR:         %[[VAL_23:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_19]], <16 x i8> %[[VAL_20]], <16 x i8> %[[VAL_21]], <16 x i8> %[[VAL_22]])51! LLVMIR:         store <512 x i1> %[[VAL_23]], ptr %[[VAL_14]], align 6452 53 54      subroutine test_assemble_acc_i4()55      use, intrinsic :: mma56      implicit none57      vector(integer(4)) vi10, vi11, vi12, vi1358      __vector_quad :: cq59      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)60      end subroutine test_assemble_acc_i461 62! CHECK-LABEL: @test_assemble_acc_i463! LLVMIR:         %[[VAL_24:.*]] = alloca <4 x i32>, i64 1, align 1664! LLVMIR:         %[[VAL_25:.*]] = alloca <4 x i32>, i64 1, align 1665! LLVMIR:         %[[VAL_26:.*]] = alloca <4 x i32>, i64 1, align 1666! LLVMIR:         %[[VAL_27:.*]] = alloca <4 x i32>, i64 1, align 1667! LLVMIR:         %[[VAL_28:.*]] = alloca <512 x i1>, i64 1, align 6468! LLVMIR:         %[[VAL_29:.*]] = load <4 x i32>, ptr %[[VAL_27]], align 1669! LLVMIR:         %[[VAL_30:.*]] = load <4 x i32>, ptr %[[VAL_26]], align 1670! LLVMIR:         %[[VAL_31:.*]] = load <4 x i32>, ptr %[[VAL_25]], align 1671! LLVMIR:         %[[VAL_32:.*]] = load <4 x i32>, ptr %[[VAL_24]], align 1672! LLVMIR:         %[[VAL_33:.*]] = bitcast <4 x i32> %[[VAL_29]] to <16 x i8>73! LLVMIR:         %[[VAL_34:.*]] = bitcast <4 x i32> %[[VAL_30]] to <16 x i8>74! LLVMIR:         %[[VAL_35:.*]] = bitcast <4 x i32> %[[VAL_31]] to <16 x i8>75! LLVMIR:         %[[VAL_36:.*]] = bitcast <4 x i32> %[[VAL_32]] to <16 x i8>76! LLVMIR:         %[[VAL_37:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_33]], <16 x i8> %[[VAL_34]], <16 x i8> %[[VAL_35]], <16 x i8> %[[VAL_36]])77! LLVMIR:         store <512 x i1> %[[VAL_37]], ptr %[[VAL_28]], align 6478 79      subroutine test_assemble_acc_i8()80      use, intrinsic :: mma81      implicit none82      vector(integer(8)) vi10, vi11, vi12, vi1383      __vector_quad :: cq84      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)85      end subroutine test_assemble_acc_i886 87! CHECK-LABEL: @test_assemble_acc_i888! LLVMIR:         %[[VAL_38:.*]] = alloca <2 x i64>, i64 1, align 1689! LLVMIR:         %[[VAL_39:.*]] = alloca <2 x i64>, i64 1, align 1690! LLVMIR:         %[[VAL_40:.*]] = alloca <2 x i64>, i64 1, align 1691! LLVMIR:         %[[VAL_41:.*]] = alloca <2 x i64>, i64 1, align 1692! LLVMIR:         %[[VAL_42:.*]] = alloca <512 x i1>, i64 1, align 6493! LLVMIR:         %[[VAL_43:.*]] = load <2 x i64>, ptr %[[VAL_41]], align 1694! LLVMIR:         %[[VAL_44:.*]] = load <2 x i64>, ptr %[[VAL_40]], align 1695! LLVMIR:         %[[VAL_45:.*]] = load <2 x i64>, ptr %[[VAL_39]], align 1696! LLVMIR:         %[[VAL_46:.*]] = load <2 x i64>, ptr %[[VAL_38]], align 1697! LLVMIR:         %[[VAL_47:.*]] = bitcast <2 x i64> %[[VAL_43]] to <16 x i8>98! LLVMIR:         %[[VAL_48:.*]] = bitcast <2 x i64> %[[VAL_44]] to <16 x i8>99! LLVMIR:         %[[VAL_49:.*]] = bitcast <2 x i64> %[[VAL_45]] to <16 x i8>100! LLVMIR:         %[[VAL_50:.*]] = bitcast <2 x i64> %[[VAL_46]] to <16 x i8>101! LLVMIR:         %[[VAL_51:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_47]], <16 x i8> %[[VAL_48]], <16 x i8> %[[VAL_49]], <16 x i8> %[[VAL_50]])102! LLVMIR:         store <512 x i1> %[[VAL_51]], ptr %[[VAL_42]], align 64103 104 105      subroutine test_assemble_acc_u1()106      use, intrinsic :: mma107      implicit none108      vector(unsigned(1)) vi10, vi11, vi12, vi13109      __vector_quad :: cq110      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)111      end subroutine test_assemble_acc_u1112 113! CHECK-LABEL: @test_assemble_acc_u1114! LLVMIR:         %[[VAL_52:.*]] = alloca <16 x i8>, i64 1, align 16115! LLVMIR:         %[[VAL_53:.*]] = alloca <16 x i8>, i64 1, align 16116! LLVMIR:         %[[VAL_54:.*]] = alloca <16 x i8>, i64 1, align 16117! LLVMIR:         %[[VAL_55:.*]] = alloca <16 x i8>, i64 1, align 16118! LLVMIR:         %[[VAL_56:.*]] = alloca <512 x i1>, i64 1, align 64119! LLVMIR:         %[[VAL_57:.*]] = load <16 x i8>, ptr %[[VAL_55]], align 16120! LLVMIR:         %[[VAL_58:.*]] = load <16 x i8>, ptr %[[VAL_54]], align 16121! LLVMIR:         %[[VAL_59:.*]] = load <16 x i8>, ptr %[[VAL_53]], align 16122! LLVMIR:         %[[VAL_60:.*]] = load <16 x i8>, ptr %[[VAL_52]], align 16123! LLVMIR:         %[[VAL_61:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_57]], <16 x i8> %[[VAL_58]], <16 x i8> %[[VAL_59]], <16 x i8> %[[VAL_60]])124! LLVMIR:         store <512 x i1> %[[VAL_61]], ptr %[[VAL_56]], align 64125 126      subroutine test_assemble_acc_u2()127      use, intrinsic :: mma128      implicit none129      vector(unsigned(2)) vi10, vi11, vi12, vi13130      __vector_quad :: cq131      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)132      end subroutine test_assemble_acc_u2133 134! CHECK-LABEL: @test_assemble_acc_u2135! LLVMIR:         %[[VAL_62:.*]] = alloca <8 x i16>, i64 1, align 16136! LLVMIR:         %[[VAL_63:.*]] = alloca <8 x i16>, i64 1, align 16137! LLVMIR:         %[[VAL_64:.*]] = alloca <8 x i16>, i64 1, align 16138! LLVMIR:         %[[VAL_65:.*]] = alloca <8 x i16>, i64 1, align 16139! LLVMIR:         %[[VAL_66:.*]] = alloca <512 x i1>, i64 1, align 64140! LLVMIR:         %[[VAL_67:.*]] = load <8 x i16>, ptr %[[VAL_65]], align 16141! LLVMIR:         %[[VAL_68:.*]] = load <8 x i16>, ptr %[[VAL_64]], align 16142! LLVMIR:         %[[VAL_69:.*]] = load <8 x i16>, ptr %[[VAL_63]], align 16143! LLVMIR:         %[[VAL_70:.*]] = load <8 x i16>, ptr %[[VAL_62]], align 16144! LLVMIR:         %[[VAL_71:.*]] = bitcast <8 x i16> %[[VAL_67]] to <16 x i8>145! LLVMIR:         %[[VAL_72:.*]] = bitcast <8 x i16> %[[VAL_68]] to <16 x i8>146! LLVMIR:         %[[VAL_73:.*]] = bitcast <8 x i16> %[[VAL_69]] to <16 x i8>147! LLVMIR:         %[[VAL_74:.*]] = bitcast <8 x i16> %[[VAL_70]] to <16 x i8>148! LLVMIR:         %[[VAL_75:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_71]], <16 x i8> %[[VAL_72]], <16 x i8> %[[VAL_73]], <16 x i8> %[[VAL_74]])149! LLVMIR:         store <512 x i1> %[[VAL_75]], ptr %[[VAL_66]], align 64150 151      subroutine test_assemble_acc_u4()152      use, intrinsic :: mma153      implicit none154      vector(unsigned(4)) vi10, vi11, vi12, vi13155      __vector_quad :: cq156      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)157      end subroutine test_assemble_acc_u4158 159! CHECK-LABEL: @test_assemble_acc_u4160! LLVMIR:         %[[VAL_76:.*]] = alloca <4 x i32>, i64 1, align 16161! LLVMIR:         %[[VAL_77:.*]] = alloca <4 x i32>, i64 1, align 16162! LLVMIR:         %[[VAL_78:.*]] = alloca <4 x i32>, i64 1, align 16163! LLVMIR:         %[[VAL_79:.*]] = alloca <4 x i32>, i64 1, align 16164! LLVMIR:         %[[VAL_80:.*]] = alloca <512 x i1>, i64 1, align 64165! LLVMIR:         %[[VAL_81:.*]] = load <4 x i32>, ptr %[[VAL_79]], align 16166! LLVMIR:         %[[VAL_82:.*]] = load <4 x i32>, ptr %[[VAL_78]], align 16167! LLVMIR:         %[[VAL_83:.*]] = load <4 x i32>, ptr %[[VAL_77]], align 16168! LLVMIR:         %[[VAL_84:.*]] = load <4 x i32>, ptr %[[VAL_76]], align 16169! LLVMIR:         %[[VAL_85:.*]] = bitcast <4 x i32> %[[VAL_81]] to <16 x i8>170! LLVMIR:         %[[VAL_86:.*]] = bitcast <4 x i32> %[[VAL_82]] to <16 x i8>171! LLVMIR:         %[[VAL_87:.*]] = bitcast <4 x i32> %[[VAL_83]] to <16 x i8>172! LLVMIR:         %[[VAL_88:.*]] = bitcast <4 x i32> %[[VAL_84]] to <16 x i8>173! LLVMIR:         %[[VAL_89:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_85]], <16 x i8> %[[VAL_86]], <16 x i8> %[[VAL_87]], <16 x i8> %[[VAL_88]])174! LLVMIR:         store <512 x i1> %[[VAL_89]], ptr %[[VAL_80]], align 64175 176      subroutine test_assemble_acc_u8()177      use, intrinsic :: mma178      implicit none179      vector(unsigned(8)) vi10, vi11, vi12, vi13180      __vector_quad :: cq181      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)182      end subroutine test_assemble_acc_u8183 184! CHECK-LABEL: @test_assemble_acc_u8185! LLVMIR:         %[[VAL_90:.*]] = alloca <2 x i64>, i64 1, align 16186! LLVMIR:         %[[VAL_91:.*]] = alloca <2 x i64>, i64 1, align 16187! LLVMIR:         %[[VAL_92:.*]] = alloca <2 x i64>, i64 1, align 16188! LLVMIR:         %[[VAL_93:.*]] = alloca <2 x i64>, i64 1, align 16189! LLVMIR:         %[[VAL_94:.*]] = alloca <512 x i1>, i64 1, align 64190! LLVMIR:         %[[VAL_95:.*]] = load <2 x i64>, ptr %[[VAL_93]], align 16191! LLVMIR:         %[[VAL_96:.*]] = load <2 x i64>, ptr %[[VAL_92]], align 16192! LLVMIR:         %[[VAL_97:.*]] = load <2 x i64>, ptr %[[VAL_91]], align 16193! LLVMIR:         %[[VAL_98:.*]] = load <2 x i64>, ptr %[[VAL_90]], align 16194! LLVMIR:         %[[VAL_99:.*]] = bitcast <2 x i64> %[[VAL_95]] to <16 x i8>195! LLVMIR:         %[[VAL_100:.*]] = bitcast <2 x i64> %[[VAL_96]] to <16 x i8>196! LLVMIR:         %[[VAL_101:.*]] = bitcast <2 x i64> %[[VAL_97]] to <16 x i8>197! LLVMIR:         %[[VAL_102:.*]] = bitcast <2 x i64> %[[VAL_98]] to <16 x i8>198! LLVMIR:         %[[VAL_103:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_99]], <16 x i8> %[[VAL_100]], <16 x i8> %[[VAL_101]], <16 x i8> %[[VAL_102]])199! LLVMIR:         store <512 x i1> %[[VAL_103]], ptr %[[VAL_94]], align 64200 201      subroutine test_assemble_acc_r4()202      use, intrinsic :: mma203      implicit none204      vector(real(4)) vi10, vi11, vi12, vi13205      __vector_quad :: cq206      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)207      end subroutine test_assemble_acc_r4208 209! CHECK-LABEL: @test_assemble_acc_r4210! LLVMIR:         %[[VAL_104:.*]] = alloca <4 x float>, i64 1, align 16211! LLVMIR:         %[[VAL_105:.*]] = alloca <4 x float>, i64 1, align 16212! LLVMIR:         %[[VAL_106:.*]] = alloca <4 x float>, i64 1, align 16213! LLVMIR:         %[[VAL_107:.*]] = alloca <4 x float>, i64 1, align 16214! LLVMIR:         %[[VAL_108:.*]] = alloca <512 x i1>, i64 1, align 64215! LLVMIR:         %[[VAL_109:.*]] = load <4 x float>, ptr %[[VAL_107]], align 16216! LLVMIR:         %[[VAL_110:.*]] = load <4 x float>, ptr %[[VAL_106]], align 16217! LLVMIR:         %[[VAL_111:.*]] = load <4 x float>, ptr %[[VAL_105]], align 16218! LLVMIR:         %[[VAL_112:.*]] = load <4 x float>, ptr %[[VAL_104]], align 16219! LLVMIR:         %[[VAL_113:.*]] = bitcast <4 x float> %[[VAL_109]] to <16 x i8>220! LLVMIR:         %[[VAL_114:.*]] = bitcast <4 x float> %[[VAL_110]] to <16 x i8>221! LLVMIR:         %[[VAL_115:.*]] = bitcast <4 x float> %[[VAL_111]] to <16 x i8>222! LLVMIR:         %[[VAL_116:.*]] = bitcast <4 x float> %[[VAL_112]] to <16 x i8>223! LLVMIR:         %[[VAL_117:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_113]], <16 x i8> %[[VAL_114]], <16 x i8> %[[VAL_115]], <16 x i8> %[[VAL_116]])224! LLVMIR:         store <512 x i1> %[[VAL_117]], ptr %[[VAL_108]], align 64225 226      subroutine test_assemble_acc_r8()227      use, intrinsic :: mma228      implicit none229      vector(real(8)) vi10, vi11, vi12, vi13230      __vector_quad :: cq231      call mma_assemble_acc(cq, vi10, vi11, vi12, vi13)232      end subroutine test_assemble_acc_r8233 234!CHECK-LABEL: @test_assemble_acc_r8235! LLVMIR:         %[[VAL_118:.*]] = alloca <2 x double>, i64 1, align 16236! LLVMIR:         %[[VAL_119:.*]] = alloca <2 x double>, i64 1, align 16237! LLVMIR:         %[[VAL_120:.*]] = alloca <2 x double>, i64 1, align 16238! LLVMIR:         %[[VAL_121:.*]] = alloca <2 x double>, i64 1, align 16239! LLVMIR:         %[[VAL_122:.*]] = alloca <512 x i1>, i64 1, align 64240! LLVMIR:         %[[VAL_123:.*]] = load <2 x double>, ptr %[[VAL_121]], align 16241! LLVMIR:         %[[VAL_124:.*]] = load <2 x double>, ptr %[[VAL_120]], align 16242! LLVMIR:         %[[VAL_125:.*]] = load <2 x double>, ptr %[[VAL_119]], align 16243! LLVMIR:         %[[VAL_126:.*]] = load <2 x double>, ptr %[[VAL_118]], align 16244! LLVMIR:         %[[VAL_127:.*]] = bitcast <2 x double> %[[VAL_123]] to <16 x i8>245! LLVMIR:         %[[VAL_128:.*]] = bitcast <2 x double> %[[VAL_124]] to <16 x i8>246! LLVMIR:         %[[VAL_129:.*]] = bitcast <2 x double> %[[VAL_125]] to <16 x i8>247! LLVMIR:         %[[VAL_130:.*]] = bitcast <2 x double> %[[VAL_126]] to <16 x i8>248! LLVMIR:         %[[VAL_131:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_127]], <16 x i8> %[[VAL_128]], <16 x i8> %[[VAL_129]], <16 x i8> %[[VAL_130]])249! LLVMIR:         store <512 x i1> %[[VAL_131]], ptr %[[VAL_122]], align 64250 251! mma_assemble_pair252 253      subroutine test_mma_assemble_pair_i1()254      use, intrinsic :: mma255      implicit none256      vector(integer(1)) vi10, vi11257      __vector_pair :: vp258      call mma_assemble_pair(vp, vi10, vi11)259      end subroutine test_mma_assemble_pair_i1260 261!LLVMIR: @test_mma_assemble_pair_i1_262! LLVMIR:         %[[VAL_132:.*]] = alloca <256 x i1>, i64 1, align 32263! LLVMIR:         %[[VAL_133:.*]] = alloca <16 x i8>, i64 1, align 16264! LLVMIR:         %[[VAL_134:.*]] = alloca <16 x i8>, i64 1, align 16265! LLVMIR:         %[[VAL_135:.*]] = load <16 x i8>, ptr %[[VAL_134]], align 16266! LLVMIR:         %[[VAL_136:.*]] = load <16 x i8>, ptr %[[VAL_133]], align 16267! LLVMIR:         %[[VAL_137:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_135]], <16 x i8> %[[VAL_136]])268! LLVMIR:         store <256 x i1> %[[VAL_137]], ptr %[[VAL_132]], align 32269 270      subroutine test_mma_assemble_pair_i2()271      use, intrinsic :: mma272      implicit none273      vector(integer(2)) vi10, vi11274      __vector_pair :: vp275      call mma_assemble_pair(vp, vi10, vi11)276      end subroutine test_mma_assemble_pair_i2277 278!LLVMIR: @test_mma_assemble_pair_i2_279! LLVMIR:         %[[VAL_138:.*]] = alloca <256 x i1>, i64 1, align 32280! LLVMIR:         %[[VAL_139:.*]] = alloca <8 x i16>, i64 1, align 16281! LLVMIR:         %[[VAL_140:.*]] = alloca <8 x i16>, i64 1, align 16282! LLVMIR:         %[[VAL_141:.*]] = load <8 x i16>, ptr %[[VAL_140]], align 16283! LLVMIR:         %[[VAL_142:.*]] = load <8 x i16>, ptr %[[VAL_139]], align 16284! LLVMIR:         %[[VAL_143:.*]] = bitcast <8 x i16> %[[VAL_141]] to <16 x i8>285! LLVMIR:         %[[VAL_144:.*]] = bitcast <8 x i16> %[[VAL_142]] to <16 x i8>286! LLVMIR:         %[[VAL_145:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_143]], <16 x i8> %[[VAL_144]])287! LLVMIR:         store <256 x i1> %[[VAL_145]], ptr %[[VAL_138]], align 32288 289      subroutine test_mma_assemble_pair_i4()290      use, intrinsic :: mma291      implicit none292      vector(integer(4)) vi10, vi11293      __vector_pair :: vp294      call mma_assemble_pair(vp, vi10, vi11)295      end subroutine test_mma_assemble_pair_i4296 297!LLVMIR: @test_mma_assemble_pair_i4_298! LLVMIR:         %[[VAL_146:.*]] = alloca <256 x i1>, i64 1, align 32299! LLVMIR:         %[[VAL_147:.*]] = alloca <4 x i32>, i64 1, align 16300! LLVMIR:         %[[VAL_148:.*]] = alloca <4 x i32>, i64 1, align 16301! LLVMIR:         %[[VAL_149:.*]] = load <4 x i32>, ptr %[[VAL_148]], align 16302! LLVMIR:         %[[VAL_150:.*]] = load <4 x i32>, ptr %[[VAL_147]], align 16303! LLVMIR:         %[[VAL_151:.*]] = bitcast <4 x i32> %[[VAL_149]] to <16 x i8>304! LLVMIR:         %[[VAL_152:.*]] = bitcast <4 x i32> %[[VAL_150]] to <16 x i8>305! LLVMIR:         %[[VAL_153:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_151]], <16 x i8> %[[VAL_152]])306! LLVMIR:         store <256 x i1> %[[VAL_153]], ptr %[[VAL_146]], align 32307 308      subroutine test_mma_assemble_pair_i8()309      use, intrinsic :: mma310      implicit none311      vector(integer(8)) vi10, vi11312      __vector_pair :: vp313      call mma_assemble_pair(vp, vi10, vi11)314      end subroutine test_mma_assemble_pair_i8315 316!LLVMIR: @test_mma_assemble_pair_i8_317! LLVMIR:         %[[VAL_154:.*]] = alloca <256 x i1>, i64 1, align 32318! LLVMIR:         %[[VAL_155:.*]] = alloca <2 x i64>, i64 1, align 16319! LLVMIR:         %[[VAL_156:.*]] = alloca <2 x i64>, i64 1, align 16320! LLVMIR:         %[[VAL_157:.*]] = load <2 x i64>, ptr %[[VAL_156]], align 16321! LLVMIR:         %[[VAL_158:.*]] = load <2 x i64>, ptr %[[VAL_155]], align 16322! LLVMIR:         %[[VAL_159:.*]] = bitcast <2 x i64> %[[VAL_157]] to <16 x i8>323! LLVMIR:         %[[VAL_160:.*]] = bitcast <2 x i64> %[[VAL_158]] to <16 x i8>324! LLVMIR:         %[[VAL_161:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_159]], <16 x i8> %[[VAL_160]])325! LLVMIR:         store <256 x i1> %[[VAL_161]], ptr %[[VAL_154]], align 32326 327      subroutine test_mma_assemble_pair_u1()328      use, intrinsic :: mma329      implicit none330      vector(unsigned(1)) vi10, vi11331      __vector_pair :: vp332      call mma_assemble_pair(vp, vi10, vi11)333      end subroutine test_mma_assemble_pair_u1334 335!LLVMIR: @test_mma_assemble_pair_u1_336! LLVMIR:         %[[VAL_162:.*]] = alloca <256 x i1>, i64 1, align 32337! LLVMIR:         %[[VAL_163:.*]] = alloca <16 x i8>, i64 1, align 16338! LLVMIR:         %[[VAL_164:.*]] = alloca <16 x i8>, i64 1, align 16339! LLVMIR:         %[[VAL_165:.*]] = load <16 x i8>, ptr %[[VAL_164]], align 16340! LLVMIR:         %[[VAL_166:.*]] = load <16 x i8>, ptr %[[VAL_163]], align 16341! LLVMIR:         %[[VAL_167:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_165]], <16 x i8> %[[VAL_166]])342! LLVMIR:         store <256 x i1> %[[VAL_167]], ptr %[[VAL_162]], align 32343 344      subroutine test_mma_assemble_pair_u2()345      use, intrinsic :: mma346      implicit none347      vector(unsigned(2)) vi10, vi11348      __vector_pair :: vp349      call mma_assemble_pair(vp, vi10, vi11)350      end subroutine test_mma_assemble_pair_u2351 352!LLVMIR: @test_mma_assemble_pair_u2_353! LLVMIR:         %[[VAL_168:.*]] = alloca <256 x i1>, i64 1, align 32354! LLVMIR:         %[[VAL_169:.*]] = alloca <8 x i16>, i64 1, align 16355! LLVMIR:         %[[VAL_170:.*]] = alloca <8 x i16>, i64 1, align 16356! LLVMIR:         %[[VAL_171:.*]] = load <8 x i16>, ptr %[[VAL_170]], align 16357! LLVMIR:         %[[VAL_172:.*]] = load <8 x i16>, ptr %[[VAL_169]], align 16358! LLVMIR:         %[[VAL_173:.*]] = bitcast <8 x i16> %[[VAL_171]] to <16 x i8>359! LLVMIR:         %[[VAL_174:.*]] = bitcast <8 x i16> %[[VAL_172]] to <16 x i8>360! LLVMIR:         %[[VAL_175:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_173]], <16 x i8> %[[VAL_174]])361! LLVMIR:         store <256 x i1> %[[VAL_175]], ptr %[[VAL_168]], align 32362 363      subroutine test_mma_assemble_pair_u4()364      use, intrinsic :: mma365      implicit none366      vector(unsigned(4)) vi10, vi11367      __vector_pair :: vp368      call mma_assemble_pair(vp, vi10, vi11)369      end subroutine test_mma_assemble_pair_u4370 371!LLVMIR: @test_mma_assemble_pair_u4_372! LLVMIR:         %[[VAL_176:.*]] = alloca <256 x i1>, i64 1, align 32373! LLVMIR:         %[[VAL_177:.*]] = alloca <4 x i32>, i64 1, align 16374! LLVMIR:         %[[VAL_178:.*]] = alloca <4 x i32>, i64 1, align 16375! LLVMIR:         %[[VAL_179:.*]] = load <4 x i32>, ptr %[[VAL_178]], align 16376! LLVMIR:         %[[VAL_180:.*]] = load <4 x i32>, ptr %[[VAL_177]], align 16377! LLVMIR:         %[[VAL_181:.*]] = bitcast <4 x i32> %[[VAL_179]] to <16 x i8>378! LLVMIR:         %[[VAL_182:.*]] = bitcast <4 x i32> %[[VAL_180]] to <16 x i8>379! LLVMIR:         %[[VAL_183:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_181]], <16 x i8> %[[VAL_182]])380! LLVMIR:         store <256 x i1> %[[VAL_183]], ptr %[[VAL_176]], align 32381 382      subroutine test_mma_assemble_pair_u8()383      use, intrinsic :: mma384      implicit none385      vector(unsigned(8)) vi10, vi11386      __vector_pair :: vp387      call mma_assemble_pair(vp, vi10, vi11)388      end subroutine test_mma_assemble_pair_u8389 390!LLVMIR: @test_mma_assemble_pair_u8_391! LLVMIR:         %[[VAL_184:.*]] = alloca <256 x i1>, i64 1, align 32392! LLVMIR:         %[[VAL_185:.*]] = alloca <2 x i64>, i64 1, align 16393! LLVMIR:         %[[VAL_186:.*]] = alloca <2 x i64>, i64 1, align 16394! LLVMIR:         %[[VAL_187:.*]] = load <2 x i64>, ptr %[[VAL_186]], align 16395! LLVMIR:         %[[VAL_188:.*]] = load <2 x i64>, ptr %[[VAL_185]], align 16396! LLVMIR:         %[[VAL_189:.*]] = bitcast <2 x i64> %[[VAL_187]] to <16 x i8>397! LLVMIR:         %[[VAL_190:.*]] = bitcast <2 x i64> %[[VAL_188]] to <16 x i8>398! LLVMIR:         %[[VAL_191:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_189]], <16 x i8> %[[VAL_190]])399! LLVMIR:         store <256 x i1> %[[VAL_191]], ptr %[[VAL_184]], align 32400 401      subroutine test_mma_assemble_pair_r4()402      use, intrinsic :: mma403      implicit none404      vector(real(4)) vi10, vi11405      __vector_pair :: vp406      call mma_assemble_pair(vp, vi10, vi11)407      end subroutine test_mma_assemble_pair_r4408 409!LLVMIR: @test_mma_assemble_pair_r4_410! LLVMIR:         %[[VAL_192:.*]] = alloca <256 x i1>, i64 1, align 32411! LLVMIR:         %[[VAL_193:.*]] = alloca <4 x float>, i64 1, align 16412! LLVMIR:         %[[VAL_194:.*]] = alloca <4 x float>, i64 1, align 16413! LLVMIR:         %[[VAL_195:.*]] = load <4 x float>, ptr %[[VAL_194]], align 16414! LLVMIR:         %[[VAL_196:.*]] = load <4 x float>, ptr %[[VAL_193]], align 16415! LLVMIR:         %[[VAL_197:.*]] = bitcast <4 x float> %[[VAL_195]] to <16 x i8>416! LLVMIR:         %[[VAL_198:.*]] = bitcast <4 x float> %[[VAL_196]] to <16 x i8>417! LLVMIR:         %[[VAL_199:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_197]], <16 x i8> %[[VAL_198]])418! LLVMIR:         store <256 x i1> %[[VAL_199]], ptr %[[VAL_192]], align 32419 420      subroutine test_mma_assemble_pair_r8()421      use, intrinsic :: mma422      implicit none423      vector(real(8)) vi10, vi11424      __vector_pair :: vp425      call mma_assemble_pair(vp, vi10, vi11)426      end subroutine test_mma_assemble_pair_r8427 428!LLVMIR: @test_mma_assemble_pair_r8_429! LLVMIR:         %[[VAL_200:.*]] = alloca <256 x i1>, i64 1, align 32430! LLVMIR:         %[[VAL_201:.*]] = alloca <2 x double>, i64 1, align 16431! LLVMIR:         %[[VAL_202:.*]] = alloca <2 x double>, i64 1, align 16432! LLVMIR:         %[[VAL_203:.*]] = load <2 x double>, ptr %[[VAL_202]], align 16433! LLVMIR:         %[[VAL_204:.*]] = load <2 x double>, ptr %[[VAL_201]], align 16434! LLVMIR:         %[[VAL_205:.*]] = bitcast <2 x double> %[[VAL_203]] to <16 x i8>435! LLVMIR:         %[[VAL_206:.*]] = bitcast <2 x double> %[[VAL_204]] to <16 x i8>436! LLVMIR:         %[[VAL_207:.*]] = call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %[[VAL_205]], <16 x i8> %[[VAL_206]])437! LLVMIR:         store <256 x i1> %[[VAL_207]], ptr %[[VAL_200]], align 32438 439! mma_disassemble_acc440 441      subroutine test_mma_build_acc_i1()442      use, intrinsic :: mma443      implicit none444      vector(integer(1)) vi10, vi11, vi12, vi13445      __vector_quad :: cq446      call mma_build_acc(cq, vi10, vi11, vi12, vi13)447      end subroutine test_mma_build_acc_i1448 449!CHECK-LABEL: @test_mma_build_acc_i1450! LLVMIR:         %[[VAL_208:.*]] = alloca <16 x i8>, i64 1, align 16451! LLVMIR:         %[[VAL_209:.*]] = alloca <16 x i8>, i64 1, align 16452! LLVMIR:         %[[VAL_210:.*]] = alloca <16 x i8>, i64 1, align 16453! LLVMIR:         %[[VAL_211:.*]] = alloca <16 x i8>, i64 1, align 16454! LLVMIR:         %[[VAL_212:.*]] = alloca <512 x i1>, i64 1, align 64455! LLVMIR:         %[[VAL_213:.*]] = load <16 x i8>, ptr %[[VAL_211]], align 16456! LLVMIR:         %[[VAL_214:.*]] = load <16 x i8>, ptr %[[VAL_210]], align 16457! LLVMIR:         %[[VAL_215:.*]] = load <16 x i8>, ptr %[[VAL_209]], align 16458! LLVMIR:         %[[VAL_216:.*]] = load <16 x i8>, ptr %[[VAL_208]], align 16459! LLVMIR:         %[[VAL_217:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_216]], <16 x i8> %[[VAL_215]], <16 x i8> %[[VAL_214]], <16 x i8> %[[VAL_213]])460! LLVMIR:         store <512 x i1> %[[VAL_217]], ptr %[[VAL_212]], align 64461 462      subroutine test_mma_build_acc_i2()463      use, intrinsic :: mma464      implicit none465      vector(integer(2)) vi10, vi11, vi12, vi13466      __vector_quad :: cq467      call mma_build_acc(cq, vi10, vi11, vi12, vi13)468      end subroutine test_mma_build_acc_i2469 470!CHECK-LABEL: @test_mma_build_acc_i2471! LLVMIR:         %[[VAL_218:.*]] = alloca <8 x i16>, i64 1, align 16472! LLVMIR:         %[[VAL_219:.*]] = alloca <8 x i16>, i64 1, align 16473! LLVMIR:         %[[VAL_220:.*]] = alloca <8 x i16>, i64 1, align 16474! LLVMIR:         %[[VAL_221:.*]] = alloca <8 x i16>, i64 1, align 16475! LLVMIR:         %[[VAL_222:.*]] = alloca <512 x i1>, i64 1, align 64476! LLVMIR:         %[[VAL_223:.*]] = load <8 x i16>, ptr %[[VAL_221]], align 16477! LLVMIR:         %[[VAL_224:.*]] = load <8 x i16>, ptr %[[VAL_220]], align 16478! LLVMIR:         %[[VAL_225:.*]] = load <8 x i16>, ptr %[[VAL_219]], align 16479! LLVMIR:         %[[VAL_226:.*]] = load <8 x i16>, ptr %[[VAL_218]], align 16480! LLVMIR:         %[[VAL_227:.*]] = bitcast <8 x i16> %[[VAL_226]] to <16 x i8>481! LLVMIR:         %[[VAL_228:.*]] = bitcast <8 x i16> %[[VAL_225]] to <16 x i8>482! LLVMIR:         %[[VAL_229:.*]] = bitcast <8 x i16> %[[VAL_224]] to <16 x i8>483! LLVMIR:         %[[VAL_230:.*]] = bitcast <8 x i16> %[[VAL_223]] to <16 x i8>484! LLVMIR:         %[[VAL_231:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_227]], <16 x i8> %[[VAL_228]], <16 x i8> %[[VAL_229]], <16 x i8> %[[VAL_230]])485! LLVMIR:         store <512 x i1> %[[VAL_231]], ptr %[[VAL_222]], align 64486 487      subroutine test_mma_build_acc_i4()488      use, intrinsic :: mma489      implicit none490      vector(integer(4)) vi10, vi11, vi12, vi13491      __vector_quad :: cq492      call mma_build_acc(cq, vi10, vi11, vi12, vi13)493      end subroutine test_mma_build_acc_i4494 495!CHECK-LABEL: @test_mma_build_acc_i4496! LLVMIR:         %[[VAL_232:.*]] = alloca <4 x i32>, i64 1, align 16497! LLVMIR:         %[[VAL_233:.*]] = alloca <4 x i32>, i64 1, align 16498! LLVMIR:         %[[VAL_234:.*]] = alloca <4 x i32>, i64 1, align 16499! LLVMIR:         %[[VAL_235:.*]] = alloca <4 x i32>, i64 1, align 16500! LLVMIR:         %[[VAL_236:.*]] = alloca <512 x i1>, i64 1, align 64501! LLVMIR:         %[[VAL_237:.*]] = load <4 x i32>, ptr %[[VAL_235]], align 16502! LLVMIR:         %[[VAL_238:.*]] = load <4 x i32>, ptr %[[VAL_234]], align 16503! LLVMIR:         %[[VAL_239:.*]] = load <4 x i32>, ptr %[[VAL_233]], align 16504! LLVMIR:         %[[VAL_240:.*]] = load <4 x i32>, ptr %[[VAL_232]], align 16505! LLVMIR:         %[[VAL_241:.*]] = bitcast <4 x i32> %[[VAL_240]] to <16 x i8>506! LLVMIR:         %[[VAL_242:.*]] = bitcast <4 x i32> %[[VAL_239]] to <16 x i8>507! LLVMIR:         %[[VAL_243:.*]] = bitcast <4 x i32> %[[VAL_238]] to <16 x i8>508! LLVMIR:         %[[VAL_244:.*]] = bitcast <4 x i32> %[[VAL_237]] to <16 x i8>509! LLVMIR:         %[[VAL_245:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_241]], <16 x i8> %[[VAL_242]], <16 x i8> %[[VAL_243]], <16 x i8> %[[VAL_244]])510! LLVMIR:         store <512 x i1> %[[VAL_245]], ptr %[[VAL_236]], align 64511 512      subroutine test_mma_build_acc_i8()513      use, intrinsic :: mma514      implicit none515      vector(integer(8)) vi10, vi11, vi12, vi13516      __vector_quad :: cq517      call mma_build_acc(cq, vi10, vi11, vi12, vi13)518      end subroutine test_mma_build_acc_i8519 520!CHECK-LABEL: @test_mma_build_acc_i8521! LLVMIR:         %[[VAL_246:.*]] = alloca <2 x i64>, i64 1, align 16522! LLVMIR:         %[[VAL_247:.*]] = alloca <2 x i64>, i64 1, align 16523! LLVMIR:         %[[VAL_248:.*]] = alloca <2 x i64>, i64 1, align 16524! LLVMIR:         %[[VAL_249:.*]] = alloca <2 x i64>, i64 1, align 16525! LLVMIR:         %[[VAL_250:.*]] = alloca <512 x i1>, i64 1, align 64526! LLVMIR:         %[[VAL_251:.*]] = load <2 x i64>, ptr %[[VAL_249]], align 16527! LLVMIR:         %[[VAL_252:.*]] = load <2 x i64>, ptr %[[VAL_248]], align 16528! LLVMIR:         %[[VAL_253:.*]] = load <2 x i64>, ptr %[[VAL_247]], align 16529! LLVMIR:         %[[VAL_254:.*]] = load <2 x i64>, ptr %[[VAL_246]], align 16530! LLVMIR:         %[[VAL_255:.*]] = bitcast <2 x i64> %[[VAL_254]] to <16 x i8>531! LLVMIR:         %[[VAL_256:.*]] = bitcast <2 x i64> %[[VAL_253]] to <16 x i8>532! LLVMIR:         %[[VAL_257:.*]] = bitcast <2 x i64> %[[VAL_252]] to <16 x i8>533! LLVMIR:         %[[VAL_258:.*]] = bitcast <2 x i64> %[[VAL_251]] to <16 x i8>534! LLVMIR:         %[[VAL_259:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_255]], <16 x i8> %[[VAL_256]], <16 x i8> %[[VAL_257]], <16 x i8> %[[VAL_258]])535! LLVMIR:         store <512 x i1> %[[VAL_259]], ptr %[[VAL_250]], align 64536 537      subroutine test_mma_build_acc_u1()538      use, intrinsic :: mma539      implicit none540      vector(unsigned(1)) vi10, vi11, vi12, vi13541      __vector_quad :: cq542      call mma_build_acc(cq, vi10, vi11, vi12, vi13)543      end subroutine test_mma_build_acc_u1544 545!CHECK-LABEL: @test_mma_build_acc_u1546! LLVMIR:         %[[VAL_260:.*]] = alloca <16 x i8>, i64 1, align 16547! LLVMIR:         %[[VAL_261:.*]] = alloca <16 x i8>, i64 1, align 16548! LLVMIR:         %[[VAL_262:.*]] = alloca <16 x i8>, i64 1, align 16549! LLVMIR:         %[[VAL_263:.*]] = alloca <16 x i8>, i64 1, align 16550! LLVMIR:         %[[VAL_264:.*]] = alloca <512 x i1>, i64 1, align 64551! LLVMIR:         %[[VAL_265:.*]] = load <16 x i8>, ptr %[[VAL_263]], align 16552! LLVMIR:         %[[VAL_266:.*]] = load <16 x i8>, ptr %[[VAL_262]], align 16553! LLVMIR:         %[[VAL_267:.*]] = load <16 x i8>, ptr %[[VAL_261]], align 16554! LLVMIR:         %[[VAL_268:.*]] = load <16 x i8>, ptr %[[VAL_260]], align 16555! LLVMIR:         %[[VAL_269:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_268]], <16 x i8> %[[VAL_267]], <16 x i8> %[[VAL_266]], <16 x i8> %[[VAL_265]])556! LLVMIR:         store <512 x i1> %[[VAL_269]], ptr %[[VAL_264]], align 64557 558      subroutine test_mma_build_acc_u2()559      use, intrinsic :: mma560      implicit none561      vector(unsigned(2)) vi10, vi11, vi12, vi13562      __vector_quad :: cq563      call mma_build_acc(cq, vi10, vi11, vi12, vi13)564      end subroutine test_mma_build_acc_u2565 566!CHECK-LABEL: @test_mma_build_acc_u2567! LLVMIR:         %[[VAL_270:.*]] = alloca <8 x i16>, i64 1, align 16568! LLVMIR:         %[[VAL_271:.*]] = alloca <8 x i16>, i64 1, align 16569! LLVMIR:         %[[VAL_272:.*]] = alloca <8 x i16>, i64 1, align 16570! LLVMIR:         %[[VAL_273:.*]] = alloca <8 x i16>, i64 1, align 16571! LLVMIR:         %[[VAL_274:.*]] = alloca <512 x i1>, i64 1, align 64572! LLVMIR:         %[[VAL_275:.*]] = load <8 x i16>, ptr %[[VAL_273]], align 16573! LLVMIR:         %[[VAL_276:.*]] = load <8 x i16>, ptr %[[VAL_272]], align 16574! LLVMIR:         %[[VAL_277:.*]] = load <8 x i16>, ptr %[[VAL_271]], align 16575! LLVMIR:         %[[VAL_278:.*]] = load <8 x i16>, ptr %[[VAL_270]], align 16576! LLVMIR:         %[[VAL_279:.*]] = bitcast <8 x i16> %[[VAL_278]] to <16 x i8>577! LLVMIR:         %[[VAL_280:.*]] = bitcast <8 x i16> %[[VAL_277]] to <16 x i8>578! LLVMIR:         %[[VAL_281:.*]] = bitcast <8 x i16> %[[VAL_276]] to <16 x i8>579! LLVMIR:         %[[VAL_282:.*]] = bitcast <8 x i16> %[[VAL_275]] to <16 x i8>580! LLVMIR:         %[[VAL_283:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_279]], <16 x i8> %[[VAL_280]], <16 x i8> %[[VAL_281]], <16 x i8> %[[VAL_282]])581! LLVMIR:         store <512 x i1> %[[VAL_283]], ptr %[[VAL_274]], align 64582 583      subroutine test_mma_build_acc_u4()584      use, intrinsic :: mma585      implicit none586      vector(unsigned(4)) vi10, vi11, vi12, vi13587      __vector_quad :: cq588      call mma_build_acc(cq, vi10, vi11, vi12, vi13)589      end subroutine test_mma_build_acc_u4590 591!CHECK-LABEL: @test_mma_build_acc_u4592! LLVMIR:         %[[VAL_284:.*]] = alloca <4 x i32>, i64 1, align 16593! LLVMIR:         %[[VAL_285:.*]] = alloca <4 x i32>, i64 1, align 16594! LLVMIR:         %[[VAL_286:.*]] = alloca <4 x i32>, i64 1, align 16595! LLVMIR:         %[[VAL_287:.*]] = alloca <4 x i32>, i64 1, align 16596! LLVMIR:         %[[VAL_288:.*]] = alloca <512 x i1>, i64 1, align 64597! LLVMIR:         %[[VAL_289:.*]] = load <4 x i32>, ptr %[[VAL_287]], align 16598! LLVMIR:         %[[VAL_290:.*]] = load <4 x i32>, ptr %[[VAL_286]], align 16599! LLVMIR:         %[[VAL_291:.*]] = load <4 x i32>, ptr %[[VAL_285]], align 16600! LLVMIR:         %[[VAL_292:.*]] = load <4 x i32>, ptr %[[VAL_284]], align 16601! LLVMIR:         %[[VAL_293:.*]] = bitcast <4 x i32> %[[VAL_292]] to <16 x i8>602! LLVMIR:         %[[VAL_294:.*]] = bitcast <4 x i32> %[[VAL_291]] to <16 x i8>603! LLVMIR:         %[[VAL_295:.*]] = bitcast <4 x i32> %[[VAL_290]] to <16 x i8>604! LLVMIR:         %[[VAL_296:.*]] = bitcast <4 x i32> %[[VAL_289]] to <16 x i8>605! LLVMIR:         %[[VAL_297:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_293]], <16 x i8> %[[VAL_294]], <16 x i8> %[[VAL_295]], <16 x i8> %[[VAL_296]])606! LLVMIR:         store <512 x i1> %[[VAL_297]], ptr %[[VAL_288]], align 64607 608      subroutine test_mma_build_acc_u8()609      use, intrinsic :: mma610      implicit none611      vector(unsigned(8)) vi10, vi11, vi12, vi13612      __vector_quad :: cq613      call mma_build_acc(cq, vi10, vi11, vi12, vi13)614      end subroutine test_mma_build_acc_u8615 616!CHECK-LABEL: @test_mma_build_acc_u8617! LLVMIR:         %[[VAL_298:.*]] = alloca <2 x i64>, i64 1, align 16618! LLVMIR:         %[[VAL_299:.*]] = alloca <2 x i64>, i64 1, align 16619! LLVMIR:         %[[VAL_300:.*]] = alloca <2 x i64>, i64 1, align 16620! LLVMIR:         %[[VAL_301:.*]] = alloca <2 x i64>, i64 1, align 16621! LLVMIR:         %[[VAL_302:.*]] = alloca <512 x i1>, i64 1, align 64622! LLVMIR:         %[[VAL_303:.*]] = load <2 x i64>, ptr %[[VAL_301]], align 16623! LLVMIR:         %[[VAL_304:.*]] = load <2 x i64>, ptr %[[VAL_300]], align 16624! LLVMIR:         %[[VAL_305:.*]] = load <2 x i64>, ptr %[[VAL_299]], align 16625! LLVMIR:         %[[VAL_306:.*]] = load <2 x i64>, ptr %[[VAL_298]], align 16626! LLVMIR:         %[[VAL_307:.*]] = bitcast <2 x i64> %[[VAL_306]] to <16 x i8>627! LLVMIR:         %[[VAL_308:.*]] = bitcast <2 x i64> %[[VAL_305]] to <16 x i8>628! LLVMIR:         %[[VAL_309:.*]] = bitcast <2 x i64> %[[VAL_304]] to <16 x i8>629! LLVMIR:         %[[VAL_310:.*]] = bitcast <2 x i64> %[[VAL_303]] to <16 x i8>630! LLVMIR:         %[[VAL_311:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_307]], <16 x i8> %[[VAL_308]], <16 x i8> %[[VAL_309]], <16 x i8> %[[VAL_310]])631! LLVMIR:         store <512 x i1> %[[VAL_311]], ptr %[[VAL_302]], align 64632 633 634      subroutine test_mma_build_acc_r4()635      use, intrinsic :: mma636      implicit none637      vector(real(4)) vi10, vi11, vi12, vi13638      __vector_quad :: cq639      call mma_build_acc(cq, vi10, vi11, vi12, vi13)640      end subroutine test_mma_build_acc_r4641 642!CHECK-LABEL: @test_mma_build_acc_r4643! LLVMIR:         %[[VAL_312:.*]] = alloca <4 x float>, i64 1, align 16644! LLVMIR:         %[[VAL_313:.*]] = alloca <4 x float>, i64 1, align 16645! LLVMIR:         %[[VAL_314:.*]] = alloca <4 x float>, i64 1, align 16646! LLVMIR:         %[[VAL_315:.*]] = alloca <4 x float>, i64 1, align 16647! LLVMIR:         %[[VAL_316:.*]] = alloca <512 x i1>, i64 1, align 64648! LLVMIR:         %[[VAL_317:.*]] = load <4 x float>, ptr %[[VAL_315]], align 16649! LLVMIR:         %[[VAL_318:.*]] = load <4 x float>, ptr %[[VAL_314]], align 16650! LLVMIR:         %[[VAL_319:.*]] = load <4 x float>, ptr %[[VAL_313]], align 16651! LLVMIR:         %[[VAL_320:.*]] = load <4 x float>, ptr %[[VAL_312]], align 16652! LLVMIR:         %[[VAL_321:.*]] = bitcast <4 x float> %[[VAL_320]] to <16 x i8>653! LLVMIR:         %[[VAL_322:.*]] = bitcast <4 x float> %[[VAL_319]] to <16 x i8>654! LLVMIR:         %[[VAL_323:.*]] = bitcast <4 x float> %[[VAL_318]] to <16 x i8>655! LLVMIR:         %[[VAL_324:.*]] = bitcast <4 x float> %[[VAL_317]] to <16 x i8>656! LLVMIR:         %[[VAL_325:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_321]], <16 x i8> %[[VAL_322]], <16 x i8> %[[VAL_323]], <16 x i8> %[[VAL_324]])657! LLVMIR:         store <512 x i1> %[[VAL_325]], ptr %[[VAL_316]], align 64658 659 660      subroutine test_mma_build_acc_r8()661      use, intrinsic :: mma662      implicit none663      vector(real(8)) vi10, vi11, vi12, vi13664      __vector_quad :: cq665      call mma_build_acc(cq, vi10, vi11, vi12, vi13)666      end subroutine test_mma_build_acc_r8667 668!CHECK-LABEL: @test_mma_build_acc_r8669! LLVMIR:         %[[VAL_326:.*]] = alloca <2 x double>, i64 1, align 16670! LLVMIR:         %[[VAL_327:.*]] = alloca <2 x double>, i64 1, align 16671! LLVMIR:         %[[VAL_328:.*]] = alloca <2 x double>, i64 1, align 16672! LLVMIR:         %[[VAL_329:.*]] = alloca <2 x double>, i64 1, align 16673! LLVMIR:         %[[VAL_330:.*]] = alloca <512 x i1>, i64 1, align 64674! LLVMIR:         %[[VAL_331:.*]] = load <2 x double>, ptr %[[VAL_329]], align 16675! LLVMIR:         %[[VAL_332:.*]] = load <2 x double>, ptr %[[VAL_328]], align 16676! LLVMIR:         %[[VAL_333:.*]] = load <2 x double>, ptr %[[VAL_327]], align 16677! LLVMIR:         %[[VAL_334:.*]] = load <2 x double>, ptr %[[VAL_326]], align 16678! LLVMIR:         %[[VAL_335:.*]] = bitcast <2 x double> %[[VAL_334]] to <16 x i8>679! LLVMIR:         %[[VAL_336:.*]] = bitcast <2 x double> %[[VAL_333]] to <16 x i8>680! LLVMIR:         %[[VAL_337:.*]] = bitcast <2 x double> %[[VAL_332]] to <16 x i8>681! LLVMIR:         %[[VAL_338:.*]] = bitcast <2 x double> %[[VAL_331]] to <16 x i8>682! LLVMIR:         %[[VAL_339:.*]] = call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> %[[VAL_335]], <16 x i8> %[[VAL_336]], <16 x i8> %[[VAL_337]], <16 x i8> %[[VAL_338]])683! LLVMIR:         store <512 x i1> %[[VAL_339]], ptr %[[VAL_330]], align 64684 685! mma_disassemble_acc686 687      subroutine test_disassemble_acc()688      use, intrinsic :: mma689      implicit none690      __vector_quad :: vq691      real :: data692      call mma_disassemble_acc(data, vq)693      end subroutine694 695!CHECK-LABEL: @test_disassemble_acc_696! LLVMIR:         %[[VAL_340:.*]] = alloca <512 x i1>, i64 1, align 64697! LLVMIR:         %[[VAL_341:.*]] = alloca float, i64 1, align 4698! LLVMIR:         %[[VAL_342:.*]] = load <512 x i1>, ptr %[[VAL_340]], align 64699! LLVMIR:         %[[VAL_343:.*]] = call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %[[VAL_342]])700! LLVMIR:         store { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %[[VAL_343]], ptr %[[VAL_341]], align 16701 702! mma_disassemble_pair703 704      subroutine test_disassemble_pair()705      use, intrinsic :: mma706      implicit none707      __vector_pair :: vp708      real :: data709      call mma_disassemble_pair(data, vp)710      end subroutine711 712!CHECK-LABEL: @test_disassemble_pair_713! LLVMIR:         %[[VAL_344:.*]] = alloca <256 x i1>, i64 1, align 32714! LLVMIR:         %[[VAL_345:.*]] = alloca float, i64 1, align 4715! LLVMIR:         %[[VAL_346:.*]] = load <256 x i1>, ptr %[[VAL_344]], align 32716! LLVMIR:         %[[VAL_347:.*]] = call { <16 x i8>, <16 x i8> } @llvm.ppc.vsx.disassemble.pair(<256 x i1> %[[VAL_346]])717! LLVMIR:         store { <16 x i8>, <16 x i8> } %[[VAL_347]], ptr %[[VAL_345]], align 16718