[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-12-02 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #13 from Hongtao.liu --- (In reply to Richard Biener from comment #10) > Hmm, but > > DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary) > > so there's clearly a mismatch between either the vectorizers

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-12-02 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #12 from CVS Commits --- The master branch has been updated by hongtao Liu : https://gcc.gnu.org/g:81d590760c31e11e3a09135f4e182aea232035f2 commit r11-5693-g81d590760c31e11e3a09135f4e182aea232035f2 Author: Hongyu Wang Date: Wed

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-12 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #11 from Hongtao.liu --- A patch is posted at https://gcc.gnu.org/pipermail/gcc-patches/2020-November/558777.html

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-11 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 Richard Biener changed: What|Removed |Added CC||rsandifo at gcc dot gnu.org ---

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-11 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #9 from Hongtao.liu --- > I guess that the vectorized popcount IFN is defined to be VnDI -> VnDI > but we want to have VnSImode results. This means the instruction is > wrongly modeled in vectorized form? > Yes, because we have

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #8 from Uroš Bizjak --- (In reply to Richard Biener from comment #4) > What's missing is middle-end folding support to narrow popcount to the > appropriate internal function call with byte/half-word width when target > support > is

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-10 Thread tkoenig at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 Thomas Koenig changed: What|Removed |Added CC||tkoenig at gcc dot gnu.org --- Comment

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-10 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 Richard Biener changed: What|Removed |Added CC||rguenth at gcc dot gnu.org --- Comment

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-10 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #5 from Hongtao.liu --- (In reply to Richard Biener from comment #4) > What's missing is middle-end folding support to narrow popcount to the > appropriate internal function call with byte/half-word width when target > support > is

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-10 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-11-10 Ever confirmed|0

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-09 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #3 from Hongtao.liu --- > But for vector byte/word/quadword, vectorizer still use vpopcntd, but not > vpopcnt{b,w,q}, missing corresponding ifn? We don't have __builtin_popcount{w,b}, but we have __builtin_popcountl. for testcase

[Bug target/97770] [ICELAKE]Missing vectorization for vpopcnt

2020-11-09 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770 --- Comment #2 from Hongtao.liu --- After adding expander, successfully vectorize the loop. --- diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index b153a87fb98..e8159997c40 100644 --- a/gcc/config/i386/sse.md +++