[Bug c++/98348] GCC 10.2 AVX512 Mask regression from GCC 9

crazylht at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Dec 22 09:14:41 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348

--- Comment #13 from Hongtao.liu <crazylht at gmail dot com> ---
Created attachment 49832
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49832&action=edit
gcc11-pr98348_v3.patch

1. Use REAL_VALUE_TO_TARGET_SINGLE/DOUBLE in the
"float_vector_all_ones_operands" predicate, it should be cheaper than
lower_subreg?

2. Combine failed to match (vec_merge (vector_all_ones_operand)
(const0_operand) (knot mask)) even the corresponding pattern exists, peephole2
could be ok for this but abviously not the best solution.
 IMHO the changes about knot should be functionality ok, and to avoid some
potential performance issue, I extraly add some new define_insn_and_splits to
negate the comparison code when there's not in the result(Dig the hole deeper
and deeper:(). The patch survive regtest and bootstrap on both trunk and
rlease/gcc-10 branch.


More information about the Gcc-bugs mailing list