* tree-vect-loop.c (vect_determine_vectorization_factor): Also take
into account live statements for mask producers.
From-SVN: r236981
+2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
+ into account live statements for mask producers.
+
2016-06-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/71311
+2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/opt56.ad[sb]: New test.
+
2016-06-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66635
--- /dev/null
+-- { dg-do compile }\r
+-- { dg-options "-O3" }\r
+\r
+package body Opt56 is\r
+\r
+ function F (Values : Vector) return Boolean is\r
+ Result : Boolean := True;\r
+ begin\r
+ for I in Values'Range loop\r
+ Result := Result and Values (I) >= 0.0;\r
+ end loop;\r
+ return Result;\r
+ end;\r
+\r
+end Opt56;\r
--- /dev/null
+package Opt56 is\r
+\r
+ type Vector is array (Positive range <>) of Float;\r
+\r
+ function F (Values : Vector) return Boolean;\r
+\r
+end Opt56;\r
&& is_gimple_assign (stmt)
&& gimple_assign_rhs_code (stmt) != COND_EXPR)
{
- if (STMT_VINFO_RELEVANT_P (stmt_info))
+ if (STMT_VINFO_RELEVANT_P (stmt_info)
+ || STMT_VINFO_LIVE_P (stmt_info))
mask_producers.safe_push (stmt_info);
bool_result = true;