From patchwork Wed Oct 18 08:17:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 154745 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp4639171vqb; Wed, 18 Oct 2023 01:18:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE9uNw/FVr5POImNI6tGNX76fcbTuA2nae3pfQTQddcdQIm9MEXvkeJjDJGyICHyuxs9Ssl X-Received: by 2002:a05:6122:219e:b0:49a:317c:ba5e with SMTP id j30-20020a056122219e00b0049a317cba5emr5349955vkd.8.1697617112281; Wed, 18 Oct 2023 01:18:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1697617112; cv=pass; d=google.com; s=arc-20160816; b=NAOhtoREju8vtnnxXR+9wTkYG/v5Cxb2nIuD7RVIH4ZENfv2JtUeQyRdITb3ZrT8hE MfTJLFRo/IEdbMzGH1PBlYdL1vhp/JnmiAMANDug0LKGvAN1an/mNJLidtiuBevG0yK9 +vC9fwVWIP3IU9vpXAkOiMjvSOo5FycXhWHlv3fSb/G4zDJwW96mqM1zm6HRYgVqXCWQ xjzJDzF+S4ax/IYYGzr6z77luHra30jpJZv3FFrUTZBUSTgpB9bLym2gB5lbu1ZRWXyA 6IVrBSMR7KH6/TgOFUWRuLiZiAqdLRIgUNxv5eXEGng+f2rRESfA5nFZRxZJi2yzhK+r Intw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:errors-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:mime-version :user-agent:subject:to:from:date:arc-filter:dmarc-filter :delivered-to; bh=cTV3bF74C2K3ZbMT0heLOeMKid0E6pz3/NLPQM1WTj4=; fh=hPrbWPhweUx4V0GV9uXJqbyAzg2ABmTz7kczrAQqMmM=; b=xnHn86l52l5gVTL1SpG8R7n7zPer/N1syh6HqV6k2j6duOrz7PSPHGRDkYHHXVAsHN rHZ9ja+CA2GNUfLtRSip/osKb3le/rfBIk77bD9Ng16Gd2Xvjh/Bykeaq5Na9vlvAi+I C8uqatb+qu9cc75CeQEW0z0ksLwK5UULv8JB/2ENSMMUe8imEXptJLm4jDnUUZm0sy2y fxI/O9SIVIfdjZshao+6GAcbsm7WKgoR7ak/2V3RhU/gcMQMyXGHwN/Adyq5OOtkKO4s klKWkMfRJIuMwu/jUQVBqxPeuDZ4LHbxWwjEq7t0Lgb1kiFyaD23vmAThRsAzVZEzdDW KKEQ== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id g12-20020ac87f4c000000b00417d075d66esi2508228qtk.5.2023.10.18.01.18.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 01:18:32 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A7A333856943 for ; Wed, 18 Oct 2023 08:18:31 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by sourceware.org (Postfix) with ESMTPS id D59373856DF2 for ; Wed, 18 Oct 2023 08:17:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D59373856DF2 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D59373856DF2 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:67c:2178:6::1d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697617078; cv=none; b=JgcPW64t+ByWTBN1LBiGJY4fSme3qrd/RFB3vKgMp1Ui5rNgHdvbaW7sPdHRixmnhpuZGIqYv9JVsltXPfIs6dHWG6oHJHZnkIJg1Y94QcFDLeJrkiKyrtbY0R1SOLzgBil/ExGtTZPdxjw4Q4AISJawl+e5b/fukPvSBtDMcZ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697617078; c=relaxed/simple; bh=2GB0KNInRLQpxk8wnqcqKjXzRpZelYnOUSHuj0M1PC0=; h=Date:From:To:Subject:MIME-Version; b=dOpZLepqcwnOHRZRYjvXy7ArlXlh2ZTQaayJL3v0IRqBx2/2HZbv4yo9/GsN3SboyPOOe2ayWs216FqwzqJeULrLjCwNPZdwJOoudyAbuJuFKBbJezLmaT8FRMM8QYchuJidhFkAqb5TiiCsLMPyYcJX+4l40ieyLhzoW/5idaM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id 873FE1F8D7 for ; Wed, 18 Oct 2023 08:17:55 +0000 (UTC) Received: from wotan.suse.de (wotan.suse.de [10.160.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 523222C142 for ; Wed, 18 Oct 2023 08:17:55 +0000 (UTC) Date: Wed, 18 Oct 2023 08:17:55 +0000 (UTC) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] Re-instantiate integer mask to traditional vector mask support User-Agent: Alpine 2.22 (LSU 394 2020-01-19) MIME-Version: 1.0 X-Spam-Level: X-Spamd-Bar: / Authentication-Results: smtp-out2.suse.de; dkim=none; dmarc=none; spf=softfail (smtp-out2.suse.de: 149.44.160.134 is neither permitted nor denied by domain of rguenther@suse.de) smtp.mailfrom=rguenther@suse.de X-Rspamd-Server: rspamd2 X-Spamd-Result: default: False [-0.01 / 50.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_GOOD(0.00)[149.44.160.134:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-3.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[gcc-patches@gcc.gnu.org]; TO_DN_NONE(0.00)[]; R_SPF_SOFTFAIL(0.60)[~all:c]; RCPT_COUNT_ONE(0.00)[1]; MISSING_MID(2.50)[]; VIOLATED_DIRECT_SPF(3.50)[]; MX_GOOD(-0.01)[]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_NA(0.20)[suse.de]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.20)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; BAYES_HAM(-3.00)[100.00%] X-Spam-Score: -0.01 X-Rspamd-Queue-Id: 873FE1F8D7 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, MISSING_MID, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Message-Id: <20231018081831.A7A333856943@sourceware.org> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780080561013336299 X-GMAIL-MSGID: 1780080561013336299 The following allows to pass integer mask data as traditional vector mask for OMP SIMD clone calls which is required due to the limited set of OMP SIMD clones in the x86 ABI when using AVX512 but a prefered vector size of 256 bits. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. * tree-vect-stmts.cc (vectorizable_simd_clone_call): Relax check to again allow passing integer mode masks as traditional vectors. --- gcc/tree-vect-stmts.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index 9bb43e98f56..338c84d7f09 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -4384,9 +4384,16 @@ vectorizable_simd_clone_call (vec_info *vinfo, stmt_vec_info stmt_info, i = -1; break; case SIMD_CLONE_ARG_TYPE_MASK: + /* While we can create a traditional data vector from + an incoming integer mode mask we have no good way to + force generate an integer mode mask from a traditional + boolean vector input. */ if (SCALAR_INT_MODE_P (n->simdclone->mask_mode) - != SCALAR_INT_MODE_P (TYPE_MODE (arginfo[i].vectype))) + && !SCALAR_INT_MODE_P (TYPE_MODE (arginfo[i].vectype))) i = -1; + else if (!SCALAR_INT_MODE_P (n->simdclone->mask_mode) + && SCALAR_INT_MODE_P (TYPE_MODE (arginfo[i].vectype))) + this_badness += 2048; break; } if (i == (size_t) -1)