On Thu, Mar 17, 2016 at 3:36 PM, Kumar, Venkataramanan
<venkataramanan.ku...@amd.com> wrote:
> Hi Uros,
>
> The below patch changes the latency values for fp type load reservations.
>
> It passes normal bootstrap and bootstrap with BOOT_CFLAGS="-O2 -g - 
> march=znver1 -mno-clzero -mno-sha " on avx2 target.
> Also compiled and ran SPEC2006 with -march=znver1 and -Ofast .
>
> Ok for trunk?
>
> ChangeLog
> 2016-03-17  Venkataramanan Kumar  <venkataramanan.ku...@amd.com>
>
>         * config/i386/znver1.md : Fix latency for FP/SSE/AVX load type 
> reservations.

... Fix latencies of ...

OK.

Thanks,
Uros.

> ---snip---
> diff --git a/gcc/config/i386/znver1.md b/gcc/config/i386/znver1.md
> index 1d28c05..7db0562 100644
> --- a/gcc/config/i386/znver1.md
> +++ b/gcc/config/i386/znver1.md
> @@ -328,7 +328,7 @@
>                               (eq_attr "type" "fcmov"))
>                          "znver1-vector,znver1-fvector")
>
> -(define_insn_reservation "znver1_fp_mov_direct_load" 5
> +(define_insn_reservation "znver1_fp_mov_direct_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "znver1_decode" "direct")
>                                    (and (eq_attr "type" "fmov")
> @@ -349,7 +349,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp3")
>
> -(define_insn_reservation "znver1_fp_mov_double_load" 9
> +(define_insn_reservation "znver1_fp_mov_double_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "znver1_decode" "double")
>                                    (and (eq_attr "type" "fmov")
> @@ -386,7 +386,7 @@
>                                         (eq_attr "type" "fcmp"))))
>                          "znver1-double,znver1-fp0,znver1-fp2")
>
> -(define_insn_reservation "znver1_fp_fcmp_load" 6
> +(define_insn_reservation "znver1_fp_fcmp_load" 9
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "memory" "none")
>                                    (and (eq_attr "znver1_decode" "double")
> @@ -400,13 +400,13 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp0*5")
>
> -(define_insn_reservation "znver1_fp_op_mul_load" 9
> +(define_insn_reservation "znver1_fp_op_mul_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "fop,fmul")
>                                    (eq_attr "memory" "load")))
>                          "znver1-direct,znver1-load,znver1-fp0*5")
>
> -(define_insn_reservation "znver1_fp_op_imul_load" 13
> +(define_insn_reservation "znver1_fp_op_imul_load" 16
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "fop,fmul")
>                                    (and (eq_attr "fp_int_src" "true")
> @@ -419,13 +419,13 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp3*15")
>
> -(define_insn_reservation "znver1_fp_op_div_load" 19
> +(define_insn_reservation "znver1_fp_op_div_load" 22
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "fdiv")
>                                    (eq_attr "memory" "load")))
>                          "znver1-direct,znver1-load,znver1-fp3*15")
>
> -(define_insn_reservation "znver1_fp_op_idiv_load" 24
> +(define_insn_reservation "znver1_fp_op_idiv_load" 27
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "fdiv")
>                                    (and (eq_attr "fp_int_src" "true")
> @@ -444,7 +444,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3")
>
> -(define_insn_reservation "znver1_mmx_add_load" 5
> +(define_insn_reservation "znver1_mmx_add_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "mmxadd")
>                                    (eq_attr "memory" "load")))
> @@ -456,7 +456,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp0|znver1-fp3")
>
> -(define_insn_reservation "znver1_mmx_cmp_load" 5
> +(define_insn_reservation "znver1_mmx_cmp_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "mmxcmp")
>                                    (eq_attr "memory" "load")))
> @@ -468,7 +468,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp1|znver1-fp2")
>
> -(define_insn_reservation "znver1_mmx_cvt_pck_shuf_load" 5
> +(define_insn_reservation "znver1_mmx_cvt_pck_shuf_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1")
>                                    (eq_attr "memory" "load")))
> @@ -480,7 +480,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp2")
>
> -(define_insn_reservation "znver1_mmx_shift_move_load" 5
> +(define_insn_reservation "znver1_mmx_shift_move_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "mmxshft,mmxmov")
>                                    (eq_attr "memory" "load")))
> @@ -498,7 +498,7 @@
>                                    (eq_attr "memory" "none")))
>                           "znver1-direct,znver1-fp0*3")
>
> -(define_insn_reservation "znver1_mmx_load" 7
> +(define_insn_reservation "znver1_mmx_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "mmxmul")
>                                    (eq_attr "memory" "load")))
> @@ -511,7 +511,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fpu")
>
> -(define_insn_reservation "znver1_avx256_log_load" 5
> +(define_insn_reservation "znver1_avx256_log_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF,OI")
>                                    (and (eq_attr "type" "sselog")
> @@ -524,7 +524,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fpu")
>
> -(define_insn_reservation "znver1_sse_log_load" 5
> +(define_insn_reservation "znver1_sse_log_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "sselog")
>                                    (eq_attr "memory" "load")))
> @@ -537,7 +537,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp1|znver1-fp2")
>
> -(define_insn_reservation "znver1_avx256_log1_load" 5
> +(define_insn_reservation "znver1_avx256_log1_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF,OI")
>                                    (and (eq_attr "type" "sselog1")
> @@ -550,7 +550,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp1|znver1-fp2")
>
> -(define_insn_reservation "znver1_sse_log1_load" 5
> +(define_insn_reservation "znver1_sse_log1_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "sselog1")
>                                    (eq_attr "memory" "!none")))
> @@ -565,7 +565,7 @@
>                                                   (eq_attr "memory" 
> "none"))))))
>                          "znver1-direct,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_sse_comi_load" 5
> +(define_insn_reservation "znver1_sse_comi_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF")
>                                    (and (eq_attr "prefix" "!vex")
> @@ -583,7 +583,7 @@
>                                                   (eq_attr "memory" 
> "none"))))))
>                          "znver1-double,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_sse_comi_double_load" 7
> +(define_insn_reservation "znver1_sse_comi_double_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V4SF,V2DF,TI")
>                                    (and (eq_attr "prefix" "vex")
> @@ -600,7 +600,7 @@
>                                              (eq_attr "memory" "none")))))
>                          "znver1-direct,znver1-fp1|znver1-fp2")
>
> -(define_insn_reservation "znver1_sse_test_load" 5
> +(define_insn_reservation "znver1_sse_test_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")
>                                    (and (eq_attr "prefix_extra" "1")
> @@ -642,7 +642,7 @@
>                                         (eq_attr "memory" "store"))))
>                         "znver1-direct,znver1-fpu,znver1-store")
>
> -(define_insn_reservation "znver1_sseavx_mov_load" 5
> +(define_insn_reservation "znver1_sseavx_mov_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")
>                                    (and (eq_attr "type" "ssemov")
> @@ -663,7 +663,7 @@
>                                         (eq_attr "memory" "store"))))
>                          "znver1-double,znver1-fpu,znver1-store")
>
> -(define_insn_reservation "znver1_avx256_mov_load" 5
> +(define_insn_reservation "znver1_avx256_mov_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF,OI")
>                                    (and (eq_attr "type" "ssemov")
> @@ -678,7 +678,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp2|znver1-fp3")
>
> -(define_insn_reservation "znver1_sseavx_add_load" 7
> +(define_insn_reservation "znver1_sseavx_add_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")
>                                    (and (eq_attr "type" "sseadd")
> @@ -692,7 +692,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp2|znver1-fp3")
>
> -(define_insn_reservation "znver1_avx256_add_load" 7
> +(define_insn_reservation "znver1_avx256_add_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF,OI")
>                                    (and (eq_attr "type" "sseadd")
> @@ -706,7 +706,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_sseavx_fma_load" 9
> +(define_insn_reservation "znver1_sseavx_fma_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF")
>                                    (and (eq_attr "type" "ssemuladd")
> @@ -720,7 +720,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_avx256_fma_load" 9
> +(define_insn_reservation "znver1_avx256_fma_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF")
>                                    (and (eq_attr "type" "ssemuladd")
> @@ -734,7 +734,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3")
>
> -(define_insn_reservation "znver1_sseavx_iadd_load" 5
> +(define_insn_reservation "znver1_sseavx_iadd_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "DI,TI")
>                                    (and (eq_attr "type" "sseiadd")
> @@ -748,7 +748,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp0|znver1-fp1|znver1-fp3")
>
> -(define_insn_reservation "znver1_avx256_iadd_load" 5
> +(define_insn_reservation "znver1_avx256_iadd_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "OI")
>                                    (and (eq_attr "type" "sseiadd")
> @@ -756,7 +756,7 @@
>                          
> "znver1-double,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3")
>
>  ;; SSE conversions.
> -(define_insn_reservation "znver1_ssecvtsf_si_load" 9
> +(define_insn_reservation "znver1_ssecvtsf_si_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SI")
>                                    (and (eq_attr "type" "sseicvt")
> @@ -772,7 +772,7 @@
>                                              (eq_attr "memory" "none")))))
>                          "znver1-double,znver1-fp3,znver1-ieu0")
>
> -(define_insn_reservation "znver1_ssecvtdf_si_load" 9
> +(define_insn_reservation "znver1_ssecvtdf_si_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SI")
>                                    (and (eq_attr "type" "sseicvt")
> @@ -789,7 +789,7 @@
>                                    (eq_attr "memory" "none")))
>                          "znver1-direct,znver1-fp3")
>
> -(define_insn_reservation "znver1_ssecvt_load" 8
> +(define_insn_reservation "znver1_ssecvt_load" 11
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "type" "ssecvt")
>                                    (eq_attr "memory" "load")))
> @@ -803,7 +803,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp3*10")
>
> -(define_insn_reservation "znver1_ssediv_ss_ps_load" 14
> +(define_insn_reservation "znver1_ssediv_ss_ps_load" 17
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V4SF,SF")
>                                    (and (eq_attr "type" "ssediv")
> @@ -817,7 +817,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp3*13")
>
> -(define_insn_reservation "znver1_ssediv_sd_pd_load" 17
> +(define_insn_reservation "znver1_ssediv_sd_pd_load" 20
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V2DF,DF")
>                                    (and (eq_attr "type" "ssediv")
> @@ -831,7 +831,7 @@
>                                         (eq_attr "type" "ssediv"))))
>                          "znver1-double,znver1-fp3*12")
>
> -(define_insn_reservation "znver1_ssediv_avx256_ps_load" 16
> +(define_insn_reservation "znver1_ssediv_avx256_ps_load" 19
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF")
>                                    (and (eq_attr "type" "ssediv")
> @@ -845,7 +845,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp3*15")
>
> -(define_insn_reservation "znver1_ssediv_avx256_pd_load" 18
> +(define_insn_reservation "znver1_ssediv_avx256_pd_load" 22
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V4DF")
>                                    (and (eq_attr "type" "ssediv")
> @@ -859,7 +859,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,(znver1-fp0|znver1-fp1)*3")
>
> -(define_insn_reservation "znver1_ssemul_ss_ps_load" 7
> +(define_insn_reservation "znver1_ssemul_ss_ps_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V4SF,SF")
>                                    (and (eq_attr "type" "ssemul")
> @@ -873,7 +873,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,(znver1-fp0|znver1-fp1)*3")
>
> -(define_insn_reservation "znver1_ssemul_avx256_ps_load" 7
> +(define_insn_reservation "znver1_ssemul_avx256_ps_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF")
>                                    (and (eq_attr "type" "ssemul")
> @@ -887,7 +887,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,(znver1-fp0|znver1-fp1)*4")
>
> -(define_insn_reservation "znver1_ssemul_sd_pd_load" 8
> +(define_insn_reservation "znver1_ssemul_sd_pd_load" 11
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V2DF,DF")
>                                    (and (eq_attr "type" "ssemul")
> @@ -902,7 +902,7 @@
>                                              (eq_attr "memory" "none")))))
>                          "znver1-double,(znver1-fp0|znver1-fp1)*4")
>
> -(define_insn_reservation "znver1_ssemul_avx256_pd_load" 8
> +(define_insn_reservation "znver1_ssemul_avx256_pd_load" 12
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V4DF")
>                                    (and (eq_attr "type" "ssemul")
> @@ -924,14 +924,14 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp0*4")
>
> -(define_insn_reservation "znver1_sseimul_load" 7
> +(define_insn_reservation "znver1_sseimul_load" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "TI")
>                                    (and (eq_attr "type" "sseimul")
>                                         (eq_attr "memory" "load"))))
>                          "znver1-direct,znver1-load,znver1-fp0*3")
>
> -(define_insn_reservation "znver1_sseimul_avx256_load" 8
> +(define_insn_reservation "znver1_sseimul_avx256_load" 11
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "OI")
>                                    (and (eq_attr "type" "sseimul")
> @@ -945,7 +945,7 @@
>                                         (eq_attr "type" "sseimul"))))
>                          "znver1-direct,znver1-fp0*3")
>
> -(define_insn_reservation "znver1_sseimul_load_di" 7
> +(define_insn_reservation "znver1_sseimul_load_di" 10
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "DI")
>                                    (and (eq_attr "type" "sseimul")
> @@ -960,7 +960,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_sse_cmp_load" 5
> +(define_insn_reservation "znver1_sse_cmp_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "SF,DF,V4SF,V2DF")
>                                    (and (eq_attr "type" "ssecmp")
> @@ -974,7 +974,7 @@
>                                         (eq_attr "memory" "none"))))
>                         "znver1-double,znver1-fp0|znver1-fp1")
>
> -(define_insn_reservation "znver1_sse_cmp_avx256_load" 5
> +(define_insn_reservation "znver1_sse_cmp_avx256_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "V8SF,V4DF")
>                                    (and (eq_attr "type" "ssecmp")
> @@ -988,7 +988,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-direct,znver1-fp0|znver1-fp3")
>
> -(define_insn_reservation "znver1_sse_icmp_load" 5
> +(define_insn_reservation "znver1_sse_icmp_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "QI,HI,SI,DI,TI")
>                                    (and (eq_attr "type" "ssecmp")
> @@ -1002,7 +1002,7 @@
>                                         (eq_attr "memory" "none"))))
>                          "znver1-double,znver1-fp0|znver1-fp3")
>
> -(define_insn_reservation "znver1_sse_icmp_avx256_load" 5
> +(define_insn_reservation "znver1_sse_icmp_avx256_load" 8
>                          (and (eq_attr "cpu" "znver1")
>                               (and (eq_attr "mode" "OI")
>                                    (and (eq_attr "type" "ssecmp")
> ---snip---
>
> Regards,
> Venkat.

Reply via email to