i386.md (ffs<mode>2): Generate CCCmode flags register for TARGET_BMI.
authorUros Bizjak <ubizjak@gmail.com>
Thu, 15 Dec 2016 22:23:46 +0000 (23:23 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 15 Dec 2016 22:23:46 +0000 (23:23 +0100)
commitbdb5177687ae4ef0b34d855261af6690dee4bc64
treec2400582c09844d051355f609504351ea3d8dfb5
parentf3e1097bc643f476d5cd0d697c186c15b23ae702
i386.md (ffs<mode>2): Generate CCCmode flags register for TARGET_BMI.

* config/i386/i386.md (ffs<mode>2): Generate CCCmode flags register
for TARGET_BMI.
(ffssi2_no_cmove): Ditto.
(*tzcnt<mode>_1_falsedep_1): New insn_and_split pattern.
(*tzcnt<mode>_1_falsedep): New insn pattern.

(LT_ZCNT): New mode iterator.
(lt_zcnt): New mode attribute.
(lt_zcnt_type): New mode attribute.
(<lt_zcnt>_<mode>): Macroize expander from bmi_tzcnt_<mode> and
lzcnt_<mode> using LT_ZCNT mode iterator.
(*<lt_zcnt>_<mode>_falsedep_1): Macroize insn from
*bmi_tzcnt_<mode>_falsedep_1 and *lzcnt_<mode>_falsedep_1
using LT_ZCNT mode iterator.
(*<lt_zcnt>_<mode>_falsedep): Macroize insn from
*bmi_tzcnt_<mode>_falsedep and *lzcnt_<mode>_falsedep
using LT_ZCNT mode iterator.
(*<lt_zcnt>_<mode>): Macroize insn from *bmi_tzcnt_<mode>
and *lzcnt_<mode> using LT_ZCNT mode iterator.
* config/i386/i386-builtin.def (__builtin_ia32_tzcnt_u16)
(__builtin_ia32_tzcnt_u32, __builtin_ia32_tzcnt_u64, __builtin_ctzs):
Update for rename.

From-SVN: r243727
gcc/ChangeLog
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386.md