aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-06-12 12:06:53 +0200
committerRichard Biener <rguenther@suse.de>2020-06-12 12:09:01 +0200
commit135a8ad3a59972ea64b1244b0e221cdded9a6ec6 (patch)
tree79ef1be0cead7dc2fb343109db97d18531fb1fce
parente784f98027dbd5cdc46712751dcfba8278eb7fa9 (diff)
downloadgcc-135a8ad3a59972ea64b1244b0e221cdded9a6ec6.zip
gcc-135a8ad3a59972ea64b1244b0e221cdded9a6ec6.tar.gz
gcc-135a8ad3a59972ea64b1244b0e221cdded9a6ec6.tar.bz2
fix vectorizable_condition ICE with EXTRACT_LAST_REDUCTION
The previous reorg missed a guard around the else clause access. 2020-06-12 Richard Biener <rguenther@suse.de> PR tree-optimization/95633 * tree-vect-stmts.c (vectorizable_condition): Properly guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
-rw-r--r--gcc/tree-vect-stmts.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index cdd6f6c..cf2d979 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -9925,7 +9925,8 @@ vectorizable_condition (vec_info *vinfo,
FOR_EACH_VEC_ELT (vec_oprnds0, i, vec_cond_lhs)
{
vec_then_clause = vec_oprnds2[i];
- vec_else_clause = vec_oprnds3[i];
+ if (reduction_type != EXTRACT_LAST_REDUCTION)
+ vec_else_clause = vec_oprnds3[i];
if (swap_cond_operands)
std::swap (vec_then_clause, vec_else_clause);