{"id":2230852,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230852/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/afL5YJsapiuhNZ3A@cowardly-lion.the-meissners.org/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.1/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<afL5YJsapiuhNZ3A@cowardly-lion.the-meissners.org>","date":"2026-04-30T06:40:32","name":"GCC 17, PowerPC Dense Math V7 (patch 2/7) -- Use wD in mma.md","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"4f473172c30fcc8b6a130ed24d89e4ef345ef6da","submitter":{"id":73991,"url":"http://patchwork.ozlabs.org/api/1.1/people/73991/?format=json","name":"Michael Meissner","email":"meissner@linux.ibm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/afL5YJsapiuhNZ3A@cowardly-lion.the-meissners.org/mbox/","series":[{"id":502213,"url":"http://patchwork.ozlabs.org/api/1.1/series/502213/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=502213","date":"2026-04-30T06:40:32","name":"GCC 17, PowerPC Dense Math V7 (patch 2/7) -- Use wD in mma.md","version":1,"mbox":"http://patchwork.ozlabs.org/series/502213/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230852/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230852/checks/","tags":{},"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=iIZ/85O3;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=iIZ/85O3","sourceware.org;\n dmarc=none (p=none dis=none) header.from=linux.ibm.com","sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com","server2.sourceware.org;\n arc=none smtp.remote-ip=148.163.158.5"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5l2Q3RsMz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 16:41:50 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id A3D674A9A7A2\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 06:41:48 +0000 (GMT)","from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n by sourceware.org (Postfix) with ESMTPS id 1F8714358A48\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 06:40:39 +0000 (GMT)","from pps.filterd (m0353725.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63THSfIR1892388; Thu, 30 Apr 2026 06:40:38 GMT","from ppma21.wdc07v.mail.ibm.com\n (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4drm1e4n1v-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Thu, 30 Apr 2026 06:40:38 +0000 (GMT)","from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])\n by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id\n 63U6cmDm014085;\n Thu, 30 Apr 2026 06:40:37 GMT","from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5])\n by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4ds8xk9r5y-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Thu, 30 Apr 2026 06:40:37 +0000 (GMT)","from smtpav05.dal12v.mail.ibm.com (smtpav05.dal12v.mail.ibm.com\n [10.241.53.104])\n by smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63U6eYcD29491940\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Thu, 30 Apr 2026 06:40:35 GMT","from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id D7DB65805D;\n Thu, 30 Apr 2026 06:40:34 +0000 (GMT)","from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 3563058056;\n Thu, 30 Apr 2026 06:40:34 +0000 (GMT)","from cowardly-lion.the-meissners.org (unknown [9.61.149.103])\n by smtpav05.dal12v.mail.ibm.com (Postfix) with ESMTPS;\n Thu, 30 Apr 2026 06:40:34 +0000 (GMT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org A3D674A9A7A2","OpenDKIM Filter v2.11.0 sourceware.org 1F8714358A48"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 1F8714358A48","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 1F8714358A48","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777531239; cv=none;\n b=R5HvFMwCRyUekGJJ9tM4DstY6BC/naeZmfMjO+NsdaMZFjzt/EMEfAaTWWrsFteO+/gs2Fwkfj3mup2XJ3g9ruh1y1LtBeG8Mw90/ILDnF4VKY0KGlefS9qmy70hyQjfTdaxUCAwO8A1BUSmykutFeRZAocFGH0feeKVhDQXd5Q=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777531239; c=relaxed/simple;\n bh=eIJYY3YyIoliL0fsxJKhdhSfefYWxSAN4FzWuy9NlKw=;\n h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;\n b=X5+/fcBUtCfShhu5ANg/0pkb9gi80XcH3y6p6ueAIwnk0beXwYApX71fi+wBH3ogDnd6eXqfQNqzflKPQfxZohazHVMrqXtcbmVEf4Y3C/1467OjlEEPCA+6ikviA3cmCYpTu2eSawZcGZVIHaYGL15oKPp67ipypyonmT2DwYw=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=\n content-type:date:from:in-reply-to:message-id:mime-version\n :references:subject:to; s=pp1; bh=l+kA4tnjh9goFH9UqCZEQ7OHyjjp1u\n 3YdOI0H8Iu0VQ=; b=iIZ/85O3RHLbzPkW5jGUlqmoQ5JBg5zqCG2KmAE51BbzX1\n YsqUmsUvFdpZV/HBoNTjMSM8zg6Y/sF3iDbgtsY79RCvbDw5ZoNxfsHbPbLfeWmj\n U4dEGvfoCD1tdiaITScTjRPSeJqFFi2+4Ax2fmvDT0ggzxRr+Pcr7gSAVwH+WRkQ\n ZWbZnekJDY7U8A5jBPKSMFqXkoLOU4Q12rFrrwe4Ang39SI+0RgAFrPap3Z3JvGz\n yFM0Dha5BraaPTDHq3gYTc/vXC+4t8VZ0/yFAIFrlt8JQqfMlRgxJyEepudXPi09\n DiOTMnMKDBlI0QPt5bhKaHZw1TyldfRZ2udDUTSA==","Date":"Thu, 30 Apr 2026 02:40:32 -0400","From":"Michael Meissner <meissner@linux.ibm.com>","To":"Michael Meissner <meissner@linux.ibm.com>, gcc-patches@gcc.gnu.org,\n Segher Boessenkool <segher@kernel.crashing.org>,\n jeevitha <jeevitha@linux.ibm.com>,\n Surya Kumari Jangala <jskumari@linux.ibm.com>,\n Kishan Parmar <kishan@linux.ibm.com>,\n Avinash Jayakar <avinashd@linux.ibm.com>,\n Ayappan Perumal <ayappap2@in.ibm.com>,\n Juergen Christ <jchrist@linux.ibm.com>","Subject":"GCC 17, PowerPC Dense Math V7 (patch 2/7) -- Use wD in mma.md","Message-ID":"<afL5YJsapiuhNZ3A@cowardly-lion.the-meissners.org>","Mail-Followup-To":"Michael Meissner <meissner@linux.ibm.com>,\n gcc-patches@gcc.gnu.org,\n Segher Boessenkool <segher@kernel.crashing.org>,\n jeevitha <jeevitha@linux.ibm.com>,\n Surya Kumari Jangala <jskumari@linux.ibm.com>,\n Kishan Parmar <kishan@linux.ibm.com>,\n Avinash Jayakar <avinashd@linux.ibm.com>,\n Ayappan Perumal <ayappap2@in.ibm.com>,\n Juergen Christ <jchrist@linux.ibm.com>","References":"<afL4oa26tUJlc9zg@cowardly-lion.the-meissners.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<afL4oa26tUJlc9zg@cowardly-lion.the-meissners.org>","X-TM-AS-GCONF":"00","X-Proofpoint-ORIG-GUID":"ceyChDt_UafxmrZ_vO-WAGO6UhgGXUmU","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDMwMDA2MCBTYWx0ZWRfX6sCJx91KywWw\n 3ewICh/KotWDuQ586H3KS6sAU2l+yu8ApCOluV9XoygObFvXu+oxHKNbQXSwgQ74obRwYJad+oM\n pwuUvWQde5BIELP9bnFY6qMJfc5Mn7Nn5RIyHcaroGjDwNsAbUDdMa1Ufe909jQsiC54nCXitsZ\n QTsn7GOiddffJgw6/X07x3XChPinB40FzJW3WKnEtPS1vJJrfURRBZ6suWfj92IuDWmORkehy1V\n 0fGEzfQKQUTCUPJ1XFfBDSgvSslhyTjfOjZPeu2l7i0l7UC22wYON/UKEN+KSNwcSclkqiOkuKW\n KQbAcRe+DTJQB5owaJLwwqI0uBESDJh/LQgeGKae21V9XnHifLBUuEA8rkAMa2CUG7/PBpCn3c0\n uzXR3+GnSDf7CfA277EWXzpqUS1S8WERYTjKNcBZEU76o49fUHBtV916RlxMaqVGUqEZgN6kJ7r\n nbnvkQLIECqBcVgPd/w==","X-Authority-Analysis":"v=2.4 cv=VZLH+lp9 c=1 sm=1 tr=0 ts=69f2f966 cx=c_pps\n a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17\n a=kj9zAlcOel0A:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=mDV3o1hIAAAA:8\n a=VnNF1IyMAAAA:8 a=4FFjvpyAOt5rtwv9xHkA:9 a=3ZKOabzyN94A:10 a=CjuIK1q_8ugA:10","X-Proofpoint-GUID":"ceyChDt_UafxmrZ_vO-WAGO6UhgGXUmU","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-30_02,2026-04-28_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n clxscore=1015 suspectscore=0 adultscore=0 lowpriorityscore=0 phishscore=0\n spamscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300060","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"This is part two of the dense math register patches for the PowerPC.\nThis is the 7th version of the dense math patches.\n\nVersion 6 of the dense math register patches were posted on April 21st,\n2026.\n\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713352.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713353.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713354.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713355.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713356.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713357.html\n\nThis patch needs the -mcpu=future patch posted on April 8th, 2026:\n\n  * https://gcc.gnu.org/pipermail/gcc-patches/2026-April/712532.html\n\nThis patch changes mma.md to use the wD constraint and accumulator_operand\npredicate that were added in the previous patch instead of using the d constrant\nand vsx_register_operand predicate.  This is in anticipation of adding dense\nmath registers in a future patch.\n\nIn addition, I added a comment in front of each insn to indicate which\ninstructions are being generated.\n\nOriginaly, these changes were in patch #4 in the V6 patches.  I have removed\nthese patches switching to use wD from the other part of the patch adding dense\nmath register support.\n\nI have built bootstrap little endian compilers on power10 systems, and\nbig endian compiler on power9 systems.  There were no regression in the\ntests.  Can I add the patches to the GCC trunk after the -mcpu=future\npatch is applied and GCC 17 has opened up?\n\n2026-04-29  Michael Meissner  <meissner@linux.ibm.com>\n\ngcc/\n\n\t* config/rs6000/mma.md (mma_<vv>): Use the wD constraint and\n\taccumulator_operand predicate for all MMA instructions taking\n\taccumulator operands.\n\t(mma_<avv>): Likewise.\n\t(mma_<pv>\"): Likewise.\n\t(mma_<apv>): Likewise.\n\t(mma_<vvi4i4i8>): Likewise.\n\t(mma_<avvi4i4i8>): Likewise.\n\t(mma_<vvi4i4i2>\"): Likewise.\n\t(mma_<avvi4i4i2>): Likewise.\n\t(mma_<vvi4i4>): Likewise.\n\t(mma_<avvi4i4>): Likewise.\n\t(mma_<pvi4i2>): Likewise.\n\t(mma_<apvi4i2>): Likewise.\n\t(mma_<vvi4i4i4>): Likewise.\n\t(mma_<avvi4i4i4>): Likewise.\n---\n gcc/config/rs6000/mma.md | 83 ++++++++++++++++++++++++++++++----------\n 1 file changed, 62 insertions(+), 21 deletions(-)","diff":"diff --git a/gcc/config/rs6000/mma.md b/gcc/config/rs6000/mma.md\nindex 1103f1fc037..87139dd41e8 100644\n--- a/gcc/config/rs6000/mma.md\n+++ b/gcc/config/rs6000/mma.md\n@@ -522,8 +522,15 @@ (define_insn \"mma_xxsetaccz\"\n   \"xxsetaccz %A0\"\n   [(set_attr \"type\" \"mma\")])\n \n+\f\n+;; MMA operations below.\n+\n+;; Instructions:\n+;; xvi4ger8   xvi8ger4 xvi16ger2 xvi16ger2s xvf16ger2\n+;; xvbf16ger2 xvf32ger\n+\n (define_insn \"mma_<vv>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:V16QI 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")]\n \t\t    MMA_VV))]\n@@ -531,9 +538,15 @@ (define_insn \"mma_<vv>\"\n   \"<vv> %A0,%x1,%x2\"\n   [(set_attr \"type\" \"mma\")])\n \n+;; Instructions:\n+;; xvi4ger8pp   xvi8ger4pp  xvi8ger4spp   xvi16ger2pp xvi16ger2spp\n+;; xvf16ger2pp  xvf16ger2pn  xvf16ger2np  xvf16ger2nn xvbf16ger2pp\n+;; xvbf16ger2pn xvbf16ger2np xvbf16ger2nn xvf32gerpp  xvf32gerpn\n+;; xvf32gernp   xvf32gernn\n+\n (define_insn \"mma_<avv>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")]\n \t\t    MMA_AVV))]\n@@ -541,8 +554,10 @@ (define_insn \"mma_<avv>\"\n   \"<avv> %A0,%x2,%x3\"\n   [(set_attr \"type\" \"mma\")])\n \n+;; Instruction: xvf64ger\n+\n (define_insn \"mma_<pv>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:OO 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")]\n \t\t    MMA_PV))]\n@@ -550,9 +565,11 @@ (define_insn \"mma_<pv>\"\n   \"<pv> %A0,%x1,%x2\"\n   [(set_attr \"type\" \"mma\")])\n \n+;; Instructions: xvf64gerpp xvf64gerpn xvf64gernp xvf64gernn\n+\n (define_insn \"mma_<apv>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:OO 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")]\n \t\t    MMA_APV))]\n@@ -560,8 +577,10 @@ (define_insn \"mma_<apv>\"\n   \"<apv> %A0,%x2,%x3\"\n   [(set_attr \"type\" \"mma\")])\n \n+;; Instruction: pmxvi4ger8\n+\n (define_insn \"mma_<vvi4i4i8>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:V16QI 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 3 \"const_0_to_15_operand\" \"n,n\")\n@@ -573,9 +592,11 @@ (define_insn \"mma_<vvi4i4i8>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instruction: pmxvi4ger8pp\n+\n (define_insn \"mma_<avvi4i4i8>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 4 \"const_0_to_15_operand\" \"n,n\")\n@@ -587,8 +608,11 @@ (define_insn \"mma_<avvi4i4i8>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instructions:\n+;; pmxvi16ger2 pmxvi16ger2s pmxvf16ger2 pmxvbf16ger2\n+\n (define_insn \"mma_<vvi4i4i2>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:V16QI 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 3 \"const_0_to_15_operand\" \"n,n\")\n@@ -600,9 +624,14 @@ (define_insn \"mma_<vvi4i4i2>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instructions:\n+;; pmxvi16ger2pp  pmxvi16ger2spp pmxvf16ger2pp  pmxvf16ger2pn\n+;; pmxvf16ger2np  pmxvf16ger2nn  pmxvbf16ger2pp pmxvbf16ger2pn\n+;; pmxvbf16ger2np pmxvbf16ger2nn\n+\n (define_insn \"mma_<avvi4i4i2>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 4 \"const_0_to_15_operand\" \"n,n\")\n@@ -614,8 +643,10 @@ (define_insn \"mma_<avvi4i4i2>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instruction: pmxvf32ger\n+\n (define_insn \"mma_<vvi4i4>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:V16QI 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 3 \"const_0_to_15_operand\" \"n,n\")\n@@ -626,9 +657,11 @@ (define_insn \"mma_<vvi4i4>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instructions: pmxvf32gerpp pmxvf32gerpn pmxvf32gernp pmxvf32gernn\n+\n (define_insn \"mma_<avvi4i4>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 4 \"const_0_to_15_operand\" \"n,n\")\n@@ -639,8 +672,10 @@ (define_insn \"mma_<avvi4i4>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instruction: pmxvf64ger\n+\n (define_insn \"mma_<pvi4i2>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:OO 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 3 \"const_0_to_15_operand\" \"n,n\")\n@@ -651,9 +686,11 @@ (define_insn \"mma_<pvi4i2>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instructions: pmxvf64gerpp pmxvf64gerpn pmxvf64gernp pmxvf64gernn\n+\n (define_insn \"mma_<apvi4i2>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:OO 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 4 \"const_0_to_15_operand\" \"n,n\")\n@@ -664,8 +701,10 @@ (define_insn \"mma_<apvi4i2>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instruction: pmxvi8ger4\n+\n (define_insn \"mma_<vvi4i4i4>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n \t(unspec:XO [(match_operand:V16QI 1 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 3 \"const_0_to_15_operand\" \"n,n\")\n@@ -677,9 +716,11 @@ (define_insn \"mma_<vvi4i4i4>\"\n   [(set_attr \"type\" \"mma\")\n    (set_attr \"prefixed\" \"yes\")])\n \n+;; Instructions: pmxvi8ger4pp pmxvi8ger4spp\n+\n (define_insn \"mma_<avvi4i4i4>\"\n-  [(set (match_operand:XO 0 \"fpr_reg_operand\" \"=&d,&d\")\n-\t(unspec:XO [(match_operand:XO 1 \"fpr_reg_operand\" \"0,0\")\n+  [(set (match_operand:XO 0 \"accumulator_operand\" \"=&wD,&wD\")\n+\t(unspec:XO [(match_operand:XO 1 \"accumulator_operand\" \"0,0\")\n \t\t    (match_operand:V16QI 2 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:V16QI 3 \"vsx_register_operand\" \"v,?wa\")\n \t\t    (match_operand:SI 4 \"const_0_to_15_operand\" \"n,n\")\n","prefixes":[]}