re PR tree-optimization/91157 (ICE: verify_gimple failed (error: position plus size...
authorJakub Jelinek <jakub@gcc.gnu.org>
Wed, 17 Jul 2019 07:15:30 +0000 (09:15 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 17 Jul 2019 07:15:30 +0000 (09:15 +0200)
PR tree-optimization/91157
* tree-vect-generic.c (expand_vector_comparison): Handle lhs being
a vector boolean with scalar mode.
(expand_vector_condition): Handle first operand being a vector boolean
with scalar mode.
(expand_vector_operations_1): For comparisons, don't bail out early
if the return type is vector boolean with scalar mode, but comparison
operand type is not.

* gcc.target/i386/avx512f-pr91157.c: New test.
* gcc.target/i386/avx512bw-pr91157.c: New test.

From-SVN: r273545

gcc/tree-vect-generic.c

index 6fcd37c8a690a4e78a9f34e8d0aeeb3fb66b0f45..5855653257bb96183093be6ea882a51e159cc967 100644 (file)
@@ -384,7 +384,6 @@ expand_vector_comparison (gimple_stmt_iterator *gsi, tree type, tree op0,
       && !expand_vec_cond_expr_p (type, TREE_TYPE (op0), code))
     {
       if (VECTOR_BOOLEAN_TYPE_P (type)
-         && VECTOR_BOOLEAN_TYPE_P (type)
          && SCALAR_INT_MODE_P (TYPE_MODE (type))
          && known_lt (GET_MODE_BITSIZE (TYPE_MODE (type)),
                       TYPE_VECTOR_SUBPARTS (type)