{"id":2229513,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2229513/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/01082f57-24bb-4846-be23-a2e357cbc9b5@linux.ibm.com/","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":"<01082f57-24bb-4846-be23-a2e357cbc9b5@linux.ibm.com>","date":"2026-04-28T11:04:23","name":"rs6000: Update mma_assemble_acc for DMF","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"a42c08d9018d869852fd81c9e0b43f293a22bb42","submitter":{"id":88474,"url":"http://patchwork.ozlabs.org/api/1.1/people/88474/?format=json","name":"Surya Kumari Jangala","email":"jskumari@linux.ibm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/01082f57-24bb-4846-be23-a2e357cbc9b5@linux.ibm.com/mbox/","series":[{"id":501826,"url":"http://patchwork.ozlabs.org/api/1.1/series/501826/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=501826","date":"2026-04-28T11:04:23","name":"rs6000: Update mma_assemble_acc for DMF","version":1,"mbox":"http://patchwork.ozlabs.org/series/501826/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2229513/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2229513/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=FzOKGJ0p;\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=FzOKGJ0p","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 4g4cz32ZZbz1xrS\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 21:05:02 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2709F4B920C5\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 11:05:00 +0000 (GMT)","from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n [148.163.156.1])\n by sourceware.org (Postfix) with ESMTPS id 6D6014BA23EC\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:04:31 +0000 (GMT)","from pps.filterd (m0353729.ppops.net [127.0.0.1])\n by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63RIbhYE935847\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:04:30 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 4drn9r52dk-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:04:30 +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 63SArnCg010040\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:04:29 GMT","from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71])\n by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4ds7xq9fky-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:04:29 +0000 (GMT)","from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com\n [10.241.53.101])\n by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63SB4RVw34734656\n (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Tue, 28 Apr 2026 11:04:27 GMT","from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 68D8258071;\n Tue, 28 Apr 2026 11:04:27 +0000 (GMT)","from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 2F13C58079;\n Tue, 28 Apr 2026 11:04:26 +0000 (GMT)","from [9.124.221.169] (unknown [9.124.221.169])\n by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP;\n Tue, 28 Apr 2026 11:04:25 +0000 (GMT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2709F4B920C5","OpenDKIM Filter v2.11.0 sourceware.org 6D6014BA23EC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 6D6014BA23EC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 6D6014BA23EC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777374271; cv=none;\n b=gVmq8pJqNNE95bTOtjaIqSfkk8UCqgN4dnVugcZL3G4G9NiCW2pXbkmqwZyqTttd7Gh/uERqWqipzaoQUFRwz+XpiAnpEY3JNbQMs9Cv+z5YhPncntdoCiC6y8p5PGTrd5KOiMQnqcDMNDgVWbvIpMiC52CsGdGOC8eq+b4Dyj0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777374271; c=relaxed/simple;\n bh=gZzTWvWSKI+BERbF0TjQI+eLhxoknOxMwloJiJ+x1Ss=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:From:To:Subject;\n b=ZPr632H+mf3mPsVdaN4Ue1aM56i+K3tF7sxOLbr9nwgQCgtBZOpKv1ZXbcuKjjt8X9kzusrmRqwhy43bPxYIexKA1rQg85alyqx2FhRsqdRM6whYANTFGSScFvt6sCejoUIkRTLn5AuNkgtbHdEwgojo1pmn3fIxo4fn++T2q/k=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n :content-transfer-encoding:content-type:date:from:message-id\n :mime-version:subject:to; s=pp1; bh=kzN6kIzM+KswUSAoyFV7Zy9oEGUc\n /pNW/yEXqE7lPsU=; b=FzOKGJ0pW63BH0TwMhmGcU5o3HEBx+mFP/S8z+xAzOug\n 5Yk/9ghD9PF1fFWJ8kXT8bH7yr7B0G5l3yUXMCn88dI8zs7xNyBMspNcNg4/47bw\n 34jagod/7SsdQUJSRLjOcDy8vnwbA+QXTDrxQlT9PSqLuGlt+P31grCmVj8zLTNM\n 2VIIX9YPzssINitRoeIcmYXW/k1J2z5Ii7buSICz4/RbT5Ax0IzrUVB5eKk9VhYG\n fGZrX5fCqLjKXtBRmDoQ6oxTV0uk+TnD/88kR4EL/4Shjw1FH38osa1hRcNXuhJt\n ldV8YvnewgRHjSM/TX5KQ6GeyQkyKkIVTqODgvTZ1A==","Message-ID":"<01082f57-24bb-4846-be23-a2e357cbc9b5@linux.ibm.com>","Date":"Tue, 28 Apr 2026 16:34:23 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"Surya Kumari Jangala <jskumari@linux.ibm.com>","Content-Language":"en-US","To":"GCC Patches <gcc-patches@gcc.gnu.org>","Cc":"Michael Meissner <meissner@linux.ibm.com>","Subject":"[PATCH] rs6000: Update mma_assemble_acc for DMF","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-TM-AS-GCONF":"00","X-Proofpoint-GUID":"3WBNIY364BT7HlrYXv9Mis6GqQWplins","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI4MDA5NyBTYWx0ZWRfX7vZNB6akFRCd\n IrYr4BxJKz/h06+Io9fdxgrmVmNeXNkcdLbvnMBvvd87f1HlIIBLvnZPw3Ce0WxON1+v0sQlI5K\n v0SYLtQS/xdRZxjVkELwMc22jp228AFSF+lJtMCOa0hLsHvCuDNkSvUQPgSV0d4UkVIE4TK3JMQ\n 71Kk+UrF1F0+G/cgNyPdKinCKHPcjjrGoRS7v9zf+grr0YEx2uswUvp3KKKVbe66Z/uzV55fYxy\n EPGuYlUinJRoM7KoH76hFrfERQxRgaFzgSb13L/aY3UQAC39eLsdSg+KXS8ti6Kr8NEdtrTf3xJ\n 1Jog+nBLTI0Oyb5ydT45vc1B4c7kGMvZmSfHNOk7kHslBq0mHaTBrTo48lQp5HfIfzMCzN0UJTC\n CMe+ZNLSFobgmXSUOcOSo63mjvRcPZdJQ/ee232K2fs5fRK+6q3kWAjEZNYZt7v1Td7D+LNuB/7\n 9OMrMqyyNZKaB1P43lA==","X-Authority-Analysis":"v=2.4 cv=Kc7idwYD c=1 sm=1 tr=0 ts=69f0943e cx=c_pps\n a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=mDV3o1hIAAAA:8\n a=VnNF1IyMAAAA:8 a=aIgOinGhM5ZEc-C-JXUA:9 a=QEXdDO2ut3YA:10","X-Proofpoint-ORIG-GUID":"3WBNIY364BT7HlrYXv9Mis6GqQWplins","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-28_02,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 spamscore=0\n malwarescore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0\n suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604280097","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 patch depends on the following patches:\n1. -mcpu=future: https://gcc.gnu.org/pipermail/gcc-patches/2025-December/703739.html\n2. Support for Dense Math Registers: https://gcc.gnu.org/pipermail/gcc-patches/2026-April/713352.html\n\nThis patch adds a new dm_insert512 instruction pattern for moving data\nfrom VSX registers to Dense Math Registers via two insert 512-bit\ninstructions. Also mma_assemble_acc expand is updated to use DMF\nspecific code path when TARGET_DENSE_MATH is enabled.\nNote that the Dense Math Facility may or may not be supported in a\nfuture processor.\n\n2026-04-28  Peter Bergner <bergner@linux.ibm.com>\n\ngcc:\n\t* config/rs6000/mma.md (dm_insert512): New define_insn.\n\t(mma_assemble_acc): Update to support Dense Math Facility with\n\tconditional code path for TARGET_DENSE_MATH.\n---\n gcc/config/rs6000/mma.md | 33 ++++++++++++++++++++++++++++-----\n 1 file changed, 28 insertions(+), 5 deletions(-)","diff":"diff --git a/gcc/config/rs6000/mma.md b/gcc/config/rs6000/mma.md\nindex 5253e2c34a8..e4e613c55bf 100644\n--- a/gcc/config/rs6000/mma.md\n+++ b/gcc/config/rs6000/mma.md\n@@ -427,6 +427,18 @@ (define_expand \"vsx_disassemble_pair\"\n   DONE;\n })\n \n+;; Move from VSX registers to DMR registers via two insert 512 bit\n+;; instructions.\n+(define_insn \"dm_insert512\"\n+  [(set (match_operand:XO 0 \"dense_math_operand\" \"=wD\")\n+       (unspec:XO [(match_operand:OO 1 \"vsx_register_operand\" \"wa\")\n+\t\t   (match_operand:OO 2 \"vsx_register_operand\" \"wa\")\n+\t\t  (match_operand 3 \"const_0_to_1_operand\")]\n+\t\t  UNSPEC_DM_INSERT512_UPPER))]\n+  \"TARGET_DENSE_MATH\"\n+  \"dmxxinstdmr512 %0,%x1,%x2,%3\"\n+  [(set_attr \"type\" \"mma\")])\n+\n (define_expand \"mma_assemble_acc\"\n   [(match_operand:XO 0 \"fpr_reg_operand\")\n    (match_operand:V16QI 1 \"mma_assemble_input_operand\")\n@@ -435,11 +447,22 @@ (define_expand \"mma_assemble_acc\"\n    (match_operand:V16QI 4 \"mma_assemble_input_operand\")]\n   \"TARGET_MMA\"\n {\n-  rtx src = gen_rtx_UNSPEC_VOLATILE (XOmode,\n-\t\t\t    \t     gen_rtvec (4, operands[1], operands[2],\n-\t\t\t\t       \t\toperands[3], operands[4]),\n-\t\t\t    \t     UNSPECV_MMA_ASSEMBLE);\n-  emit_move_insn (operands[0], src);\n+  if (TARGET_DENSE_MATH)\n+    {\n+      rtx vp0 = gen_reg_rtx (OOmode);\n+      rtx vp1 = gen_reg_rtx (OOmode);\n+      emit_insn (gen_vsx_assemble_pair (vp0, operands[1], operands[2]));\n+      emit_insn (gen_vsx_assemble_pair (vp1, operands[3], operands[4]));\n+      emit_insn (gen_dm_insert512 (operands[0], vp0, vp1, const0_rtx));\n+    }\n+  else\n+    {\n+      rtx src = gen_rtx_UNSPEC_VOLATILE (XOmode,\n+\t\t\t    \t    \t gen_rtvec (4, operands[1], operands[2],\n+\t\t\t\t       \t\t    operands[3], operands[4]),\n+\t\t\t    \t     \t UNSPECV_MMA_ASSEMBLE);\n+      emit_move_insn (operands[0], src);\n+    }\n   DONE;\n })\n \n","prefixes":[]}