LCOV - code coverage report
Current view: top level - gcc/config/i386 - c86-4g-m7.md Coverage Total Hit
Test: gcc.info Lines: 45.7 % 162 74
Test Date: 2026-06-20 15:32:29 Functions: - 0 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : ;; Copyright (C) 2026 Free Software Foundation, Inc.
       2              : ;;
       3              : ;; This file is part of GCC.
       4              : ;;
       5              : ;; GCC is free software; you can redistribute it and/or modify
       6              : ;; it under the terms of the GNU General Public License as published by
       7              : ;; the Free Software Foundation; either version 3, or (at your option)
       8              : ;; any later version.
       9              : ;;
      10              : ;; GCC is distributed in the hope that it will be useful,
      11              : ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
      12              : ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13              : ;; GNU General Public License for more details.
      14              : ;;
      15              : ;; You should have received a copy of the GNU General Public License
      16              : ;; along with GCC; see the file COPYING3.  If not see
      17              : ;; <http://www.gnu.org/licenses/>.
      18              : ;;
      19              : 
      20              : ;; HYGON c86-4g-m7 Scheduling
      21              : ;; Modeling automatons for decoders, integer execution pipes,
      22              : ;; AGU pipes, branch, floating point execution, fp store units,
      23              : ;; integer and floating point dividers.  Split fpu1 and fpu3
      24              : ;; into their own automata to keep these units independent
      25              : ;; without increasing the main c86_4g_m7_fpu state space.
      26              : (define_automaton "c86_4g_m7, c86_4g_m7_ieu, c86_4g_m7_agu, c86_4g_m7_fpu02, c86_4g_m7_fpu13, c86_4g_m7_idiv, c86_4g_m7_fdiv")
      27              : 
      28              : ;; Decoders unit has 4 decoders and all of them can decode fast path
      29              : ;; and vector type instructions.
      30              : (define_cpu_unit "c86-4g-m7-decode0" "c86_4g_m7")
      31              : (define_cpu_unit "c86-4g-m7-decode1" "c86_4g_m7")
      32              : (define_cpu_unit "c86-4g-m7-decode2" "c86_4g_m7")
      33              : (define_cpu_unit "c86-4g-m7-decode3" "c86_4g_m7")
      34              : 
      35              : ;; Currently blocking all decoders for vector path instructions as
      36              : ;; they are dispatched separately as microcode sequence.
      37              : (define_reservation "c86-4g-m7-vector" "c86-4g-m7-decode0+c86-4g-m7-decode1+c86-4g-m7-decode2+c86-4g-m7-decode3")
      38              : 
      39              : ;; Direct instructions can be issued to any of the four decoders.
      40              : (define_reservation "c86-4g-m7-direct" "c86-4g-m7-decode0|c86-4g-m7-decode1|c86-4g-m7-decode2|c86-4g-m7-decode3")
      41              : 
      42              : ;; Fix me: Need to revisit this later to simulate fast path double behavior.
      43              : (define_reservation "c86-4g-m7-double" "c86-4g-m7-direct")
      44              : 
      45              : ;; Integer unit 4 ALU pipes.
      46              : (define_cpu_unit "c86-4g-m7-ieu0" "c86_4g_m7_ieu")
      47              : (define_cpu_unit "c86-4g-m7-ieu1" "c86_4g_m7_ieu")
      48              : (define_cpu_unit "c86-4g-m7-ieu2" "c86_4g_m7_ieu")
      49              : (define_cpu_unit "c86-4g-m7-ieu3" "c86_4g_m7_ieu")
      50              : 
      51              : ;; One separated integer divider.
      52              : (define_cpu_unit "c86-4g-m7-idiv" "c86_4g_m7_idiv")
      53              : 
      54              : ;; c86-4g-m7 has an additional branch unit.
      55              : (define_cpu_unit "c86-4g-m7-bru0" "c86_4g_m7_ieu")
      56              : (define_reservation "c86-4g-m7-ieu" "c86-4g-m7-ieu0|c86-4g-m7-ieu1|c86-4g-m7-ieu2|c86-4g-m7-ieu3")
      57              : 
      58              : ;; 3 AGU pipes in c86-4g-m7
      59              : (define_cpu_unit "c86-4g-m7-agu0" "c86_4g_m7_agu")
      60              : (define_cpu_unit "c86-4g-m7-agu1" "c86_4g_m7_agu")
      61              : (define_cpu_unit "c86-4g-m7-agu2" "c86_4g_m7_agu")
      62              : (define_reservation "c86-4g-m7-agu-reserve" "c86-4g-m7-agu0|c86-4g-m7-agu1|c86-4g-m7-agu2")
      63              : 
      64              : ;; Load is 4 cycles.  We do not model reservation of load unit.
      65              : (define_reservation "c86-4g-m7-load" "c86-4g-m7-agu-reserve")
      66              : (define_reservation "c86-4g-m7-store" "c86-4g-m7-agu-reserve")
      67              : 
      68              : ;; vectorpath (microcoded) instructions are single issue instructions.
      69              : ;; So, they occupy all the integer units.
      70              : (define_reservation "c86-4g-m7-ivector" "c86-4g-m7-ieu0+c86-4g-m7-ieu1
      71              :                                          +c86-4g-m7-ieu2+c86-4g-m7-ieu3+c86-4g-m7-bru0
      72              :                                          +c86-4g-m7-agu0+c86-4g-m7-agu1+c86-4g-m7-agu2")
      73              : 
      74              : ;; Floating point unit 4 FP pipes.
      75              : (define_cpu_unit "c86-4g-m7-fpu0" "c86_4g_m7_fpu02")
      76              : (define_cpu_unit "c86-4g-m7-fpu1" "c86_4g_m7_fpu13")
      77              : (define_cpu_unit "c86-4g-m7-fpu2" "c86_4g_m7_fpu02")
      78              : (define_cpu_unit "c86-4g-m7-fpu3" "c86_4g_m7_fpu13")
      79              : 
      80              : (define_reservation "c86-4g-m7-fpu" "c86-4g-m7-fpu0|c86-4g-m7-fpu1|c86-4g-m7-fpu2|c86-4g-m7-fpu3")
      81              : (define_reservation "c86-4g-m7-fpu_0_1" "c86-4g-m7-fpu0|c86-4g-m7-fpu1")
      82              : (define_reservation "c86-4g-m7-fpu_0_2" "c86-4g-m7-fpu0|c86-4g-m7-fpu2")
      83              : (define_reservation "c86-4g-m7-fpu_0_2x2" "c86-4g-m7-fpu0*2|c86-4g-m7-fpu2*2")
      84              : (define_reservation "c86-4g-m7-fpu_0_2x4" "c86-4g-m7-fpu0*4|c86-4g-m7-fpu2*4")
      85              : (define_reservation "c86-4g-m7-fpu_0_3" "c86-4g-m7-fpu0|c86-4g-m7-fpu3")
      86              : (define_reservation "c86-4g-m7-fpu_1_3" "c86-4g-m7-fpu1|c86-4g-m7-fpu3")
      87              : (define_reservation "c86-4g-m7-fpu_1_3x2" "c86-4g-m7-fpu1*2|c86-4g-m7-fpu3*2")
      88              : (define_reservation "c86-4g-m7-fpu_1_3x3" "c86-4g-m7-fpu1*3|c86-4g-m7-fpu3*3")
      89              : (define_reservation "c86-4g-m7-fpu_1_3x6" "c86-4g-m7-fpu1*6|c86-4g-m7-fpu3*6")
      90              : (define_reservation "c86-4g-m7-fpux2" "c86-4g-m7-fpu0*2|c86-4g-m7-fpu1*2|c86-4g-m7-fpu2*2|c86-4g-m7-fpu3*2")
      91              : (define_reservation "c86-4g-m7-fpux4" "c86-4g-m7-fpu0*4|c86-4g-m7-fpu1*4|c86-4g-m7-fpu2*4|c86-4g-m7-fpu3*4")
      92              : (define_reservation "c86-4g-m7-fpux8" "c86-4g-m7-fpu0*8|c86-4g-m7-fpu1*8|c86-4g-m7-fpu2*8|c86-4g-m7-fpu3*8")
      93              : (define_reservation "c86-4g-m7-fpux6" "c86-4g-m7-fpu0*6|c86-4g-m7-fpu1*6|c86-4g-m7-fpu2*6|c86-4g-m7-fpu3*6")
      94              : (define_reservation "c86-4g-m7-fpux16" "c86-4g-m7-fpu0*16|c86-4g-m7-fpu1*16|c86-4g-m7-fpu2*16|c86-4g-m7-fpu3*16")
      95              : (define_reservation "c86-4g-m7-fvector" "c86-4g-m7-fpu0+c86-4g-m7-fpu1
      96              :                                          +c86-4g-m7-fpu2+c86-4g-m7-fpu3
      97              :                                          +c86-4g-m7-agu0+c86-4g-m7-agu1+c86-4g-m7-agu2")
      98              : 
      99              : ;; Two FP dividers.
     100              : (define_cpu_unit "c86-4g-m7-fdiv1" "c86_4g_m7_fdiv")
     101              : (define_cpu_unit "c86-4g-m7-fdiv3" "c86_4g_m7_fdiv")
     102              : 
     103              : (define_reservation "c86-4g-m7-fp1fdiv1x4" "(c86-4g-m7-fpu1+c86-4g-m7-fdiv1)*4")
     104              : (define_reservation "c86-4g-m7-fp3fdiv3x4" "(c86-4g-m7-fpu3+c86-4g-m7-fdiv3)*4")
     105              : (define_reservation "c86-4g-m7-fdiv13" "(c86-4g-m7-fdiv1+c86-4g-m7-fdiv3)")
     106              : (define_reservation "c86-4g-m7-fp13div13" "(c86-4g-m7-fpu1+c86-4g-m7-fpu3+c86-4g-m7-fdiv1+c86-4g-m7-fdiv3)")
     107              : (define_reservation "c86-4g-m7-fp13div13x4" "c86-4g-m7-fp13div13*4")
     108              : (define_reservation "c86-4g-m7-fp1div1_fp3div3_x4x8" "(c86-4g-m7-fp1fdiv1x4,c86-4g-m7-fdiv1*8)|(c86-4g-m7-fp3fdiv3x4,c86-4g-m7-fdiv3*8)")
     109              : (define_reservation "c86-4g-m7-fp1div1_fp3div3_x4x9" "(c86-4g-m7-fp1fdiv1x4,c86-4g-m7-fdiv1*9)|(c86-4g-m7-fp3fdiv3x4,c86-4g-m7-fdiv3*9)")
     110              : (define_reservation "c86-4g-m7-fp1div1_fp3div3_x4x11" "(c86-4g-m7-fp1fdiv1x4,c86-4g-m7-fdiv1*11)|(c86-4g-m7-fp3fdiv3x4,c86-4g-m7-fdiv3*11)")
     111              : (define_reservation "c86-4g-m7-fp1div1_fp3div3_x4x15" "(c86-4g-m7-fp1fdiv1x4,c86-4g-m7-fdiv1*15)|(c86-4g-m7-fp3fdiv3x4,c86-4g-m7-fdiv3*15)")
     112              : (define_reservation "c86-4g-m7-fp1div1_fp3div3_x4x18" "(c86-4g-m7-fp1fdiv1x4,c86-4g-m7-fdiv1*18)|(c86-4g-m7-fp3fdiv3x4,c86-4g-m7-fdiv3*18)")
     113              : 
     114              : ;; IMOV/IMOVX
     115              : (define_insn_reservation "c86_4g_m7_imov_xchg" 1
     116              :                         (and (eq_attr "cpu" "c86_4g_m7")
     117              :                              (and (eq_attr "type" "imov")
     118              :                                   (and (eq_attr "c86_decode" "vector")
     119              :                                        (eq_attr "memory" "none"))))
     120              :                          "c86-4g-m7-vector")
     121              : 
     122              : (define_insn_reservation "c86_4g_m7_imov_xchg_load" 5
     123              :                         (and (eq_attr "cpu" "c86_4g_m7")
     124              :                              (and (eq_attr "type" "imov")
     125              :                                   (and (eq_attr "c86_decode" "vector")
     126              :                                        (eq_attr "memory" "!none"))))
     127              :                          "c86-4g-m7-vector,c86-4g-m7-load")
     128              : 
     129              : (define_insn_reservation "c86_4g_m7_imovx_cwde" 2
     130              :                         (and (eq_attr "cpu" "c86_4g_m7")
     131              :                              (and (eq_attr "type" "imovx")
     132              :                                   (and (eq_attr "c86_decode" "double")
     133              :                                        (eq_attr "memory" "none"))))
     134              :                          "c86-4g-m7-direct,c86-4g-m7-ieu")
     135              : 
     136              : (define_insn_reservation "c86_4g_m7_imov" 1
     137              :                         (and (eq_attr "cpu" "c86_4g_m7")
     138              :                              (and (eq_attr "type" "imov,imovx")
     139              :                                   (and (eq_attr "c86_decode" "direct")
     140              :                                        (eq_attr "memory" "none"))))
     141              :              "c86-4g-m7-direct,c86-4g-m7-ieu")
     142              : 
     143              : (define_insn_reservation "c86_4g_m7_imov_load" 5
     144              :                         (and (eq_attr "cpu" "c86_4g_m7")
     145              :                              (and (eq_attr "type" "imov,imovx")
     146              :                                   (and (eq_attr "c86_decode" "!vector")
     147              :                                        (eq_attr "memory" "load"))))
     148              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-ieu")
     149              : 
     150              : (define_insn_reservation "c86_4g_m7_imov_store" 1
     151              :                         (and (eq_attr "cpu" "c86_4g_m7")
     152              :                              (and (eq_attr "type" "imov,imovx")
     153              :                                   (and (eq_attr "c86_decode" "!vector")
     154              :                                        (eq_attr "memory" "store"))))
     155              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-ieu")
     156              : 
     157              : ;; PUSH
     158              : (define_insn_reservation "c86_4g_m7_push" 1
     159              :                         (and (eq_attr "cpu" "c86_4g_m7")
     160              :                              (and (eq_attr "type" "push,sse")
     161              :                                   (eq_attr "memory" "store")))
     162              :                          "c86-4g-m7-direct,c86-4g-m7-store")
     163              : 
     164              : (define_insn_reservation "c86_4g_m7_push_mem" 5
     165              :                         (and (eq_attr "cpu" "c86_4g_m7")
     166              :                                  (and (eq_attr "type" "push")
     167              :                                   (eq_attr "memory" "both")))
     168              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-store")
     169              : 
     170              : ;; POP
     171              : (define_insn_reservation "c86_4g_m7_pop" 4
     172              :                         (and (eq_attr "cpu" "c86_4g_m7")
     173              :                              (and (eq_attr "type" "pop")
     174              :                                   (eq_attr "memory" "load")))
     175              :                          "c86-4g-m7-direct,c86-4g-m7-load")
     176              : 
     177              : (define_insn_reservation "c86_4g_m7_pop_mem" 5
     178              :             (and (eq_attr "cpu" "c86_4g_m7")
     179              :                  (and (eq_attr "type" "pop")
     180              :                   (eq_attr "memory" "both")))
     181              :              "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store")
     182              : 
     183              : ;; IMUL/IMULX
     184              : (define_insn_reservation "c86_4g_m7_imul" 3
     185              :                         (and (eq_attr "cpu" "c86_4g_m7")
     186              :                              (and (eq_attr "type" "imul,imulx")
     187              :                                   (eq_attr "memory" "none")))
     188              :                          "c86-4g-m7-direct,c86-4g-m7-ieu1")
     189              : 
     190              : (define_insn_reservation "c86_4g_m7_imul_load" 7
     191              :                         (and (eq_attr "cpu" "c86_4g_m7")
     192              :                              (and (eq_attr "type" "imul")
     193              :                                   (eq_attr "memory" "!none")))
     194              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-ieu1")
     195              : 
     196              : ;; IDIV
     197              : (define_insn_reservation "c86_4g_m7_idiv" 7
     198              :                          (and (eq_attr "cpu" "c86_4g_m7")
     199              :                               (and (eq_attr "type" "idiv")
     200              :                                    (and (eq_attr "mode" "!QI")
     201              :                                         (eq_attr "memory" "none"))))
     202              :                          "c86-4g-m7-double,c86-4g-m7-ieu3,c86-4g-m7-idiv*7")
     203              : 
     204              : (define_insn_reservation "c86_4g_m7_idiv_QI" 6
     205              :                          (and (eq_attr "cpu" "c86_4g_m7")
     206              :                               (and (eq_attr "type" "idiv")
     207              :                                    (and (eq_attr "mode" "QI")
     208              :                                         (eq_attr "memory" "none"))))
     209              :                          "c86-4g-m7-double,c86-4g-m7-ieu3,c86-4g-m7-idiv*6")
     210              : 
     211              : (define_insn_reservation "c86_4g_m7_idiv_load" 11
     212              :                          (and (eq_attr "cpu" "c86_4g_m7")
     213              :                               (and (eq_attr "type" "idiv")
     214              :                                    (and (eq_attr "mode" "!QI")
     215              :                                         (eq_attr "memory" "load"))))
     216              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-ieu3,c86-4g-m7-idiv*7")
     217              : 
     218              : (define_insn_reservation "c86_4g_m7_idiv_QI_load" 10
     219              :                          (and (eq_attr "cpu" "c86_4g_m7")
     220              :                               (and (eq_attr "type" "idiv")
     221              :                                    (and (eq_attr "mode" "QI")
     222              :                                         (eq_attr "memory" "load"))))
     223              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-ieu3,c86-4g-m7-idiv*6")
     224              : 
     225              : ;; Integer/general Instructions
     226              : (define_insn_reservation "c86_4g_m7_insn" 1
     227              :                          (and (eq_attr "cpu" "c86_4g_m7")
     228              :                               (and (eq_attr "type" "alu,negnot,rotate1,ishift1,test,incdec,icmp,
     229              :                                                     rotate,rotatex,ishift,ishiftx,icmov")
     230              :                                    (eq_attr "memory" "none,unknown")))
     231              :                          "c86-4g-m7-direct,c86-4g-m7-ieu")
     232              : 
     233              : (define_insn_reservation "c86_4g_m7_insn_load" 5
     234              :                          (and (eq_attr "cpu" "c86_4g_m7")
     235              :                               (and (eq_attr "type" "alu,incdec,icmp,test,ishift,
     236              :                                                     ishiftx,icmov,rotate,rotatex")
     237              :                                    (eq_attr "memory" "load")))
     238              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-ieu")
     239              : 
     240              : (define_insn_reservation "c86_4g_m7_insn_store" 1
     241              :                          (and (eq_attr "cpu" "c86_4g_m7")
     242              :                               (and (eq_attr "type" "ishift1,rotate1,rotate,incdec,
     243              :                                                     alu,icmov,ishift,negnot,alu1")
     244              :                                    (eq_attr "memory" "store")))
     245              :                          "c86-4g-m7-direct,c86-4g-m7-ieu,c86-4g-m7-store")
     246              : 
     247              : (define_insn_reservation "c86_4g_m7_insn2_store" 5
     248              :                          (and (eq_attr "cpu" "c86_4g_m7")
     249              :                               (and (eq_attr "type" "icmp")
     250              :                                    (eq_attr "memory" "store")))
     251              :                          "c86-4g-m7-direct,c86-4g-m7-ieu,c86-4g-m7-store")
     252              : 
     253              : (define_insn_reservation "c86_4g_m7_insn_both" 5
     254              :                          (and (eq_attr "cpu" "c86_4g_m7")
     255              :                               (and (eq_attr "type" "alu,negnot,rotate1,ishift1,incdec,rotate,
     256              :                                                     rotatex,ishift,ishiftx,icmov")
     257              :                                    (eq_attr "memory" "both")))
     258              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-ieu,c86-4g-m7-store")
     259              : 
     260              : (define_insn_reservation "c86_4g_m7_setcc" 1
     261              :                          (and (eq_attr "cpu" "c86_4g_m7")
     262              :                               (and (eq_attr "type" "setcc")
     263              :                                    (eq_attr "memory" "none,unknown")))
     264              :                          "c86-4g-m7-direct,c86-4g-m7-ieu0|c86-4g-m7-ieu3")
     265              : 
     266              : (define_insn_reservation "c86_4g_m7_setcc_load" 5
     267              :                          (and (eq_attr "cpu" "c86_4g_m7")
     268              :                               (and (eq_attr "type" "setcc")
     269              :                                    (eq_attr "memory" "load")))
     270              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-ieu0|c86-4g-m7-ieu3")
     271              : 
     272              : (define_insn_reservation "c86_4g_m7_setcc_store" 1
     273              :                          (and (eq_attr "cpu" "c86_4g_m7")
     274              :                               (and (eq_attr "type" "setcc")
     275              :                                    (eq_attr "memory" "store")))
     276              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-ieu0|c86-4g-m7-ieu3")
     277              : 
     278              : ;; ALU1
     279              : (define_insn_reservation "c86_4g_m7_alu1_double" 2
     280              :                          (and (eq_attr "cpu" "c86_4g_m7")
     281              :                               (and (eq_attr "type" "alu1")
     282              :                                    (and (eq_attr "c86_decode" "double")
     283              :                                         (eq_attr "memory" "none,unknown"))))
     284              :                          "c86-4g-m7-double,c86-4g-m7-ieu")
     285              : 
     286              : (define_insn_reservation "c86_4g_m7_alu1_double_load" 6
     287              :                          (and (eq_attr "cpu" "c86_4g_m7")
     288              :                               (and (eq_attr "type" "alu1")
     289              :                                    (and (eq_attr "c86_decode" "double")
     290              :                                         (eq_attr "memory" "both"))))
     291              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-ieu")
     292              : 
     293              : (define_insn_reservation "c86_4g_m7_alu1_vector" 3
     294              :                          (and (eq_attr "cpu" "c86_4g_m7")
     295              :                               (and (eq_attr "type" "alu1")
     296              :                                    (and (eq_attr "c86_decode" "vector")
     297              :                                         (eq_attr "memory" "none,unknown"))))
     298              :                          "c86-4g-m7-vector,c86-4g-m7-ivector*3")
     299              : 
     300              : (define_insn_reservation "c86_4g_m7_alu1_vector_load" 7
     301              :                          (and (eq_attr "cpu" "c86_4g_m7")
     302              :                               (and (eq_attr "type" "alu1")
     303              :                                    (and (eq_attr "c86_decode" "vector")
     304              :                                         (eq_attr "memory" "both"))))
     305              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-ivector*3")
     306              : 
     307              : (define_insn_reservation "c86_4g_m7_alu1_direct" 1
     308              :                          (and (eq_attr "cpu" "c86_4g_m7")
     309              :                               (and (eq_attr "type" "alu1")
     310              :                                    (and (eq_attr "c86_decode" "direct")
     311              :                                         (eq_attr "memory" "none,unknown"))))
     312              :                          "c86-4g-m7-direct,c86-4g-m7-ieu")
     313              : 
     314              : (define_insn_reservation "c86_4g_m7_alu1_direct_load" 5
     315              :                          (and (eq_attr "cpu" "c86_4g_m7")
     316              :                               (and (eq_attr "type" "alu1")
     317              :                                    (and (eq_attr "c86_decode" "direct")
     318              :                                         (eq_attr "memory" "both"))))
     319              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-ieu")
     320              : 
     321              : ;; CALL/CALLV
     322              : (define_insn_reservation "c86_4g_m7_call" 1
     323              :                          (and (eq_attr "cpu" "c86_4g_m7")
     324              :                               (eq_attr "type" "call,callv"))
     325              :                          "c86-4g-m7-double,c86-4g-m7-store,c86-4g-m7-bru0")
     326              : 
     327              : ;; IBR
     328              : (define_insn_reservation "c86_4g_m7_branch" 1
     329              :                          (and (eq_attr "cpu" "c86_4g_m7")
     330              :                               (and (eq_attr "type" "ibr")
     331              :                                    (eq_attr "memory" "none")))
     332              :                           "c86-4g-m7-direct,c86-4g-m7-bru0")
     333              : 
     334              : (define_insn_reservation "c86_4g_m7_branch_load" 5
     335              :                          (and (eq_attr "cpu" "c86_4g_m7")
     336              :                               (and (eq_attr "type" "ibr")
     337              :                                    (eq_attr "memory" "load")))
     338              :                           "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-bru0")
     339              : 
     340              : ;; LEA
     341              : (define_insn_reservation "c86_4g_m7_lea" 1
     342              :                          (and (eq_attr "cpu" "c86_4g_m7")
     343              :                               (eq_attr "type" "lea"))
     344              :                          "c86-4g-m7-direct,c86-4g-m7-ieu")
     345              : 
     346              : ;; LEAVE
     347              : (define_insn_reservation "c86_4g_m7_leave" 1
     348              :                          (and (eq_attr "cpu" "c86_4g_m7")
     349              :                               (eq_attr "type" "leave"))
     350              :                          "c86-4g-m7-double,c86-4g-m7-ieu,c86-4g-m7-store")
     351              : 
     352              : ;; STR
     353              : (define_insn_reservation "c86_4g_m7_str" 3
     354              :                          (and (eq_attr "cpu" "c86_4g_m7")
     355              :                               (and (eq_attr "type" "str")
     356              :                                    (eq_attr "memory" "none")))
     357              :                          "c86-4g-m7-vector,c86-4g-m7-ivector*3")
     358              : 
     359              : (define_insn_reservation "c86_4g_m7_str_load" 7
     360              :                          (and (eq_attr "cpu" "c86_4g_m7")
     361              :                               (and (eq_attr "type" "str")
     362              :                                    (eq_attr "memory" "load")))
     363              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-ivector*3")
     364              : 
     365              : 
     366              : (define_insn_reservation "c86_4g_m7_ieu_vector" 5
     367              :                          (and (eq_attr "cpu" "c86_4g_m7")
     368              :                               (and (eq_attr "type" "other,multi")
     369              :                                    (and (eq_attr "unit" "!i387")
     370              :                                        (eq_attr "memory" "none,unknown"))))
     371              :                          "c86-4g-m7-vector,c86-4g-m7-ivector*5")
     372              : 
     373              : (define_insn_reservation "c86_4g_m7_ieu_vector_load" 9
     374              :                          (and (eq_attr "cpu" "c86_4g_m7")
     375              :                               (and (eq_attr "type" "other,multi")
     376              :                                    (and (eq_attr "unit" "!i387")
     377              :                                         (eq_attr "memory" "load"))))
     378              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-ivector*5")
     379              : 
     380              : ;; SSEINS
     381              : (define_insn_reservation "c86_4g_m7_sse_insertimm" 3
     382              :                          (and (eq_attr "cpu" "c86_4g_m7")
     383              :                               (and (eq_attr "type" "sseins")
     384              :                                    (and (eq_attr "memory" "none")
     385              :                                         (eq_attr "length_immediate" "2"))))
     386              :                          "c86-4g-m7-double,c86-4g-m7-fpu_0_3,c86-4g-m7-fpu1")
     387              : 
     388              : (define_insn_reservation "c86_4g_m7_sse_insert" 3
     389              :                          (and (eq_attr "cpu" "c86_4g_m7")
     390              :                               (and (eq_attr "type" "sseins")
     391              :                                    (and (eq_attr "memory" "none")
     392              :                                         (eq_attr "length_immediate" "!2"))))
     393              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1*2")
     394              : 
     395              : ;; FCMOV
     396              : (define_insn_reservation "c86_4g_m7_fp_cmov" 4
     397              :                          (and (eq_attr "cpu" "c86_4g_m7")
     398              :                               (eq_attr "type" "fcmov"))
     399              :                          "c86-4g-m7-vector,c86-4g-m7-fvector*3")
     400              : 
     401              : ;; FLD
     402              : (define_insn_reservation "c86_4g_m7_fp_mov_direct_load" 8
     403              :                          (and (eq_attr "cpu" "c86_4g_m7")
     404              :                               (and (eq_attr "c86_decode" "direct")
     405              :                                    (and (eq_attr "type" "fmov")
     406              :                                         (eq_attr "memory" "load"))))
     407              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1")
     408              : 
     409              : ;; FST
     410              : (define_insn_reservation "c86_4g_m7_fp_mov_direct_store" 8
     411              :                          (and (eq_attr "cpu" "c86_4g_m7")
     412              :                               (and (eq_attr "c86_decode" "direct")
     413              :                                    (and (eq_attr "type" "fmov")
     414              :                                         (eq_attr "memory" "store"))))
     415              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1,c86-4g-m7-store")
     416              : 
     417              : ;; FILD
     418              : (define_insn_reservation "c86_4g_m7_fp_mov_double_load" 11
     419              :                          (and (eq_attr "cpu" "c86_4g_m7")
     420              :                               (and (eq_attr "c86_decode" "double")
     421              :                                    (and (eq_attr "type" "fmov")
     422              :                                         (eq_attr "memory" "load"))))
     423              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1")
     424              : 
     425              : ;; FIST
     426              : (define_insn_reservation "c86_4g_m7_fp_mov_double_store" 8
     427              :                          (and (eq_attr "cpu" "c86_4g_m7")
     428              :                               (and (eq_attr "c86_decode" "double")
     429              :                                    (and (eq_attr "type" "fmov")
     430              :                                         (eq_attr "memory" "store"))))
     431              :                          "c86-4g-m7-double,c86-4g-m7-fpu1,c86-4g-m7-store")
     432              : 
     433              : (define_insn_reservation "c86_4g_m7_fp_mov_direct" 1
     434              :                          (and (eq_attr "cpu" "c86_4g_m7")
     435              :                               (and (eq_attr "c86_decode" "direct")
     436              :                                    (and (eq_attr "type" "fmov")
     437              :                                         (eq_attr "memory" "none"))))
     438              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1")
     439              : 
     440              : ;; FSQRT
     441              : (define_insn_reservation "c86_4g_m7_fp_sqrt" 22
     442              :                          (and (eq_attr "cpu" "c86_4g_m7")
     443              :                               (and (eq_attr "type" "fpspc")
     444              :                                    (eq_attr "c86_attr" "sqrt")))
     445              :                          "c86-4g-m7-direct,c86-4g-m7-fp1div1_fp3div3_x4x18")
     446              : 
     447              : ;; FPSPC
     448              : (define_insn_reservation "c86_4g_m7_fp_spc_direct" 5
     449              :                          (and (eq_attr "cpu" "c86_4g_m7")
     450              :                               (and (eq_attr "type" "fpspc")
     451              :                                    (and (eq_attr "c86_decode" "direct")
     452              :                                     (and (eq_attr "c86_attr" "other")
     453              :                                          (eq_attr "memory" "store")))))
     454              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-fpu3")
     455              : 
     456              : (define_insn_reservation "c86_4g_m7_fp_spc" 6
     457              :                          (and (eq_attr "cpu" "c86_4g_m7")
     458              :                               (and (eq_attr "type" "fpspc")
     459              :                                    (and (eq_attr "c86_attr" "other")
     460              :                                         (eq_attr "memory" "none"))))
     461              :                          "c86-4g-m7-vector,c86-4g-m7-fvector*6")
     462              : 
     463              : (define_insn_reservation "c86_4g_m7_fp_op_mul" 5
     464              :                          (and (eq_attr "cpu" "c86_4g_m7")
     465              :                               (and (eq_attr "type" "fop,fmul")
     466              :                                    (eq_attr "memory" "none")))
     467              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
     468              : 
     469              : (define_insn_reservation "c86_4g_m7_fp_op_mul_load" 12
     470              :                          (and (eq_attr "cpu" "c86_4g_m7")
     471              :                               (and (eq_attr "type" "fop,fmul")
     472              :                                    (and (eq_attr "fp_int_src" "false")
     473              :                                         (eq_attr "memory" "load"))))
     474              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
     475              : 
     476              : (define_insn_reservation "c86_4g_m7_fp_op_imul_load" 16
     477              :                          (and (eq_attr "cpu" "c86_4g_m7")
     478              :                               (and (eq_attr "type" "fmul")
     479              :                                    (and (eq_attr "fp_int_src" "true")
     480              :                                         (eq_attr "memory" "!none"))))
     481              :                         "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu0,c86-4g-m7-fpu_0_2")
     482              : 
     483              : ;; FDIV
     484              : (define_insn_reservation "c86_4g_m7_fp_div" 15
     485              :                          (and (eq_attr "cpu" "c86_4g_m7")
     486              :                               (and (eq_attr "type" "fdiv")
     487              :                                    (eq_attr "memory" "none")))
     488              :                          "c86-4g-m7-direct,c86-4g-m7-fp1div1_fp3div3_x4x11")
     489              : 
     490              : (define_insn_reservation "c86_4g_m7_fp_div_load" 22
     491              :                          (and (eq_attr "cpu" "c86_4g_m7")
     492              :                               (and (eq_attr "type" "fdiv")
     493              :                                    (and (eq_attr "fp_int_src" "false")
     494              :                                         (eq_attr "memory" "!none"))))
     495              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp1div1_fp3div3_x4x11")
     496              : 
     497              : (define_insn_reservation "c86_4g_m7_fp_idiv_load" 26
     498              :                          (and (eq_attr "cpu" "c86_4g_m7")
     499              :                               (and (eq_attr "type" "fdiv")
     500              :                                    (and (eq_attr "fp_int_src" "true")
     501              :                                         (eq_attr "memory" "!none"))))
     502              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu1*4,c86-4g-m7-fp1div1_fp3div3_x4x11")
     503              : 
     504              : (define_insn_reservation "c86_4g_m7_fp_fsgn" 1
     505              :                          (and (eq_attr "cpu" "c86_4g_m7")
     506              :                               (eq_attr "type" "fsgn"))
     507              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
     508              : 
     509              : ;; FCMP
     510              : (define_insn_reservation "c86_4g_m7_fp_fcmp" 5
     511              :                          (and (eq_attr "cpu" "c86_4g_m7")
     512              :                               (and (eq_attr "type" "fcmp")
     513              :                                    (eq_attr "memory" "none")))
     514              :                          "c86-4g-m7-double,c86-4g-m7-fpu0,c86-4g-m7-fpu1")
     515              : 
     516              : (define_insn_reservation "c86_4g_m7_fp_fcmp_load" 12
     517              :                          (and (eq_attr "cpu" "c86_4g_m7")
     518              :                               (and (eq_attr "type" "fcmp")
     519              :                                    (eq_attr "memory" "load")))
     520              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu0,c86-4g-m7-fpu1")
     521              : 
     522              : ;; MMX
     523              : (define_insn_reservation "c86_4g_m7_fp_mmx" 1
     524              :                          (and (eq_attr "cpu" "c86_4g_m7")
     525              :                               (eq_attr "type" "mmx"))
     526              :                          "c86-4g-m7-direct")
     527              : 
     528              : (define_insn_reservation "c86_4g_m7_mmx_add_cmp" 1
     529              :                          (and (eq_attr "cpu" "c86_4g_m7")
     530              :                               (and (eq_attr "type" "mmxadd,mmxcmp")
     531              :                                    (eq_attr "memory" "none")))
     532              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
     533              : 
     534              : (define_insn_reservation "c86_4g_m7_mmx_add_cmp_load" 8
     535              :                          (and (eq_attr "cpu" "c86_4g_m7")
     536              :                               (and (eq_attr "type" "mmxadd,mmxcmp")
     537              :                                    (eq_attr "memory" "load")))
     538              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
     539              : 
     540              : (define_insn_reservation "c86_4g_m7_mmx_cvt" 1
     541              :                          (and (eq_attr "cpu" "c86_4g_m7")
     542              :                               (and (eq_attr "type" "mmxcvt")
     543              :                                    (and (eq_attr "c86_attr" "other")
     544              :                                         (eq_attr "memory" "none"))))
     545              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
     546              : 
     547              : (define_insn_reservation "c86_4g_m7_mmx_cvt_load" 8
     548              :                          (and (eq_attr "cpu" "c86_4g_m7")
     549              :                               (and (eq_attr "type" "mmxcvt")
     550              :                                    (and (eq_attr "c86_attr" "other")
     551              :                                         (eq_attr "memory" "load"))))
     552              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
     553              : 
     554              : (define_insn_reservation "c86_4g_m7_mmx_shift" 1
     555              :                          (and (eq_attr "cpu" "c86_4g_m7")
     556              :                               (and (eq_attr "type" "mmxshft")
     557              :                                    (and (eq_attr "c86_attr" "other")
     558              :                                         (eq_attr "memory" "none"))))
     559              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1")
     560              : 
     561              : (define_insn_reservation "c86_4g_m7_mmx_shift_load" 8
     562              :                          (and (eq_attr "cpu" "c86_4g_m7")
     563              :                               (and (eq_attr "type" "mmxshft")
     564              :                                    (and (eq_attr "c86_attr" "other")
     565              :                                         (eq_attr "memory" "load"))))
     566              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1")
     567              : 
     568              : (define_insn_reservation "c86_4g_m7_mmx_shift_avg" 1
     569              :                          (and (eq_attr "cpu" "c86_4g_m7")
     570              :                               (and (eq_attr "type" "mmxshft")
     571              :                                    (and (eq_attr "c86_attr" "avg")
     572              :                                         (eq_attr "memory" "none"))))
     573              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
     574              : 
     575              : (define_insn_reservation "c86_4g_m7_mmx_shift_avg_load" 8
     576              :                          (and (eq_attr "cpu" "c86_4g_m7")
     577              :                               (and (eq_attr "type" "mmxshft")
     578              :                                    (and (eq_attr "c86_attr" "avg")
     579              :                                         (eq_attr "memory" "load"))))
     580              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
     581              : 
     582              : ;; SADBW
     583              : (define_insn_reservation "c86_4g_m7_mmx_shift_sadbw" 3
     584              :                          (and (eq_attr "cpu" "c86_4g_m7")
     585              :                               (and (eq_attr "type" "mmxshft")
     586              :                                    (and (eq_attr "c86_attr" "sadbw")
     587              :                                         (eq_attr "memory" "none"))))
     588              :                          "c86-4g-m7-direct,c86-4g-m7-fpu0")
     589              : 
     590              : (define_insn_reservation "c86_4g_m7_mmx_shift_sadbw_load" 10
     591              :                          (and (eq_attr "cpu" "c86_4g_m7")
     592              :                               (and (eq_attr "type" "mmxshft")
     593              :                                    (and (eq_attr "c86_attr" "sadbw")
     594              :                                         (eq_attr "memory" "load"))))
     595              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu0")
     596              : 
     597              : (define_insn_reservation "c86_4g_m7_mmx_mov" 4
     598              :                          (and (eq_attr "cpu" "c86_4g_m7")
     599              :                               (and (eq_attr "type" "mmxmov")
     600              :                                    (eq_attr "memory" "none")))
     601              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1")
     602              : 
     603              : (define_insn_reservation "c86_4g_m7_mmx_mov_store" 4
     604              :                          (and (eq_attr "cpu" "c86_4g_m7")
     605              :                               (and (eq_attr "type" "mmxmov")
     606              :                                    (and (eq_attr "c86_attr" "other")
     607              :                                         (eq_attr "memory" "store"))))
     608              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-fpu1")
     609              : 
     610              : (define_insn_reservation "c86_4g_m7_mmx_mov_load" 11
     611              :                          (and (eq_attr "cpu" "c86_4g_m7")
     612              :                               (and (eq_attr "type" "mmxmov")
     613              :                                    (eq_attr "memory" "load")))
     614              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1")
     615              : 
     616              : (define_insn_reservation "c86_4g_m7_mmx_mul" 3
     617              :                          (and (eq_attr "cpu" "c86_4g_m7")
     618              :                               (and (eq_attr "type" "mmxmul")
     619              :                                    (eq_attr "memory" "none")))
     620              :                           "c86-4g-m7-direct,c86-4g-m7-fpu0")
     621              : 
     622              : (define_insn_reservation "c86_4g_m7_mmx_mul_load" 10
     623              :                          (and (eq_attr "cpu" "c86_4g_m7")
     624              :                               (and (eq_attr "type" "mmxmul")
     625              :                                    (eq_attr "memory" "load")))
     626              :                           "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu0")
     627              : 
     628              : ;; PINSR
     629              : (define_insn_reservation "c86_4g_m7_sse_pinsr_reg" 1
     630              :                          (and (eq_attr "cpu" "c86_4g_m7")
     631              :                               (and (eq_attr "type" "sselog,mmxcvt")
     632              :                                    (and (eq_attr "c86_attr" "insr")
     633              :                                     (and (eq_attr "prefix" "orig")
     634              :                                          (eq_attr "memory" "none")))))
     635              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
     636              : 
     637              : (define_insn_reservation "c86_4g_m7_sse_pinsr_reg_load" 3
     638              :                          (and (eq_attr "cpu" "c86_4g_m7")
     639              :                               (and (eq_attr "type" "sselog,mmxcvt")
     640              :                                    (and (eq_attr "c86_attr" "insr")
     641              :                                     (and (eq_attr "prefix" "orig")
     642              :                                          (eq_attr "memory" "load")))))
     643              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
     644              : 
     645              : (define_insn_reservation "c86_4g_m7_avx_vpinsr_reg" 2
     646              :                          (and (eq_attr "cpu" "c86_4g_m7")
     647              :                               (and (eq_attr "type" "sselog")
     648              :                                    (and (eq_attr "c86_attr" "insr")
     649              :                                      (and (eq_attr "prefix" "!orig")
     650              :                                           (eq_attr "memory" "none")))))
     651              :                          "c86-4g-m7-double,c86-4g-m7-fpu_1_3x2")
     652              : 
     653              : (define_insn_reservation "c86_4g_m7_avx_vpinsr_reg_load" 8
     654              :                          (and (eq_attr "cpu" "c86_4g_m7")
     655              :                               (and (eq_attr "type" "sselog")
     656              :                                    (and (eq_attr "c86_attr" "insr")
     657              :                                      (and (eq_attr "prefix" "!orig")
     658              :                                           (eq_attr "memory" "load")))))
     659              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
     660              : 
     661              : ;; PERM
     662              : (define_insn_reservation "c86_4g_m7_avx512_perm_xmm" 3
     663              :                          (and (eq_attr "cpu" "c86_4g_m7")
     664              :                               (and (eq_attr "type" "sselog")
     665              :                                    (and (ior (and (eq_attr "c86_attr" "perm2")
     666              :                                                   (eq_attr "mode" "V4SF,V2DF,TI"))
     667              :                                              (and (eq_attr "c86_attr" "perm")
     668              :                                                   (eq_attr "mode" "V8SF,V4DF,TI,OI")))
     669              :                                         (eq_attr "memory" "none"))))
     670              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2x2")
     671              : 
     672              : (define_insn_reservation "c86_4g_m7_avx512_perm_xmm_opload" 10
     673              :                          (and (eq_attr "cpu" "c86_4g_m7")
     674              :                               (and (eq_attr "type" "sselog")
     675              :                                    (and (ior (and (eq_attr "c86_attr" "perm2")
     676              :                                                   (eq_attr "mode" "V4SF,V2DF,TI"))
     677              :                                              (and (eq_attr "c86_attr" "perm")
     678              :                                                   (eq_attr "mode" "V8SF,V4DF,TI,OI")))
     679              :                                         (eq_attr "memory" "load"))))
     680              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2x2")
     681              : 
     682              : (define_insn_reservation "c86_4g_m7_avx512_permi2_ymm" 4
     683              :                          (and (eq_attr "cpu" "c86_4g_m7")
     684              :                               (and (eq_attr "type" "sselog")
     685              :                                    (and (eq_attr "c86_attr" "perm2")
     686              :                                     (and (eq_attr "mode" "V8SF,V4DF,OI")
     687              :                                           (eq_attr "memory" "none")))))
     688              :                          "c86-4g-m7-vector,c86-4g-m7-fpux4")
     689              : 
     690              : (define_insn_reservation "c86_4g_m7_avx512_permi2_zmm" 16
     691              :                          (and (eq_attr "cpu" "c86_4g_m7")
     692              :                               (and (eq_attr "type" "sselog")
     693              :                                    (and (eq_attr "c86_attr" "perm2")
     694              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     695              :                                          (eq_attr "memory" "none")))))
     696              :                          "c86-4g-m7-vector,c86-4g-m7-fpux16")
     697              : 
     698              : (define_insn_reservation "c86_4g_m7_avx512_permi2_ymm_load" 11
     699              :                          (and (eq_attr "cpu" "c86_4g_m7")
     700              :                               (and (eq_attr "type" "sselog")
     701              :                                    (and (eq_attr "c86_attr" "perm2")
     702              :                                     (and (eq_attr "mode" "V8SF,V4DF,OI")
     703              :                                          (eq_attr "memory" "load")))))
     704              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpux4")
     705              : 
     706              : (define_insn_reservation "c86_4g_m7_avx512_permi2_zmm_load" 23
     707              :                          (and (eq_attr "cpu" "c86_4g_m7")
     708              :                               (and (eq_attr "type" "sselog")
     709              :                                    (and (eq_attr "c86_attr" "perm2")
     710              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     711              :                                          (eq_attr "memory" "load")))))
     712              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpux16")
     713              : 
     714              : (define_insn_reservation "c86_4g_m7_avx512_perm_zmm_imm" 4
     715              :                          (and (eq_attr "cpu" "c86_4g_m7")
     716              :                               (and (eq_attr "type" "sselog")
     717              :                                    (and (eq_attr "c86_attr" "perm")
     718              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     719              :                                      (and (match_operand 2 "immediate_operand")
     720              :                                           (eq_attr "memory" "none"))))))
     721              :                          "c86-4g-m7-direct,c86-4g-m7-fpux4")
     722              : 
     723              : (define_insn_reservation "c86_4g_m7_avx512_perm_zmm_imm_load" 11
     724              :                          (and (eq_attr "cpu" "c86_4g_m7")
     725              :                               (and (eq_attr "type" "sselog")
     726              :                                    (and (eq_attr "c86_attr" "perm")
     727              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     728              :                                      (and (match_operand 2 "immediate_operand")
     729              :                                           (eq_attr "memory" "load"))))))
     730              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpux4")
     731              : 
     732              : (define_insn_reservation "c86_4g_m7_avx512_perm_zmm_noimm" 8
     733              :                          (and (eq_attr "cpu" "c86_4g_m7")
     734              :                               (and (eq_attr "type" "sselog")
     735              :                                    (and (eq_attr "c86_attr" "perm")
     736              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     737              :                                      (and (match_operand 2 "nonimmediate_operand")
     738              :                                           (eq_attr "memory" "none"))))))
     739              :                          "c86-4g-m7-vector,c86-4g-m7-fpux8")
     740              : 
     741              : (define_insn_reservation "c86_4g_m7_sse_perm_zmm_noimm_load" 15
     742              :                          (and (eq_attr "cpu" "c86_4g_m7")
     743              :                               (and (eq_attr "type" "sselog")
     744              :                                    (and (eq_attr "c86_attr" "perm")
     745              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     746              :                                      (and (match_operand 2 "nonimmediate_operand")
     747              :                                          (eq_attr "memory" "load"))))))
     748              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpux8")
     749              : 
     750              : ;; VINSERT
     751              : (define_insn_reservation "c86_4g_m7_avx512_insertx_ymm" 3
     752              :                          (and (eq_attr "cpu" "c86_4g_m7")
     753              :                               (and (eq_attr "type" "sselog,sselog1")
     754              :                                    (and (eq_attr "c86_attr" "insertx")
     755              :                                     (and (eq_attr "mode" "V8SF,V4DF,OI")
     756              :                                      (and (eq_attr "prefix" "evex")
     757              :                                           (eq_attr "memory" "none"))))))
     758              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_0_2")
     759              : 
     760              : (define_insn_reservation "c86_4g_m7_avx512_insertx_ymem" 10
     761              :                          (and (eq_attr "cpu" "c86_4g_m7")
     762              :                               (and (eq_attr "type" "sselog,sselog1")
     763              :                                    (and (eq_attr "c86_attr" "insertx")
     764              :                                     (and (eq_attr "mode" "V8SF,V4DF,OI")
     765              :                                      (and (eq_attr "prefix" "evex")
     766              :                                           (eq_attr "memory" "load,both"))))))
     767              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_0_2")
     768              : 
     769              : (define_insn_reservation "c86_4g_m7_avx512_insertx_zxmm" 5
     770              :                          (and (eq_attr "cpu" "c86_4g_m7")
     771              :                               (and (eq_attr "type" "sselog")
     772              :                                    (and (eq_attr "c86_attr" "insertx")
     773              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     774           66 :                                     (and (match_test "GET_MODE_SIZE (GET_MODE (operands[2]))==16")
     775              :                                          (match_operand 2 "register_operand"))))))
     776              :                          "c86-4g-m7-double,c86-4g-m7-fpu_0_2x2,c86-4g-m7-fpu_0_2x2")
     777              : 
     778           69 : (define_insn_reservation "c86_4g_m7_avx512_insertx_zxmem" 12
     779              :                          (and (eq_attr "cpu" "c86_4g_m7")
     780              :                               (and (eq_attr "type" "sselog")
     781              :                                    (and (eq_attr "c86_attr" "insertx")
     782              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     783              :                                     (and (match_test "GET_MODE_SIZE (GET_MODE (operands[2]))==16")
     784              :                                           (match_operand 2 "memory_operand"))))))
     785              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_0_2x2,c86-4g-m7-fpu_0_2x2")
     786              : 
     787              : (define_insn_reservation "c86_4g_m7_avx512_insertx_zymm" 1
     788              :                          (and (eq_attr "cpu" "c86_4g_m7")
     789              :                               (and (eq_attr "type" "sselog")
     790              :                                    (and (eq_attr "c86_attr" "insertx")
     791              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     792           66 :                                     (and (match_test "GET_MODE_SIZE (GET_MODE (operands[2]))==32")
     793              :                                           (match_operand 2 "register_operand"))))))
     794              :                          "c86-4g-m7-double,c86-4g-m7-fpu_1_3,c86-4g-m7-fpu_1_3")
     795              : 
     796           66 : (define_insn_reservation "c86_4g_m7_avx512_insertx_zymem" 8
     797              :                          (and (eq_attr "cpu" "c86_4g_m7")
     798              :                               (and (eq_attr "type" "sselog")
     799              :                                    (and (eq_attr "c86_attr" "insertx")
     800           66 :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
     801              :                                     (and (match_test "GET_MODE_SIZE (GET_MODE (operands[2]))==32")
     802              :                                           (match_operand 2 "memory_operand"))))))
     803              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
     804           66 : 
     805              : (define_insn_reservation "c86_4g_m7_avx_insertx_ymm" 3
     806              :                          (and (eq_attr "cpu" "c86_4g_m7")
     807              :                               (and (eq_attr "type" "sselog,sselog1")
     808           66 :                                    (and (eq_attr "c86_attr" "insertx")
     809              :                                      (and (eq_attr "prefix" "!evex")
     810              :                                           (eq_attr "memory" "none")))))
     811              :                          "c86-4g-m7-direct,c86-4g-m7-fpu0*2")
     812           66 : 
     813              : (define_insn_reservation "c86_4g_m7_avx_insertx_ymem" 10
     814              :                          (and (eq_attr "cpu" "c86_4g_m7")
     815              :                               (and (eq_attr "type" "sselog,sselog1")
     816           66 :                                    (and (eq_attr "c86_attr" "insertx")
     817              :                                      (and (eq_attr "prefix" "!evex")
     818              :                                           (eq_attr "memory" "load")))))
     819              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu0*2")
     820           66 : 
     821              : ;; SHUF/MULTISHIFTQB
     822              : (define_insn_reservation "c86_4g_m7_avx512_shuf_xymm" 3
     823              :                          (and (eq_attr "cpu" "c86_4g_m7")
     824           66 :                               (and (eq_attr "type" "sselog")
     825              :                                    (and (eq_attr "c86_attr" "shufx")
     826              :                                      (and (not (eq_attr "mode" "V8DF,V16SF,XI"))
     827              :                                           (eq_attr "memory" "none")))))
     828           66 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2x2")
     829              : 
     830              : (define_insn_reservation "c86_4g_m7_avx512_shuf_zmm" 4
     831              :                          (and (eq_attr "cpu" "c86_4g_m7")
     832           66 :                               (and (eq_attr "type" "sselog")
     833              :                                    (and (eq_attr "c86_attr" "shufx")
     834              :                                      (and (eq_attr "mode" "V8DF,V16SF,XI")
     835              :                                           (eq_attr "memory" "none")))))
     836           66 :                          "c86-4g-m7-vector,c86-4g-m7-fpu_0_2x4")
     837              : 
     838              : (define_insn_reservation "c86_4g_m7_avx512_shuf_xymem" 10
     839              :                          (and (eq_attr "cpu" "c86_4g_m7")
     840           61 :                               (and (eq_attr "type" "sselog")
     841              :                                    (and (eq_attr "c86_attr" "shufx")
     842              :                                      (and (not (eq_attr "mode" "V8DF,V16SF,XI"))
     843              :                                           (eq_attr "memory" "load")))))
     844           61 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2x2")
     845              : 
     846              : (define_insn_reservation "c86_4g_m7_avx512_shuf_zmem" 11
     847              :                          (and (eq_attr "cpu" "c86_4g_m7")
     848           61 :                               (and (eq_attr "type" "sselog")
     849              :                                    (and (eq_attr "c86_attr" "shufx")
     850              :                                      (and (eq_attr "mode" "V8DF,V16SF,XI")
     851              :                                           (eq_attr "memory" "load")))))
     852           61 :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_0_2x4")
     853              : 
     854              : ;; SSELOGIC
     855              : (define_insn_reservation "c86_4g_m7_sselogic_xymm" 1
     856           61 :                          (and (eq_attr "cpu" "c86_4g_m7")
     857              :                               (and (eq_attr "type" "sselog,sselog1")
     858              :                                    (and (eq_attr "c86_attr" "sselogic")
     859              :                                          (eq_attr "memory" "none"))))
     860           61 :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
     861              : 
     862              : (define_insn_reservation "c86_4g_m7_sselogic_xymm_load" 8
     863              :                          (and (eq_attr "cpu" "c86_4g_m7")
     864           61 :                               (and (eq_attr "type" "sselog,sselog1")
     865              :                                    (and (eq_attr "c86_attr" "sselogic")
     866              :                                          (eq_attr "memory" "load"))))
     867              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
     868           61 : 
     869              : ;; CMPESTR
     870              : (define_insn_reservation "c86_4g_m7_avx512_cmpestr" 6
     871              :                          (and (eq_attr "cpu" "c86_4g_m7")
     872           61 :                               (and (eq_attr "type" "sselog")
     873              :                                    (and (eq_attr "c86_attr" "cmpestr")
     874              :                                         (eq_attr "memory" "none"))))
     875              :                          "c86-4g-m7-vector,c86-4g-m7-fpux6")
     876           61 : 
     877              : (define_insn_reservation "c86_4g_m7_avx512_cmpestr_load" 13
     878              :                          (and (eq_attr "cpu" "c86_4g_m7")
     879              :                               (and (eq_attr "type" "sselog")
     880           61 :                                    (and (eq_attr "c86_attr" "cmpestr")
     881              :                                         (eq_attr "memory" "load"))))
     882              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpux6")
     883              : 
     884           61 : ;; SSELOG
     885              : (define_insn_reservation "c86_4g_m7_avx512_log" 1
     886              :                          (and (eq_attr "cpu" "c86_4g_m7")
     887              :                               (and (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1")
     888           61 :                                    (and (eq_attr "c86_attr" "other")
     889              :                                           (eq_attr "memory" "none"))))
     890              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
     891              : 
     892           61 : (define_insn_reservation "c86_4g_m7_avx512_log_load" 8
     893              :                          (and (eq_attr "cpu" "c86_4g_m7")
     894              :                               (and (eq_attr "type" "sselog,sselog1,sseshuf,sseshuf1")
     895              :                                    (and (eq_attr "c86_attr" "other")
     896           61 :                                          (eq_attr "memory" "load"))))
     897              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
     898              : 
     899              : ;; SSELOG1
     900           61 : ;; VDBPSADBW
     901              : (define_insn_reservation "c86_4g_m7_avx512_vdbpsadbw_xymm" 4
     902              :                          (and (eq_attr "cpu" "c86_4g_m7")
     903              :                               (and (eq_attr "type" "sselog1")
     904           61 :                                    (and (eq_attr "c86_attr" "sadbw")
     905              :                                     (and (eq_attr "mode" "OI,TI")
     906              :                                          (eq_attr "memory" "none")))))
     907              :                          "c86-4g-m7-double,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3")
     908           61 : 
     909              : (define_insn_reservation "c86_4g_m7_avx512_vdbpsadbw_xymem" 11
     910              :                          (and (eq_attr "cpu" "c86_4g_m7")
     911              :                               (and (eq_attr "type" "sselog1")
     912           61 :                                    (and (eq_attr "c86_attr" "sadbw")
     913              :                                     (and (eq_attr "mode" "OI,TI")
     914              :                                          (eq_attr "memory" "load")))))
     915              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3")
     916           61 : 
     917              : (define_insn_reservation "c86_4g_m7_avx512_vdbpsadbw_zmm" 4
     918              :                          (and (eq_attr "cpu" "c86_4g_m7")
     919              :                               (and (eq_attr "type" "sselog1")
     920           61 :                                    (and (eq_attr "c86_attr" "sadbw")
     921              :                                     (and (eq_attr "mode" "XI")
     922              :                                          (eq_attr "memory" "none")))))
     923              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3x2")
     924           61 : 
     925              : (define_insn_reservation "c86_4g_m7_avx512_vdbpsadbw_zmem" 11
     926              :                          (and (eq_attr "cpu" "c86_4g_m7")
     927              :                               (and (eq_attr "type" "sselog1")
     928           61 :                                    (and (eq_attr "c86_attr" "sadbw")
     929              :                                     (and (eq_attr "mode" "XI")
     930              :                                          (eq_attr "memory" "load")))))
     931              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3x2")
     932           61 : 
     933              : ;; ABS
     934              : (define_insn_reservation "c86_4g_m7_avx512_abs" 1
     935              :                          (and (eq_attr "cpu" "c86_4g_m7")
     936           61 :                               (and (eq_attr "type" "sselog1,sse")
     937              :                                    (and (eq_attr "c86_attr" "abs")
     938              :                                     (and (eq_attr "prefix" "evex")
     939              :                                          (eq_attr "memory" "none")))))
     940           61 :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
     941              : 
     942              : (define_insn_reservation "c86_4g_m7_avx512_abs_load" 8
     943              :                          (and (eq_attr "cpu" "c86_4g_m7")
     944           55 :                               (and (eq_attr "type" "sselog1,sse")
     945              :                                    (and (eq_attr "c86_attr" "abs")
     946              :                                     (and (eq_attr "prefix" "evex")
     947              :                                          (eq_attr "memory" "load,both")))))
     948           27 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-fpu")
     949              : 
     950              : ;; SIGN
     951              : (define_insn_reservation "c86_4g_m7_avx_sign" 1
     952            3 :                          (and (eq_attr "cpu" "c86_4g_m7")
     953              :                               (and (eq_attr "type" "sselog1")
     954              :                                    (and (eq_attr "c86_attr" "sign")
     955              :                                         (eq_attr "memory" "none"))))
     956            3 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_3")
     957              : 
     958              : (define_insn_reservation "c86_4g_m7_avx_sign_load" 8
     959              :                          (and (eq_attr "cpu" "c86_4g_m7")
     960            3 :                               (and (eq_attr "type" "sselog1")
     961              :                                    (and (eq_attr "c86_attr" "sign")
     962              :                                         (eq_attr "memory" "!none"))))
     963              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_3")
     964            3 : 
     965              : ;; BLEND/ABS/AES
     966              : (define_insn_reservation "c86_4g_m7_avx_blend" 1
     967              :                          (and (eq_attr "cpu" "c86_4g_m7")
     968            3 :                               (and (eq_attr "type" "sselog1")
     969              :                                    (and (eq_attr "c86_attr" "abs,blend,aes")
     970              :                                     (and (eq_attr "prefix" "!evex")
     971              :                                          (eq_attr "memory" "none")))))
     972            3 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
     973              : 
     974              : (define_insn_reservation "c86_4g_m7_avx_blend_load" 8
     975              :                          (and (eq_attr "cpu" "c86_4g_m7")
     976            3 :                               (and (eq_attr "type" "sselog1")
     977              :                                    (and (eq_attr "c86_attr" "abs,blend,aes")
     978              :                                     (and (eq_attr "prefix" "!evex")
     979              :                                          (eq_attr "memory" "load")))))
     980            3 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
     981              : 
     982              : (define_insn_reservation "c86_4g_m7_avx512_aes" 3
     983              :                          (and (eq_attr "cpu" "c86_4g_m7")
     984            3 :                               (and (eq_attr "type" "sselog1,ssecvt,sse")
     985              :                                    (and (eq_attr "c86_attr" "aes")
     986              :                                     (and (eq_attr "prefix" "evex")
     987              :                                          (eq_attr "memory" "none")))))
     988            3 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
     989              : 
     990              : (define_insn_reservation "c86_4g_m7_avx512_aes_load" 10
     991              :                          (and (eq_attr "cpu" "c86_4g_m7")
     992            3 :                               (and (eq_attr "type" "sselog1,ssecvt,sse")
     993              :                                    (and (eq_attr "c86_attr" "aes")
     994              :                                     (and (eq_attr "prefix" "evex")
     995              :                                          (eq_attr "memory" "load")))))
     996            3 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
     997              : 
     998              : (define_insn_reservation "c86_4g_m7_avx_aes" 3
     999              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1000            3 :                               (and (eq_attr "type" "sselog1")
    1001              :                                    (and (eq_attr "c86_attr" "aes")
    1002              :                                     (and (eq_attr "prefix" "!evex")
    1003              :                                          (eq_attr "memory" "none")))))
    1004            3 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
    1005              : 
    1006              : (define_insn_reservation "c86_4g_m7_avx_aes_load" 10
    1007              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1008            3 :                               (and (eq_attr "type" "sselog1")
    1009              :                                    (and (eq_attr "c86_attr" "aes")
    1010              :                                     (and (eq_attr "prefix" "!evex")
    1011              :                                          (eq_attr "memory" "load")))))
    1012            3 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
    1013              : 
    1014              : ;; EXTR
    1015              : (define_insn_reservation "c86_4g_m7_extr" 5
    1016            3 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1017              :                               (and (eq_attr "type" "sselog1,sselog,mmxcvt")
    1018              :                                    (and (eq_attr "c86_attr" "extr")
    1019              :                                         (eq_attr "memory" "none"))))
    1020            3 :                          "c86-4g-m7-double,c86-4g-m7-fpu1,c86-4g-m7-fpu_0_1")
    1021              : 
    1022              : (define_insn_reservation "c86_4g_m7_extr_store" 12
    1023              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1024            3 :                               (and (eq_attr "type" "sselog1,sselog,mmxcvt")
    1025              :                                    (and (eq_attr "c86_attr" "extr")
    1026              :                                         (eq_attr "memory" "store"))))
    1027              :                          "c86-4g-m7-double,c86-4g-m7-store,c86-4g-m7-fpu1,c86-4g-m7-fpu_0_1")
    1028            3 : 
    1029              : ;; SSECOMI
    1030              : (define_insn_reservation "c86_4g_m7_avx_ssecomi_comi" 1
    1031              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1032            3 :                               (and (eq_attr "type" "ssecomi")
    1033              :                                    (and (eq_attr "prefix_extra" "0")
    1034              :                                         (eq_attr "memory" "none"))))
    1035              :                          "c86-4g-m7-double,c86-4g-m7-fpu")
    1036            3 : 
    1037              : (define_insn_reservation "c86_4g_m7_avx_ssecomi_comi_load" 8
    1038              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1039              :                               (and (eq_attr "type" "ssecomi")
    1040            3 :                                    (and (eq_attr "prefix_extra" "0")
    1041              :                                         (eq_attr "memory" "load"))))
    1042              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu")
    1043              : 
    1044            3 : (define_insn_reservation "c86_4g_m7_avx_ssecomi_test" 1
    1045              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1046              :                               (and (eq_attr "type" "ssecomi")
    1047              :                                    (and (eq_attr "prefix_extra" "1")
    1048            3 :                                         (eq_attr "memory" "none"))))
    1049              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1|c86-4g-m7-fpu2")
    1050              : 
    1051              : (define_insn_reservation "c86_4g_m7_avx_ssecomi_test_load" 8
    1052            3 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1053              :                               (and (eq_attr "type" "ssecomi")
    1054              :                                    (and (eq_attr "prefix_extra" "1")
    1055              :                                         (eq_attr "memory" "load"))))
    1056            3 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1|c86-4g-m7-fpu2")
    1057              : 
    1058              : ;; SSEIMUL
    1059              : (define_insn_reservation "c86_4g_m7_avx512_imul" 3
    1060            3 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1061              :                               (and (eq_attr "type" "sseimul")
    1062              :                                    (and (eq_attr "prefix" "evex")
    1063              :                                         (eq_attr "memory" "none"))))
    1064            3 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1065              : 
    1066              : (define_insn_reservation "c86_4g_m7_avx512_imul_mem" 10
    1067              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1068            3 :                               (and (eq_attr "type" "sseimul")
    1069              :                                    (and (eq_attr "prefix" "evex")
    1070              :                                         (eq_attr "memory" "load"))))
    1071              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1072            3 : 
    1073              : (define_insn_reservation "c86_4g_m7_avx_imul" 3
    1074              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1075              :                               (and (eq_attr "type" "sseimul")
    1076            3 :                                    (and (eq_attr "prefix" "!evex")
    1077              :                                         (eq_attr "memory" "none"))))
    1078              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_3")
    1079              : 
    1080            0 : (define_insn_reservation "c86_4g_m7_avx_imul_mem" 10
    1081              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1082              :                               (and (eq_attr "type" "sseimul")
    1083              :                                    (and (eq_attr "prefix" "!evex")
    1084            0 :                                         (eq_attr "memory" "load"))))
    1085              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_3")
    1086              : 
    1087              : ;; SSEMOV
    1088            0 : (define_insn_reservation "c86_4g_m7_avx512_mov_vmov" 1
    1089              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1090              :                               (and (eq_attr "type" "ssemov,sseiadd")
    1091              :                                     (and (eq_attr "c86_attr" "other,blend,maxmin")
    1092            0 :                                          (eq_attr "memory" "none"))))
    1093              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
    1094              : 
    1095              : (define_insn_reservation "c86_4g_m7_avx512_mov_vmov_store" 8
    1096            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1097              :                               (and (eq_attr "type" "ssemov")
    1098              :                                    (and (eq_attr "c86_attr" "other")
    1099              :                                          (eq_attr "memory" "store"))))
    1100            0 :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-fpu1")
    1101              : 
    1102              : (define_insn_reservation "c86_4g_m7_avx512_mov_vmov_load" 8
    1103              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1104            0 :                               (and (eq_attr "type" "ssemov,sseiadd")
    1105              :                                    (and (eq_attr "c86_attr" "other,blend,maxmin")
    1106              :                                         (eq_attr "memory" "load"))))
    1107              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
    1108            0 : 
    1109              : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_y" 3
    1110              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1111              :                               (and (eq_attr "type" "ssemov")
    1112            0 :                                    (and (eq_attr "c86_attr" "vpmovx")
    1113              :                                     (and (eq_attr "prefix" "evex")
    1114              :                                      (and (eq_attr "mode" "OI,V8SF,V4DF")
    1115              :                                           (eq_attr "memory" "none"))))))
    1116            0 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2x2")
    1117              : 
    1118              : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_y_load" 10
    1119              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1120            0 :                               (and (eq_attr "type" "ssemov,sselog1")
    1121              :                                    (and (eq_attr "c86_attr" "vpmovx")
    1122              :                                     (and (eq_attr "prefix" "evex")
    1123              :                                      (and (eq_attr "mode" "OI,V8SF,V4DF")
    1124            0 :                                           (eq_attr "memory" "load,both"))))))
    1125              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-fpu_0_2x2")
    1126              : 
    1127              : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_z" 5
    1128            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1129              :                               (and (eq_attr "type" "ssemov")
    1130              :                                    (and (eq_attr "c86_attr" "vpmovx")
    1131              :                                      (and (eq_attr "mode" "XI")
    1132            0 :                                           (eq_attr "memory" "none")))))
    1133              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2x4")
    1134              : 
    1135              : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_z_load" 12
    1136            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1137              :                               (and (eq_attr "type" "ssemov")
    1138              :                                    (and (eq_attr "c86_attr" "vpmovx")
    1139              :                                      (and (eq_attr "mode" "XI")
    1140            0 :                                           (eq_attr "memory" "load")))))
    1141              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2x4")
    1142              : 
    1143              : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_x" 1
    1144            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1145              :                               (and (eq_attr "type" "ssemov")
    1146              :                                    (and (eq_attr "c86_attr" "vpmovx")
    1147              :                                     (and (eq_attr "prefix" "evex")
    1148            0 :                                      (and (eq_attr "mode" "TI,SI")
    1149              :                                           (eq_attr "memory" "none"))))))
    1150              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    1151              : 
    1152            0 : (define_insn_reservation "c86_4g_m7_avx512_vpmovx_x_load" 8
    1153              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1154              :                               (and (eq_attr "type" "ssemov")
    1155              :                                    (and (eq_attr "c86_attr" "vpmovx")
    1156            0 :                                     (and (eq_attr "prefix" "evex")
    1157              :                                      (and (eq_attr "mode" "TI,SI")
    1158              :                                           (eq_attr "memory" "load"))))))
    1159              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1160            0 : 
    1161              : (define_insn_reservation "c86_4g_m7_avx_vpmovx_xx" 1
    1162              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1163              :                               (and (eq_attr "type" "ssemov")
    1164            0 :                                    (and (eq_attr "c86_attr" "vpmovx")
    1165              :                                     (and (eq_attr "prefix" "!evex")
    1166              :                                          (eq_attr "memory" "none")))))
    1167              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1|c86-4g-m7-fpu2")
    1168            0 : 
    1169              : (define_insn_reservation "c86_4g_m7_avx_vpmovx_xx_load" 8
    1170              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1171              :                               (and (eq_attr "type" "ssemov")
    1172            0 :                                    (and (eq_attr "c86_attr" "vpmovx")
    1173              :                                     (and (eq_attr "prefix" "!evex")
    1174              :                                          (eq_attr "memory" "load,both")))))
    1175              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-store,c86-4g-m7-fpu1|c86-4g-m7-fpu2")
    1176            0 : 
    1177              : ;; EXPAND
    1178              : (define_insn_reservation "c86_4g_m7_avx512_expand" 3
    1179              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1180            0 :                               (and (eq_attr "type" "ssemov")
    1181              :                                    (and (eq_attr "c86_attr" "expand,compress")
    1182              :                                     (and (not (eq_attr "mode" "XI,V16SF,V8DF"))
    1183              :                                          (eq_attr "memory" "none")))))
    1184            0 :                          "c86-4g-m7-direct,c86-4g-m7-fpu3,c86-4g-m7-fpu_0_3")
    1185              : 
    1186              : (define_insn_reservation "c86_4g_m7_avx512_expand_load" 10
    1187              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1188            0 :                               (and (eq_attr "type" "ssemov")
    1189              :                                    (and (eq_attr "c86_attr" "expand,compress")
    1190              :                                     (and (not (eq_attr "mode" "XI,V16SF,V8DF"))
    1191              :                                          (eq_attr "memory" "load")))))
    1192            0 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu3,c86-4g-m7-fpu_0_3")
    1193              : 
    1194              : (define_insn_reservation "c86_4g_m7_avx512_expand_z" 10
    1195              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1196            0 :                               (and (eq_attr "type" "ssemov")
    1197              :                                    (and (eq_attr "c86_attr" "expand,compress")
    1198              :                                     (and (eq_attr "mode" "XI,V16SF,V8DF")
    1199              :                                          (eq_attr "memory" "none")))))
    1200            0 :                          "c86-4g-m7-vector,c86-4g-m7-fpu3,c86-4g-m7-fpu_0_3")
    1201              : 
    1202              : (define_insn_reservation "c86_4g_m7_avx512_expand_z_load" 17
    1203              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1204            0 :                               (and (eq_attr "type" "ssemov")
    1205              :                                    (and (eq_attr "c86_attr" "expand,compress")
    1206              :                                     (and (eq_attr "mode" "XI,V16SF,V8DF")
    1207              :                                          (eq_attr "memory" "load")))))
    1208            0 :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu3,c86-4g-m7-fpu_0_3")
    1209              : 
    1210              : ;; MOVNT
    1211              : (define_insn_reservation "c86_4g_m7_avx512_movnt_load" 8
    1212            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1213              :                               (and (eq_attr "type" "ssemov")
    1214              :                                    (and (eq_attr "c86_attr" "movnt")
    1215              :                                    (and (eq_attr "mode" "XI,V16SF,V8DF")
    1216            0 :                                         (eq_attr "memory" "load")))))
    1217              :                          "c86-4g-m7-double,c86-4g-m7-load")
    1218              : 
    1219              : (define_insn_reservation "c86_4g_m7_avx512_movnt_store" 8
    1220            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1221              :                               (and (eq_attr "type" "ssemov")
    1222              :                                    (and (eq_attr "c86_attr" "movnt")
    1223              :                                     (and (eq_attr "mode" "XI,V16SF,V8DF")
    1224            0 :                                          (eq_attr "memory" "store")))))
    1225              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-fpu1*2")
    1226              : 
    1227              : (define_insn_reservation "c86_4g_m7_sse_movnt_store" 4
    1228            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1229              :                               (and (eq_attr "type" "ssemov,mmxmov")
    1230              :                                    (and (eq_attr "c86_attr" "movnt")
    1231              :                                     (and (not (eq_attr "mode" "XI,V16SF,V8DF"))
    1232            0 :                                          (eq_attr "memory" "!none")))))
    1233              :                          "c86-4g-m7-direct,c86-4g-m7-store,c86-4g-m7-fpu1")
    1234              : 
    1235              : (define_insn_reservation "c86_4g_m7_sse_movnt" 4
    1236            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1237              :                               (and (eq_attr "type" "ssemov")
    1238              :                                    (and (eq_attr "c86_attr" "movnt")
    1239              :                                     (and (not (eq_attr "mode" "XI,V16SF,V8DF"))
    1240            0 :                                          (eq_attr "memory" "none")))))
    1241              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    1242              : 
    1243              : ;; BLENDV
    1244            0 : (define_insn_reservation "c86_4g_m7_avx512_blendv" 1
    1245              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1246              :                               (and (eq_attr "type" "ssemov")
    1247              :                                    (and (eq_attr "c86_attr" "blendv")
    1248            0 :                                         (eq_attr "memory" "none"))))
    1249              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
    1250              : 
    1251              : (define_insn_reservation "c86_4g_m7_avx512_blendv_load" 8
    1252            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1253              :                               (and (eq_attr "type" "ssemov")
    1254              :                                    (and (eq_attr "c86_attr" "blendv")
    1255              :                                         (eq_attr "memory" "load"))))
    1256            0 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
    1257              : 
    1258              : ;; SSEMOV2
    1259              : (define_insn_reservation "c86_4g_m7_sse_mov2" 1
    1260            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1261              :                               (and (eq_attr "type" "ssemov2")
    1262              :                                    (eq_attr "memory" "none")))
    1263              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
    1264            0 : 
    1265              : (define_insn_reservation "c86_4g_m7_sse_mov2_load" 8
    1266              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1267              :                               (and (eq_attr "type" "ssemov2")
    1268            0 :                                    (eq_attr "memory" "!none")))
    1269              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
    1270              : 
    1271              : ;; SSEISHFT
    1272            0 : (define_insn_reservation "c86_4g_m7_avx512_sseishft_aligr" 1
    1273              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1274              :                               (and (eq_attr "type" "sseishft")
    1275              :                                    (and (eq_attr "prefix_extra" "1")
    1276            0 :                                     (and (eq_attr "prefix" "evex")
    1277              :                                          (eq_attr "memory" "none")))))
    1278              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    1279              : 
    1280            0 : (define_insn_reservation "c86_4g_m7_avx512_sseishft_aligr_load" 8
    1281              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1282              :                               (and (eq_attr "type" "sseishft")
    1283              :                                    (and (eq_attr "prefix_extra" "1")
    1284            0 :                                     (and (eq_attr "prefix" "evex")
    1285              :                                          (eq_attr "memory" "load")))))
    1286              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1287              : 
    1288            0 : (define_insn_reservation "c86_4g_m7_avx512_sseishft_vshift" 1
    1289              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1290              :                               (and (eq_attr "type" "sseishft")
    1291              :                                    (and (eq_attr "prefix_extra" "!1")
    1292            0 :                                         (eq_attr "memory" "none"))))
    1293              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1294              : 
    1295              : (define_insn_reservation "c86_4g_m7_avx512_sseishft_vshift_load" 8
    1296            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1297              :                               (and (eq_attr "type" "sseishft")
    1298              :                                    (and (eq_attr "prefix_extra" "!1")
    1299              :                                         (eq_attr "memory" "!none"))))
    1300            0 :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1301              : 
    1302              : 
    1303              : ;; SSEADD
    1304            0 : (define_insn_reservation "c86_4g_m7_avx512_sseadd_maxmin" 1
    1305              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1306              :                               (and (eq_attr "type" "sseadd,sse")
    1307              :                                    (and (eq_attr "c86_attr" "maxmin")
    1308            0 :                                     (and (eq_attr "prefix" "evex")
    1309              :                                       (eq_attr "memory" "none")))))
    1310              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1311              : 
    1312            0 : (define_insn_reservation "c86_4g_m7_avx512_sseadd_maxmin_load" 8
    1313              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1314              :                               (and (eq_attr "type" "sseadd,sse")
    1315              :                                    (and (eq_attr "c86_attr" "maxmin")
    1316            0 :                                     (and (eq_attr "prefix" "evex")
    1317              :                                       (eq_attr "memory" "load")))))
    1318              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1319              : 
    1320            0 : (define_insn_reservation "c86_4g_m7_avx_sseadd_maxmin" 1
    1321              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1322              :                               (and (eq_attr "type" "sseadd,sse")
    1323              :                                    (and (eq_attr "c86_attr" "maxmin")
    1324            0 :                                     (and (eq_attr "prefix" "vex")
    1325              :                                          (eq_attr "memory" "none")))))
    1326              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
    1327              : 
    1328            0 : (define_insn_reservation "c86_4g_m7_avx_sseadd_maxmin_load" 8
    1329              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1330              :                               (and (eq_attr "type" "sseadd,sse")
    1331              :                                    (and (eq_attr "c86_attr" "maxmin")
    1332            0 :                                     (and (eq_attr "prefix" "vex")
    1333              :                                          (eq_attr "memory" "load")))))
    1334              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
    1335              : 
    1336            0 : (define_insn_reservation "c86_4g_m7_sse_sseadd_maxmin" 1
    1337              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1338              :                               (and (eq_attr "type" "sseadd,sse")
    1339              :                                    (and (eq_attr "c86_attr" "maxmin")
    1340            0 :                                     (and (eq_attr "prefix" "orig")
    1341              :                                          (eq_attr "memory" "none")))))
    1342              :                          "c86-4g-m7-direct,c86-4g-m7-fpu2|c86-4g-m7-fpu3")
    1343              : 
    1344            0 : (define_insn_reservation "c86_4g_m7_sse_sseadd_maxmin_load" 8
    1345              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1346              :                               (and (eq_attr "type" "sseadd,sse")
    1347              :                                    (and (eq_attr "c86_attr" "maxmin")
    1348            0 :                                     (and (eq_attr "prefix" "orig")
    1349              :                                          (eq_attr "memory" "load")))))
    1350              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu2|c86-4g-m7-fpu3")
    1351              : 
    1352            0 : ;; SUB/ADD
    1353              : (define_insn_reservation "c86_4g_m7_avx512_sseadd" 3
    1354              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1355              :                               (and (eq_attr "type" "sseadd")
    1356            0 :                                    (and (eq_attr "c86_attr" "other")
    1357              :                                           (eq_attr "memory" "none"))))
    1358              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    1359              : 
    1360            0 : (define_insn_reservation "c86_4g_m7_avx512_sseadd_load" 10
    1361              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1362              :                               (and (eq_attr "type" "sseadd")
    1363              :                                    (and (eq_attr "c86_attr" "other")
    1364            0 :                                          (eq_attr "memory" "load"))))
    1365              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1366              : 
    1367              : ;; HADD/HSUB
    1368            0 : (define_insn_reservation "c86_4g_m7_avx_sseadd_hplus" 7
    1369              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1370              :                               (and (eq_attr "type" "sseadd,sseadd1")
    1371              :                                    (and (eq_attr "c86_attr" "hplus")
    1372            0 :                                         (eq_attr "memory" "none"))))
    1373              :                          "c86-4g-m7-vector")
    1374              : 
    1375              : (define_insn_reservation "c86_4g_m7_avx_sseadd_hplus_load" 14
    1376            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1377              :                               (and (eq_attr "type" "sseadd,sseadd1")
    1378              :                                    (and (eq_attr "c86_attr" "hplus")
    1379              :                                         (eq_attr "memory" "load"))))
    1380            0 :                          "c86-4g-m7-vector,c86-4g-m7-load")
    1381              : 
    1382              : ;; SSEIADD
    1383              : (define_insn_reservation "c86_4g_m7_avx512_sseiadd_madd" 3
    1384            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1385              :                               (and (eq_attr "type" "sseiadd")
    1386              :                                    (and (eq_attr "c86_attr" "sadbw,madd")
    1387              :                                         (and (ior (eq_attr "prefix" "evex")
    1388            0 :                                                   (eq_attr "mode" "XI"))
    1389              :                                              (eq_attr "memory" "none")))))
    1390              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1391              : 
    1392            0 : (define_insn_reservation "c86_4g_m7_avx512_sseiadd_madd_mem" 10
    1393              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1394              :                               (and (eq_attr "type" "sseiadd")
    1395              :                                    (and (eq_attr "c86_attr" "sadbw,madd")
    1396            0 :                                         (and (ior (eq_attr "prefix" "evex")
    1397              :                                                   (eq_attr "mode" "XI"))
    1398              :                                              (eq_attr "memory" "load")))))
    1399              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1400            0 : 
    1401              : (define_insn_reservation "c86_4g_m7_avx_sseiadd_sadbw" 3
    1402              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1403              :                               (and (eq_attr "type" "sseiadd")
    1404            0 :                                    (and (eq_attr "c86_attr" "sadbw")
    1405              :                                     (and (eq_attr "prefix" "vex,maybe_evex")
    1406            0 :                                      (and (eq_attr "mode" "TI,OI")
    1407              :                                           (eq_attr "memory" "none"))))))
    1408            0 :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
    1409              : 
    1410              : (define_insn_reservation "c86_4g_m7_avx_sseiadd_sadbw_mem" 10
    1411              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1412            0 :                               (and (eq_attr "type" "sseiadd")
    1413              :                                    (and (eq_attr "c86_attr" "sadbw")
    1414              :                                     (and (eq_attr "prefix" "vex,maybe_evex")
    1415              :                                      (and (eq_attr "mode" "TI,OI")
    1416            0 :                                           (eq_attr "memory" "load"))))))
    1417              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
    1418              : 
    1419              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_sadbw" 3
    1420            0 :                          (and (eq_attr "cpu" "c86_4g_m7")
    1421              :                               (and (eq_attr "type" "sseiadd")
    1422              :                                    (and (eq_attr "c86_attr" "sadbw")
    1423              :                                     (and (eq_attr "prefix" "orig")
    1424              :                                          (eq_attr "memory" "none")))))
    1425              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_3")
    1426            0 : 
    1427              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_sadbw_mem" 10
    1428              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1429              :                               (and (eq_attr "type" "sseiadd")
    1430              :                                    (and (eq_attr "c86_attr" "sadbw")
    1431              :                                     (and (eq_attr "prefix" "orig")
    1432              :                                          (eq_attr "memory" "load")))))
    1433              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_3")
    1434              : 
    1435              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_madd" 3
    1436              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1437              :                               (and (eq_attr "type" "sseiadd")
    1438              :                                    (and (eq_attr "c86_attr" "madd")
    1439              :                                     (and (eq_attr "prefix" "!evex")
    1440              :                                          (eq_attr "memory" "none")))))
    1441              :                          "c86-4g-m7-direct,c86-4g-m7-fpu0")
    1442              : 
    1443              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_madd_mem" 10
    1444              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1445              :                               (and (eq_attr "type" "sseiadd")
    1446              :                                    (and (eq_attr "c86_attr" "madd")
    1447              :                                     (and (eq_attr "prefix" "!evex")
    1448              :                                          (eq_attr "memory" "load")))))
    1449              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu0")
    1450              : 
    1451              : ;; AVG
    1452              : (define_insn_reservation "c86_4g_m7_avx512_sseiadd_avg" 1
    1453              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1454              :                               (and (eq_attr "type" "sseiadd")
    1455              :                                    (and (eq_attr "c86_attr" "avg")
    1456              :                                         (eq_attr "memory" "none"))))
    1457              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
    1458              : 
    1459              : (define_insn_reservation "c86_4g_m7_avx512_sseiadd_avg_load" 8
    1460              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1461              :                               (and (eq_attr "type" "sseiadd")
    1462              :                                    (and (eq_attr "c86_attr" "avg")
    1463              :                                         (eq_attr "memory" "load"))))
    1464              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
    1465              : 
    1466              : (define_insn_reservation "c86_4g_m7_avx_sseiadd_hplus" 3
    1467              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1468              :                               (and (eq_attr "type" "sseiadd,sseiadd1")
    1469              :                                    (and (eq_attr "c86_attr" "hplus")
    1470              :                                     (and (eq_attr "prefix" "vex")
    1471              :                                          (eq_attr "memory" "none")))))
    1472              :                          "c86-4g-m7-vector")
    1473              : 
    1474              : (define_insn_reservation "c86_4g_m7_avx_sseiadd_hplus_load" 10
    1475              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1476              :                               (and (eq_attr "type" "sseiadd,sseiadd1")
    1477              :                                    (and (eq_attr "c86_attr" "hplus")
    1478              :                                     (and (eq_attr "prefix" "vex")
    1479              :                                          (eq_attr "memory" "load")))))
    1480              :                          "c86-4g-m7-vector,c86-4g-m7-load")
    1481              : 
    1482              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_hplus" 3
    1483              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1484              :                               (and (eq_attr "type" "sseiadd,sseiadd1")
    1485              :                                    (and (eq_attr "c86_attr" "hplus")
    1486              :                                     (and (eq_attr "prefix" "orig")
    1487              :                                      (eq_attr "memory" "none")))))
    1488              :                          "c86-4g-m7-vector,c86-4g-m7-fpux2")
    1489              : 
    1490              : (define_insn_reservation "c86_4g_m7_sse_sseiadd_hplus_load" 10
    1491              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1492              :                               (and (eq_attr "type" "sseiadd,sseiadd1")
    1493              :                                    (and (eq_attr "c86_attr" "hplus")
    1494              :                                     (and (eq_attr "prefix" "orig")
    1495              :                                          (eq_attr "memory" "load")))))
    1496              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpux2")
    1497              : 
    1498              : ;; SSEMUL
    1499              : (define_insn_reservation "c86_4g_m7_avx512_ssemul" 3
    1500              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1501              :                               (and (eq_attr "type" "ssemul")
    1502              :                                    (eq_attr "memory" "none")))
    1503              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1504              : 
    1505              : (define_insn_reservation "c86_4g_m7_avx512_ssemul_load" 10
    1506              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1507              :                               (and (eq_attr "type" "ssemul")
    1508              :                                    (eq_attr "memory" "load")))
    1509              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1510              : 
    1511              : ;; SSEDIV
    1512              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_x" 13
    1513              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1514              :                               (and (eq_attr "type" "ssediv")
    1515              :                                    (and (eq_attr "mode" "SF,DF,V4SF,V2DF")
    1516              :                                         (eq_attr "memory" "none"))))
    1517              :                          "c86-4g-m7-direct,c86-4g-m7-fp1div1_fp3div3_x4x8")
    1518              : 
    1519              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_xmem" 20
    1520              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1521              :                               (and (eq_attr "type" "ssediv")
    1522              :                                    (and (eq_attr "mode" "SF,DF,V4SF,V2DF")
    1523              :                                         (eq_attr "memory" "load"))))
    1524              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp1div1_fp3div3_x4x8")
    1525              : 
    1526              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_y" 13
    1527              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1528              :                               (and (eq_attr "type" "ssediv")
    1529              :                                    (and (eq_attr "mode" "V8SF,V4DF")
    1530              :                                         (eq_attr "memory" "none"))))
    1531              :                          "c86-4g-m7-direct,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*8")
    1532              : 
    1533              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_ymem" 20
    1534              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1535              :                               (and (eq_attr "type" "ssediv")
    1536              :                                    (and (eq_attr "mode" "V8SF,V4DF")
    1537              :                                         (eq_attr "memory" "load"))))
    1538              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*8")
    1539              : 
    1540              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_z" 24
    1541              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1542              :                               (and (eq_attr "type" "ssediv")
    1543              :                                    (and (eq_attr "mode" "V16SF,V8DF")
    1544              :                                         (eq_attr "memory" "none"))))
    1545              :                          "c86-4g-m7-double,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*20")
    1546              : 
    1547              : (define_insn_reservation "c86_4g_m7_avx512_ssediv_zmem" 31
    1548              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1549              :                               (and (eq_attr "type" "ssediv")
    1550              :                                    (and (eq_attr "mode" "V16SF,V8DF")
    1551              :                                          (eq_attr "memory" "load"))))
    1552              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*20")
    1553              : 
    1554              : ;; SSECMP
    1555              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp" 5
    1556              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1557              :                               (and (eq_attr "type" "ssecmp")
    1558              :                                    (and (eq_attr "prefix" "evex")
    1559              :                                     (and (eq_attr "mode" "V2DF,V4DF,V8SF,V4SF,SF,DF")
    1560              :                                          (eq_attr "memory" "none")))))
    1561              :                          "c86-4g-m7-double,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3")
    1562              : 
    1563              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_load" 12
    1564              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1565              :                               (and (eq_attr "type" "ssecmp")
    1566              :                                    (and (eq_attr "prefix" "evex")
    1567              :                                     (and (eq_attr "mode" "V2DF,V4DF,V8SF,V4SF,SF,DF")
    1568              :                                          (eq_attr "memory" "load")))))
    1569              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3")
    1570              : 
    1571              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_z" 5
    1572              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1573              :                               (and (eq_attr "type" "ssecmp")
    1574              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
    1575              :                                      (and (eq_attr "c86_attr" "other")
    1576              :                                           (eq_attr "memory" "none")))))
    1577              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3")
    1578              : 
    1579              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_z_load" 12
    1580              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1581              :                               (and (eq_attr "type" "ssecmp")
    1582              :                                     (and (eq_attr "mode" "V16SF,V8DF,XI")
    1583              :                                      (and (eq_attr "c86_attr" "other")
    1584              :                                           (eq_attr "memory" "load")))))
    1585              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_0_2,c86-4g-m7-fpu_1_3x2")
    1586              : 
    1587              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_vp" 5
    1588              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1589              :                               (and (eq_attr "type" "ssecmp")
    1590              :                                    (and (eq_attr "prefix" "evex")
    1591              :                                     (and (eq_attr "mode" "TI,OI")
    1592              :                                      (and (eq_attr "c86_attr" "other")
    1593              :                                           (eq_attr "memory" "none"))))))
    1594              :                          "c86-4g-m7-double,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3")
    1595              : 
    1596              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_vp_load" 12
    1597              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1598              :                               (and (eq_attr "type" "ssecmp")
    1599              :                                    (and (eq_attr "prefix" "evex")
    1600              :                                     (and (eq_attr "mode" "TI,OI")
    1601              :                                      (and (eq_attr "c86_attr" "other")
    1602              :                                           (eq_attr "memory" "load"))))))
    1603              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3")
    1604              : 
    1605              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_vp_z" 5
    1606              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1607              :                               (and (eq_attr "type" "ssecmp")
    1608              :                                    (and (eq_attr "prefix" "evex")
    1609              :                                     (and (eq_attr "mode" "XI")
    1610              :                                      (and (eq_attr "c86_attr" "other,ptest")
    1611              :                                           (eq_attr "memory" "none"))))))
    1612              :                          "c86-4g-m7-vector,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3")
    1613              : 
    1614              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_vp_z_load" 12
    1615              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1616              :                               (and (eq_attr "type" "ssecmp")
    1617              :                                    (and (eq_attr "prefix" "evex")
    1618              :                                     (and (eq_attr "mode" "XI")
    1619              :                                      (and (eq_attr "c86_attr" "other,ptest")
    1620              :                                           (eq_attr "memory" "load"))))))
    1621              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3x2")
    1622              : 
    1623              : (define_insn_reservation "c86_4g_m7_avx_ssecmp_vp" 1
    1624              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1625              :                               (and (eq_attr "type" "ssecmp")
    1626              :                                    (and (eq_attr "prefix" "!evex")
    1627              :                                         (eq_attr "memory" "none"))))
    1628              :                          "c86-4g-m7-direct,c86-4g-m7-fpu")
    1629              : 
    1630              : (define_insn_reservation "c86_4g_m7_avx_ssecmp_vp_load" 8
    1631              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1632              :                               (and (eq_attr "type" "ssecmp")
    1633              :                                    (and (eq_attr "prefix" "!evex")
    1634              :                                         (eq_attr "memory" "load"))))
    1635              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu")
    1636              : 
    1637              : ;; VPTEST
    1638              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_test" 6
    1639              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1640              :                               (and (eq_attr "type" "ssecmp")
    1641              :                                     (and (eq_attr "mode" "TI,OI")
    1642              :                                      (and (eq_attr "c86_attr" "ptest")
    1643              :                                           (eq_attr "memory" "none")))))
    1644              :                          "c86-4g-m7-double,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3")
    1645              : 
    1646              : (define_insn_reservation "c86_4g_m7_avx512_ssecmp_test_load" 13
    1647              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1648              :                               (and (eq_attr "type" "ssecmp")
    1649              :                                     (and (eq_attr "mode" "TI,OI")
    1650              :                                      (and (eq_attr "c86_attr" "ptest")
    1651              :                                           (eq_attr "memory" "load")))))
    1652              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu,c86-4g-m7-fpu_1_3")
    1653              : 
    1654              : ;; SSECVT
    1655              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_xy" 4
    1656              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1657              :                               (and (eq_attr "type" "ssecvt")
    1658              :                                    (and (eq_attr "c86_attr" "other")
    1659              :                                     (and (eq_attr "prefix" "evex")
    1660              :                                      (and (eq_attr "mode" "TI,V4SF,V2DF,OI,V8SF,V4DF")
    1661              :                                       (and (not (ior (match_operand:V8DI 1 "register_operand")
    1662              :                                                      (match_operand:V8DF 1 "register_operand")))
    1663              :                                            (eq_attr "memory" "none")))))))
    1664              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    1665              : 
    1666              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_xy_load" 11
    1667              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1668              :                               (and (eq_attr "type" "ssecvt")
    1669              :                                    (and (eq_attr "prefix" "evex")
    1670              :                                     (and (eq_attr "c86_attr" "other")
    1671              :                                      (and (eq_attr "mode" "TI,V4SF,V2DF,OI,V8SF,V4DF")
    1672              :                                       (and (not (ior (match_operand:V8DI 1 "register_operand")
    1673              :                                                      (match_operand:V8DF 1 "register_operand")))
    1674              :                                            (eq_attr "memory" "!none")))))))
    1675              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1676              : 
    1677              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_y_z" 8
    1678              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1679              :                               (and (eq_attr "type" "ssecvt")
    1680              :                                    (and (eq_attr "mode" "OI,V8SF,V4DF")
    1681              :                                     (and (eq_attr "c86_attr" "other")
    1682              :                                      (and (ior (match_operand:V8DI 1 "register_operand")
    1683              :                                                (match_operand:V8DF 1 "register_operand"))
    1684              :                                           (eq_attr "memory" "none"))))))
    1685              :                          "c86-4g-m7-double,c86-4g-m7-fpu_1_3")
    1686              : 
    1687              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_y_z_load" 15
    1688              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1689              :                               (and (eq_attr "type" "ssecvt")
    1690              :                                    (and (eq_attr "mode" "OI,V8SF,V4DF")
    1691              :                                     (and (eq_attr "c86_attr" "other")
    1692              :                                      (and (ior (match_operand:V8DI 1 "memory_operand")
    1693              :                                                (match_operand:V8DF 1 "memory_operand"))
    1694              :                                           (eq_attr "memory" "!none"))))))
    1695              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1696              : 
    1697              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_z" 4
    1698              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1699              :                               (and (eq_attr "type" "ssecvt")
    1700              :                                    (and (eq_attr "c86_attr" "other")
    1701              :                                     (and (eq_attr "mode" "XI,V16SF,V8DF")
    1702              :                                          (eq_attr "memory" "none")))))
    1703              :                          "c86-4g-m7-double,c86-4g-m7-fpu_1_3")
    1704              : 
    1705              : (define_insn_reservation "c86_4g_m7_avx512_ssecvt_z_load" 11
    1706              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1707              :                               (and (eq_attr "type" "ssecvt")
    1708              :                                    (and (eq_attr "c86_attr" "other")
    1709              :                                     (and (eq_attr "mode" "XI,V16SF,V8DF")
    1710              :                                          (eq_attr "memory" "!none")))))
    1711              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_1_3")
    1712              : 
    1713              : (define_insn_reservation "c86_4g_m7_avx_ssecvt" 4
    1714              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1715              :                               (and (eq_attr "type" "ssecvt")
    1716              :                                    (and (eq_attr "prefix" "!evex")
    1717              :                                      (and (eq_attr "mmx_isa" "base")
    1718              :                                           (eq_attr "memory" "none")))))
    1719              :                          "c86-4g-m7-direct,c86-4g-m7-fpu2|c86-4g-m7-fpu3")
    1720              : 
    1721              : (define_insn_reservation "c86_4g_m7_avx_ssecvt_load" 11
    1722              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1723              :                               (and (eq_attr "type" "ssecvt")
    1724              :                                    (and (eq_attr "prefix" "!evex")
    1725              :                                     (and (eq_attr "mmx_isa" "base")
    1726              :                                          (eq_attr "memory" "!none")))))
    1727              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu2|c86-4g-m7-fpu3")
    1728              : 
    1729              : ;; CVTPI
    1730              : (define_insn_reservation "c86_4g_m7_sse_ssecvt_pspi" 4
    1731              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1732              :                               (and (eq_attr "type" "ssecvt")
    1733              :                                    (and (eq_attr "mode" "SF,DI")
    1734              :                                         (eq_attr "memory" "none"))))
    1735              :                          "c86-4g-m7-direct,c86-4g-m7-fpu1")
    1736              : 
    1737              : (define_insn_reservation "c86_4g_m7_sse_ssecvt_pspi_load" 11
    1738              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1739              :                               (and (eq_attr "type" "ssecvt")
    1740              :                                    (and (eq_attr "mode" "SF,DI")
    1741              :                                          (eq_attr "memory" "load"))))
    1742              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu1")
    1743              : 
    1744              : (define_insn_reservation "c86_4g_m7_sse_ssecvt_pi" 5
    1745              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1746              :                               (and (eq_attr "type" "ssecvt")
    1747              :                                     (and (not (eq_attr "mode" "SF,DI"))
    1748              :                                      (and (eq_attr "mmx_isa" "native")
    1749              :                                           (eq_attr "memory" "none")))))
    1750              :                          "c86-4g-m7-double,c86-4g-m7-fpu1,c86-4g-m7-fpu_0_1")
    1751              : 
    1752              : (define_insn_reservation "c86_4g_m7_sse_ssecvt_pi_load" 12
    1753              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1754              :                               (and (eq_attr "type" "ssecvt")
    1755              :                                    (and (not (eq_attr "mode" "SF,DI"))
    1756              :                                     (and (eq_attr "mmx_isa" "native")
    1757              :                                          (eq_attr "memory" "load")))))
    1758              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu1,c86-4g-m7-fpu_0_1")
    1759              : 
    1760              : ;; SSEMULADD
    1761              : (define_insn_reservation "c86_4g_m7_avx512_muladd" 4
    1762              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1763              :                               (and (eq_attr "type" "ssemuladd")
    1764              :                                    (and (eq_attr "c86_attr" "other")
    1765              :                                         (eq_attr "memory" "none"))))
    1766              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1767              : 
    1768              : (define_insn_reservation "c86_4g_m7_avx512_muladd_load" 11
    1769              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1770              :                               (and (eq_attr "type" "ssemuladd")
    1771              :                                    (and (eq_attr "c86_attr" "other")
    1772              :                                         (eq_attr "memory" "load"))))
    1773              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1774              : 
    1775              : (define_insn_reservation "c86_4g_m7_avx512_muladd_madd" 4
    1776              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1777              :                               (and (eq_attr "type" "ssemuladd,sse")
    1778              :                                    (and (eq_attr "c86_attr" "madd,rcp")
    1779              :                                     (and (eq_attr "prefix" "evex")
    1780              :                                          (eq_attr "memory" "none")))))
    1781              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1782              : 
    1783              : (define_insn_reservation "c86_4g_m7_avx512_muladd_madd_load" 11
    1784              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1785              :                               (and (eq_attr "type" "ssemuladd,sse")
    1786              :                                    (and (eq_attr "c86_attr" "madd,rcp")
    1787              :                                     (and (eq_attr "prefix" "evex")
    1788              :                                          (eq_attr "memory" "load")))))
    1789              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1790              : 
    1791              : ;; SSE
    1792              : (define_insn_reservation "c86_4g_m7_avx512_sse_range" 1
    1793              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1794              :                               (and (eq_attr "type" "sse")
    1795              :                                     (and (eq_attr "c86_attr" "other")
    1796              :                                      (and (eq_attr "length_immediate" "!1")
    1797              :                                       (and (eq_attr "prefix" "evex")
    1798              :                                        (and (eq_attr "c86_decode" "direct")
    1799              :                                            (eq_attr "memory" "none")))))))
    1800              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_2")
    1801              : 
    1802              : (define_insn_reservation "c86_4g_m7_avx512_sse_range_load" 8
    1803              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1804              :                               (and (eq_attr "type" "sse")
    1805              :                                     (and (eq_attr "c86_attr" "other")
    1806              :                                      (and (eq_attr "length_immediate" "!1")
    1807              :                                       (and (eq_attr "c86_decode" "direct")
    1808              :                                        (and (eq_attr "prefix" "evex")
    1809              :                                             (eq_attr "memory" "load")))))))
    1810              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_2")
    1811              : 
    1812              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_x" 2
    1813              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1814              :                               (and (eq_attr "type" "sse")
    1815              :                                    (and (eq_attr "c86_decode" "vector")
    1816              :                                     (and (eq_attr "mode" "TI")
    1817              :                                          (eq_attr "memory" "none")))))
    1818              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_1_3x2")
    1819              : 
    1820              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_x_load" 9
    1821              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1822              :                               (and (eq_attr "type" "sse")
    1823              :                                    (and (eq_attr "c86_decode" "vector")
    1824              :                                     (and (eq_attr "mode" "TI")
    1825              :                                          (eq_attr "memory" "load")))))
    1826              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_1_3x2")
    1827              : 
    1828              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_y" 5
    1829              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1830              :                               (and (eq_attr "type" "sse")
    1831              :                                    (and (eq_attr "c86_decode" "vector")
    1832              :                                     (and (eq_attr "mode" "OI")
    1833              :                                          (eq_attr "memory" "none")))))
    1834              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_1_3x3")
    1835              : 
    1836              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_y_load" 12
    1837              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1838              :                               (and (eq_attr "type" "sse")
    1839              :                                    (and (eq_attr "c86_decode" "vector")
    1840              :                                     (and (eq_attr "mode" "OI")
    1841              :                                          (eq_attr "memory" "load")))))
    1842              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_1_3x3")
    1843              : 
    1844              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_z" 8
    1845              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1846              :                               (and (eq_attr "type" "sse")
    1847              :                                    (and (eq_attr "c86_decode" "vector")
    1848              :                                     (and (eq_attr "mode" "XI")
    1849              :                                          (eq_attr "memory" "none")))))
    1850              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_1_3x6")
    1851              : 
    1852              : (define_insn_reservation "c86_4g_m7_avx512_sse_conflict_z_load" 15
    1853              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1854              :                               (and (eq_attr "type" "sse")
    1855              :                                    (and (eq_attr "c86_decode" "vector")
    1856              :                                     (and (eq_attr "mode" "XI")
    1857              :                                          (eq_attr "memory" "load")))))
    1858              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_1_3x6")
    1859              : 
    1860              : (define_insn_reservation "c86_4g_m7_avx512_sse_class" 4
    1861              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1862              :                               (and (eq_attr "type" "sse")
    1863              :                                    (and (eq_attr "c86_attr" "other")
    1864              :                                     (and (eq_attr "length_immediate" "1")
    1865              :                                      (and (not (eq_attr "mode" "V32HF,V16SF,V8DF"))
    1866              :                                           (eq_attr "memory" "none"))))))
    1867              :                          "c86-4g-m7-double,c86-4g-m7-fpu_1_3,c86-4g-m7-fpu_1_3")
    1868              : 
    1869              : (define_insn_reservation "c86_4g_m7_avx512_sse_class_load" 11
    1870              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1871              :                               (and (eq_attr "type" "sse")
    1872              :                                     (and (eq_attr "c86_attr" "other")
    1873              :                                      (and (eq_attr "length_immediate" "1")
    1874              :                                       (and (not (eq_attr "mode" "V32HF,V16SF,V8DF"))
    1875              :                                            (eq_attr "memory" "load"))))))
    1876              :                          "c86-4g-m7-double,c86-4g-m7-load,c86-4g-m7-fpu_1_3,c86-4g-m7-fpu_1_3")
    1877              : 
    1878              : (define_insn_reservation "c86_4g_m7_avx512_sse_class_z" 4
    1879              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1880              :                               (and (eq_attr "type" "sse")
    1881              :                                     (and (eq_attr "c86_attr" "other")
    1882              :                                      (and (eq_attr "length_immediate" "1")
    1883              :                                       (and (eq_attr "mode" "V32HF,V16SF,V8DF")
    1884              :                                            (eq_attr "memory" "none"))))))
    1885              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_1_3,c86-4g-m7-fpu_1_3")
    1886              : 
    1887              : (define_insn_reservation "c86_4g_m7_avx512_sse_class_z_load" 11
    1888              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1889              :                               (and (eq_attr "type" "sse")
    1890              :                                     (and (eq_attr "c86_attr" "other")
    1891              :                                      (and (eq_attr "length_immediate" "1")
    1892              :                                       (and (eq_attr "mode" "V32HF,V16SF,V8DF")
    1893              :                                            (eq_attr "memory" "load"))))))
    1894              :                          "c86-4g-m7-vector,c86-4g-m7-load,c86-4g-m7-fpu_1_3,c86-4g-m7-fpu_1_3")
    1895              : 
    1896              : (define_insn_reservation "c86_4g_m7_avx_sse" 5
    1897              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1898              :                               (and (eq_attr "type" "sse")
    1899              :                                    (and (eq_attr "c86_attr" "rcp,other")
    1900              :                                     (and (eq_attr "prefix" "!evex")
    1901              :                                          (eq_attr "memory" "none")))))
    1902              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_0_1")
    1903              : 
    1904              : (define_insn_reservation "c86_4g_m7_avx_sse_load" 12
    1905              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1906              :                               (and (eq_attr "type" "sse")
    1907              :                                    (and (eq_attr "c86_attr" "rcp,other")
    1908              :                                     (and (eq_attr "prefix" "!evex")
    1909              :                                          (eq_attr "memory" "load")))))
    1910              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fpu_0_1")
    1911              : 
    1912              : ;; SSE SQRT
    1913              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_x" 14
    1914              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1915              :                               (and (eq_attr "type" "sse")
    1916              :                                    (and (eq_attr "mode" "SF,V4SF")
    1917              :                                     (and (eq_attr "c86_attr" "sqrt")
    1918              :                                          (eq_attr "memory" "none")))))
    1919              :                          "c86-4g-m7-direct,c86-4g-m7-fp1div1_fp3div3_x4x9")
    1920              : 
    1921              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_xload" 21
    1922              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1923              :                               (and (eq_attr "type" "sse")
    1924              :                                    (and (eq_attr "mode" "SF,V4SF")
    1925              :                                     (and (eq_attr "c86_attr" "sqrt")
    1926              :                                          (eq_attr "memory" "load")))))
    1927              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp1div1_fp3div3_x4x9")
    1928              : 
    1929              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_y" 14
    1930              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1931              :                               (and (eq_attr "type" "sse")
    1932              :                                    (and (eq_attr "mode" "V8SF")
    1933              :                                     (and (eq_attr "c86_attr" "sqrt")
    1934              :                                          (eq_attr "memory" "none")))))
    1935              :                          "c86-4g-m7-direct,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*9")
    1936              : 
    1937              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_yload" 21
    1938              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1939              :                               (and (eq_attr "type" "sse")
    1940              :                                    (and (eq_attr "mode" "V8SF")
    1941              :                                     (and (eq_attr "c86_attr" "sqrt")
    1942              :                                          (eq_attr "memory" "load")))))
    1943              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*9")
    1944              : 
    1945              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_z" 26
    1946              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1947              :                               (and (eq_attr "type" "sse")
    1948              :                                    (and (eq_attr "mode" "V16SF")
    1949              :                                     (and (eq_attr "c86_attr" "sqrt")
    1950              :                                          (eq_attr "memory" "none")))))
    1951              :                          "c86-4g-m7-direct,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*22")
    1952              : 
    1953              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_sf_zload" 33
    1954              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1955              :                               (and (eq_attr "type" "sse")
    1956              :                                    (and (eq_attr "mode" "V16SF")
    1957              :                                     (and (eq_attr "c86_attr" "sqrt")
    1958              :                                          (eq_attr "memory" "load")))))
    1959              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*22")
    1960              : 
    1961              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_x" 20
    1962              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1963              :                               (and (eq_attr "type" "sse")
    1964              :                                    (and (eq_attr "mode" "DF,V2DF")
    1965              :                                     (and (eq_attr "c86_attr" "sqrt")
    1966              :                                          (eq_attr "memory" "none")))))
    1967              :                          "c86-4g-m7-direct,c86-4g-m7-fp1div1_fp3div3_x4x15")
    1968              : 
    1969              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_xload" 27
    1970              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1971              :                               (and (eq_attr "type" "sse")
    1972              :                                    (and (eq_attr "mode" "DF,V2DF")
    1973              :                                     (and (eq_attr "c86_attr" "sqrt")
    1974              :                                          (eq_attr "memory" "load")))))
    1975              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp1div1_fp3div3_x4x15")
    1976              : 
    1977              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_y" 20
    1978              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1979              :                               (and (eq_attr "type" "sse")
    1980              :                                    (and (eq_attr "mode" "V4DF")
    1981              :                                     (and (eq_attr "c86_attr" "sqrt")
    1982              :                                          (eq_attr "memory" "none")))))
    1983              :                          "c86-4g-m7-direct,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*15")
    1984              : 
    1985              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_yload" 27
    1986              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1987              :                               (and (eq_attr "type" "sse")
    1988              :                                    (and (eq_attr "mode" "V4DF")
    1989              :                                     (and (eq_attr "c86_attr" "sqrt")
    1990              :                                          (eq_attr "memory" "load")))))
    1991              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*15")
    1992              : 
    1993              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_z" 38
    1994              :                          (and (eq_attr "cpu" "c86_4g_m7")
    1995              :                               (and (eq_attr "type" "sse")
    1996              :                                    (and (eq_attr "mode" "V8DF")
    1997              :                                     (and (eq_attr "c86_attr" "sqrt")
    1998              :                                          (eq_attr "memory" "none")))))
    1999              :                          "c86-4g-m7-direct,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*34")
    2000              : 
    2001              : (define_insn_reservation "c86_4g_m7_avx512_sse_sqrt_df_zload" 45
    2002              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2003              :                               (and (eq_attr "type" "sse")
    2004              :                                    (and (eq_attr "mode" "V8DF")
    2005              :                                     (and (eq_attr "c86_attr" "sqrt")
    2006              :                                          (eq_attr "memory" "load")))))
    2007              :                          "c86-4g-m7-direct,c86-4g-m7-load,c86-4g-m7-fp13div13x4,c86-4g-m7-fdiv13*34")
    2008              : 
    2009              : ;; MSKLOG/MSKMOV
    2010              : (define_insn_reservation "c86_4g_m7_avx512_msklog" 1
    2011              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2012              :                               (and (eq_attr "type" "msklog")
    2013              :                                    (eq_attr "c86_decode" "direct")))
    2014              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    2015              : 
    2016              : (define_insn_reservation "c86_4g_m7_avx512_msklog_vector" 4
    2017              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2018              :                               (and (eq_attr "type" "msklog")
    2019              :                                    (eq_attr "c86_decode" "vector")))
    2020              :                          "c86-4g-m7-vector,c86-4g-m7-fpu_1_3")
    2021              : 
    2022              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_reg_k" 1
    2023              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2024              :                               (and (eq_attr "type" "mskmov")
    2025              :                                   (and (match_operand 0 "register_operand" "r")
    2026              :                                        (eq_attr "memory" "none"))))
    2027              :                          "c86-4g-m7-double,c86-4g-m7-fpu3,c86-4g-m7-fpu_1_3")
    2028              : 
    2029              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_xy_k" 2
    2030              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2031              :                               (and (eq_attr "type" "mskmov")
    2032              :                                    (ior (match_operand:V2DI 0 "register_operand" "v")
    2033              :                                         (match_operand:V4DI 0 "register_operand" "v"))))
    2034              :                          "c86-4g-m7-double,c86-4g-m7-fpu3,c86-4g-m7-fpu_1_3")
    2035              : 
    2036              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_z_k" 3
    2037              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2038              :                               (and (eq_attr "type" "mskmov")
    2039              :                                    (match_operand:V8DI 0 "register_operand" "v")))
    2040              :                          "c86-4g-m7-vector,c86-4g-m7-fpu3,c86-4g-m7-fpu_1_3")
    2041              : 
    2042              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_k_k" 1
    2043              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2044              :                               (and (eq_attr "type" "mskmov")
    2045              :                                   (and (match_operand 0 "register_operand" "k")
    2046              :                                        (match_operand 1 "register_operand" "k"))))
    2047              :                          "c86-4g-m7-direct,c86-4g-m7-fpu_1_3")
    2048              : 
    2049              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_k_reg" 3
    2050              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2051              :                               (and (eq_attr "type" "mskmov")
    2052              :                                   (and (match_operand 0 "register_operand" "k")
    2053              :                                        (match_operand 1 "register_operand" "r"))))
    2054              :                          "c86-4g-m7-double,c86-4g-m7-fpu1,c86-4g-m7-fpu_1_3")
    2055              : 
    2056              : (define_insn_reservation "c86_4g_m7_avx512_mskmov_k_m" 9
    2057              :                          (and (eq_attr "cpu" "c86_4g_m7")
    2058              :                               (and (eq_attr "type" "mskmov")
    2059              :                                   (and (match_operand 0 "register_operand" "k")
    2060              :                                        (match_operand 1 "memory_operand"))))
    2061              :                          "c86-4g-m7-direct,c86-4g-m7-load")
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.