[Bug target/100704] Vector register isn't used to push BLKmode argument onto stack

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun May 23 12:48:54 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100704

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |patch
   Target Milestone|---                         |12.0
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-05-23
                URL|                            |https://gcc.gnu.org/piperma
                   |                            |il/gcc-patches/2021-May/571
                   |                            |027.html

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
Here is a micro benchmark of push vs vector load/store:

https://gitlab.com/x86-benchmarks/microbenchmark/-/tree/push

[hjl@gnu-cfl-2 microbenchmark]$ make
gcc -g -I. -O2   -c -o test.o test.c
gcc -g -I. -O2   -c -o push.o push.c
/usr/gcc-12.0.0-x32-push/bin/gcc -g -I. -O2 -Dmove=move128 -mno-push-args -c -o
move128.o move.c
/usr/gcc-12.0.0-x32-push/bin/gcc -g -I. -O2 -Dmove=move256 -mavx2
-mno-push-args -c -o move256.o move.c
gcc -o test test.o push.o move128.o move256.o
./test
push   : 213630
move128: 174842
move256: 155407
[hjl@gnu-cfl-2 microbenchmark]$ 

push is slower than vector load/store.

A patch is posted at

https://gcc.gnu.org/pipermail/gcc-patches/2021-May/571027.html


More information about the Gcc-bugs mailing list