https://gcc.gnu.org/g:5203deaf526b7119b456c0ac568851957640c078

commit r15-4693-g5203deaf526b7119b456c0ac568851957640c078
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Oct 25 13:42:08 2024 +0200

    Finish vectorizer pattern proper COND_EXPR transition
    
    The following tries to finish building proper GIMPLE COND_EXPRs
    in vectorizer pattern recognition.
    
            * tree-vect-patterns.cc (vect_recog_divmod_pattern): Build
            separate comparion pattern for the condition of a COND_EXPR
            pattern.

Diff:
---
 gcc/tree-vect-patterns.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc
index d4c7793bb5aa..d9fe49378583 100644
--- a/gcc/tree-vect-patterns.cc
+++ b/gcc/tree-vect-patterns.cc
@@ -4933,8 +4933,11 @@ vect_recog_divmod_pattern (vec_info *vinfo,
          return pattern_stmt;
        }
 
-      cond = build2 (LT_EXPR, boolean_type_node, oprnd0,
-                    build_int_cst (itype, 0));
+      cond = vect_recog_temp_ssa_var (boolean_type_node, NULL);
+      def_stmt = gimple_build_assign (cond, LT_EXPR, oprnd0,
+                                     build_int_cst (itype, 0));
+      append_pattern_def_seq (vinfo, stmt_vinfo, def_stmt,
+                             truth_type_for (vectype), itype);
       if (rhs_code == TRUNC_DIV_EXPR
          || rhs_code == EXACT_DIV_EXPR)
        {

Reply via email to