[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-12-15 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #10 from Jakub Jelinek --- For bar, the problem is that while vpmovdw is AVX512F, we actually recognize it only at combine time as vpermw (with selected exact permutation) combined with low part extraction. And vpermw is only

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-12-14 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #9 from Hongtao.liu --- (In reply to Andrew Pinski from comment #7) > With just -mavx512f we produce a bunch of instructions (looking like we went > to scalar mode) while LLVM is able to produce: > foo(short __vector(16)):

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-12-14 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #8 from Andrew Pinski --- foo is like a zero extend even.

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-12-14 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement --- Comment #7 from Andrew

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-16 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #6 from CVS Commits --- The master branch has been updated by hongtao Liu : https://gcc.gnu.org/g:faf2b6bc527dff31725dde55381c92688047 commit r12-2919-gfaf2b6bc527dff31725dde55381c92688047 Author: liuhongt Date: Mon Aug

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-12 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #5 from CVS Commits --- The master branch has been updated by hongtao Liu : https://gcc.gnu.org/g:95e1eca43d106d821720744ac6ff1f5df41a1e78 commit r12-2869-g95e1eca43d106d821720744ac6ff1f5df41a1e78 Author: liuhongt Date: Wed Aug

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-11 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #4 from Hongtao.liu --- But when upper bits is not used, vpmovdw version seems better. v4hi bar_dw_128 (v8hi x) { return __builtin_shufflevector (x, x, 0, 2, 4, 6);// 4, 5, 6, 7); } - vpshufb .LC2(%rip), %xmm0, %xmm0 +

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-11 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #3 from Hongtao.liu --- expand_vec_perm_1 is supposed to generate 1 instruction, but it doesn't consider load of const_vector, if we handle (In reply to Hongtao.liu from comment #2) > For foo, vmovdqa is avx_vec_concatv16si/2, and

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-10 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 --- Comment #2 from Hongtao.liu --- For foo, vmovdqa is avx_vec_concatv16si/2, and we can add define_insn_and_split to combine avx_vec_concatv16si/2 and avx512f_zero_extendv16hiv16si2_1, similar for other modes in pmovzx{bw,wd,dq}. For bar, we

[Bug target/101846] Improve __builtin_shufflevector emitted code

2021-08-10 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846 Richard Biener changed: What|Removed |Added Last reconfirmed||2021-08-10