From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by sourceware.org (Postfix) with ESMTPS id 3847F388454A for ; Wed, 15 May 2024 07:47:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3847F388454A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3847F388454A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=198.175.65.17 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715759235; cv=pass; b=S2MoK4AoqhV96aNswWGi7BOwkT6R1qYmXykjdUT4dHfjdiA/u4x/wxRdfSf7yAuF2E4kNucgIBoZm9b677+Rn2soeRhmotu0+9AG7o9Fg2WDHZ/UWQbsaBDTZg252dJqeNivg+udQQZX8maARCTTQJInDTcQ10K07Sun9EKoRdY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715759235; c=relaxed/simple; bh=XlSOI5BVr+neSXeWl6Y9fIoj9oOR06v1reIsg7hRGPk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=vhED9dvYfolVnWW7FcW4mFM9KhtcarZSVqmfustEgLljBV1sI7gQUCfHueOH59Jv8/qSk4GIJTpjEqqxLhk/cPBwjVpKdUVrkYfEj7nWFjpxPBmgzR9Qz8CQgtk+wRhBE1uGlGwe6eNT2YA4MeKsyyTvN/3Pe5FtzRh59aey5oE= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715759233; x=1747295233; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XlSOI5BVr+neSXeWl6Y9fIoj9oOR06v1reIsg7hRGPk=; b=PBoUHpmapj99SfRsMkEOP90G5aNxwPiK7fGTGtJ/qaG0shDTt62IExLR hf44l177iQa48d0kfp2whhLwQ55xuxugYfrPl9vfEKoZOpIUewyzP7FSI MV9Tpu9VeQGnV/XYM+Q2SkVfqYcfy8BEUnemKwbb3AGV7053pM/6wf5eX vQNX8Wg9QZdJAisHwgmoThxGj1xEmqRLLRCmZIXnBVuIYkDlEJktnsPl+ wC+6x1sZIq5ZJeBIF6bf7EuxiFABQKz3gT2CnkcUpIEmIE5CFx/cOYH+P 1hx0Ica+U1ro3L1C9jG8UCuTjoXcc/QV3rKzCBME01edb4mGVucskLWz+ g==; X-CSE-ConnectionGUID: 5zeEYB2+QEyXrmnbzF1I7g== X-CSE-MsgGUID: 1YpudWS0SSaM7HMuqc8nsQ== X-IronPort-AV: E=McAfee;i="6600,9927,11073"; a="11921313" X-IronPort-AV: E=Sophos;i="6.08,161,1712646000"; d="scan'208";a="11921313" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 00:47:09 -0700 X-CSE-ConnectionGUID: kJiRkKg2Qj2FuzOxsbQpEQ== X-CSE-MsgGUID: bwqOLJEvSYWvZiDLoQlqUw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,161,1712646000"; d="scan'208";a="31077808" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa009.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 15 May 2024 00:47:09 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 15 May 2024 00:47:08 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 15 May 2024 00:47:08 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 15 May 2024 00:47:08 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 15 May 2024 00:47:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XZJNeGAm/wivltjvRYrd+5zdAqgzisipwmoPURYKZdIhg/XtnSjanRAEfVgebRXCFDvJpYRU3fbZd2IMp5ohGI//zvcEvpX/xa9YauU3KWWFJ+q/+Cz+D3j9zS6FtlcdXwLMV7bBM9HDiCCxjroVeW13MrcaoqGbEZxP5hEvfTOSXFn7lAzUZ//jLT87W1NxjK7hLexwm86SgVpOPPnFTGToRQKQBdiptc9zgQtxt9On5NIqU15kbul8d0cjD3eNw4R76+3HlN6CDfxxmV7OJA7XH0z8Q7RY6++kZ3nukfxW2S40KCzuFS5aKgYuR6W/gbqyoDafspNEZY4/SD88bQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=0dKxb1JkM1NP1Xb0mG7OI+G4x5hrOSEsouuGqZ5r24k=; b=WoIyx0a86FGQ2pygzKX1nfQqNMPOg2UWYsGJnvPIzwNBk3kbyuEHg1bo1C56M2WuEvU/jk/k0Wsi79IeF3Flj61pHNVCSNMqGT/SJwhAEnDgWcfT3OEA2WhQs7Y067t5M1S1hWOVRJxGu9zCfRkzmD0GU3j+B8oqJk3e89GBzSLBi17wfN8vRV6TfrIs4S6Mk+sbya3tTDmpUZo1fBF5gc3uPh2F7O7Pd20ZjeUOzVCUTsxCn/vIjhpEDUslaFJStevW5LDE9MJGYAwdjL7zvgJC2KfpCTyGNZAkJSLqed3cHtj/42NfNH+P3zpGIoFbfVvebcriYtEnktWsvEdYrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5487.namprd11.prod.outlook.com (2603:10b6:5:39f::22) by CH3PR11MB7392.namprd11.prod.outlook.com (2603:10b6:610:145::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Wed, 15 May 2024 07:46:57 +0000 Received: from DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::6150:d792:f331:4e3f]) by DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::6150:d792:f331:4e3f%5]) with mapi id 15.20.7587.026; Wed, 15 May 2024 07:46:57 +0000 From: "Kong, Lingling" To: "gcc-patches@gcc.gnu.org" CC: "Liu, Hongtao" , "Kong, Lingling" , Uros Bizjak Subject: [PATCH 7/8] [APX NF] Support APX NF for mul/div Thread-Topic: [PATCH 7/8] [APX NF] Support APX NF for mul/div Thread-Index: AQHappYqKjSkdMg7LUKWzi/LOZr+MLGX6vGg Date: Wed, 15 May 2024 07:46:57 +0000 Message-ID: References: <20240515070226.3760873-1-lingling.kong@intel.com> <20240515070226.3760873-7-lingling.kong@intel.com> In-Reply-To: <20240515070226.3760873-7-lingling.kong@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5487:EE_|CH3PR11MB7392:EE_ x-ms-office365-filtering-correlation-id: 91da879d-387d-40c6-d0cb-08dc74b33253 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|366007|376005|1800799015|38070700009; x-microsoft-antispam-message-info: =?us-ascii?Q?Mqh6nkXpR/gRJXpAUk4DIKbnXDpXGj+Qcq/cY+95XILDN7iXP6UO/Z9zVua5?= =?us-ascii?Q?4JHvHEsipWqHdjImJrC+P1yfME0A4FBcWa1/ThKNlygCY/x1ASaFAvVFkswd?= =?us-ascii?Q?OkBW1/aOtztpGS9oILagoB0Rdb3erk2/yohgxhnGv9FCBYitaXxV+jh0eNaZ?= =?us-ascii?Q?27UYXLPqf9BrECp/4ZU+RNuUIkLG3pOv43/vNA5mnUJGkCZGeCAIHM6bBxDo?= =?us-ascii?Q?WTE1LCRctsOgSPkyaDRkF+CD8O7iHNalrkqFVwtEigS/QhtzXLIRZCUk1byk?= =?us-ascii?Q?l6CgT4jihriDLWAfug2n+7YbmlYy1pbKsbYgv2xVpjWR07K+894w3YhXfHng?= =?us-ascii?Q?Sz0HO1U5yDZQbOP9VjIb98v/Ohb5e/Hd9Zx2XPDf3LwAtFCvPM3aOf29TGF9?= =?us-ascii?Q?IIfi7hApJzDr1wjtMAGU9kRh+jKOx0BZDFhbyacnXHhUhBomTSSjzhkyjfRt?= =?us-ascii?Q?+HKkF1Tj8xEMcU2SOogML35qJJQkWhXDUiaRiiE6/OemO9w+A0kTDtixulnZ?= =?us-ascii?Q?9Ap52T7YcrDsMYDKN6hhZ0nuFJGpvd/WkaWxHpEqRyhZL10LY9+FFZzgektg?= =?us-ascii?Q?EgSwHv0mZrqtPB/auE9z/6akkA7xXX3cxzrXgS9sM9Sw8yABVzxzB+TeE1+Q?= =?us-ascii?Q?w8f4DozTGG5UWxqNtkefq39G6GMV9qewCJ6sykGG+6kDGILJR44V60O1Qplr?= =?us-ascii?Q?pkcbzBmE4xUGa/NrKEAIt9O+RbHTuya9GL6Tey/CWw//W4kmdyD0aquvylpy?= =?us-ascii?Q?H/w7dsMpqaWNewyPrWC7a1h3JBnjweH1Y4k8cHTROUXzznfKZarXATq2Iti4?= =?us-ascii?Q?aKPmJS0+av1hHukSxBk+8E8ZQo6jWwrVO9WhUcrd8CDDgVUAs/w86swbJeCu?= =?us-ascii?Q?RNCD8TP1560HKoYFWz5oWF9Btssn7LiXp2jNrbm+hADoH50hT556qhTTtG6t?= =?us-ascii?Q?gtYwX6SgYYq84E5y0UsaNoOpi5qGu94iALF9mMEozV9uAqp7tB2ZopCMLkuN?= =?us-ascii?Q?MZhpCrAVSQlZLX2nfywBoUIk/WTline1BaLYqYCLVm3rmzHSDUUbV+2MEp7d?= =?us-ascii?Q?cZXAdYmhqBjZ6JZleFcJBHiXaryW09p7ZGIl3fDx7U/71GgCFOR7O43/UZQg?= =?us-ascii?Q?r3IOCFoC64l7UQAb6Or8jUYsqyeTQqD2rotM1SlQemSVYpcX75+VespaFlcO?= =?us-ascii?Q?faLwKTiIpBvv3ry0msVjTM7nEFtaaxKk0SJQOd907Xq1TlOo2npVqJqOYkg1?= =?us-ascii?Q?vesgjqAZaGIk8PBVQ/OADbilza8TfW/vCtji3+Fcoz/nNUiJmCr9Lx5O6ISU?= =?us-ascii?Q?YkYTzcYnDIsZpdhOUTlqXzQQSe15XIsi2YbbaRDMugykvA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5487.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(1800799015)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?EJHzb53pzLWcNX2tOf9d6G4rLnmHsG/03HBxuauxDISw0T/lUjgxuJ3q+shY?= =?us-ascii?Q?lGtLdBGv5SBQPA5jChWJsCgtL78UhepVAuBOFwIDKfI+5yTQ7mt/mcNg79vn?= =?us-ascii?Q?WifB6vr/s+HCGzxV1lH3p6+ru/yXTEz/RaWhDnUo7xSLZBDpEyMx4dgKU0tA?= =?us-ascii?Q?ntEwii0tZ6mh9Y28mPBYTpjG+7bD3raEUyib7gu7ou62xc7dmryAbvKyhTzW?= =?us-ascii?Q?FUw3WiRRFneIfiDlxjmdTPfB8UHaOhjUf7wls3LkxfvVyUf5Ce9FXjWqNR7+?= =?us-ascii?Q?f+a7qn7FA7stC9pQyHyDX7LyHD3h5T0J7L/i0YWU8lLj4GzlaETMZ3OlBlNw?= =?us-ascii?Q?tP5JriXE2evPncTQEm9qXNJJZQwjxPm1wJpxxhbYatltPLcQAjK9dO+zgKDv?= =?us-ascii?Q?TMRjibKRJ9Gj0dFFhxQM9EI0HdL1pul0ZMTFN33/CZ/pfNc9jiljF9D0OWos?= =?us-ascii?Q?UxRUD4BGJB0BtwGhb5YesZWrRvSTQmAnemOvgpM8qSbDnreLSCLTIJgbCQm6?= =?us-ascii?Q?K/kMlAejo3pD++V2AhE2JhzRshGtZEEfyzOuwpEnjOYzjBlO6c3IMakqNme7?= =?us-ascii?Q?6cYHcUsNZlFbj4fK58SnalsJmNIsJJWLU0Ct92s+qOY4yYRWeQ6H7mb/CDtC?= =?us-ascii?Q?Sbttrjv1GEoigEoGbt26Rc7edaIZbRd5/4eVJb0YwiNlmmL7rvuefLHIM9M8?= =?us-ascii?Q?Xw3MKQ3IE7Dj4yBUBLB7W2y4zfMUsgJm5c5hu2/8Wk7nJIYX8WVNu7KBxyvm?= =?us-ascii?Q?/ko6iNJqyodV62jT+dHTARny5a1ZHTVcvFaWHXxUwTKUfLwEo5gK1w8xRTwE?= =?us-ascii?Q?qanB2JhRItEa765cve36Ly6uWfNj/yPlAmdegTo0qHHtWEJfOdzpBRDGrswx?= =?us-ascii?Q?WmzFHdEE1lXia0WxOei49NDPHYuTYpWvKg/B1y+59REM7ouwmNxrSp6AMXNG?= =?us-ascii?Q?p5OZ/kaO9PaeHHtluGkUKRDOC3jwLtgab604txqRlouvz1L39YxuPHnZhMdI?= =?us-ascii?Q?L4nuhp7DBVDJSezvvR5w7nzQWDkAknhpbrf8ncGcFl5KNir2R2JaH8ERlyOO?= =?us-ascii?Q?SINodqN4Qz+djGtegmnPtR1wWhbVT9jDtJX2X95e6Qu6kfbij+48VP4RnuE5?= =?us-ascii?Q?+NTDH/NWklr2ot3mkI+FRCISKRnmejfVA3I5rfGouX5OtkV14DH2wEo1Sod5?= =?us-ascii?Q?wTdq7yqn/JIfZW4UY+EfjnDCMFgj6j30pKnrokjj4bv3f4ftdLCQEC6HNO5Z?= =?us-ascii?Q?b3gfSiKLEy5PWE7gR9+Mz2q2ZCesJ4cha610W4FmJwGSkytlTbMMo8i+S3Hi?= =?us-ascii?Q?6PHWrPk9KIULzgqLUt73AM3GEpjQYLWuNA6/B3TQiXmow4Di/YPMhpBr4qG9?= =?us-ascii?Q?G9mQtF2w9HRQhMgVeaZCtvCjdrwxg/tuRWMaG+OhvLW1WTby0VsBCkr7IjR6?= =?us-ascii?Q?4nQIkA7GyMp2lcp1jTHjfGvrD29vO2rA2DAmUdWgZFRtXjmKSTpNnAbJeBcX?= =?us-ascii?Q?f54xUrBy7I0RIaEFBdCqW31VEUjqCu29blqCnnhMkUKgLcIbXb2eYb6Cwsyo?= =?us-ascii?Q?a8Ym9oztTLbeOayti0Waexp+eTaxC0r8XaXM+Iat?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5487.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91da879d-387d-40c6-d0cb-08dc74b33253 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:46:57.1796 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: XaZmGECjsFkftgrC7dGGfq5iEGj2WJMJupWLeZR+U/BG7Itj2W2EBXc2cy00UEMQqbCjMbjGCGiiLqGCB/1+6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7392 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: gcc/ChangeLog: * config/i386/i386.md (*mul3_1_nf): New define_insn. (*mulqi3_1_nf): Ditto. (*divmod4_noext_nf): Ditto. (divmodhiqi3_nf): Ditto. --- gcc/config/i386/i386.md | 86 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index f9a62f= ba0c4..55f65a31b16 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -9907,6 +9907,42 @@ ;; ;; On BDVER1, all HI MULs use DoublePath =20 +(define_insn "*mul3_1_nf" + [(set (match_operand:SWIM248 0 "register_operand" "=3Dr,r,r") + (mult:SWIM248 + (match_operand:SWIM248 1 "nonimmediate_operand" "%rm,rm,0") + (match_operand:SWIM248 2 "" "K,,r")))] + "TARGET_APX_NF && + !(MEM_P (operands[1]) && MEM_P (operands[2]))" + "@ + %{nf%} imul{}\t{%2, %1, %0|%0, %1, %2} + %{nf%} imul{}\t{%2, %1, %0|%0, %1, %2} + %{nf%} imul{}\t{%2, %0|%0, %2}" + [(set_attr "type" "imul") + (set_attr "prefix_0f" "0,0,1") + (set (attr "athlon_decode") + (cond [(eq_attr "cpu" "athlon") + (const_string "vector") + (eq_attr "alternative" "1") + (const_string "vector") + (and (eq_attr "alternative" "2") + (ior (match_test "mode =3D=3D HImode") + (match_operand 1 "memory_operand"))) + (const_string "vector")] + (const_string "direct"))) + (set (attr "amdfam10_decode") + (cond [(and (eq_attr "alternative" "0,1") + (ior (match_test "mode =3D=3D HImode") + (match_operand 1 "memory_operand"))) + (const_string "vector")] + (const_string "direct"))) + (set (attr "bdver1_decode") + (if_then_else + (match_test "mode =3D=3D HImode") + (const_string "double") + (const_string "direct"))) + (set_attr "mode" "")]) + (define_insn "*mul3_1" [(set (match_operand:SWIM248 0 "register_operand" "=3Dr,r,r") (mult:SWIM248 @@ -9978,6 +10014,24 @@ ;; MUL reg8 Direct ;; MUL mem8 Direct =20 +(define_insn "*mulqi3_1_nf" + [(set (match_operand:QI 0 "register_operand" "=3Da") + (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%0") + (match_operand:QI 2 "nonimmediate_operand" "qm")))] + "TARGET_APX_NF && + TARGET_QIMODE_MATH + && !(MEM_P (operands[1]) && MEM_P (operands[2]))" + "%{nf%} mul{b}\t%2" + [(set_attr "type" "imul") + (set_attr "length_immediate" "0") + (set (attr "athlon_decode") + (if_then_else (eq_attr "cpu" "athlon") + (const_string "vector") + (const_string "direct"))) + (set_attr "amdfam10_decode" "direct") + (set_attr "bdver1_decode" "direct") + (set_attr "mode" "QI")]) + (define_insn "*mulqi3_1" [(set (match_operand:QI 0 "register_operand" "=3Da") (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%0") @@ -11128,6 +11= 182,19 @@ [(set_attr "type" "multi") (set_attr "mode" "SI")]) =20 +(define_insn "*divmod4_noext_nf" + [(set (match_operand:SWIM248 0 "register_operand" "=3Da") + (any_div:SWIM248 + (match_operand:SWIM248 2 "register_operand" "0") + (match_operand:SWIM248 3 "nonimmediate_operand" "rm"))) + (set (match_operand:SWIM248 1 "register_operand" "=3Dd") + (:SWIM248 (match_dup 2) (match_dup 3))) + (use (match_operand:SWIM248 4 "register_operand" "1"))] + "TARGET_APX_NF" + "%{nf%} div{}\t%3" + [(set_attr "type" "idiv") + (set_attr "mode" "")]) + (define_insn "*divmod4_noext" [(set (match_operand:SWIM248 0 "register_operand" "=3Da") (any_div:SWIM248 @@ -11275,6 +11342,25 @@ ;; Change div/mod to HImode and extend the second argument to HImode ;; s= o that mode of div/mod matches with mode of arguments. Otherwise ;; combi= ne may fail. +(define_insn "divmodhiqi3_nf" + [(set (match_operand:HI 0 "register_operand" "=3Da") + (ior:HI + (ashift:HI + (zero_extend:HI + (truncate:QI + (mod:HI (match_operand:HI 1 "register_operand" "0") + (any_extend:HI + (match_operand:QI 2 "nonimmediate_operand" "qm"))))) + (const_int 8)) + (zero_extend:HI + (truncate:QI + (div:HI (match_dup 1) (any_extend:HI (match_dup 2)))))))] + "TARGET_APX_NF + && TARGET_QIMODE_MATH" + "%{nf%} div{b}\t%2" + [(set_attr "type" "idiv") + (set_attr "mode" "QI")]) + (define_insn "divmodhiqi3" [(set (match_operand:HI 0 "register_operand" "=3Da") (ior:HI -- 2.31.1