+2017-12-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/81889
+ * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
+ range info from the non-wrapping IV instead of just the range
+ of the type.
+
2017-12-12 Julia Koval <julia.koval@intel.com>
* config.gcc: Add vaesintrin.h.
+2017-12-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/81889
+ * gfortran.dg/pr81889.f90: New testcase.
+ * gcc.dg/tree-ssa/pr64183.c: Adjust.
+
2017-12-12 Julia Koval <julia.koval@intel.com>
* gcc.target/i386/avx512-check.h: Handle bit_VAES.
bits += 8;
}
-/* { dg-final { scan-tree-dump "Loop 2 iterates at most 4 times" "cunroll"} } */
+/* { dg-final { scan-tree-dump "Loop 2 iterates at most 3 times" "cunroll"} } */
--- /dev/null
+! { dg-do compile }
+! { dg-options "-O3 -Wall" }
+
+module m
+
+ type t
+ integer, dimension(:), pointer :: list
+ end type
+
+contains
+
+ subroutine s(n, p, Y)
+ integer, intent(in) :: n
+ type(t) :: p
+ real, dimension(:) :: Y
+
+ real, dimension(1:16) :: xx
+
+ if (n > 3) then
+ xx(1:n) = 0.
+ print *, xx(1:n)
+ else
+ xx(1:n) = Y(p%list(1:n)) ! { dg-bogus "uninitialized" }
+ print *, sum(xx(1:n))
+ end if
+
+ end subroutine
+
+end module
low = lower_bound_in_type (type, type);
high = upper_bound_in_type (type, type);
+ wide_int minv, maxv;
+ if (get_range_info (def, &minv, &maxv) == VR_RANGE)
+ {
+ low = wide_int_to_tree (type, minv);
+ high = wide_int_to_tree (type, maxv);
+ }
record_nonwrapping_iv (loop, base, step, stmt, low, high, false, true);
}