diff mbox series

znver3 tuning part 3

Message ID 20210318161827.GC72776@kam.mff.cuni.cz
State New
Headers show
Series znver3 tuning part 3 | expand

Commit Message

Jan Hubicka March 18, 2021, 4:18 p.m. UTC
Hi,
this patch updates costs of integer divides to match actual latencies (the
scheduler model already does the right thing).  It is essentially no-op, since
we end up expanding idiv for all sensible constants, so this only may end
up disabling vectorization in some cases, but I did not find any such examples.
However in general it is better ot have actual latencies than random numbers.

Bootstrapped/regtested x86_64-linux, commited.

Honza

gcc/ChangeLog:

2021-03-18  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
	integer divides1.
diff mbox series

Patch

diff --git a/gcc/config/i386/x86-tune-costs.h b/gcc/config/i386/x86-tune-costs.h
index db03738313e..58b3b81985b 100644
--- a/gcc/config/i386/x86-tune-costs.h
+++ b/gcc/config/i386/x86-tune-costs.h
@@ -1741,13 +1741,11 @@  struct processor_costs znver3_cost = {
    COSTS_N_INSNS (3)},			/*			other.  */
   0,					/* cost of multiply per each bit
 					   set.  */
-   /* Depending on parameters, idiv can get faster on ryzen.  This is upper
-      bound.  */
-  {COSTS_N_INSNS (16),			/* cost of a divide/mod for QI.  */
-   COSTS_N_INSNS (22),			/* 			    HI.  */
-   COSTS_N_INSNS (30),			/*			    SI.  */
-   COSTS_N_INSNS (45),			/*			    DI.  */
-   COSTS_N_INSNS (45)},			/*			    other.  */
+  {COSTS_N_INSNS (9),			/* cost of a divide/mod for QI.  */
+   COSTS_N_INSNS (10),			/* 			    HI.  */
+   COSTS_N_INSNS (12),			/*			    SI.  */
+   COSTS_N_INSNS (17),			/*			    DI.  */
+   COSTS_N_INSNS (17)},			/*			    other.  */
   COSTS_N_INSNS (1),			/* cost of movsx.  */
   COSTS_N_INSNS (1),			/* cost of movzx.  */
   8,					/* "large" insn.  */