From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by sourceware.org (Postfix) with ESMTPS id 6A3CC396E053 for ; Thu, 2 Jun 2022 15:00:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6A3CC396E053 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02lp2054.outbound.protection.outlook.com [104.47.6.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15-dwhzp0ffPZuTQoKG1IHlNQ-1; Thu, 02 Jun 2022 17:00:29 +0200 X-MC-Unique: dwhzp0ffPZuTQoKG1IHlNQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WGgmiPcF0wVh1DF60dl9oNdcNGuAmKPxRwps/zQILWgBVuWMuI8opS4Gun6oVQKKVzUKjWrLecy0DGolhPZCTFP8GfNthydeuc800x8fH31IKyccO5bXXH6soEfAiDscrLa+nhVJI51XaTooa4u+diA1vD/njtrOtpX64UD/kQZEWFiN+0RQtvMxHcidMS4oNmC7NCSI2+VpqsVY/AevnSnNzD3n32wu8oDZD4Q+K5Yc6uv1e7jQmKqbsUnlkdMsgZ2qSQuWmrHq6tp18w3GAcwhTnqKcyk+PWUsFsyQ1a7LxN//HhcLK9fyodSHAZ885FXQ/meIVD2lSYw99/uTZQ== 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=N2MFo1FILmY1N5oNz/UQs7YrWmGcnQozaaztsBNwne4=; b=nlYeV/Rlz51OVjUVJ+pDjaRZs4GqMoQZO85dIfzaUc/J41VKaAIwqYiWFyF6GueTbCTrsWc1Wv61YS9zM/7xf97e4w2l7Japbica3BkB9uv4DgxhK9lGDESDVKdl2ePbvIHQcP6+wtYmBAPElfX4bY2beHtYKMA51Us4uoyyXs1SSETSkS/v5oew7QwjmYFf+7XyIW9xIpt+22G2AgrmWMmXoq5PwPTk6Ne94Vtt2XOE+jH4APDI3CRKpSxA52L6Mg+kSAA4beZnSEuAZURO87Agi62yHQCPWsXJFxfsQn2KHq6/DAM5ICekpDnxCkVAsdLez2Y8Fd5NqQ9gZf6Edw== 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 VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8062.eurprd04.prod.outlook.com (2603:10a6:102:b8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Thu, 2 Jun 2022 15:00:28 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::dfa:a64a:432f:e26b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::dfa:a64a:432f:e26b%7]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 15:00:27 +0000 Message-ID: Date: Thu, 2 Jun 2022 17:00:26 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 From: Jan Beulich Subject: [PATCH v2] x86: {,v}psadbw have commutative source operands To: "gcc-patches@gcc.gnu.org" Cc: "hubicka@ucw.cz" , "ubizjak@gmail.com" , Kirill Yukhin , Hongtao Liu Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM7PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:20b:100::14) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6e28cef5-84ea-4d0a-9b40-08da44a8a14a X-MS-TrafficTypeDiagnostic: PA4PR04MB8062:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9d8gxkaoEX/xZjNIG2RTPMzhBEav2eas9ZUiFeHh8dAINj3gb8kVnPcbmXKrOfP+UnoPTpHfC+T6thAN4F4RysKxgxYK7dyTeC42d/GzmmOxufpCGSI8jF2Mc8QqmucaOBZXbXNQDsyron2/UZM0qSEXIHyFl6xlDm1O/Q48DdyMuoavVqDgN1kasQneKNUyTj1cethDRLA4QtR3V0hc2ji7ZTy2/oimowKAFafn5aeMWUWYlxtLtAcsPo0zU4YrCGjUncGDWzYLLUZbcZXoM3WKpB8tcJ8gAKThrPIOsqkqf/buIuQby+pm9/oUO5/i/60fCjxFklEmrnJvFcRcGplrDmNKmA9eajTZV6umSPir+p0CMazM0mqV0QVcGzppACR7UjpeCCb4Cmj6wrcnEW9gBFp9LD4fzE5XY2dzSeK5KKavnSkUbJ4LR3vhtrQu5Wv1q2OcfR9TMuRzVclNSvYe0xPI8De33x/1F1IgvG2cPsAFbVKPJux0GaeTyFRMqMo/9QsqDqwOY6+z+G339A7HIXEbC/Z7ZjvMQB4mZOLBJCCDbLe650etpGQTGfFSBUHeOiPzuiykc8qFr94KEDNf/3p6ReiLD6NjV7Xlg8tWY3Ox3cg/dE+c3cuc6bTFneUF/sq6o68sgTQQro0GV0oxog0Q0HBqiZYu6yG8oUfRH5R+DyWA+etyEWIkmpvsv+U9ZYq5d5HyouP7kbJ1qqRtxsVJEkpZPRSykTQDQNU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(508600001)(5660300002)(36756003)(186003)(8936002)(38100700002)(31686004)(86362001)(4326008)(8676002)(66476007)(66946007)(6506007)(66556008)(2906002)(6916009)(54906003)(31696002)(6512007)(83380400001)(6486002)(26005)(316002)(2616005)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MGhja1dKNll5TXJNZTA3OGd4RjNlUjU0S1hrOCswVSs2QW5ISk9kaytGTC93?= =?utf-8?B?OTlza290T0t6dzNuRFhxK1I3VTZwc0hodVR6NVorcXUwbm5YMzlsZDR6NUw5?= =?utf-8?B?U1BITmNnekhidHo5cWdaT29hcW9hNC80YzhsZ1RsdXRvRGw4ZzF0M2tUWDVk?= =?utf-8?B?ZHJsUE1jd0x5Q1h0QTMxQXVQYUo0MTZKVSsvOUJkOTJab1AxUlJTZUV0dXlM?= =?utf-8?B?K1R3b1RjRGZjYlp4QVJIeWsvSldkbmtVNkVud1BreVRzdWQ5L0E0N3EvQkQ4?= =?utf-8?B?SG95S3NCNTFlbm53akVnUGVDb3I4UERDOWxCajZpSVFmeE5IQ1VaZEo3TW5n?= =?utf-8?B?WjRCc2VIYlEyazV1VDhwNTg1bDVIbjFTUXd0d1VlM3M5K2U1UWs1UVc4bGly?= =?utf-8?B?WUZ4UVhxU2ltYzk4dExOQ1RDRmtrRk45Y1BMbXR0L0hhajVDK0h4QmIyRmsv?= =?utf-8?B?N0dRY2ZLd1oyaG9RajM3T3Q0SE50OUlzdG05eEwxdWxqdkhjMzdMSU5TSndu?= =?utf-8?B?LzhKTUV6VHg4QWRPUGt6M280ejFZdkVyUEIvWnBYNWhxV1R4VmQweUpCQStQ?= =?utf-8?B?V1liKzVrU09Hb0Zud20xZkk0NG5zNXhKOWUwNnIvM0xoS0FJdWtwM0RiSHVq?= =?utf-8?B?dElXUVk3YkdrWm9oSjgvS25aWW5oOElmTjYrdm1CbSs1QXJiWWUzeGErblFC?= =?utf-8?B?YWxKQmZsSGpucDlhY0NRb2llYTRFWU1MVmhYM3hLdjBOczNCWDloY25leVd1?= =?utf-8?B?SDNBRkVjN3MvSWgwU3JoRzlmVHNkQXN1QTdzNDVadjJpM25EZEgzTXptTldw?= =?utf-8?B?Ykk5L2VhM1RKYUdlTmZ5SDJjMXNNQmY5ZUgwRktvVzhKcWtudUszSU8weTBD?= =?utf-8?B?ZTJmYjJ3cncrbXo4cG11UnhMY085S1ZoTnlkOS9lTEt5emVsa3hjYVA0Rkpo?= =?utf-8?B?Qk9JWWl3Qk1mNUxRenMxQUEwcU03NGE4ZFBGVWVWcitkMCszVFhCZ3pkWkk5?= =?utf-8?B?QnNTSnZVQllQSlNqZm5VU3dCUXRZRkxqTEo4NXpwTXI1dWdhVm9tUkVLNXl0?= =?utf-8?B?cjIwK0k3cTkrQ0tWMlpodE5QU3MveEFvYlJQckpXWXg1YkRmWXFmMkxjNGZE?= =?utf-8?B?MDhCNklnTE1DN3I4WkFWVGxpZTdUOVN3WmRKWjF6L0Nuenh3R3BVN1NJdkZQ?= =?utf-8?B?eXFzQWNLT1lBRkQzSUorSU9JbktpY25mUDBoNlN4UjBUVzVkYUY2UFB4U1pV?= =?utf-8?B?aUhma0tsYlNhRk1xVVRsWEx3bmc5aHF6bGNvS3JBNUNSRk9DQm9qVWZ6K2NR?= =?utf-8?B?eGloZGlBUzE0SWJmejFCaFIybUFFNnp3SzF3dmZxeGcrK3FoTi9pYjYyZHg4?= =?utf-8?B?R3dNS3ZpazNVTHYwTnp5WUorcGpoQ0JkbDFZUEIwRmZXZy9laFk5ZjZaVEF1?= =?utf-8?B?UlluV1VRN09TTklEa3VpTW1PVXUvdGNUQWJOaGdUQ1haa3RQNVdrOWhWZVpQ?= =?utf-8?B?c3I5NEI2ejlLWFgzaitKMTFNZ1d0OUNSR0grbzVoTHovU3dRNEthRWxVMjlG?= =?utf-8?B?Y1VnM2NSUTdiUDJlcFFxVm8wOG5UeXJGYjc5cDdQWE1TeWYyaXVKamIxelky?= =?utf-8?B?bE1uMkVpSWVKUlNOOUM1ejh1L0srQXRNODNuZjRkbXViUkZhNDFYTzZ2bG9H?= =?utf-8?B?TUs3SklESzJJYjc3SW5LeU1yS3VJaE9HR2w4WWZlTWVpNW5NakMycElSNWhj?= =?utf-8?B?WXQ2Q3g1ejBFWmEvc1RTUEdMNmFIUUdLZTdtamhoVUVDbjF4Y1BHbFhoVEdo?= =?utf-8?B?QkxxeWxDa0JOYitHUlYvT0hZUkI3YTY0VDdCNDA2NWZqMllWSmNDV21IdkZm?= =?utf-8?B?endxODlleHVWcUUvQktVSWFQS2RmOHk0ZmFPNk5DdnlzdlYybENqSjFzakNn?= =?utf-8?B?MGVFSXRQY2oyTnE3VFdwTzNTQlljVEpaOG5lYkpndDVTdEttUldoWTllK1Vq?= =?utf-8?B?MktDMTV2cXVyRDdDQXJTTlZDL3hJbzN2NTZZditINmp2anZpZGJveEQ2bTBi?= =?utf-8?B?d0hFZEZxTlBSbzJ5MjNMK1k4WnBxTmg0QU1aRkQ4L0MyT2MxNVYwcHM3Wnpr?= =?utf-8?B?U3dvbzFPWFZDM0dxVzdhdGF2K0gxWDVTSGx4R3VMQktHczRiNXlHNnlYVkxy?= =?utf-8?B?eXNqYm5ZeFBONEphdkhpa2s3c3Jua000eDVtV0ZSbFp4RzUxMWp2RUZiYW15?= =?utf-8?B?Z0YwaGVKMHU5L2VOc0dTQUd1aGpHVy9waDZqT2ZPcGxpb1dBbW9KSjcwby9F?= =?utf-8?B?TEFJTk9RSjQwZldGTEp5Ykt3dXJyZXpzTS9TajFWcWhqTnA3WkE2UT09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e28cef5-84ea-4d0a-9b40-08da44a8a14a X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 15:00:27.8968 (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: hxNPXs9G3zudkESw4H4JFRqmXlTQXeVGmtNtNbs9sMCPqAMuTePo6pKgiH2EwFMk0lOnBGRWgfGe1jgFgByaAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8062 X-Spam-Status: No, score=-3031.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, 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-List-Received-Date: Thu, 02 Jun 2022 15:00:34 -0000 Like noticed for gas as well (binutils-gdb commit c8cad9d389b7), the "absolute difference" aspect of the insns makes their source operands commutative. gcc/ * config/i386/mmx.md (mmx_psadbw): Convert to expander. (*mmx_psadbw): New. Mark as commutative. * config/i386/sse.md (_psadbw): Convert to expander. (*_psadbw): New. Mark as commutative. --- v2: Introduce expanders. --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -4405,13 +4405,21 @@ (set_attr "type" "sseiadd") (set_attr "mode" "TI")]) -(define_insn "mmx_psadbw" +(define_expand "mmx_psadbw" + [(set (match_operand:V1DI 0 "register_operand") + (unspec:V1DI [(match_operand:V8QI 1 "register_mmxmem_operand") + (match_operand:V8QI 2 "register_mmxmem_operand")] + UNSPEC_PSADBW))] + "(TARGET_MMX || TARGET_MMX_WITH_SSE) && (TARGET_SSE || TARGET_3DNOW_A)" + "ix86_fixup_binary_operands_no_copy (PLUS, V8QImode, operands);") + +(define_insn "*mmx_psadbw" [(set (match_operand:V1DI 0 "register_operand" "=y,x,Yw") - (unspec:V1DI [(match_operand:V8QI 1 "register_operand" "0,0,Yw") + (unspec:V1DI [(match_operand:V8QI 1 "register_mmxmem_operand" "%0,0,Yw") (match_operand:V8QI 2 "register_mmxmem_operand" "ym,x,Yw")] UNSPEC_PSADBW))] - "(TARGET_MMX || TARGET_MMX_WITH_SSE) - && (TARGET_SSE || TARGET_3DNOW_A)" + "(TARGET_MMX || TARGET_MMX_WITH_SSE) && (TARGET_SSE || TARGET_3DNOW_A) + && ix86_binary_operator_ok (PLUS, V8QImode, operands)" "@ psadbw\t{%2, %0|%0, %2} psadbw\t{%2, %0|%0, %2} --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -19981,13 +19981,22 @@ ;; The correct representation for this is absolutely enormous, and ;; surely not generally useful. -(define_insn "_psadbw" +(define_expand "_psadbw" + [(set (match_operand:VI8_AVX2_AVX512BW 0 "register_operand") + (unspec:VI8_AVX2_AVX512BW + [(match_operand: 1 "vector_operand") + (match_operand: 2 "vector_operand")] + UNSPEC_PSADBW))] + "TARGET_SSE2" + "ix86_fixup_binary_operands_no_copy (PLUS, mode, operands);") + +(define_insn "*_psadbw" [(set (match_operand:VI8_AVX2_AVX512BW 0 "register_operand" "=x,YW") (unspec:VI8_AVX2_AVX512BW - [(match_operand: 1 "register_operand" "0,YW") + [(match_operand: 1 "vector_operand" "%0,YW") (match_operand: 2 "vector_operand" "xBm,YWm")] UNSPEC_PSADBW))] - "TARGET_SSE2" + "TARGET_SSE2 && ix86_binary_operator_ok (PLUS, mode, operands)" "@ psadbw\t{%2, %0|%0, %2} vpsadbw\t{%2, %1, %0|%0, %1, %2}"