From: Michael Meissner <meissner@linux.ibm.com>
To: gcc-patches@gcc.gnu.org,
Michael Meissner <meissner@linux.ibm.com>,
Segher Boessenkool <segher@kernel.crashing.org>,
"Kewen.Lin" <linkw@linux.ibm.com>,
David Edelsohn <dje.gcc@gmail.com>,
Peter Bergner <bergner@linux.ibm.com>,
Will Schmidt <will_schmidt@vnet.ibm.com>
Subject: [PATCH, 0/3] Disable generating store vector pair.
Date: Mon, 6 Jun 2022 20:53:10 -0400 [thread overview]
Message-ID: <Yp6hdmJqK1oDsbzB@toto.the-meissners.org> (raw)
[PATCH 0/3] Disable generating store vector pair.
Testing has revealed that the power10 has some slowdowns if the store vector
pair instruction is generated in some cases. This patch disables generating
the store vector pair instructions (stxvp, pstxvp, and stxvpx) unless an
undocumented switch (-mstore-vector-pair) is used. It is anticipated that
perhaps with future machines we can generate the store vector pair instruction.
This patch does a split after reload to convert a store vector pair
instruction into a pair of store vector instructions.
We do continue to generate the load vector pair instructions (lxvp, plxvp,
and lxvpx), since we have found that in code that heavily uses MMA, it is
still a win to generate the load vector pair instructions.
There are 3 patches in this set:
1) Disable the generation of the stxvp, stxvpx, and pstxvp instructions
for stores of OOmode and XOmodes.
2) Disable block moves from generating load/store vector pair
instructions unless the the store vector pair instructions are
being generted. With patch #1 installed, the block move code will
generate a load vector pair and store vector pair combination, but
after reload, the store vector pair instructions are split into two
separate store vector instructions.
2) Fix up the mma test suite to deal with store vector pair not being
generated by default. In most of the tests, I just deleted the lines
that counted the store vector pair instructions. In a few of the
tests, I explicitly passed the -mstore-vector-pair instruction since
the point of the test was to generate store vector pair instructions.
There is a 4th patch that Peter Bergner will be developing. This patch will
update the built-in functions for load and store vector pair, so that these
built-ins will always generate the lxvp and stxvp instructions.
I have built bootstrap compilers and run the regression tests on three
different systems:
1) Little endian power10 using the --with-cpu=power10 option.
2) Little endian power9 using the --with-cpu=power9 option.
3) Big endian power8 using the --with-cpu=power8 option. On this system,
both 64-bit and 32-bit code generation was tested.
Once all 3 patches have been applied, there are no regressions in the runs.
--
Michael Meissner, IBM
PO Box 98, Ayer, Massachusetts, USA, 01432
email: meissner@linux.ibm.com
next reply other threads:[~2022-06-07 0:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 0:53 Michael Meissner [this message]
2022-06-07 0:55 ` [PATCH 1/3] " Michael Meissner
2022-06-07 20:28 ` will schmidt
2022-06-07 21:17 ` Peter Bergner
2022-06-07 21:24 ` Segher Boessenkool
2022-06-08 0:59 ` Peter Bergner
2022-06-08 3:16 ` Michael Meissner
2022-06-08 14:49 ` will schmidt
2022-06-08 14:58 ` Peter Bergner
2022-06-07 23:20 ` Michael Meissner
2022-06-07 0:55 ` [PATCH 2/3] Disable generating load/store vector pairs for block copies Michael Meissner
2022-06-07 20:28 ` will schmidt
2022-06-07 0:56 ` [PATCH 3/3] Adjust MMA tests to account for no store vector pair Michael Meissner
2022-06-07 20:28 ` will schmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yp6hdmJqK1oDsbzB@toto.the-meissners.org \
--to=meissner@linux.ibm.com \
--cc=bergner@linux.ibm.com \
--cc=dje.gcc@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=linkw@linux.ibm.com \
--cc=segher@kernel.crashing.org \
--cc=will_schmidt@vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).