diff --git a/gcc/gimple-isel.cc b/gcc/gimple-isel.cc index 83281c0cbf9..048b407bd11 100644 --- a/gcc/gimple-isel.cc +++ b/gcc/gimple-isel.cc @@ -139,10 +139,10 @@ gimple_expand_vec_cond_expr (gimple_stmt_iterator *gsi, Those can end up generated by folding and at least for integer mode masks we cannot expect vcond expanders to exist. We lower a ? b : c to (b & a) | (c & ~a). */ - if (!VECTOR_MODE_P (mode)) + if (VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (lhs)) + && !VECTOR_MODE_P (mode)) { - gcc_assert (VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (lhs)) - && types_compatible_p (TREE_TYPE (op0), TREE_TYPE (op1))); + gcc_assert (types_compatible_p (TREE_TYPE (op0), TREE_TYPE (op1))); gimple_seq stmts = NULL; tree type = TREE_TYPE (lhs); location_t loc = gimple_location (stmt);