Richard Earnshaw [2013-02-20 11:00]: > On 19/02/13 22:26, Tilman Sauerbeck wrote: > >I don't get why relaxing the restrictions for the > >andsi3_compare0_scratch pattern results in a mismatch for the > >zeroextractsi_compare0_scratch one. > > > >Any ideas? > > Because of the way combine works. It first tries to find a pattern that > doesn't have a clobber expression. It finds your new pattern and then uses > that. But since that can't handle immediates, reload then comes along and > forces the constant into a register. > > You need one pattern to deal with all the cases.
You mean the pattern should include calls to arm_split_constant() to do the loading itself, like e.g. the iorsi3 pattern does? Why can't we let reload do the load? FWIW the patch in http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00920.html works for my testcases, survives a bootstrap in qemu and passes the test suite (I only built/tested the C and C++ frontends though). Thanks, Tilman -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?