[Bug target/105782] New: [sparc64] Emission of questionable movxtod/movdtox with -mvis3

koachan+gccbugs at protonmail dot com gcc-bugzilla@gcc.gnu.org
Mon May 30 23:22:51 GMT 2022


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

            Bug ID: 105782
           Summary: [sparc64] Emission of questionable movxtod/movdtox
                    with -mvis3
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: koachan+gccbugs at protonmail dot com
  Target Milestone: ---

Created attachment 53055
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53055&action=edit
The problematic function, adapted for standalone compilation

Hello, I found out that the blake2b implementation in monocypher runs much
slower on a SPARC T4 when compiled with `-O3 -mvis3`, as opposed to plain
`-O3`:

With plain -O3:  Blake2b : 184 megabytes  per second
With -O3 -mvis3: Blake2b : 118 megabytes  per second

(Results are from monocypher's `make speed` benchmark)

Looking at the generated assembly, it seems that when the code is compiled with
-mvis3, GCC emits a lot of questionable `movxtod`/`movdtox` instructions?

I'm using sparc64-linux-gnu-gcc (GCC) 12.1.0.


More information about the Gcc-bugs mailing list