From patchwork Thu Aug 3 08:12:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 1816331 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=la6M4XJ2; dkim-atps=neutral Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RGhSS5Kj6z1yZl for ; Thu, 3 Aug 2023 18:13:44 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A2E02385B515 for ; Thu, 3 Aug 2023 08:13:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A2E02385B515 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1691050422; bh=qMP/PFe9PHZa+F7ADRiB5AmrMcOs/9DmO8uWsa82LBM=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=la6M4XJ2ZHwPv7l9wVQ8VDlNYWM6XUym3tG/QGs5cD6MuXhGo9STrrdVqg9v8gVqG f4qEwsG/anr3l13Q+pkDewnE73ndDtjY4O4jNVhNJwNhAmFUiquPjTUenhjBnG88zV JCykfl9uQ6DVZBzthAe9+ZsEBqCBhKyDW1tNhbXI= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2059.outbound.protection.outlook.com [40.107.15.59]) by sourceware.org (Postfix) with ESMTPS id 06C823857716 for ; Thu, 3 Aug 2023 08:12:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06C823857716 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dtLfHMpUMyoVUjAyeE+b4ceL/sQxGtGs0q8d94G2p9y9lD8Ks/6NFdDfYiHYh6SdpAio/1mz97zvhQqfeLzCopRUGj6DB8IMeQzTYooQzr2xMg4GAm8+60UD5VTrRW3936XxfXFDV7X3TrX7mEM6MaLu50wr40BR+05B0aq4r+A7URz9rUzejWMz/4uwK0148NxnR/bHQOLkVj7P8J7kgqFWJbsizQIKyKgiFx18+pe8xmFhOitLW/YQvZcJ4HRTAC5RfTmnAaFEnTiqEYTpztmahl/EafSGLQoGaPqrFHtwU1pL3PNK6IQ0pBHY3qRnQHj0zO04WPKQ9bFBg7ReEQ== 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=qMP/PFe9PHZa+F7ADRiB5AmrMcOs/9DmO8uWsa82LBM=; b=RQMGOmFSN2KF24hXOW+djvYSrUMvb/Arrv9c8aCdJYBPtOInjaqbZSxxDM8acqO6EPmzp1LS+X+G0HtC2oocwz822fXjKYuUMx51gfAmVmK5Wp4D+sC2CE+iM58IVpERwv5D7RoQb3h2hY9RbfBtldQORXnSmYH5t3PmLG48MlQw3UFGinIgAt5bNgJDMMnKZIn8xw3TgpGGShnTMrcb4IlhswbNWWMlMz4WiXavkyChRD2EfkrPiISJjBdv4u7NmtfbBQIukcTQnrcEP82HZf9eM/y6PL6yOf7AOEITddAfGgUJccsarbJ/n0snEdNTTNfQVMd42puExfZxvt5r0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by VE1PR04MB7359.eurprd04.prod.outlook.com (2603:10a6:800:1a0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.47; Thu, 3 Aug 2023 08:12:51 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6631.046; Thu, 3 Aug 2023 08:12:51 +0000 Message-ID: Date: Thu, 3 Aug 2023 10:12:49 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.1 Subject: [PATCH 07/10] x86: add (adjust) XOP insn attributes Content-Language: en-US To: "gcc-patches@gcc.gnu.org" Cc: Uros Bizjak , Hongtao Liu , Jan Hubicka , Kirill Yukhin References: <9bef986f-7441-c4a9-5bfd-7bbed0a3d950@suse.com> In-Reply-To: <9bef986f-7441-c4a9-5bfd-7bbed0a3d950@suse.com> X-ClientProxiedBy: FR0P281CA0255.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:af::18) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|VE1PR04MB7359:EE_ X-MS-Office365-Filtering-Correlation-Id: 249e5368-1c99-4ff0-e853-08db93f96e50 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dPykKzZDvAxJuH2DNy8JX4pm47nhkZ8x7xc3QBavKRIGjzy7C6dA+rZIt9hXxywNjdG5vztxugEbAybKVjDTzlTce1L/HZ2BgyR2mZuASZOFGrt73H9hbwaHxO4i+A94TSBJOHRZUrniCzmtIRzouw8CZmqBF4petR+DMw/vcva9V+6Rqtls+yRtTx+vbv3eCy3AJSFaPZRl7foK8XJja9BGgsQSrcw4ud7LA+P70rjRopV0itmw6aTRUVWPYhCXsGVAA7DOCxR2sA1LTIYZmRnlMEqwQQTkJVbXm/r0i104bnAUWF+27qK5fbXAemhgQBnHO2NZ5HAUzfilGlrOBfDAD8FeBn2FmJTauiSwiN8Oijh0TlGm/clbU357fmoEMKXJCGwlMKc+m3tETIp+XCY2vg6zthU6MnlMw4vAtdjldcjv8NjG0oPTCWUahOgstGWFjlWQRXFK6u+5dmVZuxrZTzV4Zfoql3yCZHLkMaJd6JxxWwnMn4VqlkzO5bTxvdje4gYUjmCltvAjjLpVXVsYEcXk1p7/Lm3Ya2IoX4bi3rYPaW87J8CBXKCYqwI0ZPFQODkdi8wr6hZ4AxqAldfcc5KGAbG/wcAQkD4JNRKAknBuWZymLA6W04g8+FptrAWipCJWM/+KzC12Lmh7zQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(376002)(346002)(136003)(366004)(39860400002)(451199021)(41300700001)(66556008)(316002)(2906002)(4326008)(6916009)(66946007)(66476007)(8936002)(8676002)(5660300002)(38100700002)(26005)(36756003)(186003)(6506007)(86362001)(2616005)(31696002)(6512007)(478600001)(54906003)(6486002)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?AgbwBuYUuMJ8oudJ6jpY0pFMoRys?= =?utf-8?q?Jwpk4PIcnSkqClrNe8NRVS6nKG+uMRj2sjaZu4tIneM9v/L/3g4vDAyWGwT4VAw/0?= =?utf-8?q?oIpQT02V4/UipouZpYRri2+mXasl9sbBpeHXXKfn64RWeQECsd6+jFlLHZIHnTiRu?= =?utf-8?q?RMmg3CnuRcq/wKksunLHO37W+ttBYIxp90TMGqzkg0C2hIjmVJj24PcAO7qVe+Ck0?= =?utf-8?q?ZRERNqJizIL2Yad05YH//UjjomOs5zBriLD/g43AhWgj6O8FdxcByiA4dG8ODfodh?= =?utf-8?q?H/ptw4/iasxxEa42bRRhB1JlnT2VCUgI3qyupTlp96wL9EBLoD3+oUU8sLALfXsb/?= =?utf-8?q?IxxLVYUAsCIcFjMPvk7atXj9dcpOEAM6St0T/JP5Isyxb6AxgGAyBJenfTi8tnnz5?= =?utf-8?q?pskeBAT+sDIVVL1z0xaSjHYGHe/tb5YV/juB9qURl5gKUSbVOw3+JVQEB9tm+PVNY?= =?utf-8?q?MrOIs7gpb2tXLkzwmaCJQDJ9gLtYYL3qX1fgoMnJWV5Q9WHq60POS8JbyMwNDkumW?= =?utf-8?q?vVT94DNcOK5qUo5G46lfgqzhkH3XdOIn9rdV66TKWcr6Gz98W7DeWIgOCQjYFFse2?= =?utf-8?q?/vMr+G4+zgkCyeCyWwQEFRl9x5ZTjR/sRCMMmCW0epL26e9urW/41O7OvfC/SZQqo?= =?utf-8?q?kBcYnvi3hGrtPnYLkUkbOqcGbu5x3+Y5nvlZ7KAQZmHJw/YU5TUSnOaXqZoBO75oD?= =?utf-8?q?/EN4y2sFSrlLkShNePSanUGIlk3Swod6B+5pAOv8+vrMiYJ/zddStO5g6tSQHMuOm?= =?utf-8?q?REOi1bwwUGq7w51d+oo0J0VMh0fuLdHnKnAnl4RTDhh0S81XR3KB8ci2sQBm2EaXD?= =?utf-8?q?nYmIKEdfqUpum8weD7oLeI72JpGjxN8T6GvYcyy74D9ohCTkmrGEFkkMfN1N+qcQS?= =?utf-8?q?QodZXPomXc7zOJlkRS6eOGmQVaHvF0xCADuN0/zsSZO8soGrUmV7dGaA67+CA/uyY?= =?utf-8?q?WN2LaiDd9WtvqRVn4Ve1Y4j3Z0+ClBHj7ZkZSLNZ4771snGRwYdXZ+AhTxYj9lVgZ?= =?utf-8?q?Z+UlJVwyrzereBqLpy9dXIsKT+S/PpssrfuCaHlyX+zxc/rjQNb44Rwp+JVkIgBIf?= =?utf-8?q?QNp1o32sbvjH5ijCRYyBIx9POprPu0Yj6wV9RI2cxVv5RvyVUDEdSqfBMues1E4VN?= =?utf-8?q?KqgwM+rnHd9QdXJv69IioC/m4uQwnRwzHnKz8mTAPsfCuv/+FnGSCrR6u8F78eRgr?= =?utf-8?q?GYqM/vVr1s3/slPoGb3HpPwf2t1WFZaU6Bg+k9ZfYEFmi0G64gRxO554zBVqHI6Ou?= =?utf-8?q?1mWAJcA6HO/7rmgCVp0GjKeXllp2hkM9fEZDeZ9Q1w+pgolfFmDGEWmHHKU/gGUiE?= =?utf-8?q?JBz4qdsrcMCllnMlfy2gt1XfAGmJD67OqFTk/kqQxokvtWrqSyZgxcw8fU46KdSIP?= =?utf-8?q?aYxnJkU75jIvmF3IRiRSh3xbIChBhWZLqInUOjTge/x20eqXCoxWfJ7taYNDiCrGn?= =?utf-8?q?JhAbfwZATDZfT5PUi6UfmuXxHEe6EybqY2XDvtZLsr5GWJxdU6a5baFwfG8gNUaoL?= =?utf-8?q?Ixf1xwGlgVDK?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 249e5368-1c99-4ff0-e853-08db93f96e50 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2023 08:12:51.1573 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xLtngHxgxGZf4CTGtDZvQnAkA3ZPmgqHmX4Xg4yJTzHbmpEztOJSMsYGIlk8skC6hsTMaTYUvzn//DTjMfJOrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7359 X-Spam-Status: No, score=-3027.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Gcc-patches From: Jan Beulich Reply-To: Jan Beulich Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Many were lacking "prefix" and "prefix_extra", some had a bogus value of 2 for "prefix_extra" (presumably inherited from their SSE5 counterparts, which are long gone) and a meaningless "prefix_data16" one. Where missing, "mode" attributes are also added. (Note that "sse4arg" and "ssemuladd" ones don't need further adjustment in this regard.) gcc/ * config/i386/sse.md (xop_phaddbw): Add "prefix", "prefix_extra", and "mode" attributes. (xop_phaddbd): Likewise. (xop_phaddbq): Likewise. (xop_phaddwd): Likewise. (xop_phaddwq): Likewise. (xop_phadddq): Likewise. (xop_phsubbw): Likewise. (xop_phsubwd): Likewise. (xop_phsubdq): Likewise. (xop_rotl3): Add "prefix" and "prefix_extra" attributes. (xop_rotr3): Likewise. (xop_frcz2): Likewise. (*xop_vmfrcz2): Likewise. (xop_vrotl3): Add "prefix" attribute. Change "prefix_extra" to 1. (xop_sha3): Likewise. (xop_shl3): Likewise. --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -24897,7 +24897,10 @@ (const_int 13) (const_int 15)])))))] "TARGET_XOP" "vphaddbw\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phaddbd" [(set (match_operand:V4SI 0 "register_operand" "=x") @@ -24926,7 +24929,10 @@ (const_int 11) (const_int 15)]))))))] "TARGET_XOP" "vphaddbd\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phaddbq" [(set (match_operand:V2DI 0 "register_operand" "=x") @@ -24971,7 +24977,10 @@ (parallel [(const_int 7) (const_int 15)])))))))] "TARGET_XOP" "vphaddbq\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phaddwd" [(set (match_operand:V4SI 0 "register_operand" "=x") @@ -24988,7 +24997,10 @@ (const_int 5) (const_int 7)])))))] "TARGET_XOP" "vphaddwd\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phaddwq" [(set (match_operand:V2DI 0 "register_operand" "=x") @@ -25013,7 +25025,10 @@ (parallel [(const_int 3) (const_int 7)]))))))] "TARGET_XOP" "vphaddwq\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phadddq" [(set (match_operand:V2DI 0 "register_operand" "=x") @@ -25028,7 +25043,10 @@ (parallel [(const_int 1) (const_int 3)])))))] "TARGET_XOP" "vphadddq\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phsubbw" [(set (match_operand:V8HI 0 "register_operand" "=x") @@ -25049,7 +25067,10 @@ (const_int 13) (const_int 15)])))))] "TARGET_XOP" "vphsubbw\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phsubwd" [(set (match_operand:V4SI 0 "register_operand" "=x") @@ -25066,7 +25087,10 @@ (const_int 5) (const_int 7)])))))] "TARGET_XOP" "vphsubwd\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) (define_insn "xop_phsubdq" [(set (match_operand:V2DI 0 "register_operand" "=x") @@ -25081,7 +25105,10 @@ (parallel [(const_int 1) (const_int 3)])))))] "TARGET_XOP" "vphsubdq\t{%1, %0|%0, %1}" - [(set_attr "type" "sseiadd1")]) + [(set_attr "type" "sseiadd1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") + (set_attr "mode" "TI")]) ;; XOP permute instructions (define_insn "xop_pperm" @@ -25209,6 +25236,8 @@ "TARGET_XOP" "vprot\t{%2, %1, %0|%0, %1, %2}" [(set_attr "type" "sseishft") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "length_immediate" "1") (set_attr "mode" "TI")]) @@ -25224,6 +25253,8 @@ return \"vprot\t{%3, %1, %0|%0, %1, %3}\"; } [(set_attr "type" "sseishft") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "length_immediate" "1") (set_attr "mode" "TI")]) @@ -25264,8 +25295,8 @@ "TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "vprot\t{%2, %1, %0|%0, %1, %2}" [(set_attr "type" "sseishft") - (set_attr "prefix_data16" "0") - (set_attr "prefix_extra" "2") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "mode" "TI")]) ;; XOP packed shift instructions. @@ -25501,8 +25532,8 @@ "TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "vpsha\t{%2, %1, %0|%0, %1, %2}" [(set_attr "type" "sseishft") - (set_attr "prefix_data16" "0") - (set_attr "prefix_extra" "2") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "mode" "TI")]) (define_insn "xop_shl3" @@ -25520,8 +25551,8 @@ "TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "vpshl\t{%2, %1, %0|%0, %1, %2}" [(set_attr "type" "sseishft") - (set_attr "prefix_data16" "0") - (set_attr "prefix_extra" "2") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "mode" "TI")]) (define_expand "3" @@ -25733,6 +25764,8 @@ "TARGET_XOP" "vfrcz\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "mode" "")]) (define_expand "xop_vmfrcz2" @@ -25757,6 +25790,8 @@ "TARGET_XOP" "vfrcz\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt1") + (set_attr "prefix" "vex") + (set_attr "prefix_extra" "1") (set_attr "mode" "")]) (define_insn "xop_maskcmp3"