The assert in SLP discovery when we handle masked operations is
confusingly wide - all gather variants should be catched by
the earlier STMT_VINFO_GATHER_SCATTER_P.

Bootstrap and regtest running on x86_64-unknown-linux-gnu.

        * tree-vect-slp.cc (vect_build_slp_tree_2): Only expect
        IFN_MASK_LOAD for masked loads that are not
        STMT_VINFO_GATHER_SCATTER_P.
---
 gcc/tree-vect-slp.cc | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index d030a56045b..037e718ec07 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -2020,11 +2020,7 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree node,
 
          if (gcall *stmt = dyn_cast <gcall *> (stmt_info->stmt))
            {
-             gcc_assert (gimple_call_internal_p (stmt, IFN_MASK_LOAD)
-                         || gimple_call_internal_p (stmt, IFN_GATHER_LOAD)
-                         || gimple_call_internal_p (stmt, IFN_MASK_GATHER_LOAD)
-                         || gimple_call_internal_p (stmt,
-                                                    IFN_MASK_LEN_GATHER_LOAD));
+             gcc_assert (gimple_call_internal_p (stmt, IFN_MASK_LOAD));
              bool has_gaps = false;
              if (STMT_VINFO_GROUPED_ACCESS (stmt_info))
                for (stmt_vec_info si = DR_GROUP_NEXT_ELEMENT (first_stmt_info);
-- 
2.43.0

Reply via email to