2016-09-30 Richard Biener <rguenther@suse.de>
* tree-vrp.c (intersect_ranges): If we failed to handle
the intersection choose a constant singleton range if available.
From-SVN: r240647
+2016-09-30 Richard Biener <rguenther@suse.de>
+
+ * tree-vrp.c (intersect_ranges): If we failed to handle
+ the intersection choose a constant singleton range if available.
+
2016-09-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/77399
/* As a fallback simply use { *VRTYPE, *VR0MIN, *VR0MAX } as
result for the intersection. That's always a conservative
- correct estimate. */
+ correct estimate unless VR1 is a constant singleton range
+ in which case we choose that. */
+ if (vr1type == VR_RANGE
+ && is_gimple_min_invariant (vr1min)
+ && vrp_operand_equal_p (vr1min, vr1max))
+ {
+ *vr0type = vr1type;
+ *vr0min = vr1min;
+ *vr0max = vr1max;
+ }
return;
}