On Tue, Oct 25, 2016 at 11:40 AM, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > This improves a few things in change_zero_ext. Firstly, it should use > the passed in pattern in recog_for_combine, not the pattern of the insn > (they are not the same if the whole pattern was replaced). Secondly, > it handled zero_ext of a subreg, but with hard registers we do not get > a subreg, instead the mode of the reg is changed. So this handles that. > Thirdly, after changing a zero_ext to an AND, the resulting RTL may become > non-canonical, like (ior (ashift ..) (and ..)); the AND should be first, > it is commutative. And lastly, zero_extract as a set_dest wasn't handled > at all, but now it is. > > This fixes the testcase in PR71847, and improves code generation in some > other edge cases too. > > Tested on powerpc64-linux {-m32,-m64}; I'll also test it on x86 and > will build lots of crosses before committing.
Hi Segher, This causes failure @ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78186 It includes how to report it, could you please have a look? Thanks. Thanks, Bin