aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-10-25 13:42:08 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-10-26 14:15:23 +0200
commit5203deaf526b7119b456c0ac568851957640c078 (patch)
tree4dd785f7f590df172db90f953595bb80fac679bd /gcc
parent40fedaf35fa99a9728d5b84d47035f4c92e1ba90 (diff)
downloadgcc-5203deaf526b7119b456c0ac568851957640c078.zip
gcc-5203deaf526b7119b456c0ac568851957640c078.tar.gz
gcc-5203deaf526b7119b456c0ac568851957640c078.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-vect-patterns.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc
index d4c7793..d9fe493 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)
{