From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2040.outbound.protection.outlook.com [40.107.104.40]) by sourceware.org (Postfix) with ESMTPS id BC5713858C54 for ; Wed, 24 May 2023 07:57:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BC5713858C54 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=BU18EVGx57I8dyN9GqyBAXJBSORRWmAr42ULUIT07hP3ddDPidADTgiOly2n/B02E3VCglE5Y2EGW/5+Hg8aD9IMeKjYm5BkNqkogAqCP9/LeuOeBwExyAqfS+Ws9jguMith+PdZgPtZqBQ3b5i1cOYPu2CSfnvsdRoDLphrxfNeDf5Q8PayxzE+ErVu1j3id5oWtSCNij4/pDqneyefE4mGWJE6q0ws53ETk52bxXn0wV0ru3wfLSJfurxFf5fhF1+L3INPbHFN7HEZDEvWllJx5Y0sAddTr/v+7oPA0py4KACf5PwZFvTXKktxaE8rEKQpFHOXmZj93ey4kYjPbg== 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=yVhG7epcLMwJPyt9LBNWuws8DyO4Sl9zf6wfe8CKf7Q=; b=AlK/O1EwW6ZTe3gXalKMyBqJ3yhCYaujWIsHCZKvKddnRRkWgPiS0khv+Rf708UxIaXYZEn36Dn8HKmSQ7+8VRVSkWmQ1ktJNvvAcrBXhulzJ4k1tpRhQ40bNBH86n7uLvvyEhVKxmQ/BQt+TWgz49ry9LiENmrruUH/zSRQk8cWLi+5PHOgreNbKurfABGNkHUF3W5k0W1EojHG7x7qLh4f0DlDbqFxDEKx73Zbh0K96tmNjnT2ISq0Awegvsb+0wujpiFmwNaJHwC1nwmtQQnZtbxTfhlY9L6qDgzys5g39LLoDHYJ/AlMuSo/Dlr8Vd+Vl2konFqHpugtvnb2Og== 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=yVhG7epcLMwJPyt9LBNWuws8DyO4Sl9zf6wfe8CKf7Q=; b=ZLD+QgDVvQqap+eJUEABxkBGobJWOOCHQaCFwLbVrvANfTaFo5vpBQpG4w+4ffN6of5FfcYxDtiOAJZpgXYmDlh2tfswMdxJ8n+Tuh0h/+McGs4bJIBzsNIxsmYkjeSK7FhnYFpr+9Z9qYPRZ/nvOVGNHVUNrsrzzcNOaAZ4l+FaFkG937Pwom8+dNhAkfgqw8orbqRscRl5ZiKk7F9wgPSpo8KtpsUB7KCLmkMJ7rTywOWbURhy13ghwx5yN0lVZJqWtqg6NuFCBYNm/AoO2sc2TPw8pBDW6l3BtlKFEi9dElYzx4fVVZtyVFuBxEYPx6i9k5xTI2VRGUomYN/kYA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS1PR04MB9263.eurprd04.prod.outlook.com (2603:10a6:20b:4c5::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Wed, 24 May 2023 07:57:06 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6411.029; Wed, 24 May 2023 07:57:06 +0000 Message-ID: <999cd9e7-c20a-2992-590e-82ef01506604@suse.com> Date: Wed, 24 May 2023 09:57:04 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US To: "gcc@gcc.gnu.org" From: Jan Beulich Subject: x86: making better use of vpternlog{d,q} Cc: Kirill Yukhin , Hongtao Liu Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0042.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS1PR04MB9263:EE_ X-MS-Office365-Filtering-Correlation-Id: 56c7dd7d-b61e-4d54-f8ee-08db5c2c77cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A6EGcdEC99EjCGU9acc4Hy4lW7M3LDBFzClRpTXfj3tS+KO0izicfl0PvV0Skie/M6n5chV6MbS9N2sayE6RJsFrqKBNHvqJkft8/jrgdaINl3B0+xY2MI9MmUHzbnbez6eNTJET4jL5W61AWmiqdmw+VnIHe3Rd17Y14kWRaU0x5ZxcQnJ8/M0dUX/y1kGssi/U5FuLCKamXEPPPYfYCS+aBe5Q/Moda/VnmzBqafDntBtu08P+giJnCu/4CvOewoGsmJASrJCWqPGTB3oT1QyJvwLhDIknyO/ZsYXJ9afivqqdEN/QZbp8rz+9i1pDU4Xpf/A0CxppQIGNJGh2IyF51GT28StjcCJGEwMZvbBh4pKgZpXHe8jzYwVKHPpKQe6w9zVIA9oO10lIxSsppCwVXvIXJat9uvj/FbhrWlqE51Z+BMV7+0OmPN8ju5M+GwohpGI+z9paxDR73oa+cskRvviO19Bg8ebbPMufZD1dyF1Xy74xMNd2wOU8wiZZod3KzfkN05jdWUSGJsO619/C2zCCJqPVl+nc/Ymq7gOCj2N4ldrvHKTAIYW0KXNcK3qPW0k23iigaVXyerVFok00lPu1nTep8NhyMUFW7trhb/KUGtT5NduJblw54tMFC/Cacb3R9q1s+iq/1m7/rA== 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:(13230028)(376002)(136003)(346002)(396003)(39860400002)(366004)(451199021)(31686004)(2906002)(54906003)(5660300002)(8676002)(8936002)(41300700001)(66476007)(316002)(478600001)(66556008)(66946007)(6916009)(4326008)(36756003)(6486002)(6512007)(6506007)(38100700002)(2616005)(31696002)(86362001)(26005)(186003)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eS9kRTFYOHB4K2xGdXJpc05saGRXb1FqWVBtd3h5ZGxka3FnWUVBcWYzRk44?= =?utf-8?B?TC9teUY4RlVkZVo4U0xUOU5mVzkrRzBTWVdoK0h6WmViOTRRc2hNZWdsWmFa?= =?utf-8?B?RHdhakt3aGQ4bUgyajBrNXN6cHhlWGhBZEhnamh6a2FoM0FyKytBR0E0aFND?= =?utf-8?B?SHFyYkhRVXFhTWJTcTFobEVpKzdZQlRsQ0VPTW1JOGhKNUFMcnphZ1N1alEx?= =?utf-8?B?akQybmNHQUE4R3RFQXFPSmxPU1FwdFRtTktOZk1jNlc1aStkZlgySGpHaCt6?= =?utf-8?B?Y2JzWW43c05wRHhYMVVJUDdkaytZSmsvc05jVThhYzNxWjhHWTkzSmx0NFho?= =?utf-8?B?Um9iNkdPT01iaWcrZVMwbUZha0ZGWHRIUUJqU1hzOUxNdSt0dkZjaVkrTThP?= =?utf-8?B?UksxRlpiVkhMcktsUzZIdVp2WUZQVUhUdVU0Z05oSEl2c1ZXZkMzS1JCM0ti?= =?utf-8?B?SFZzZ09JTytQWnlPR2tNTW90MDkxRnpqU0ZSM2xsQVFRY0t6UC9YaGxURGhn?= =?utf-8?B?YjRtK1BtVld0QnpCT2dSZnBrOWtuUDdoWkdZdnpNKzVmTW56K2F4aktpWmI0?= =?utf-8?B?U05STklmNkhHKzhndlNzOEprd0ZhVW5XdEZ3NjhnZURUNGhoWTh6VSt3czA0?= =?utf-8?B?aFNtVS9xazM0bjVqOSt5bFNqUm15R3J3LythM1ZxUVRwSlYyK3M4bEc1aUN4?= =?utf-8?B?NEdHUFhxTFByUEdiRFR6NlNMODJmTDNSTUcyR2NqV3dkZUtSSVRqcTB3NXNk?= =?utf-8?B?cXJ4VFlGclRydkJRNm9FQjk5WGJHdWZkMGdqN05sSW1DSml6VzFCOERZZWpO?= =?utf-8?B?ZXhjaXl6MnQydU9XMlVVKzA1eWRHczFnajFNQjUxbWN6dDIrdytwa29tT3Fl?= =?utf-8?B?bzdvSmZMS1hnWDRrN1NwRy9tMUY3dFQ2RmlqcHVZeTl1amFsK1pmdGU4QktX?= =?utf-8?B?VEJsKzlBb1RhQVhiMmZBcWZDcWJVcjhvRjJMOWYrSzRDTDk4TkVnaVhNYWll?= =?utf-8?B?emxxMmZjWnFXcitVZUdLdm5KQlNGclE2RGt1QVhvMm5ISnNsdTIwbFBKRmti?= =?utf-8?B?eWNSZUw1LzdEZWNRaWNPcnFTSklQT3pkN2RjQUZPWDVTV3lBTXBRTDREL3BC?= =?utf-8?B?Zy8vSGJndWNXaGJxamI5SUlGWHJsYkswQkM1VnZnYVAvb3luV0oxL0ZSS1BX?= =?utf-8?B?VUtBc080b2lwQXM3Q3RzVm12S2Z1VnZDTWJqdkxSVjdZUlU5eE5rTFhKRkZY?= =?utf-8?B?U1BIUWEzS1FjYUhVL2NhVUQyU0kyNk1xNUVQNHpNbFd6bC9UWE1BSTdsZ3Jn?= =?utf-8?B?MDdFMGhHNzRJOHJNNTh2blVhdjhwY1hjWDNveG9kMmc3S2JmWjFqdVVqSXBP?= =?utf-8?B?bkxzVHBYT2tsbCt4R0krQjU4bXNHWVA2Y0JxUWQ0R0FBYjFQWWlHay9ONHI1?= =?utf-8?B?RmIza3VGZEluVFFBTlFSUitoRm5ldmtBdHNnMmp3ZklOak9PVmV2WHhEZWdJ?= =?utf-8?B?c25oY2d6THdUa09RZThaN1g5KytVeVdJck54MmpadjJ4MDZMRzFMam5nT25m?= =?utf-8?B?aWJvaVNsK2w5RDd5a01JV2srMFdjYVYzeEIvOUEwditOM1VKMWJHd0I1Y3cv?= =?utf-8?B?NGxIejE2aElxNGdhNFFkTzYrVG5KR2xBcVh1U3RGREZabDJ5dVFZdkdXUC9B?= =?utf-8?B?TjUyWGJtZVV5MFY3cG9UK0czblpmdEdXUGorMGdxZmRTVEs0OVlIVGxCM0RC?= =?utf-8?B?SUdsQ3ppN2k3MklJR1lsR0hQVzZlT1dURFhJZWNleW5RUGsvY2o5cmcxZ09r?= =?utf-8?B?YWR0YW5pZ2NyajRuYU4zdTQ4dEN6elcxNkxHQnRKdjBHc0lTOHYxM1JYMkZt?= =?utf-8?B?dDEyTWxUYmNreEVKVnN2ZjBNbE56YjAwQ2FaeVhTcnVlSGJrQ3ljVnd2b2ZT?= =?utf-8?B?Nmg5Skx3TWN5Uzg1N0sxZm43dVEyWlFYZWVES0Rac2RzbEpkeVAzYkRUUVdh?= =?utf-8?B?OUFHYW4zc1orRHdXZ0lObS9ZeTFwRG5KQ1RuaGdIYis0bVpTWG1xeHBPcXhm?= =?utf-8?B?aU5xZG1DSVU0d01LWXVWQzNDSmZPSDdmY3FIYnRIWHhJUFAxSXNNL3IrOGV6?= =?utf-8?Q?BGCSsRo+egIxJ3Mv2oI9P/V5C?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56c7dd7d-b61e-4d54-f8ee-08db5c2c77cd X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2023 07:57:06.2928 (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: yENCkqenHhWmmhFI3NUSfY0cwzbydUmHvGKx2uy/HDLhBYSTBPghtwkhy+m6K0DA+H4gX2MEUbfDiNYGl7mvjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9263 X-Spam-Status: No, score=-3027.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,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: Hello, for a couple of years I was meaning to extend the use of these AVX512F insns beyond the pretty minimalistic ones there are so far. Now that I've got around to at least draft something, I ran into a couple of issues I cannot explain. I'd like to start with understanding the unexpected effects of a change to an existing insn I have made (reproduced at the bottom). I certainly was prepared to observe testsuite failures, but it ends up failing tests I didn't expect it would fail, and - upon looking at sibling ones - also ends up leaving intact tests which I would expect would then need adjustment (because of using the new alternative). In particular (all mentioned tests are in gcc.target/i386/) - avx512f-andn-si-zmm-1.c (and its AVX512VL counterparts) fails because for whatever reason generated code reverts back to using vpbroadcastd, - avx512f-andn-di-zmm-1.c, otoh, is unaffected (i.e. continues to use vpandnq with embedded broadcast), - avx512f-andn-si-zmm-2.c doesn't use the new 4th insn alternative when at the same time a made-up DI variant of the test (akin to what might be an avx512f-andn-di-zmm-2.c testcase) does. IOW: How is SI mode element size different here from DI mode one? Is there anything wrong with the 4th alternative I'm adding, or is this hinting at some anomaly elsewhere? Just to mention it, avx512f-andn-si-zmm-5.c similarly fails unexpectedly, but I guess for the same reason (and there aren't AVX512VL or DI mode element counterparts thereof). Jan --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -17019,11 +17019,11 @@ "TARGET_AVX512F") (define_insn "*andnot3" - [(set (match_operand:VI 0 "register_operand" "=x,x,v") + [(set (match_operand:VI 0 "register_operand" "=x,x,v,v") (and:VI - (not:VI (match_operand:VI 1 "vector_operand" "0,x,v")) - (match_operand:VI 2 "bcst_vector_operand" "xBm,xm,vmBr")))] - "TARGET_SSE" + (not:VI (match_operand:VI 1 "bcst_vector_operand" "0,x,v,mBr")) + (match_operand:VI 2 "bcst_vector_operand" "xBm,xm,vmBr,v")))] + "TARGET_SSE && (REG_P (operands[1]) || REG_P (operands[2]))" { char buf[64]; const char *ops; @@ -17090,6 +17090,11 @@ case 2: ops = "v%s%s\t{%%2, %%1, %%0|%%0, %%1, %%2}"; break; + case 3: + tmp = "pternlog"; + ssesuffix = ""; + ops = "v%s%s\t{$0x44, %%1, %%2, %%0|%%0, %%2, %%1, $0x44}"; + break; default: gcc_unreachable (); } @@ -17098,7 +17103,7 @@ output_asm_insn (buf, operands); return ""; } - [(set_attr "isa" "noavx,avx,avx") + [(set_attr "isa" "noavx,avx,avx,avx512f") (set_attr "type" "sselog") (set (attr "prefix_data16") (if_then_else @@ -17106,7 +17111,7 @@ (eq_attr "mode" "TI")) (const_string "1") (const_string "*"))) - (set_attr "prefix" "orig,vex,evex") + (set_attr "prefix" "orig,vex,evex,evex") (set (attr "mode") (cond [(match_test "TARGET_AVX2") (const_string "") @@ -17119,7 +17124,11 @@ (match_test "optimize_function_for_size_p (cfun)")) (const_string "V4SF") ] - (const_string "")))]) + (const_string ""))) + (set (attr "enabled") + (if_then_else (eq_attr "alternative" "3") + (symbol_ref " == 64 ? TARGET_AVX512F : TARGET_AVX512VL") + (const_string "*")))]) ;; PR target/100711: Split notl; vpbroadcastd; vpand as vpbroadcastd; vpandn (define_split