+2019-02-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/89440
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
+ not necessary assert.
+
2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
PR fortran/72741
+2019-02-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/89440
+ * gcc.dg/vect/pr89440.c: New testcase.
+
2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
* lib/target-supports.exp (check_effective_target_offload_nvptx):
--- /dev/null
+/* { dg-do run } */
+/* { dg-additional-options "-ffast-math" } */
+
+#include "tree-vect.h"
+
+float __attribute__((noinline,noclone))
+f (float x)
+{
+ int i;
+ float j;
+ float a = 0;
+ for (i = 0; i < 4; ++i)
+ {
+ for (j = 0; j < 4; ++j)
+ {
+ a += 1;
+ x += a;
+ }
+ }
+ return x;
+}
+
+int
+main()
+{
+ check_vect ();
+ if (f (1.0f) != 137.0f)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "OUTER LOOP VECTORIZED" "vect" { target vect_float } } } */
= loop_vinfo->lookup_stmt (exit_phi);
gphi *vect_phi;
- /* FORNOW. Currently not supporting the case that an inner-loop
- reduction is not used in the outer-loop (but only outside the
- outer-loop), unless it is double reduction. */
- gcc_assert ((STMT_VINFO_RELEVANT_P (exit_phi_vinfo)
- && !STMT_VINFO_LIVE_P (exit_phi_vinfo))
- || double_reduc);
-
if (double_reduc)
STMT_VINFO_VEC_STMT (exit_phi_vinfo) = inner_phi;
else