On Tue, Mar 10, 2015 at 8:14 PM, Jakub Jelinek <ja...@redhat.com> wrote:
> The following testcase fails, because the RTL pattern of bmi2_bzhi_*3 > didn't really model (not even close) what the instruction was doing, > so when combiner attempted to simplify it for constant arguments, it > simplified it into something wrong. > > Fixed thusly, verified we don't regress on combining memory > for the middle operand, bootstrapped/regtested on x86_64-linux and > i686-linux (both Haswell-E), ok for trunk (and eventually backporting it)? > > 2015-03-10 Jakub Jelinek <ja...@redhat.com> > > PR target/65368 > * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn, > new define_expand. > (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns. > > * gcc.target/i386/bmi2-bzhi-2.c: New test. OK for mainline and release branches. Thanks, Uros.