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.