https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123773

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |avieira at gcc dot gnu.org
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=123016
   Last reconfirmed|                            |2026-01-23
             Status|UNCONFIRMED                 |NEW
           Priority|P3                          |P1
     Ever confirmed|0                           |1

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
I can't reproduce the pr90913.f90 ICE, I can for the C++ one though.

#1  0x0000000002355c78 in prepare_vec_mask (loop_vinfo=0x51055c0, 
    mask_type=<vector_type 0x7ffff757a0a8>, 
    loop_mask=<ssa_name 0x7ffff703dc08 211>, 
    vec_mask=<ssa_name 0x7ffff70441b8 222>, gsi=0x7fffffffba60)
    at /home/rguenther/src/gcc/gcc/tree-vect-stmts.cc:1605
1605      gcc_assert (TREE_TYPE (loop_mask) == mask_type);
(gdb) p debug_generic_expr (loop_mask->typed.type)
vector([2,2]) <signed-boolean:8>
$1 = void
(gdb) p debug_generic_expr (mask_type)
vector([2,2]) <signed-boolean:8>

there's 'SVE type' attribute on loop_mask->typed.type.

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index e30b8e6ef56..aa59cd1a39d 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -60,6 +60,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "opts.h"
 #include "hierarchical_discriminator.h"
+#include "attribs.h"

 /* Loop Vectorization Pass.

@@ -10544,6 +10545,7 @@ vect_record_loop_mask (loop_vec_info loop_vinfo,
vec_loop_masks *masks,
                       unsigned int nvectors, tree vectype, tree scalar_mask)
 {
   gcc_assert (nvectors != 0);
+  gcc_checking_assert (!lookup_attribute ("SVE type", TYPE_ATTRIBUTES
(vectype)));

   if (scalar_mask)
     {


shows

0x3dc7541 fancy_abort(char const*, int, char const*)
        /home/rguenther/src/gcc/gcc/diagnostics/context.cc:1812
0x23b5a7b vect_record_loop_mask(_loop_vec_info*, vec_loop_masks*, unsigned int,
tree_node*, tree_node*)
        /home/rguenther/src/gcc/gcc/tree-vect-loop.cc:10548
0x2361236 vectorizable_simd_clone_call
        /home/rguenther/src/gcc/gcc/tree-vect-stmts.cc:4490

so a duplicate of PR123016 to some extent.  Confirmed.

Reply via email to