public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "amonakov at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/108229] [13 Regression] unprofitable STV transform since r13-4873-g0b2c1369d035e928 Date: Wed, 28 Dec 2022 10:37:22 +0000 [thread overview] Message-ID: <bug-108229-4-erTSOAaBmr@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-108229-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108229 --- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Thank you! I considered this unprofitable for these reasons: 1. As you said, the code grows in size, but the speed benefit is not clear. 2. The transform converts load+add operations in a loop, and their final uses outside of the loop. How does the costing work in this case, i.e. how are changes for the more frequently executed instructions are weighted against changes for the instructions that will be executed once? 3. The scalar 'add reg, mem' instruction results in one micro-fused uop that is handled as one uop during renaming (one of narrowest point in the pipeline). It is then issued on two execution units (for the load and for the add). 4. On AMD, there are separate fp/simd pipes, so when the code is already simd-heavy as in this example, STV offloads instructions from the integer pipes to the possibly already-busy simd/fp pipes. That said, the transformed portion is small relative to the inner loop of the example, so benchmarking yesterday's trunk with/without -mno-stv on Zen 2, I get: 27.26 bytes/cycle, 3.07 instruction/cycle vs. 26.01 bytes/cycle, 2.97 instruction/cycle So it's not the end of the world for this particular example, but I wanted to raise the issue in case there's a costing problem in STV that needs correcting.
next prev parent reply other threads:[~2022-12-28 10:37 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-26 17:38 [Bug target/108229] New: [13 Regression] unprofitable STV transform amonakov at gcc dot gnu.org 2022-12-27 12:06 ` [Bug target/108229] [13 Regression] unprofitable STV transform since r13-4873-g0b2c1369d035e928 marxin at gcc dot gnu.org 2022-12-28 9:40 ` roger at nextmovesoftware dot com 2022-12-28 10:37 ` amonakov at gcc dot gnu.org [this message] 2023-01-03 13:38 ` cvs-commit at gcc dot gnu.org 2023-01-07 9:45 ` roger at nextmovesoftware dot com
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=bug-108229-4-erTSOAaBmr@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /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: linkBe 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).