Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2196028/?format=api
{ "id": 2196028, "url": "http://patchwork.ozlabs.org/api/patches/2196028/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260212184440.0707B2043D@pchp3.se.axis.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api", "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, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260212184440.0707B2043D@pchp3.se.axis.com>", "list_archive_url": null, "date": "2026-02-12T18:44:40", "name": "[committed,2/3] CRIS: For HI, QI, make sure move patterns don't have two memory operands", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "6e5b66fcfb6b24e8e86244c8d4a5453506f918ad", "submitter": { "id": 78298, "url": "http://patchwork.ozlabs.org/api/people/78298/?format=api", "name": "Hans-Peter Nilsson", "email": "hp@axis.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260212184440.0707B2043D@pchp3.se.axis.com/mbox/", "series": [ { "id": 492004, "url": "http://patchwork.ozlabs.org/api/series/492004/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=492004", "date": "2026-02-12T18:41:46", "name": "CRIS: A few performance tweaks", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492004/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2196028/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196028/checks/", "tags": {}, "related": [], "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 (1024-bit key;\n unprotected) header.d=axis.com header.i=@axis.com header.a=rsa-sha256\n header.s=selector1 header.b=btlCMoMR;\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 (1024-bit key,\n unprotected) header.d=axis.com header.i=@axis.com header.a=rsa-sha256\n header.s=selector1 header.b=btlCMoMR", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=axis.com", "sourceware.org; spf=pass smtp.mailfrom=axis.com", "server2.sourceware.org;\n arc=pass smtp.remote-ip=52.101.84.35" ], "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 4fBkl21XCKz1xpj\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 05:45:34 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 386294BA2E16\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 18:45:32 +0000 (GMT)", "from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010035.outbound.protection.outlook.com [52.101.84.35])\n by sourceware.org (Postfix) with ESMTPS id 1577F4B9DB42\n for <gcc-patches@gcc.gnu.org>; Thu, 12 Feb 2026 18:44:46 +0000 (GMT)", "from AS4PR10CA0029.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::18)\n by GV2PR02MB8723.eurprd02.prod.outlook.com (2603:10a6:150:7c::7) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb\n 2026 18:44:41 +0000", "from AM2PEPF0001C711.eurprd05.prod.outlook.com\n (2603:10a6:20b:5d8:cafe::17) by AS4PR10CA0029.outlook.office365.com\n (2603:10a6:20b:5d8::18) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,\n 12 Feb 2026 18:44:38 +0000", "from mail.axis.com (195.60.68.100) by\n AM2PEPF0001C711.mail.protection.outlook.com (10.167.16.181) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 18:44:40 +0000", "from se-mail02w.axis.com (10.20.40.8) by se-mail10w.axis.com\n (10.20.40.10) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.39; Thu, 12 Feb\n 2026 19:44:40 +0100", "from se-mail10w.axis.com (10.20.40.10) by se-mail02w.axis.com\n (10.20.40.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.61; Thu, 12 Feb\n 2026 19:44:40 +0100", "from se-intmail02x.se.axis.com (10.4.0.28) by se-mail10w.axis.com\n (10.20.40.10) with Microsoft SMTP Server id 15.2.1748.39 via Frontend\n Transport; Thu, 12 Feb 2026 19:44:40 +0100", "from pchp3.se.axis.com (pchp3.se.axis.com [10.88.21.53])\n by se-intmail02x.se.axis.com (Postfix) with ESMTP id 08CDF1A58;\n Thu, 12 Feb 2026 19:44:40 +0100 (CET)", "by pchp3.se.axis.com (Postfix, from userid 171)\n id 0707B2043D; Thu, 12 Feb 2026 19:44:40 +0100 (CET)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 386294BA2E16", "OpenDKIM Filter v2.11.0 sourceware.org 1577F4B9DB42" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 1577F4B9DB42", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 1577F4B9DB42", "ARC-Seal": [ "i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1770921886; cv=pass;\n b=ZfgB1pngnf3hxYGa/CiDfUtQJbhv2bRq11hOkR/2ESqcTyNCN61cOq61GQW5zKD9eZuVVjXFSpPwMJxX0neD2P9gc80u9lCePGDxtcQkOB+cFaVGUQpnQ0MerDlGprEBXLr+7zFGo7anId0CVx4+I+UB209KPLbCmV4uDXCUoSM=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=dY4e/dR0g4lHp58Ttev7Y7RcEBgKg71LEdNuqSy/S3twLSR2mlAVGviatMC33BRmSIOuLWmgHQK0AtaxMqqSrLIE12vzK9/IZK5aIPLoP5DfI9ghVIMYTGuiJ1tHIlEu+DhoWwxNXdJQokQ/blXtxrARpVM3VPNQimRTW6QUplxy5h43PIdw9tSWNpqjLa1CSNp9tjIzwS4drdRvfx96evG+NeqaI5SgEORoC2uKi439NhHKIWt5S3isQQpKWDjBDZVOU3XF0NKwufz6efTNjw8L8NNGrA7E0OneLjl1K/rrd71NLokQAw9XNVw6D/ge4oar3eJb/Xpl5wwpsAoQMw==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1770921886; c=relaxed/simple;\n bh=v6iIeoAKVsi7yDqLqfhgedU2wi43LdRI181p2jrIygo=;\n h=DKIM-Signature:From:To:Subject:MIME-Version:Message-ID:Date;\n b=XNeEWMe18aGxxoeSj2kIsaNseRxuDweqI+F/GlBC4AIGR6CU2FTcqnwixmysznDBpx7CVCjmxGwbXWZkO/kfx38nkwSQs14NdbwBJvQRxyhzlATIV4cDnp0dQopGAimePpnS9FoSXif0xM+DFPZwsnpeVcJzb97tTrjTsjJLF6I=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=0MEoac3wVeekvrtf9z1F9U4gFfNxNbgtDPviXWuSQv4=;\n b=q7OYdBuMYVFqyXbwvvctZOSJAwOKswyH2eVzeONaPG6sMBTHwhGtFPsUfiJCi5ZsvCB6V5blCltGiGmzElRbiBUl0zpP7pvA2ya5cLjYWVo8hB6AVlQGTsvIghf3E5BnD4jqSc5Ude5l77WBespCiBBfENDGM0lQWB7OZpt6nLlMBL05z3gwI7jKTwkQ0gADcfNSngWf3nI0Iuf038i20kZyWkAYrKrsIDZ/9MeX4KE6udlgkBynBHkGVwKRZpsFe/gkitp7nAHwBNqlL/bVpgAA/wvFpLWyu09Y9X2WyMaggx+mAgd9UH9pQsjmOc/CWfVpHUNtL3oooNTqEENsbw==" ], "ARC-Authentication-Results": [ "i=2; server2.sourceware.org", "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 195.60.68.100) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=axis.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com;\n dkim=none (message not signed); arc=none (0)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=0MEoac3wVeekvrtf9z1F9U4gFfNxNbgtDPviXWuSQv4=;\n b=btlCMoMRGJPA8G822MIKkXcwA8bZgEYom2X7BaIVqxZ8dTZVDOitn9JQAi1avPzjpYrTi9lFLMhY1boZ1Uf0KKUfwyF01eJWNOY2vgvlIaRDqd8+hOdmjFvVk8VIKd5ukb/EU1oCJ5RnZADeeOd8WuA5cllhiBipfJcCiH4Dvmc=", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 195.60.68.100)\n smtp.mailfrom=axis.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=axis.com;", "Received-SPF": "Pass (protection.outlook.com: domain of axis.com designates\n 195.60.68.100 as permitted sender) receiver=protection.outlook.com;\n client-ip=195.60.68.100; helo=mail.axis.com; pr=C", "From": "Hans-Peter Nilsson <hp@axis.com>", "To": "<gcc-patches@gcc.gnu.org>", "Subject": "[committed 2/3] CRIS: For HI, QI,\n make sure move patterns don't have two memory operands", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"iso-8859-1\"", "Content-Transfer-Encoding": "8BIT", "Message-ID": "<20260212184440.0707B2043D@pchp3.se.axis.com>", "Date": "Thu, 12 Feb 2026 19:44:40 +0100", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "AM2PEPF0001C711:EE_|GV2PR02MB8723:EE_", "X-MS-Office365-Filtering-Correlation-Id": "9bdbf16f-0a31-4503-354e-08de6a66c7e9", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|82310400026|36860700013|1800799024|376014;", "X-Microsoft-Antispam-Message-Info": "=?iso-8859-1?q?g7lYmyKYNlkkKoY2YOu5JfvxnA?=\n\t=?iso-8859-1?q?pfzey1r5841Zwygsq1oS0t434BQUBLXlFpr0rrk7w32BWghOUSBKdnK/vX1F?=\n\t=?iso-8859-1?q?gOgh7JlqiyMEQ7E4v62eNEhHnRYkyuC2v/VJzdqrsVzPvmyoFmoZ7JsaukBf?=\n\t=?iso-8859-1?q?xi0r+Ol46X7fSSONYWrQyDQt/7dao24VMzP0AupojnQQmoc0p5u4cDH9tyzv?=\n\t=?iso-8859-1?q?QwW8T89V1mqq58NuScykNSB8BimzkSVRBMdmHyXPUKHsBDmAUUI50m4CYdmo?=\n\t=?iso-8859-1?q?w3QWFxNGqET9or7MSIlw/ZcW/2WP5lBLh5RSajaFbiLONww6949Rui1xl+Yl?=\n\t=?iso-8859-1?q?jBtJDmEpG9n40wgpyJJDYaXMaa8tWdmEcAoXSr/bbcQuf/JiTqzW3yOCARJx?=\n\t=?iso-8859-1?q?KUy496mZBFRZApbM8hTuE8lvEvnyhjDhCzI3F5odt0TaFJMy6dyLB0QhlbqY?=\n\t=?iso-8859-1?q?UhgVY9gd4D5d+JB0rN+yqYRySM+cMxtSHxeIBPsEdprE68v7Te8B0RtADhqR?=\n\t=?iso-8859-1?q?HQl+uZMJjyvr+efg3KDJbOB8L7vQ5ipLhMVyc1PurpC8Yd+67Ac+9Ple+vfs?=\n\t=?iso-8859-1?q?24wCkV1CmHxY3cGMh7tf7LomWT3TfDdjrgW9qfO9nKjDN1K1JJYFJ1pqcvqN?=\n\t=?iso-8859-1?q?bX4y6Ugh57m5DwsN+gsQ/8XAKMw0rEuwhssgkgZ0vOrlWf8+7Po6r+aQ7+fG?=\n\t=?iso-8859-1?q?fuCHeGnMpZ3tGzYDdrO3w3DovI42anejIKV1WmdW+J2gljoNJMqQ6Jz8+aZv?=\n\t=?iso-8859-1?q?6yqXiZ2xktEe3dzS4tKsoc7bb3uJA7M0oK1JfSgyiKEM6LYa0on1padmPHS8?=\n\t=?iso-8859-1?q?u+TJyOR6vYCIttMg+7IFqqaljUnZD9gg7HyFUsGLJ2C9ujQJFXQUuaEqw65z?=\n\t=?iso-8859-1?q?XMIIRPnLvCwg2g4vef15mPgcfr834l9SKRf5HxQHmUJMOQrsalBBi5WFu7uS?=\n\t=?iso-8859-1?q?YcsYyk8cxQB6RwG/rdtvp6yqvVA4iDVo4No9IWM9Jfc5vKuQeBu/Ap95ChkO?=\n\t=?iso-8859-1?q?e2zjtQgRyKKaNofUpYsdhHMLa/YOnjhBcarGKmqwuxtDOfnVQ/vAGsqMEWyi?=\n\t=?iso-8859-1?q?ejyVq2QcpBO57P/y8NBhhE6BlFpQ2YcQb6gKfNKUSEuVL+7aGjw2KILZzgJD?=\n\t=?iso-8859-1?q?lsj3Tw+a44xXy7rxtBzu3cBTWOai2ClR8/qd9HiORJzUaljxqz+gk9QpexFP?=\n\t=?iso-8859-1?q?Q4Ol1gEUBFQUx2DwnSwZc51nsAgxCx9k4khab9JCI6Rgnn+BEACRaZpOAktD?=\n\t=?iso-8859-1?q?FunON4Wt+IjPo3Wr5aDdildm3KTa0FG+yHHzBlzWnVEkKpVBZ9ZYZEzZBPA4?=\n\t=?iso-8859-1?q?OpffT5lwKqo146SZHCEGhNrhJmjg3cevmOxYni8DPdkAIFHnIIormFFTQK4x?=\n\t=?iso-8859-1?q?5Wpqfd+x6hYhkwlIZqA9HDDr6XOjfvCHZH6sOQARUm9R80UtGgB+j1/XML0i?=\n\t=?iso-8859-1?q?NUGNxGzavIC0jnXtJY/9ZFiqVLraloDm27wQON5YyUETT/X8tU8eBjuGwR7w?=\n\t=?iso-8859-1?q?AD6vvnSgH0+yh/HuX6QV5sB9SJbRcfaOND1nS2zDoMX2LukG/e+Kgt18b6H1?=\n\t=?iso-8859-1?q?vSXMe17CbuDC9JsYJfx36xEqAEazdj452a+kFPIWTEitT/2uqezpCiADNZDP?=\n\t=?iso-8859-1?q?khUfHKBLkb6Sx4M/1HNwnOgBCzSt37+e4Pdmj7RvOUOFKVA5PittCyG+M=3D?=", "X-Forefront-Antispam-Report": "CIP:195.60.68.100; CTRY:SE; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:mail.axis.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014); DIR:OUT;\n SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n S/VeWVOe8jXqJVzS+SE+rNcViSwO4hIr6S3aYKWz3dRReQK/p0qykeDgb/qA7BsZ1cNZrKkmwATxqmDXqBWxB0RkQFTbZMJNXkg5k/1vk/RVvk+SrM4bFoQofKfc7f059CFy75noyhWfdNqKZVO5GtYZf7R6FroZ8d/W6ABNlEB8p3VvqJABt7tYkDb6rVw/tV/wDqaiS6eqomH9nZjp900FYIHyl4vuUKaMgiokIbVM1I/imOo1mXApxr1Uw5i7KrbzKqTIMWqQjmy5CVHbVtsip/A9jLPA8e1kdCHgmdWkpjAktpWzPn0uq3+SPCzV2s469bBl4B2SJWVHsZGZrcFL7bjDOZ8rZTEzoX8uD0y4AbfHayOhcD2DX2DOnyB/5xDbl+jwXc1ZhbWqUVUlZIAiCZkSORjnUJYT8kWztc7zlxGszbMjGBaA4M/tfZzJ", "X-OriginatorOrg": "axis.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "12 Feb 2026 18:44:40.5464 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9bdbf16f-0a31-4503-354e-08de6a66c7e9", "X-MS-Exchange-CrossTenant-Id": "78703d3c-b907-432f-b066-88f7af9ca3af", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=78703d3c-b907-432f-b066-88f7af9ca3af; Ip=[195.60.68.100];\n Helo=[mail.axis.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AM2PEPF0001C711.eurprd05.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "GV2PR02MB8723", "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": "Further testing showed that the two-memory-operands case that could\nhappen for movsf happened for the HI and QI modes as well, for example\nin gcc.dg/Wrestrict-5.c. So, for improved performance they'd better\nget guards as well. The movstrict<m> case is just tagging along for\nsummetry; I don't know of test-cases that expose that.\n\n\t* config/cris/cris.md (BWDSF): New mode_iterator replacing SISF.\n\tAll callers changed.\n\t(\"*movhi_internal<setcc><setnz><setnzvc>\"): Anonymized from\n\t\"<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>\" to make it a\n\tmatch-only pattern. Add conditions to guard from source and\n\tdestination both being memory operands.\n\t(\"*movstricthi_internal\", \"*movstrictqi_internal\"): Similarly\n\tfor \"movstricthi\" and \"movstrictqi\".\n\t(\"movstrict<mode>\"): Add common expander for BW, forcing one operand\n\tto be a register or source being zero.\n---\n gcc/config/cris/cris.md | 51 ++++++++++++++++++++++++++++++-----------\n 1 file changed, 37 insertions(+), 14 deletions(-)", "diff": "diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md\nindex c18813f306a9..5d41a6d0d840 100644\n--- a/gcc/config/cris/cris.md\n+++ b/gcc/config/cris/cris.md\n@@ -173,8 +173,8 @@ (define_attr \"enabled\" \"no,yes\"\n (define_mode_iterator BWD [SI HI QI])\n (define_mode_iterator BWDD [DI SI HI QI])\n \n-;; Need to handle SI and SF similarly, at least in the expander.\n-(define_mode_iterator SISF [SI SF])\n+;; Need to handle BWD and SF similarly, at least in the expander.\n+(define_mode_iterator BWDSF [SI HI QI SF])\n \n ;; To be able to refer to the same mode_attr for both a multi-mode\n ;; and a mode-specific pattern, we use some singleton iterators.\n@@ -566,8 +566,8 @@ (define_insn_and_split \"*movdi_insn\"\n (define_expand \"mov<mode>\"\n [(parallel\n [(set\n- (match_operand:SISF 0 \"nonimmediate_operand\")\n- (match_operand:SISF 1 \"general_operand\"))\n+ (match_operand:BWDSF 0 \"nonimmediate_operand\")\n+ (match_operand:BWDSF 1 \"general_operand\"))\n (clobber (reg:CC CRIS_CC0_REGNUM))])]\n \"\"\n {\n@@ -661,14 +661,14 @@ (define_insn \"*movsi_internal<setcc><setnz><setnzvc>\"\n (set_attr \"cc<cccc><ccnz><ccnzvc>\"\n \t \"*,*,none,none,*,none,none,*,*,none,none,none,none,none,none,*,none\")])\n \f\n-;; FIXME: See movsi.\n-\n-(define_insn \"<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>\"\n+(define_insn \"*movhi_internal<setcc><setnz><setnzvc>\"\n [(set\n (match_operand:HI 0 \"nonimmediate_operand\" \"=r,r, r,Q>,r,Q>,r,r,r,g,g,r,r,x\")\n (match_operand:HI 1 \"general_operand\"\t\"r,Q>,M,M, I,r, L,O,n,M,r,g,x,r\"))\n (clobber (reg:CC CRIS_CC0_REGNUM))]\n- \"\"\n+ \"(register_operand (operands[0], HImode)\n+ || register_operand (operands[1], HImode)\n+ || operands[1] == const0_rtx)\"\n {\n switch (which_alternative)\n {\n@@ -705,13 +705,32 @@ (define_insn \"<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>\"\n [(set_attr \"slottable\" \"yes,yes,yes,yes,yes,yes,no,yes,no,no,no,no,yes,yes\")\n (set_attr \"cc<cccc><ccnz><ccnzvc>\" \"*,*,none,none,*,none,*,clobber,*,none,none,*,none,none\")])\n \n-(define_insn \"movstricthi\"\n+(define_expand \"movstrict<mode>\"\n+ [(parallel\n+ [(set\n+ (strict_low_part (match_operand:BW 0 \"nonimmediate_operand\"))\n+ (match_operand:BW 1 \"general_operand\"))\n+ (clobber (reg:CC CRIS_CC0_REGNUM))])]\n+ \"\"\n+{\n+ /* If the output goes to a MEM, make sure we have zero or a register as\n+ input. */\n+ if (MEM_P (operands[0])\n+ && ! REG_S_P (operands[1])\n+ && operands[1] != const0_rtx\n+ && can_create_pseudo_p ())\n+ operands[1] = force_reg (<MODE>mode, operands[1]);\n+})\n+\n+(define_insn \"*movstricthi_internal\"\n [(set\n (strict_low_part\n (match_operand:HI 0 \"nonimmediate_operand\" \"+r,r, r,Q>,Q>,g,r,g\"))\n (match_operand:HI 1 \"general_operand\"\t \"r,Q>,M,M, r, M,g,r\"))\n (clobber (reg:CC CRIS_CC0_REGNUM))]\n- \"\"\n+ \"(register_operand (operands[0], HImode)\n+ || register_operand (operands[1], HImode)\n+ || operands[1] == const0_rtx)\"\n \"@\n move.w %1,%0\n move.w %1,%0\n@@ -739,11 +758,13 @@ (define_expand \"reload_out<mode>\"\n \"\"\n \"\")\n \f\n-(define_insn \"<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>\"\n+(define_insn \"*movqi_internal<setcc><setnz><setnzvc>\"\n [(set (match_operand:QI 0 \"nonimmediate_operand\" \"=r,Q>,r, r,Q>,r,g,g,r,r,r,x\")\n \t(match_operand:QI 1 \"general_operand\"\t \"r,r, Q>,M,M, I,M,r,O,g,x,r\"))\n (clobber (reg:CC CRIS_CC0_REGNUM))]\n- \"\"\n+ \"(register_operand (operands[0], QImode)\n+ || register_operand (operands[1], QImode)\n+ || operands[1] == const0_rtx)\"\n \"@\n move.b %1,%0\n move.b %1,%0\n@@ -761,12 +782,14 @@ (define_insn \"<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>\"\n (set_attr \"cc<cccc><ccnz><ccnzvc>\"\n \t \"*,none,*,none,none,*,none,none,clobber,*,none,none\")])\n \n-(define_insn \"movstrictqi\"\n+(define_insn \"*movstrictqi_internal\"\n [(set (strict_low_part\n \t (match_operand:QI 0 \"nonimmediate_operand\" \"+r,Q>,r, r,Q>,g,g,r\"))\n \t(match_operand:QI 1 \"general_operand\"\t \"r,r, Q>,M,M, M,r,g\"))\n (clobber (reg:CC CRIS_CC0_REGNUM))]\n- \"\"\n+ \"(register_operand (operands[0], QImode)\n+ || register_operand (operands[1], QImode)\n+ || operands[1] == const0_rtx)\"\n \"@\n move.b %1,%0\n move.b %1,%0\n", "prefixes": [ "committed", "2/3" ] }