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