]> git.ipfire.org Git - thirdparty/gcc.git/commit
Optimize v4si broadcast for noavx512vl.
authorliuhongt <hongtao.liu@intel.com>
Thu, 3 Mar 2022 05:31:39 +0000 (13:31 +0800)
committerliuhongt <hongtao.liu@intel.com>
Tue, 8 Mar 2022 01:02:05 +0000 (09:02 +0800)
commitb1a741a03041782b34effcb820fbe19ba41a3b8f
tree6a29c55f51928c7394f18f1edb88a9c67c2e3b54
parente6533e2ebec964e77d3a2462abbabd214d677552
Optimize v4si broadcast for noavx512vl.

This will enable below

-       vbroadcastss    .LC1(%rip), %xmm0
+       movl    $-45, %edx
+       vmovd   %edx, %xmm0
+       vpshufd $0, %xmm0, %xmm0

According to microbenchmark, it's faster than broadcast from memory
for TARGET_INTER_UNIT_MOVES_TO_VEC.

gcc/ChangeLog:

* config/i386/sse.md (*vec_dupv4si): Disable memory operand
for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr100865-8a.c: Adjust testcase.
* gcc.target/i386/pr100865-8c.c: Ditto.
* gcc.target/i386/pr100865-9c.c: Ditto.
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/pr100865-8a.c
gcc/testsuite/gcc.target/i386/pr100865-8c.c
gcc/testsuite/gcc.target/i386/pr100865-9c.c