Fix latencies in znver1.md
authorVenkataramanan Kumar <venkataramanan.kumar@amd.com>
Fri, 18 Mar 2016 07:49:00 +0000 (07:49 +0000)
committerVenkataramanan Kumar <vekumar@gcc.gnu.org>
Fri, 18 Mar 2016 07:49:00 +0000 (07:49 +0000)
2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

        * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
        load type reservations.

From-SVN: r234318

gcc/ChangeLog
gcc/config/i386/znver1.md

index 7c0f325fea40d7ec2ad39a770313c0f3a7e0e947..115d77871a6424717765bfddbb84964926304dc4 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
+
+       * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
+       load type reservations.
+
 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
 
        PR target/70188
index 1d28c056a15dd9c56a8716c1e03d35ca96482684..7db0562a07442661ca17b1c717e5f531cfdbd951 100644 (file)
                              (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" 
                         (and (eq_attr "cpu" "znver1")
                              (and (eq_attr "znver1_decode" "direct")
                                   (and (eq_attr "type" "fmov")
                                        (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")
                                        (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")
                                   (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")
                                   (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")
                                   (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")))
                                   (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")))
                                   (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")))
                                   (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")))
                                   (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")))
                                        (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")
                                   (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")))
                                        (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")
                                   (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")))
                                                  (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")
                                                  (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")
                                             (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                         "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")
                                             (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")
                                   (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")))
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                             (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")
                                        (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")