2011/7/8 Richard Guenther <richard.guent...@gmail.com>: > On Thu, Jul 7, 2011 at 6:07 PM, Kai Tietz <ktiet...@googlemail.com> wrote: >> Index: gcc-head/gcc/tree-vrp.c >> @@ -2232,6 +2235,7 @@ extract_range_from_binary_expr (value_ra >> some cases. */ >> if (code != BIT_AND_EXPR >> && code != TRUTH_AND_EXPR >> + && code != BIT_IOR_EXPR > > Huh? So how would VARYING | x ever produce something better > than VARYING?
Because BIT_IOR_EXPR might be a 1-bit precision operation and so equivalent to TRUTH_OR_EXPR. It might be that BIT_XOR_EXPR is worth to be added here too, as for one-bit precision typed expression it is equivalent to TRUTH_XOR_EXPR. Kai