[PATCH] fix vectorizable_condition ICE with EXTRACT_LAST_REDUCTION

Richard Biener rguenther@suse.de
Fri Jun 12 10:08:26 GMT 2020


The previous reorg missed a guard around the else clause access.

Committed as obvious.

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.
---
 gcc/tree-vect-stmts.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index cdd6f6c5e5d..cf2d979fea1 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);
-- 
2.16.4


More information about the Gcc-patches mailing list