From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2045.outbound.protection.outlook.com [40.107.104.45]) by sourceware.org (Postfix) with ESMTPS id 585743858D35 for ; Sun, 25 Jun 2023 06:16:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 585743858D35 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dlXjWmtAR20LTVaDkpniJgRCrry/O8jIYiS6qiXS5y8NCTThxOaI47IYq7kn3NaJpwjdT1S403LU6xPFfiYAmUASheI8VvM+tyUc4AFXqjexCuTQlmMSonDA+AKeJmRNkee2mSTUNQ0wWY/tnZ2UolcGRVhkZx2MQYZXM8PeO1ufbaMxtRQBevbrKd0nexUrsQqQhxDquJyi5EzdCh5zCRXD3wCGEp19fAy7dbw2LECq0cqwrRDBzuca+PtdWrGV8TH2mm6iYt2xhfPitZdWb6qwwLjA9gL7S+qzfJPABaNIwBaG4bvihLvxU9B4KuuytFSOvG2uWCWWOS1dcWT3zA== 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=xryVQQX9AX9qNyRsTQxyJzKGhOjSYNAyV8/DTr16K8I=; b=i7Y8+umc5rwfxV6CtNXfmvD9AkBQxtLXRtBzfru8+6ePS2Q6mIFsmesnvaIjBC0OHvN93zkTBaZdlMrRu8lhDIQC1FDdc0y6LxqSnI+jdHx5ZjzBR9Ce3piHnekQfCCewE9JA9s+iPTQwDnojDNW22lf636WPGwq8sMSL8wt6SinM1ImeGUGnLhkNc+zWNmQ4ZWq13k9WAcB/IQv4oiCT+0wZee4/8tUckuO7dhNqiGCq8wyK/LiyFSEGoVQpm3KquyKiNn3X/4+9vg73zgsqYu4Eqe61gdew2zlLKEeQ4CwrXFBP2GWoDWgp/AiJKLEsBBYw7fybVo/2nHium3jng== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xryVQQX9AX9qNyRsTQxyJzKGhOjSYNAyV8/DTr16K8I=; b=2pb45u4hNeWcDqsAcSAzfQG7NJ56dPxHibmbw1BIwzQqvM9CwwyuWFHcx5CHxJZUJGLWiSFUohET6SZpjINpi3Unz18rMLK+MxA0Bqq1590P8dAM8CJEs+yZJDmy+0whLHJA5edhcZ8UMFQCHPfXch28kcPUYfbO7eQqzdKSk9iupu4NGb+0+D+uliuAWw6OJ+RUKJV/3jUuVrO7ysD+HV9QqsUXc6U9pdnhYbOgDFEdeSV0tQqc3ZjytljWUTpbb/D8Onm6qxUiARPasj/gfeMfFqKGJ7tn17wk9qPjnvIo+j/lf4zOTqnxtpY37/PXolkorcvRQKTHgMeRI/tOig== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PA4PR04MB9319.eurprd04.prod.outlook.com (2603:10a6:102:2a6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Sun, 25 Jun 2023 06:16:38 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6521.026; Sun, 25 Jun 2023 06:16:37 +0000 Message-ID: <514c011d-27a4-45d1-f353-f3016c59db65@suse.com> Date: Sun, 25 Jun 2023 08:16:35 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH 4/5] x86: further PR target/100711-like splitting Content-Language: en-US To: Hongtao Liu Cc: "gcc-patches@gcc.gnu.org" , Hongtao Liu , Kirill Yukhin References: <04f99abe-a563-d093-23b7-4abf0f91633d@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: BE1P281CA0084.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:78::11) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PA4PR04MB9319:EE_ X-MS-Office365-Filtering-Correlation-Id: faa1a47c-47b0-47dc-3371-08db7543bba5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4I9IK6PcL9J/6ZGXAQqsG64TDJ3Xz7aOzsek/Kvb44zQ511/7GPYZA91n44JNTPEqrBpdHaEJchaYGCTrFODGylYCRxTWEU2KQTLhbvak5yUsk0cujDE51RzLkg59W5UvIToaofqmA0wni9PLjBBFlKL+2c4oqp2hmPZY0hAnfBt6k70cKTm6tgRoUXCF4B1iyxPMKI1OSP/LLLL5nBk4DEYsRAdeMN8xfk7df/9ELLW5APxdyg4291qIilYlZ9gvidJeqqiI7LQdPxD1Al8wVnS1bGngMgILga34VA2woMxiEtHpr3ICuNZk3hyHQRmTB4wtd3zBW3AGfbgBsx+7PWBaXn0ITGmaJHOo0H886ioQ7Ylmt8zQugit4z7A+JI/7GZvjNkxBDyWwI/lHyPct9MEsdTXfya8UT9yp0SRJ2A+IDAOnlVy7IumxaaN4LqA+K48zEksvTTjq73CeiXZBhe60ueXjpGPngjRJIKfb/habJ7KOVbf6Xad3EnTi/k72C8cRk6PmLKCG8ErnGH9r6vs6bjm5C/SoOUtrZLhkSp1FCnP4snCYNCXuLXOpYCzV17vZabrmQ7qiRblh7wgRIrgM8oQCPqrNTS/xPXDkWNYVwcYApOpW26I3743qzlFZTjAp/RzOH0ZVEmlVGJ6A== 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)(346002)(376002)(39860400002)(396003)(136003)(366004)(451199021)(478600001)(2616005)(6486002)(54906003)(26005)(6512007)(53546011)(6506007)(186003)(2906002)(5660300002)(36756003)(38100700002)(4326008)(66946007)(316002)(31696002)(8936002)(8676002)(41300700001)(86362001)(6916009)(66556008)(66476007)(84970400001)(31686004)(66899021)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UXI5YzQ5d0labmIwT0NaaFdnRWNXOHBpUEpMS0s4Ky9MQjZJRjdwL0lVdzdT?= =?utf-8?B?NTFBTVlJTm9PRVVxT1FOMHBxTEhpTVZGQ2lZeXorQ0xIeHQvL0dHY3JuRUNM?= =?utf-8?B?YkpJQzZtUGFFdlBHT1ZOeEVSbGVjT2k0S3JpK3l1MTgrZ0QyYmtkU3JOMUFu?= =?utf-8?B?M1JjeWNuamcvalJrd3k2NHMyamFndjJxdkxYeWZEN0xaRTE2aU1EZlFvVnVp?= =?utf-8?B?WmRsRmp5akhFMU51UjIzK3JVaEJRcEtjTE9JaS8xb0lWQkdpQ25hOTJrYVVU?= =?utf-8?B?TE1GWjE2RDJYbUlkeCtDYmZqbVFNMkVPb1o4TWwyTTNqbVE4RG9XR3o2ZnB6?= =?utf-8?B?YjNYcnRIeG9NVDdORnhTd3IvQUZ3NDlTSGhER28vbG16YjMzMTBtNXJOWWkv?= =?utf-8?B?aVB2Rko1aGxIbkZpelNObkdjL3dxSVNyQkhYdWlaMHVBTHpLRVZBYW9vM212?= =?utf-8?B?bWVxc0dGRkNXY0lmOERCVUxiMTExdjBIVjJ3cDQ4M3JzaHZKLy90WFc1YmxM?= =?utf-8?B?WGZ4OE16WGRDZGNMUkVrS2V0cHQ0MXhqdFdQNmR6Zy95dUY0b25YSzMrcyt4?= =?utf-8?B?c01wa2lDMEc1dFMveUFMK0dxaGx1anVaTlJqdithNm1lT2ZFSERJazFpN01C?= =?utf-8?B?VFY4SmZWemhtQ1VNRzhIaXZoc0dvRUFLWXI4QTEwaHhDZ3RWL1NkRWZRVyt3?= =?utf-8?B?dVNRWWZTRURINmdwOGJDeFF0Z25ta2dKYXBoeVBIbm1zMDNRbG53WStQaiti?= =?utf-8?B?L040MnFnMS92OEQ5bDU3a0ZlSGQvdHUzOVVSNkVCWGJKVld5K1JSdERhTjZF?= =?utf-8?B?ZTlNdXVGRTBVMFEzc3pIQWNkeTlsVDZsMjVlU3BRY3c1dFRvZ0lQYkFJdFJy?= =?utf-8?B?bTgxRXRGREpnOGJuSlJOUU5RdGEybjJCaitNMHRzUnhKaTFzbXg5K3M2bGhX?= =?utf-8?B?dzFKa2RMWUVhQklXUHhYS0N3NnVaaFc5Um1relp2S0VUUmJQK3Z1WWJJTndW?= =?utf-8?B?bnA1VUJUWFM2dGlTa0FobnJhRk5XdUJTVXZVR3FPVGRxLzJ2dzk2eGM3L0dF?= =?utf-8?B?THhyQXVSR1NVQjA3OFg3TmtXMXI1Qm1CbWFyRnVwVG9zaVZXMUlFRWgwWG42?= =?utf-8?B?UER0OXFXVlBCTXhKK1NNWHNFdEhVRFFZZnV3R0djaXAzaCtGa3lEOVpjaXpG?= =?utf-8?B?b2g2eVB0QmVoQ2RncG5qTU5SZXFWem9UdDdXSlZqcENPZ2gyY1NXdGUyUlNh?= =?utf-8?B?dEJ4UTd6ZXJUMUdjdHVNL2NadmRQTlJjV3VwQUJOdVg5MkpBaEdnQ1VZaDJO?= =?utf-8?B?Z3JVZUlkOFR6dmcrUERGNitiRGtZYVFlc1pHeXBBUDJuODRWRWY5Nis4RVlK?= =?utf-8?B?YldXZnU0ak9MZVpzMGtmNEc5MGJLaE1XNXVPNGk3UVlLSjZXWW5rRm5zOGto?= =?utf-8?B?aVdlbWhqVFNDUERwYncyOEYvSTNOWVVXcitPUjhQRTNYUVFKc1Q3a01sWVdX?= =?utf-8?B?RnkybElYUzlWYlU3L0M5V2prVFkxMDB5OGs0TmdNdkQ0L2ROOHg0am5QYS9y?= =?utf-8?B?NzROWEo3TUV3NHc1anVocVJqRHh6dG1mREFKN3JHcjFPMWRyckc5K0oySmIz?= =?utf-8?B?QlFWdWV5Q1Z5SWdaZitlNU0ya0F1cUQyckpBUWkvR2xDbEtubDF2akx1b1c1?= =?utf-8?B?TnZzZ2F2bC9JM244YVhld0ZZT1NiZWRKV0FkRnJuV2JIK1E1dTlSOVQxSFl4?= =?utf-8?B?SDIwOGZwTmxqbEdsbkI0QVZYOXpubmlrc080aDBsTGVKUU4wZVZOTmVsQkZG?= =?utf-8?B?OVZFZjNHeEVJd2lMeTdTTzJLclp6eEFsMDNib3BhQXlrYmhReXFOTHVkSDdO?= =?utf-8?B?MExGR0R1OXU4RlVUeGlQVTVESUh0VjYwWG41Qm9UWkhtZjVYdWlVZTk3dEI5?= =?utf-8?B?MjI2VE4venpCYkJUcmtaQ2l6Y1pYVUxBR1JrRndnVkRJa3BPcjRlSWN4Q2Zu?= =?utf-8?B?MXdDY0I3NUpnckhHUVgxTEt6RElTOVJSa1J5dzhhd3JKSG9mK2MrK3lmY0tW?= =?utf-8?B?WWFiY1BKOTZnOXZmdVFPTnZQb3h6NTd1eHdYellycm1rU1BxY0RicUFlU1JO?= =?utf-8?Q?Fk/FdzBTbS8ZyKY6UaSMRJKjw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: faa1a47c-47b0-47dc-3371-08db7543bba5 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2023 06:16:37.5530 (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: Xm9dpXHjGmo9Lnz2xNRlKvZnsyLRlj8uapuCVnZZURDZ1rzx4wiUolt5KuShiJRlsOSXBbXdVzDK/R6mZN7FSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9319 X-Spam-Status: No, score=-3027.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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 List-Id: On 25.06.2023 07:06, Hongtao Liu wrote: > On Wed, Jun 21, 2023 at 2:28 PM Jan Beulich via Gcc-patches > wrote: >> >> With respective two-operand bitwise operations now expressable by a >> single VPTERNLOG, add splitters to also deal with ior and xor >> counterparts of the original and-only case. Note that the splitters need >> to be separate, as the placement of "not" differs in the final insns >> (*iornot3, *xnor3) which are intended to pick up one half of >> the result. >> >> gcc/ >> >> * config/i386/sse.md: New splitters to simplify >> not;vec_duplicate;{ior,xor} as vec_duplicate;{iornot,xnor}. >> >> gcc/testsuite/ >> >> * gcc.target/i386/pr100711-4.c: New test. >> * gcc.target/i386/pr100711-5.c: New test. >> >> --- a/gcc/config/i386/sse.md >> +++ b/gcc/config/i386/sse.md >> @@ -17366,6 +17366,36 @@ >> (match_dup 2)))] >> "operands[3] = gen_reg_rtx (mode);") >> >> +(define_split >> + [(set (match_operand:VI 0 "register_operand") >> + (ior:VI >> + (vec_duplicate:VI >> + (not: >> + (match_operand: 1 "nonimmediate_operand"))) >> + (match_operand:VI 2 "vector_operand")))] >> + " == 64 || TARGET_AVX512VL >> + || (TARGET_AVX512F && !TARGET_PREFER_AVX256)" >> + [(set (match_dup 3) >> + (vec_duplicate:VI (match_dup 1))) >> + (set (match_dup 0) >> + (ior:VI (not:VI (match_dup 3)) (match_dup 2)))] >> + "operands[3] = gen_reg_rtx (mode);") >> + >> +(define_split >> + [(set (match_operand:VI 0 "register_operand") >> + (xor:VI >> + (vec_duplicate:VI >> + (not: >> + (match_operand: 1 "nonimmediate_operand"))) >> + (match_operand:VI 2 "vector_operand")))] >> + " == 64 || TARGET_AVX512VL >> + || (TARGET_AVX512F && !TARGET_PREFER_AVX256)" >> + [(set (match_dup 3) >> + (vec_duplicate:VI (match_dup 1))) >> + (set (match_dup 0) >> + (not:VI (xor:VI (match_dup 3) (match_dup 2))))] >> + "operands[3] = gen_reg_rtx (mode);") >> + > Can we merge this splitter(xor:not) into ior:not one with a code > iterator for xor,ior, They look the same except for the xor/ior. They're only almost the same: Note (ior (not )) vs (not (xor )) as the result of the splitting. The difference is necessary to fit with what patch 1 introduces (which in turn is the way it is to fit with what generic code transforms things to up front). (I had it the way you suggest initially, until I figured why one of the two would end up never being used.) Jan