]>
git.ipfire.org Git - thirdparty/gcc.git/commit
Optimize vshuf{i,f}{32x4,64x2} ymm and vperm{i,f}128 ymm
vshuf{i,f}{32x4,64x2} ymm and vperm{i,f}128 ymm are 3 clk.
We can optimze them to vblend, vmovaps when there's no cross-lane.
gcc/ChangeLog:
* config/i386/sse.md: Modify insn vperm{i,f}
and vshuf{i,f}.
gcc/testsuite/ChangeLog:
* gcc.target/i386/avx512vl-vshuff32x4-1.c: Modify test.
* gcc.target/i386/avx512vl-vshuff64x2-1.c: Ditto.
* gcc.target/i386/avx512vl-vshufi32x4-1.c: Ditto.
* gcc.target/i386/avx512vl-vshufi64x2-1.c: Ditto.
* gcc.target/i386/opt-vperm-vshuf-1.c: New test.
* gcc.target/i386/opt-vperm-vshuf-2.c: Ditto.
* gcc.target/i386/opt-vperm-vshuf-3.c: Ditto.