diff mbox series

Fix PR86927

Message ID alpine.LSU.2.20.1808271617020.16707@zhemvz.fhfr.qr
State New
Headers show
Series Fix PR86927 | expand

Commit Message

Richard Biener Aug. 27, 2018, 2:17 p.m. UTC
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.

Richard.

2018-08-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86927
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Properly
	use const cond reduction code.

	* gcc.dg/vect/pr86927.c: New testcase.
diff mbox series

Patch

Index: gcc/tree-vect-loop.c
===================================================================
--- gcc/tree-vect-loop.c	(revision 263875)
+++ gcc/tree-vect-loop.c	(working copy)
@@ -5197,6 +5197,9 @@  vect_create_epilog_for_reduction (vec<tr
 	  if (STMT_VINFO_VEC_REDUCTION_TYPE (stmt_info)
 	      == INTEGER_INDUC_COND_REDUCTION)
 	    code = induc_code;
+	  else if (STMT_VINFO_VEC_REDUCTION_TYPE (stmt_info)
+		   == CONST_COND_REDUCTION)
+	    code = STMT_VINFO_VEC_CONST_COND_REDUC_CODE (stmt_info);
 	  else
 	    code = MAX_EXPR;
 	}
Index: gcc/testsuite/gcc.dg/vect/pr86927.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/pr86927.c	(nonexistent)
+++ gcc/testsuite/gcc.dg/vect/pr86927.c	(working copy)
@@ -0,0 +1,15 @@ 
+#include "tree-vect.h"
+
+int a[28];
+int main()
+{
+  check_vect ();
+  a[4] = 1;
+  int c = 1;
+  for (int b = 0; b < 8; b++)
+    if (a[b])
+      c = 0;
+  if (c)
+    abort();
+  return 0;
+}