diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2014-08-18 20:00:52 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2014-08-18 20:00:52 +0200 |
commit | 374f5bf801f8487193ddd1e73027af1df8221f3e (patch) | |
tree | 7fec0943b3fc05b76acaabb85db4e1e275c7040e /gcc/combine.c | |
parent | d6b0bb1c4e7c811893ef7d97b3c446bcced1d82c (diff) | |
download | gcc-374f5bf801f8487193ddd1e73027af1df8221f3e.zip gcc-374f5bf801f8487193ddd1e73027af1df8221f3e.tar.gz gcc-374f5bf801f8487193ddd1e73027af1df8221f3e.tar.bz2 |
re PR target/62011 (False Data Dependency in popcnt instruction)
PR target/62011
* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
New tune flag.
* config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
* config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
(ffs<mode>2): Do not expand with tzcnt for
TARGET_AVOID_FALSE_DEP_FOR_BMI.
(ffssi2_no_cmove): Ditto.
(*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
(ctz<mode>2): New expander.
(*ctz<mode>2_falsedep_1): New insn_and_split pattern.
(*ctz<mode>2_falsedep): New insn.
(*ctz<mode>2): Rename from ctz<mode>2.
(clz<mode>2_lzcnt): New expander.
(*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
(*clz<mode>2_lzcnt_falsedep): New insn.
(*clz<mode>2): Rename from ctz<mode>2.
(popcount<mode>2): New expander.
(*popcount<mode>2_falsedep_1): New insn_and_split pattern.
(*popcount<mode>2_falsedep): New insn.
(*popcount<mode>2): Rename from ctz<mode>2.
(*popcount<mode>2_cmp): Remove.
(*popcountsi2_cmp_zext): Ditto.
From-SVN: r214112
Diffstat (limited to 'gcc/combine.c')
0 files changed, 0 insertions, 0 deletions