[Bug target/106060] New: Inefficient constant broadcast on x86_64

2022-06-22 Thread goldstein.w.n at gmail dot com via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- ``` #include __m256i shouldnt_have_movabs () { return _mm256_set1_epi8 (123); } __m256i should_be_cmpeq_abs () { return _mm256_set1_epi8 (1); } __m256i

[Bug target/106038] x86_64 vectorization of ALU ops using xmm registers prematurely

2022-06-21 Thread goldstein.w.n at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106038 --- Comment #5 from Noah Goldstein --- (In reply to Richard Biener from comment #4) > The vectorizer does not anticipate store-merging performing "vectorization" > in GPRs and thus the scalar cost is off (it also doesn't anticipate the > differe

[Bug target/106038] x86_64 vectorization of ALU ops using xmm registers prematurely

2022-06-20 Thread goldstein.w.n at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106038 --- Comment #2 from Noah Goldstein --- (In reply to Andrew Pinski from comment #1) > Created attachment 53175 [details] > Testcase -O3 -march=icelake-client > > Next time attach the testcase and not link to godbolt without a testcase. Sorry.

[Bug target/106038] New: x86_64 vectorization of ALU ops using xmm registers prematurely

2022-06-20 Thread goldstein.w.n at gmail dot com via Gcc-bugs
Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- See: https://godbolt.org/z/YxWEn6Y65 Basically in all cases where the total amount of memory touched is <= 8 bytes (word s

[Bug c++/97642] New: Incorrect replacement of vmovdqu32 with vpblendd can cause fault

2020-10-30 Thread goldstein.w.n at gmail dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- GCC sometimes replaces _mm256_mask_loadu_epi32(__m256i src, __mask8 k, void const * mem_addr) // vmovdqu32 With vpblendd If

[Bug c/97156] New: Missed optimization [x86-64] tzcnt unnecessarily zeros out destination register

2020-09-21 Thread goldstein.w.n at gmail dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- See: https://gcc.godbolt.org/z/Y591MW void __attribute__((noinline)) tzncnt_not_just_return(uint64_t v) { for (; v

[Bug c/96753] New: Missed optimization [x86-64] on modulo when left side value is known to be greater than right side value

2020-08-23 Thread goldstein.w.n at gmail dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- uint64_t do_mod(uint64_t x, uint64_t y) { if(x >= y) { __builtin_unreacha

[Bug c/96632] New: missed-optimization with conditionally unsetting bits in memory.

2020-08-16 Thread goldstein.w.n at gmail dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: goldstein.w.n at gmail dot com Target Milestone: --- https://stackoverflow.com/questions/63432157/why-does-gcc-use-btq-in-conjunction-with-btcq-when-conditionally-set-a-bit-in-a