public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Richard Biener <rguenth@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc r14-4711] Re-instantiate integer mask to traditional vector mask support
Date: Wed, 18 Oct 2023 08:18:17 +0000 (GMT)	[thread overview]
Message-ID: <20231018081817.3ABDE3856972@sourceware.org> (raw)

https://gcc.gnu.org/g:b0372ef12f6f7f863606b0d2858d049b18a4cfda

commit r14-4711-gb0372ef12f6f7f863606b0d2858d049b18a4cfda
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Oct 18 09:13:23 2023 +0200

    Re-instantiate integer mask to traditional vector mask support
    
    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.
    
            * tree-vect-stmts.cc (vectorizable_simd_clone_call):
            Relax check to again allow passing integer mode masks
            as traditional vectors.

Diff:
---
 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 2974eb6a981b..e5ff44c25f10 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)

                 reply	other threads:[~2023-10-18  8:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231018081817.3ABDE3856972@sourceware.org \
    --to=rguenth@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).