[Bug target/88972] popcnt of limited 128-bit number with unnecessary zeroing

2019-01-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88972

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target||x86_64-*-*, i?86-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-01-22
  Component|tree-optimization   |target
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Err, __builtin_popcount has an integer argument so you call popcount on
(int)m.  The reason must be different.

(insn 17 16 26 4 (parallel [
(set (reg:SI 88 [  ])
(popcount:SI (subreg:SI (reg/v:TI 89 [ m ]) 0)))
(clobber (reg:CC 17 flags))
]) "t.c":4 -1
 (nil))

[Bug target/88972] popcnt of limited 128-bit number with unnecessary zeroing

2019-01-22 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88972

Uroš Bizjak  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Uroš Bizjak  ---
This is by design.

/* X86_TUNE_AVOID_FALSE_DEP_FOR_BMI: Avoid false dependency
   for bit-manipulation instructions.  */
DEF_TUNE (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, "avoid_false_dep_for_bmi",
  m_SANDYBRIDGE | m_CORE_AVX2 | m_GENERIC)