[PATCH] Fix x86 bmi2 bzhi patterns (PR target/65368)

Uros Bizjak ubizjak@gmail.com
Tue Mar 10 19:26:00 GMT 2015


On Tue, Mar 10, 2015 at 8:14 PM, Jakub Jelinek <jakub@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  <jakub@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.



More information about the Gcc-patches mailing list