{"id":2225418,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2225418/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/aebhzpi1c5BizfkE@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":"<aebhzpi1c5BizfkE@cowardly-lion.the-meissners.org>","date":"2026-04-21T02:32:46","name":"GCC 17.0 PowerPC, Dense Math V6 [1/5]: Add wD constraint","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c86fabe49da93f1ab159c281062be5979aea1ae7","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/aebhzpi1c5BizfkE@cowardly-lion.the-meissners.org/mbox/","series":[{"id":500710,"url":"http://patchwork.ozlabs.org/api/1.1/series/500710/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=500710","date":"2026-04-21T02:32:46","name":"GCC 17.0 PowerPC, Dense Math V6 [1/5]: Add wD constraint","version":1,"mbox":"http://patchwork.ozlabs.org/series/500710/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225418/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225418/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=UvPSES9L;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::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=UvPSES9L","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.156.1"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4g05y272HQz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 12:33:29 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 590484A98F00\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 02:33:27 +0000 (GMT)","from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n [148.163.156.1])\n by sourceware.org (Postfix) with ESMTPS id C68F84BA2E23\n for <gcc-patches@gcc.gnu.org>; Tue, 21 Apr 2026 02:32:55 +0000 (GMT)","from pps.filterd (m0356517.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63KJglkJ1650843; Tue, 21 Apr 2026 02:32:54 GMT","from ppma12.dal12v.mail.ibm.com\n (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220])\n by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dm2k52bsn-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Tue, 21 Apr 2026 02:32:54 +0000 (GMT)","from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1])\n by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id\n 63L2KJbr005453;\n Tue, 21 Apr 2026 02:32:53 GMT","from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4])\n by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4dmm9py6g0-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n Tue, 21 Apr 2026 02:32:53 +0000 (GMT)","from smtpav06.wdc07v.mail.ibm.com (smtpav06.wdc07v.mail.ibm.com\n [10.39.53.233])\n by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63L2WnJ920382288\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Tue, 21 Apr 2026 02:32:50 GMT","from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id CC6F658054;\n Tue, 21 Apr 2026 02:32:49 +0000 (GMT)","from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id AC7155803F;\n Tue, 21 Apr 2026 02:32:48 +0000 (GMT)","from cowardly-lion.the-meissners.org (unknown [9.61.149.99])\n by smtpav06.wdc07v.mail.ibm.com (Postfix) with ESMTPS;\n Tue, 21 Apr 2026 02:32:48 +0000 (GMT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 590484A98F00","OpenDKIM Filter v2.11.0 sourceware.org C68F84BA2E23"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org C68F84BA2E23","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org C68F84BA2E23","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776738776; cv=none;\n b=ZwcP+uoIK1DBAlMNO0JQEZrnBpquMYwkpvhQaUrmxJoJ69W+Q5zDNW+ullWatpkCiVC9/LeD1cz46Q4Qo2JYGdmF7q97bxT91onIEAlmbCFIedymv4NNXo11KykZYkCxb2l9oO86a++AuUApkASytxXiIvwlG/zDPSC0xF9y6tk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776738776; c=relaxed/simple;\n bh=QAk4m1FVnVak3Y888wgF+XTbMxqiqDfQkLWMeYLKTdw=;\n h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;\n b=H5Lj8Pw0+eFarvWecpNR4qrlfxjXwNx7MIiPm8BD8p6EflSMmIL4MOjHZ8QfZl2c3rHzBsGwS9/XgKCct/Y0IDYyf6rN/JIe1v5lVUdKVIIjeRw6BXzmjwt9eDPsbB0G7fH4dSdOa/Wusk/xBfuqEorNGmkYorBejQaHGSU+mSo=","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=1HteafbIQMLAawcqaF+77a4eW2o2BU\n KVFSNqXmSNyKo=; b=UvPSES9LwrVd9Bsmzh7Ci+VewamAwxLu28xil2ARnjwaTi\n HoBVmcALabVzx5zZls8tz5Z676Rg1Uqv9NsdmUMMdXWC3xGsBtcIQTOeETPU2iNg\n VyiOYJDccpKFIArfdB4qmB+h+B4THej8aN5VGErKwhSopd3aTCf59l7RS/iixXQJ\n 1Sh+Ul5loSOL3fc4+/wUcShqbGsOW4l8K/6KbCW/jtYapgtbr9e1v/8CxzVQG/v2\n r7X7ZdvYdEy1xjemh2UECDo2P3z+Xhr1suwvnatPoLwqqBwAirRC6gj0le1QlGwt\n rG5Igb7e9Kcm94XPYy8JpWFUJdXr1Dr8J0Y9vbEQ==","Date":"Mon, 20 Apr 2026 22:32:46 -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.0 PowerPC, Dense Math V6 [1/5]: Add wD constraint","Message-ID":"<aebhzpi1c5BizfkE@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":"<aebT1QQbPenBOFeH@cowardly-lion.the-meissners.org>\n <aebfyZbqzSA9YblH@cowardly-lion.the-meissners.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<aebfyZbqzSA9YblH@cowardly-lion.the-meissners.org>","X-TM-AS-GCONF":"00","X-Proofpoint-GUID":"yXN296myT5Evr3h02eXH-tg0j40_FFmf","X-Proofpoint-ORIG-GUID":"yXN296myT5Evr3h02eXH-tg0j40_FFmf","X-Authority-Analysis":"v=2.4 cv=VP7tWdPX c=1 sm=1 tr=0 ts=69e6e1d6 cx=c_pps\n a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17\n a=kj9zAlcOel0A:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=mDV3o1hIAAAA:8\n a=VnNF1IyMAAAA:8 a=PNVkRuOr210gsube6MIA:9 a=CjuIK1q_8ugA:10","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDIxMDAyMSBTYWx0ZWRfXyT0sajZyr9YV\n 2c7k6RT3RpaFTjHbx+R2SiC4kxE0SeLCW3tLNXDHS6bl22LenLtZLKqjtiNQzOioDquimooUBb7\n afg/irKddZEsTycwceoB9lO5wupHuq3FqFkLnVybbPqbkXZIGQEcRmppMVJ4Wodq77/t9nyIg2D\n 0e6Vol2sSwVGmv0JILeJq4U2AR7xO1fhXjQZTItotcovO/dOqzYhyGRKD7pZJM+BD3yZ6/mkp+i\n wNHTdCgeeT3LTDIHW0Uc5DSbgNCxMhgTJ9e5f8b50w5Zo8+PPOcDvmCxncXeYcJ8JKscgusZFm0\n ixUvAg93H/zYZXSlSmRpgA+wAIEbdxYctlv+vDZhv08DRmq5CvJBcGRZmiUeeWGPtvoW+pxnr0q\n m+30G1yfHC/PMA7+nfM1aMzDp83JU5c/MciIxvYSsyCLdfoHWXDrJzJujRyQchDd8+QejUG3GbZ\n cVc1oxX2UMEt26im3xg==","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-20_05,2026-04-20_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n clxscore=1015 impostorscore=0 suspectscore=0 priorityscore=1501 adultscore=0\n spamscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 malwarescore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604210021","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":"Note, in the intro mail message, I said that this was V4 of the\npatches, but I missed I had submitted V5 on February 21st, 2026, so\nthis is now V6:\n\nThis is version 6 of the patches (which is the same as version 5).\nVersion 5 patches are at:\n\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708943.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708944.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708945.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708946.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708947.html\n * https://gcc.gnu.org/pipermail/gcc-patches/2026-February/708948.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 adds a new constraint ('wD') that matches the accumulator registers\nused by the MMA instructions.  Possible future PowerPC machines are thinking\nabout having a new set of 8 dense math accumulators that will be 1,024 bits in\nsize.  The 'wD' constaint was chosen because the VSX constraints start with 'w'.\nThe 'wd' constraint was already used, so I chose 'wD' to be similar.\n\nTo change code to possibly use dense math registers, the 'd' constraint should\nbe changed to 'wD', and the predicate 'fpr_reg_operand' should be changed to\n'accumulator_operand'.\n\nOn current power10/power11 systems, the accumulators overlap with the 32\ntraditional FPR registers (i.e. VSX vector registers 0..31).  Each accumulator\nuses 4 adjacent FPR/VSX registers for a 512 bit logical register.\n\nPossible future PowerPC machines would have these 8 accumulator registers be\nseparate registers, called dense math registers.  It is anticipated that when in\ndense math register mode, the MMA instructions would use the accumulators\ninstead of the adjacent VSX registers.  I.e. in power10/power11 mode,\naccumulator 1 will overlap with vector registers 4-7, but in dense math register\nmode, accumulator 1 will be a separate register.\n\nCode compiled for power10/power11 systems will continue to work on the potential\nfuture machine with dense math register support but the compiler will have fewer\nvector registers available for allocation because it believe the accumulators\nare using vector registers.  For example, the file mma-double-test.c in the\ngcc.target/powerpc testsuite directory has 8 more register spills to/from the\nstack for power10/power11 code then when compiled with dense math register\nsupport.\n\nIn this patch, I have removed using the wD constriant in mma.md.  A later patch\nwill change mma.md to using wA instead of a d constraint.\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-20   Michael Meissner  <meissner@linux.ibm.com>\n\n\t* config/rs6000/constraints.md (wD): New constraint.\n\t* config/rs6000/predicates.md (accumulator_operand): New predicate.\n\t* config/rs6000/rs6000.cc (rs6000_debug_reg_global): Print the register\n\tclass for the 'wD' constraint.\n\t(rs6000_init_hard_regno_mode_ok): Set up the 'wD' register constraint\n\tclass.\n\t* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add element for\n\tthe 'wD' constraint.\n\t* doc/md.texi (PowerPC constraints): Document the 'wD' constraint.\n\n---\n gcc/config/rs6000/constraints.md |  3 +++\n gcc/config/rs6000/predicates.md  | 18 ++++++++++++++++++\n gcc/config/rs6000/rs6000.cc      |  7 ++++++-\n gcc/config/rs6000/rs6000.h       |  1 +\n gcc/doc/md.texi                  |  5 +++++\n 5 files changed, 33 insertions(+), 1 deletion(-)","diff":"diff --git a/gcc/config/rs6000/constraints.md b/gcc/config/rs6000/constraints.md\nindex d0ed47faab8..0d1cde5bd4d 100644\n--- a/gcc/config/rs6000/constraints.md\n+++ b/gcc/config/rs6000/constraints.md\n@@ -107,6 +107,9 @@ (define_constraint \"wB\"\n        (match_test \"TARGET_P8_VECTOR\")\n        (match_operand 0 \"s5bit_cint_operand\")))\n \n+(define_register_constraint \"wD\" \"rs6000_constraints[RS6000_CONSTRAINT_wD]\"\n+  \"Accumulator register.\")\n+\n (define_constraint \"wE\"\n   \"@internal Vector constant that can be loaded with the XXSPLTIB instruction.\"\n   (match_test \"xxspltib_constant_nosplit (op, mode)\"))\ndiff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md\nindex 54dbc8bcc95..682fd2dc6e8 100644\n--- a/gcc/config/rs6000/predicates.md\n+++ b/gcc/config/rs6000/predicates.md\n@@ -186,6 +186,24 @@ (define_predicate \"vlogical_operand\"\n   return VLOGICAL_REGNO_P (REGNO (op));\n })\n \n+;; Return 1 if op is an accumulator.  On power10 systems, the accumulators\n+;; overlap with the FPRs.\n+(define_predicate \"accumulator_operand\"\n+  (match_operand 0 \"register_operand\")\n+{\n+  if (SUBREG_P (op))\n+    op = SUBREG_REG (op);\n+\n+  if (!REG_P (op))\n+    return 0;\n+\n+  if (!HARD_REGISTER_P (op))\n+    return 1;\n+\n+  int r = REGNO (op);\n+  return FP_REGNO_P (r) && (r & 3) == 0;\n+})\n+\n ;; Return 1 if op is the carry register.\n (define_predicate \"ca_operand\"\n   (match_operand 0 \"register_operand\")\ndiff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc\nindex 4999cb6f54e..63723396558 100644\n--- a/gcc/config/rs6000/rs6000.cc\n+++ b/gcc/config/rs6000/rs6000.cc\n@@ -2328,6 +2328,7 @@ rs6000_debug_reg_global (void)\n \t   \"wr reg_class = %s\\n\"\n \t   \"wx reg_class = %s\\n\"\n \t   \"wA reg_class = %s\\n\"\n+\t   \"wD reg_class = %s\\n\"\n \t   \"\\n\",\n \t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_d]],\n \t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_v]],\n@@ -2335,7 +2336,8 @@ rs6000_debug_reg_global (void)\n \t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_we]],\n \t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_wr]],\n \t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_wx]],\n-\t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_wA]]);\n+\t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_wA]],\n+\t   reg_class_names[rs6000_constraints[RS6000_CONSTRAINT_wD]]);\n \n   nl = \"\\n\";\n   for (m = 0; m < NUM_MACHINE_MODES; ++m)\n@@ -2992,6 +2994,9 @@ rs6000_init_hard_regno_mode_ok (bool global_init_p)\n   if (TARGET_DIRECT_MOVE_128)\n     rs6000_constraints[RS6000_CONSTRAINT_we] = VSX_REGS;\n \n+  if (TARGET_MMA)\n+    rs6000_constraints[RS6000_CONSTRAINT_wD] = FLOAT_REGS;\n+\n   /* Set up the reload helper and direct move functions.  */\n   if (TARGET_VSX || TARGET_ALTIVEC)\n     {\ndiff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h\nindex 2d3016db513..04709f0dcd6 100644\n--- a/gcc/config/rs6000/rs6000.h\n+++ b/gcc/config/rs6000/rs6000.h\n@@ -1183,6 +1183,7 @@ enum r6000_reg_class_enum {\n   RS6000_CONSTRAINT_wr,\t\t/* GPR register if 64-bit  */\n   RS6000_CONSTRAINT_wx,\t\t/* FPR register for STFIWX */\n   RS6000_CONSTRAINT_wA,\t\t/* BASE_REGS if 64-bit.  */\n+  RS6000_CONSTRAINT_wD,\t\t/* Accumulator regs if MMA/Dense Math.  */\n   RS6000_CONSTRAINT_MAX\n };\n \ndiff --git a/gcc/doc/md.texi b/gcc/doc/md.texi\nindex 6af646e3e01..d70e7beb52e 100644\n--- a/gcc/doc/md.texi\n+++ b/gcc/doc/md.texi\n@@ -3415,6 +3415,11 @@ Like @code{d}, if @option{-mpowerpc-gfxopt} is used; otherwise, @code{NO_REGS}.\n @item wA\n Like @code{b}, if @option{-mpowerpc64} is used; otherwise, @code{NO_REGS}.\n \n+@item wD\n+Accumulator register if @option{-mma} is used; otherwise,\n+@code{NO_REGS}.  For @option{-mcpu=power10} the accumulator registers\n+overlap with VSX vector registers 0..31.\n+\n @item wB\n Signed 5-bit constant integer that can be loaded into an Altivec register.\n \n","prefixes":[]}