https://gcc.gnu.org/g:c7507e395f096240ffa8fa5dfcbfcfd8c5e23bb8

commit r16-6995-gc7507e395f096240ffa8fa5dfcbfcfd8c5e23bb8
Author: Richard Biener <[email protected]>
Date:   Fri Jan 23 10:02:09 2026 +0100

    Add missing expand_vec_cond_expr_p to patterns
    
    The following adds another missing check on VEC_COND_EXPR
    expandability.  Without a testcase.
    
            * match.pd ((convert (vec_cond ...))): Make sure the
            resulting vec_cond can be expanded.

Diff:
---
 gcc/match.pd | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/match.pd b/gcc/match.pd
index 155658fe2c83..b66fd9022eb3 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -6249,7 +6249,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
 (simplify
  (convert (vec_cond:s @0 @1 @2))
  (if (VECTOR_TYPE_P (type)
-      && types_match (TREE_TYPE (@0), truth_type_for (type)))
+      && types_match (TREE_TYPE (@0), truth_type_for (type))
+      && (expand_vec_cond_expr_p (type, TREE_TYPE (@0))
+         || !expand_vec_cond_expr_p (TREE_TYPE (@1), TREE_TYPE (@0))))
   (vec_cond @0 (convert! @1) (convert! @2))))
 
 /* Likewise for view_convert of nop_conversions. */

Reply via email to