LCOV - code coverage report
Current view: top level - gcc/config/i386 - c86-4g-m7.md Coverage Total Hit
Test: gcc.info Lines: 0.0 % 162 0
Test Date: 2026-05-30 15:37:04 Functions: - 0 0
Legend: Lines:     hit not hit

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