This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, Dec 2, 2016 at 5:30 PM, Jakub Jelinek <jakub@redhat.com> wrote: > On Fri, Dec 02, 2016 at 05:12:20PM +0100, Uros Bizjak wrote: >> >> This patch: >> >> 1) adds one_cmpldi2 pattern for stv purposes (which splits into two >> >> one_cmplsi2 after reload) >> >> 2) teaches the 32-bit stv pass to handle NOT (as xor all-ones) >> >> 3) renames the old *andndi3_doubleword to *andndi3_doubleword_bmi, as it >> >> is for -mbmi only, and adds another *andndi3_doubleword pattern that is >> >> meant to live just from combine till the stv pass, or worse case till >> >> following split1 pass when it is split back into not followed by and; >> >> this change makes it possible to use pandn in stv pass, even without >> >> -mbmi >> > >> > Please use attached (lightly tested) patch to implement point 3) >> > above. The patch splits insn after reload, as is the case with all STV >> > patterns. >> >> Now attached for real. > > Ok, I've checked in following patch (compared to your notes just added > xfail to the pr70322-2.c test scan-assembler), feel free to test your patch > and remove the xfail again. > > 2016-12-02 Jakub Jelinek <jakub@redhat.com> > > PR target/70322 > * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle > NOT. > (dimode_scalar_chain::compute_convert_gain): Likewise. > (dimode_scalar_chain::convert_insn): Likewise. > * config/i386/i386.md (*one_cmpldi2_doubleword): New > define_insn_and_split. > (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM. > > * gcc.target/i386/pr70322-1.c: New test. > * gcc.target/i386/pr70322-2.c: New test. > * gcc.target/i386/pr70322-3.c: New test. Attached to this message, please find the patch that finally implements PANDN generation for non-BMI targets. 2016-12-02 Uros Bizjak <ubizjak@gmail.com> PR target/70322 * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative and corresponding post-reload splitter. testsuite/ChangeLog: 2016-12-02 Uros Bizjak <ubizjak@gmail.com> PR target/70322 * gcc.target/i386/pr70322-2.c (dg-final): Remove xfail. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
Attachment:
p.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |