aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-11-09 11:44:07 +0100
committerRichard Biener <rguenther@suse.de>2023-11-09 12:33:21 +0100
commit8863a7990e9f0cd49c8900605a2c75a0e8886e85 (patch)
tree1ae19c8edd2722f8517089f8023130926787839c /gcc
parent8ebcea91e24964ec52ca2caf9f8585f3a785f7d5 (diff)
downloadgcc-8863a7990e9f0cd49c8900605a2c75a0e8886e85.zip
gcc-8863a7990e9f0cd49c8900605a2c75a0e8886e85.tar.gz
gcc-8863a7990e9f0cd49c8900605a2c75a0e8886e85.tar.bz2
tree-optimization/112450 - avoid AVX512 style masking for BImode masks
The following avoids running into the AVX512 style masking code for RVV which would theoretically be able to handle it if I were not relying on integer mode maskness in vect_get_loop_mask. While that's easy to fix (patch in PR), the preference is to not have AVX512 style masking for RVV, thus the following. * tree-vect-loop.cc (vect_verify_full_masking_avx512): Check we have integer mode masks as required by vect_get_loop_mask.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-vect-loop.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index a544bc9..8abc193 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -1462,7 +1462,10 @@ vect_verify_full_masking_avx512 (loop_vec_info loop_vinfo)
if (!mask_type)
continue;
- if (TYPE_PRECISION (TREE_TYPE (mask_type)) != 1)
+ /* For now vect_get_loop_mask only supports integer mode masks
+ when we need to split it. */
+ if (GET_MODE_CLASS (TYPE_MODE (mask_type)) != MODE_INT
+ || TYPE_PRECISION (TREE_TYPE (mask_type)) != 1)
{
ok = false;
break;