On Fri, Feb 26, 2016 at 12:51:10PM -0800, Richard Henderson wrote: > > What is the rs6000 ICE? > > The simplify-rtx.c patch causes (reg:M ca) to get sorted to a different spot > in > the (plus (plus r1 r2) r3) chain than the rs6000 backend expects, producing an > ICE due to an unrecognizable insn.
So it changes existing RTL to a form that does not pass recog. Uh. > How do you imagine the rs6000 change will regress codegen? Combine of sequences with double-length adds. > >> ca_operand doesn't work as written, since CA_REGNO is not an available > >> register, and thus doesn't satisfy register_operand. > > > > Yes, curious. But when it was written it *did* match. Huh. > > It probably started to fail with r181760, back in 2011. But the predicate > wasn't much used in the rs6000 backend, so I guess it hadn't really mattered. It failed more recently though, that's what r215429 is about. Oh, before that it did test just the code, didn't use register_operand. *facepalm* Segher