http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55936
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Equivalences should instead of refering to SSA names (and their current value-range) refer to value-ranges (have a hashtable of value-ranges and an array we can record indexes of). Equivalences should be added exclusively by intersect_ranges when that doesn't produce a precise result. Alternatively as a hack to preserve the assert range we could add an SSA name temporarily to hold it and equivalence to that.