On Tue, Jun 02, 2015 at 11:28:09AM -0500, Segher Boessenkool wrote: > On Tue, Jun 02, 2015 at 08:49:37AM +0930, Alan Modra wrote: > > but and64_2_operand doesn't include all of and_operand! > > Maybe I'm slow today, but I don't see it? Do you have an example?
I need to get new glasses. That's the best excuse I can come up with at short notice. :) mask64_2_operand, used by and64_2_operand, does indeed cover all of mask_operand and mask64_operand. Even so, the predicate deserves to die. > > > > get rid of WORD_REGISTER_OPERATIONS, > > > > > > rs6000 should not define it. What e.g. does it mean for mullw? Or, > > > worse, mulhw? Pretty much anything with "w" in its name is problematic. > > > > In many places WORD_REGISTER_OPERATIONS is used, it is saying "don't > > trust the high bits". At the moment we definitely do need it defined! > > I don't see that either; do you have a pointer for me? The first occurrence in combine.c looks like such a place to me. Also the first one in rtlanal.c:nonzero_bits1. -- Alan Modra Australia Development Lab, IBM