[Bug target/93588] Vectorized load followed by FMA pessimizes on Haswell from version 8.1
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Feb 7 17:00:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93588
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
It is because load/store costs of vector registers for register allocator
are too low. This patch fixes it:
diff --git a/gcc/config/i386/x86-tune-costs.h
b/gcc/config/i386/x86-tune-costs.h
index c73917e5a62..54b9dad932c 100644
--- a/gcc/config/i386/x86-tune-costs.h
+++ b/gcc/config/i386/x86-tune-costs.h
@@ -2574,9 +2574,9 @@ struct processor_costs core_cost = {
{6, 6}, /* cost of storing MMX registers
in SImode and DImode */
2, 2, 4, /* cost of moving XMM,YMM,ZMM register
*/
- {6, 6, 6, 6, 12}, /* cost of loading SSE registers
+ {6, 6, 6, 10, 20}, /* cost of loading SSE registers
in 32,64,128,256 and 512-bit */
- {6, 6, 6, 6, 12}, /* cost of storing SSE registers
+ {6, 6, 6, 12, 24}, /* cost of storing SSE registers
in 32,64,128,256 and 512-bit */
6, 6, /* SSE->integer and
integer->SSE moves */
/* End of register allocator costs. */
More information about the Gcc-bugs
mailing list