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

2021-01-03 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #14 from Hongtao.liu --- *** Bug 96891 has been marked as a duplicate of this bug. ***

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

2020-12-22 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #13 from Hongtao.liu --- 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" predica

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

2020-12-21 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #12 from Hongtao.liu --- (In reply to Jakub Jelinek from comment #11) > I'm not sure about the knot changes, isn't that too risky at least at this > point? > I mean, can't we instead just match what knot emits? > As indicated in http

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

2020-12-21 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #11 from Jakub Jelinek --- I'm not sure about the knot changes, isn't that too risky at least at this point? I mean, can't we instead just match what knot emits? As for the new predicate, I think we should check CONST_DOUBLE_AS_FLOAT

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

2020-12-21 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #10 from Hongtao.liu --- Created attachment 49819 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49819&action=edit Incremental to gcc11-pr99348.patch Update patch.

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

2020-12-21 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #9 from Hongtao.liu --- (In reply to Jakub Jelinek from comment #8) > Created attachment 49806 [details] > gcc11-pr98348.patch > > So, if we go for GCC11 the way of pre-reload define_insn_and_split, this is > some incremental unteste

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

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #8 from Jakub Jelinek --- Created attachment 49806 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49806&action=edit gcc11-pr98348.patch So, if we go for GCC11 the way of pre-reload define_insn_and_split, this is some incrementa

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

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #7 from Jakub Jelinek --- Seems the adjustment for last UNSPEC_PCMP operand between all_ones, const0 and const0, all_ones is GEN_INT (INTVAL (operands[3]) ^ 4).

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

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #6 from Jakub Jelinek --- In the light of the recent discussions I've been wondering about doing it as combine splitters only, like roughly: --- sse.md.jj 2020-12-03 10:04:35.862093285 +0100 +++ sse.md 2020-12-19 11:00:14.27214

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

2020-12-18 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #5 from Hongtao.liu --- Created attachment 49804 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49804&action=edit This patch can fix this issue I'm testing the patch.

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

2020-12-17 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #4 from Hongtao.liu --- (In reply to Jakub Jelinek from comment #3) > Started with r10-5250-g8b905e9b0c09530c0f660563540257f3d181c2ac > Perhaps peephole2s or something similar to catch that? A patch(with peephole2) is posted at https

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

2020-12-17 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3

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

2020-12-17 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 H.J. Lu changed: What|Removed |Added CC||crazylht at gmail dot com, |

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

2020-12-17 Thread danielhanchen at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348 --- Comment #1 from Daniel Han-Chen --- I also just noticed that in GCC 10, an extra movdqa is done, which is also not necessary.