diff options
author | Richard Biener <rguenther@suse.de> | 2020-06-12 12:06:53 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-06-12 12:09:01 +0200 |
commit | 135a8ad3a59972ea64b1244b0e221cdded9a6ec6 (patch) | |
tree | 79ef1be0cead7dc2fb343109db97d18531fb1fce /gcc | |
parent | e784f98027dbd5cdc46712751dcfba8278eb7fa9 (diff) | |
download | gcc-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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-vect-stmts.c | 3 |
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); |