Home | History | Annotate | Download | only in X86
      1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
      2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
      3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=atom | FileCheck %s --check-prefix=CHECK --check-prefix=ATOM
      4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=slm | FileCheck %s --check-prefix=CHECK --check-prefix=SLM
      5 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=sandybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
      6 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
      7 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
      8 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL
      9 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE
     10 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX
     11 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2
     12 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1
     13 
     14 define void @test_cmov_16(i16 %a0, i16 %a1, i16 *%a2) optsize {
     15 ; GENERIC-LABEL: test_cmov_16:
     16 ; GENERIC:       # %bb.0:
     17 ; GENERIC-NEXT:    #APP
     18 ; GENERIC-NEXT:    cmovow %si, %di # sched: [2:0.67]
     19 ; GENERIC-NEXT:    cmovnow %si, %di # sched: [2:0.67]
     20 ; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
     21 ; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
     22 ; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
     23 ; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
     24 ; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
     25 ; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
     26 ; GENERIC-NEXT:    cmovew %si, %di # sched: [2:0.67]
     27 ; GENERIC-NEXT:    cmovew %si, %di # sched: [2:0.67]
     28 ; GENERIC-NEXT:    cmovnew %si, %di # sched: [2:0.67]
     29 ; GENERIC-NEXT:    cmovnew %si, %di # sched: [2:0.67]
     30 ; GENERIC-NEXT:    cmovbew %si, %di # sched: [3:1.00]
     31 ; GENERIC-NEXT:    cmovbew %si, %di # sched: [3:1.00]
     32 ; GENERIC-NEXT:    cmovaw %si, %di # sched: [3:1.00]
     33 ; GENERIC-NEXT:    cmovaw %si, %di # sched: [3:1.00]
     34 ; GENERIC-NEXT:    cmovsw %si, %di # sched: [2:0.67]
     35 ; GENERIC-NEXT:    cmovnsw %si, %di # sched: [2:0.67]
     36 ; GENERIC-NEXT:    cmovpw %si, %di # sched: [2:0.67]
     37 ; GENERIC-NEXT:    cmovpw %si, %di # sched: [2:0.67]
     38 ; GENERIC-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
     39 ; GENERIC-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
     40 ; GENERIC-NEXT:    cmovlw %si, %di # sched: [2:0.67]
     41 ; GENERIC-NEXT:    cmovlw %si, %di # sched: [2:0.67]
     42 ; GENERIC-NEXT:    cmovgew %si, %di # sched: [2:0.67]
     43 ; GENERIC-NEXT:    cmovgew %si, %di # sched: [2:0.67]
     44 ; GENERIC-NEXT:    cmovlew %si, %di # sched: [2:0.67]
     45 ; GENERIC-NEXT:    cmovlew %si, %di # sched: [2:0.67]
     46 ; GENERIC-NEXT:    cmovgw %si, %di # sched: [2:0.67]
     47 ; GENERIC-NEXT:    cmovgw %si, %di # sched: [2:0.67]
     48 ; GENERIC-NEXT:    cmovow (%rdx), %di # sched: [7:0.67]
     49 ; GENERIC-NEXT:    cmovnow (%rdx), %di # sched: [7:0.67]
     50 ; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
     51 ; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
     52 ; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
     53 ; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
     54 ; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
     55 ; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
     56 ; GENERIC-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
     57 ; GENERIC-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
     58 ; GENERIC-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
     59 ; GENERIC-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
     60 ; GENERIC-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
     61 ; GENERIC-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
     62 ; GENERIC-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
     63 ; GENERIC-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
     64 ; GENERIC-NEXT:    cmovsw (%rdx), %di # sched: [7:0.67]
     65 ; GENERIC-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.67]
     66 ; GENERIC-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
     67 ; GENERIC-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
     68 ; GENERIC-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
     69 ; GENERIC-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
     70 ; GENERIC-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
     71 ; GENERIC-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
     72 ; GENERIC-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
     73 ; GENERIC-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
     74 ; GENERIC-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
     75 ; GENERIC-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
     76 ; GENERIC-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
     77 ; GENERIC-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
     78 ; GENERIC-NEXT:    #NO_APP
     79 ; GENERIC-NEXT:    retq # sched: [1:1.00]
     80 ;
     81 ; ATOM-LABEL: test_cmov_16:
     82 ; ATOM:       # %bb.0:
     83 ; ATOM-NEXT:    #APP
     84 ; ATOM-NEXT:    cmovow %si, %di # sched: [1:0.50]
     85 ; ATOM-NEXT:    cmovnow %si, %di # sched: [1:0.50]
     86 ; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
     87 ; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
     88 ; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
     89 ; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
     90 ; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
     91 ; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
     92 ; ATOM-NEXT:    cmovew %si, %di # sched: [1:0.50]
     93 ; ATOM-NEXT:    cmovew %si, %di # sched: [1:0.50]
     94 ; ATOM-NEXT:    cmovnew %si, %di # sched: [1:0.50]
     95 ; ATOM-NEXT:    cmovnew %si, %di # sched: [1:0.50]
     96 ; ATOM-NEXT:    cmovbew %si, %di # sched: [1:0.50]
     97 ; ATOM-NEXT:    cmovbew %si, %di # sched: [1:0.50]
     98 ; ATOM-NEXT:    cmovaw %si, %di # sched: [1:0.50]
     99 ; ATOM-NEXT:    cmovaw %si, %di # sched: [1:0.50]
    100 ; ATOM-NEXT:    cmovsw %si, %di # sched: [1:0.50]
    101 ; ATOM-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
    102 ; ATOM-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    103 ; ATOM-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    104 ; ATOM-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    105 ; ATOM-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    106 ; ATOM-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    107 ; ATOM-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    108 ; ATOM-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    109 ; ATOM-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    110 ; ATOM-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    111 ; ATOM-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    112 ; ATOM-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    113 ; ATOM-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    114 ; ATOM-NEXT:    cmovow (%rdx), %di # sched: [1:1.00]
    115 ; ATOM-NEXT:    cmovnow (%rdx), %di # sched: [1:1.00]
    116 ; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
    117 ; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
    118 ; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
    119 ; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
    120 ; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
    121 ; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
    122 ; ATOM-NEXT:    cmovew (%rdx), %di # sched: [1:1.00]
    123 ; ATOM-NEXT:    cmovew (%rdx), %di # sched: [1:1.00]
    124 ; ATOM-NEXT:    cmovnew (%rdx), %di # sched: [1:1.00]
    125 ; ATOM-NEXT:    cmovnew (%rdx), %di # sched: [1:1.00]
    126 ; ATOM-NEXT:    cmovbew (%rdx), %di # sched: [1:1.00]
    127 ; ATOM-NEXT:    cmovbew (%rdx), %di # sched: [1:1.00]
    128 ; ATOM-NEXT:    cmovaw (%rdx), %di # sched: [1:1.00]
    129 ; ATOM-NEXT:    cmovaw (%rdx), %di # sched: [1:1.00]
    130 ; ATOM-NEXT:    cmovsw (%rdx), %di # sched: [1:1.00]
    131 ; ATOM-NEXT:    cmovnsw (%rdx), %di # sched: [1:1.00]
    132 ; ATOM-NEXT:    cmovpw (%rdx), %di # sched: [1:1.00]
    133 ; ATOM-NEXT:    cmovpw (%rdx), %di # sched: [1:1.00]
    134 ; ATOM-NEXT:    cmovnpw (%rdx), %di # sched: [1:1.00]
    135 ; ATOM-NEXT:    cmovnpw (%rdx), %di # sched: [1:1.00]
    136 ; ATOM-NEXT:    cmovlw (%rdx), %di # sched: [1:1.00]
    137 ; ATOM-NEXT:    cmovlw (%rdx), %di # sched: [1:1.00]
    138 ; ATOM-NEXT:    cmovgew (%rdx), %di # sched: [1:1.00]
    139 ; ATOM-NEXT:    cmovgew (%rdx), %di # sched: [1:1.00]
    140 ; ATOM-NEXT:    cmovlew (%rdx), %di # sched: [1:1.00]
    141 ; ATOM-NEXT:    cmovlew (%rdx), %di # sched: [1:1.00]
    142 ; ATOM-NEXT:    cmovgw (%rdx), %di # sched: [1:1.00]
    143 ; ATOM-NEXT:    cmovgw (%rdx), %di # sched: [1:1.00]
    144 ; ATOM-NEXT:    #NO_APP
    145 ; ATOM-NEXT:    retq # sched: [79:39.50]
    146 ;
    147 ; SLM-LABEL: test_cmov_16:
    148 ; SLM:       # %bb.0:
    149 ; SLM-NEXT:    #APP
    150 ; SLM-NEXT:    cmovow %si, %di # sched: [2:1.00]
    151 ; SLM-NEXT:    cmovnow %si, %di # sched: [2:1.00]
    152 ; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
    153 ; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
    154 ; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
    155 ; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
    156 ; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
    157 ; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
    158 ; SLM-NEXT:    cmovew %si, %di # sched: [2:1.00]
    159 ; SLM-NEXT:    cmovew %si, %di # sched: [2:1.00]
    160 ; SLM-NEXT:    cmovnew %si, %di # sched: [2:1.00]
    161 ; SLM-NEXT:    cmovnew %si, %di # sched: [2:1.00]
    162 ; SLM-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    163 ; SLM-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    164 ; SLM-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    165 ; SLM-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    166 ; SLM-NEXT:    cmovsw %si, %di # sched: [2:1.00]
    167 ; SLM-NEXT:    cmovnsw %si, %di # sched: [2:1.00]
    168 ; SLM-NEXT:    cmovpw %si, %di # sched: [2:1.00]
    169 ; SLM-NEXT:    cmovpw %si, %di # sched: [2:1.00]
    170 ; SLM-NEXT:    cmovnpw %si, %di # sched: [2:1.00]
    171 ; SLM-NEXT:    cmovnpw %si, %di # sched: [2:1.00]
    172 ; SLM-NEXT:    cmovlw %si, %di # sched: [2:1.00]
    173 ; SLM-NEXT:    cmovlw %si, %di # sched: [2:1.00]
    174 ; SLM-NEXT:    cmovgew %si, %di # sched: [2:1.00]
    175 ; SLM-NEXT:    cmovgew %si, %di # sched: [2:1.00]
    176 ; SLM-NEXT:    cmovlew %si, %di # sched: [2:1.00]
    177 ; SLM-NEXT:    cmovlew %si, %di # sched: [2:1.00]
    178 ; SLM-NEXT:    cmovgw %si, %di # sched: [2:1.00]
    179 ; SLM-NEXT:    cmovgw %si, %di # sched: [2:1.00]
    180 ; SLM-NEXT:    cmovow (%rdx), %di # sched: [5:1.00]
    181 ; SLM-NEXT:    cmovnow (%rdx), %di # sched: [5:1.00]
    182 ; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
    183 ; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
    184 ; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
    185 ; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
    186 ; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
    187 ; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
    188 ; SLM-NEXT:    cmovew (%rdx), %di # sched: [5:1.00]
    189 ; SLM-NEXT:    cmovew (%rdx), %di # sched: [5:1.00]
    190 ; SLM-NEXT:    cmovnew (%rdx), %di # sched: [5:1.00]
    191 ; SLM-NEXT:    cmovnew (%rdx), %di # sched: [5:1.00]
    192 ; SLM-NEXT:    cmovbew (%rdx), %di # sched: [5:1.00]
    193 ; SLM-NEXT:    cmovbew (%rdx), %di # sched: [5:1.00]
    194 ; SLM-NEXT:    cmovaw (%rdx), %di # sched: [5:1.00]
    195 ; SLM-NEXT:    cmovaw (%rdx), %di # sched: [5:1.00]
    196 ; SLM-NEXT:    cmovsw (%rdx), %di # sched: [5:1.00]
    197 ; SLM-NEXT:    cmovnsw (%rdx), %di # sched: [5:1.00]
    198 ; SLM-NEXT:    cmovpw (%rdx), %di # sched: [5:1.00]
    199 ; SLM-NEXT:    cmovpw (%rdx), %di # sched: [5:1.00]
    200 ; SLM-NEXT:    cmovnpw (%rdx), %di # sched: [5:1.00]
    201 ; SLM-NEXT:    cmovnpw (%rdx), %di # sched: [5:1.00]
    202 ; SLM-NEXT:    cmovlw (%rdx), %di # sched: [5:1.00]
    203 ; SLM-NEXT:    cmovlw (%rdx), %di # sched: [5:1.00]
    204 ; SLM-NEXT:    cmovgew (%rdx), %di # sched: [5:1.00]
    205 ; SLM-NEXT:    cmovgew (%rdx), %di # sched: [5:1.00]
    206 ; SLM-NEXT:    cmovlew (%rdx), %di # sched: [5:1.00]
    207 ; SLM-NEXT:    cmovlew (%rdx), %di # sched: [5:1.00]
    208 ; SLM-NEXT:    cmovgw (%rdx), %di # sched: [5:1.00]
    209 ; SLM-NEXT:    cmovgw (%rdx), %di # sched: [5:1.00]
    210 ; SLM-NEXT:    #NO_APP
    211 ; SLM-NEXT:    retq # sched: [4:1.00]
    212 ;
    213 ; SANDY-LABEL: test_cmov_16:
    214 ; SANDY:       # %bb.0:
    215 ; SANDY-NEXT:    #APP
    216 ; SANDY-NEXT:    cmovow %si, %di # sched: [2:0.67]
    217 ; SANDY-NEXT:    cmovnow %si, %di # sched: [2:0.67]
    218 ; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
    219 ; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
    220 ; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
    221 ; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
    222 ; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
    223 ; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
    224 ; SANDY-NEXT:    cmovew %si, %di # sched: [2:0.67]
    225 ; SANDY-NEXT:    cmovew %si, %di # sched: [2:0.67]
    226 ; SANDY-NEXT:    cmovnew %si, %di # sched: [2:0.67]
    227 ; SANDY-NEXT:    cmovnew %si, %di # sched: [2:0.67]
    228 ; SANDY-NEXT:    cmovbew %si, %di # sched: [3:1.00]
    229 ; SANDY-NEXT:    cmovbew %si, %di # sched: [3:1.00]
    230 ; SANDY-NEXT:    cmovaw %si, %di # sched: [3:1.00]
    231 ; SANDY-NEXT:    cmovaw %si, %di # sched: [3:1.00]
    232 ; SANDY-NEXT:    cmovsw %si, %di # sched: [2:0.67]
    233 ; SANDY-NEXT:    cmovnsw %si, %di # sched: [2:0.67]
    234 ; SANDY-NEXT:    cmovpw %si, %di # sched: [2:0.67]
    235 ; SANDY-NEXT:    cmovpw %si, %di # sched: [2:0.67]
    236 ; SANDY-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
    237 ; SANDY-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
    238 ; SANDY-NEXT:    cmovlw %si, %di # sched: [2:0.67]
    239 ; SANDY-NEXT:    cmovlw %si, %di # sched: [2:0.67]
    240 ; SANDY-NEXT:    cmovgew %si, %di # sched: [2:0.67]
    241 ; SANDY-NEXT:    cmovgew %si, %di # sched: [2:0.67]
    242 ; SANDY-NEXT:    cmovlew %si, %di # sched: [2:0.67]
    243 ; SANDY-NEXT:    cmovlew %si, %di # sched: [2:0.67]
    244 ; SANDY-NEXT:    cmovgw %si, %di # sched: [2:0.67]
    245 ; SANDY-NEXT:    cmovgw %si, %di # sched: [2:0.67]
    246 ; SANDY-NEXT:    cmovow (%rdx), %di # sched: [7:0.67]
    247 ; SANDY-NEXT:    cmovnow (%rdx), %di # sched: [7:0.67]
    248 ; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
    249 ; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
    250 ; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
    251 ; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
    252 ; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
    253 ; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
    254 ; SANDY-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
    255 ; SANDY-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
    256 ; SANDY-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
    257 ; SANDY-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
    258 ; SANDY-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
    259 ; SANDY-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
    260 ; SANDY-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
    261 ; SANDY-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
    262 ; SANDY-NEXT:    cmovsw (%rdx), %di # sched: [7:0.67]
    263 ; SANDY-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.67]
    264 ; SANDY-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
    265 ; SANDY-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
    266 ; SANDY-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
    267 ; SANDY-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
    268 ; SANDY-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
    269 ; SANDY-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
    270 ; SANDY-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
    271 ; SANDY-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
    272 ; SANDY-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
    273 ; SANDY-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
    274 ; SANDY-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
    275 ; SANDY-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
    276 ; SANDY-NEXT:    #NO_APP
    277 ; SANDY-NEXT:    retq # sched: [1:1.00]
    278 ;
    279 ; HASWELL-LABEL: test_cmov_16:
    280 ; HASWELL:       # %bb.0:
    281 ; HASWELL-NEXT:    #APP
    282 ; HASWELL-NEXT:    cmovow %si, %di # sched: [2:0.50]
    283 ; HASWELL-NEXT:    cmovnow %si, %di # sched: [2:0.50]
    284 ; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
    285 ; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
    286 ; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
    287 ; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
    288 ; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
    289 ; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
    290 ; HASWELL-NEXT:    cmovew %si, %di # sched: [2:0.50]
    291 ; HASWELL-NEXT:    cmovew %si, %di # sched: [2:0.50]
    292 ; HASWELL-NEXT:    cmovnew %si, %di # sched: [2:0.50]
    293 ; HASWELL-NEXT:    cmovnew %si, %di # sched: [2:0.50]
    294 ; HASWELL-NEXT:    cmovbew %si, %di # sched: [3:0.75]
    295 ; HASWELL-NEXT:    cmovbew %si, %di # sched: [3:0.75]
    296 ; HASWELL-NEXT:    cmovaw %si, %di # sched: [3:0.75]
    297 ; HASWELL-NEXT:    cmovaw %si, %di # sched: [3:0.75]
    298 ; HASWELL-NEXT:    cmovsw %si, %di # sched: [2:0.50]
    299 ; HASWELL-NEXT:    cmovnsw %si, %di # sched: [2:0.50]
    300 ; HASWELL-NEXT:    cmovpw %si, %di # sched: [2:0.50]
    301 ; HASWELL-NEXT:    cmovpw %si, %di # sched: [2:0.50]
    302 ; HASWELL-NEXT:    cmovnpw %si, %di # sched: [2:0.50]
    303 ; HASWELL-NEXT:    cmovnpw %si, %di # sched: [2:0.50]
    304 ; HASWELL-NEXT:    cmovlw %si, %di # sched: [2:0.50]
    305 ; HASWELL-NEXT:    cmovlw %si, %di # sched: [2:0.50]
    306 ; HASWELL-NEXT:    cmovgew %si, %di # sched: [2:0.50]
    307 ; HASWELL-NEXT:    cmovgew %si, %di # sched: [2:0.50]
    308 ; HASWELL-NEXT:    cmovlew %si, %di # sched: [2:0.50]
    309 ; HASWELL-NEXT:    cmovlew %si, %di # sched: [2:0.50]
    310 ; HASWELL-NEXT:    cmovgw %si, %di # sched: [2:0.50]
    311 ; HASWELL-NEXT:    cmovgw %si, %di # sched: [2:0.50]
    312 ; HASWELL-NEXT:    cmovow (%rdx), %di # sched: [7:0.50]
    313 ; HASWELL-NEXT:    cmovnow (%rdx), %di # sched: [7:0.50]
    314 ; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
    315 ; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
    316 ; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
    317 ; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
    318 ; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
    319 ; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
    320 ; HASWELL-NEXT:    cmovew (%rdx), %di # sched: [7:0.50]
    321 ; HASWELL-NEXT:    cmovew (%rdx), %di # sched: [7:0.50]
    322 ; HASWELL-NEXT:    cmovnew (%rdx), %di # sched: [7:0.50]
    323 ; HASWELL-NEXT:    cmovnew (%rdx), %di # sched: [7:0.50]
    324 ; HASWELL-NEXT:    cmovbew (%rdx), %di # sched: [8:0.75]
    325 ; HASWELL-NEXT:    cmovbew (%rdx), %di # sched: [8:0.75]
    326 ; HASWELL-NEXT:    cmovaw (%rdx), %di # sched: [8:0.75]
    327 ; HASWELL-NEXT:    cmovaw (%rdx), %di # sched: [8:0.75]
    328 ; HASWELL-NEXT:    cmovsw (%rdx), %di # sched: [7:0.50]
    329 ; HASWELL-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.50]
    330 ; HASWELL-NEXT:    cmovpw (%rdx), %di # sched: [7:0.50]
    331 ; HASWELL-NEXT:    cmovpw (%rdx), %di # sched: [7:0.50]
    332 ; HASWELL-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.50]
    333 ; HASWELL-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.50]
    334 ; HASWELL-NEXT:    cmovlw (%rdx), %di # sched: [7:0.50]
    335 ; HASWELL-NEXT:    cmovlw (%rdx), %di # sched: [7:0.50]
    336 ; HASWELL-NEXT:    cmovgew (%rdx), %di # sched: [7:0.50]
    337 ; HASWELL-NEXT:    cmovgew (%rdx), %di # sched: [7:0.50]
    338 ; HASWELL-NEXT:    cmovlew (%rdx), %di # sched: [7:0.50]
    339 ; HASWELL-NEXT:    cmovlew (%rdx), %di # sched: [7:0.50]
    340 ; HASWELL-NEXT:    cmovgw (%rdx), %di # sched: [7:0.50]
    341 ; HASWELL-NEXT:    cmovgw (%rdx), %di # sched: [7:0.50]
    342 ; HASWELL-NEXT:    #NO_APP
    343 ; HASWELL-NEXT:    retq # sched: [7:1.00]
    344 ;
    345 ; BROADWELL-LABEL: test_cmov_16:
    346 ; BROADWELL:       # %bb.0:
    347 ; BROADWELL-NEXT:    #APP
    348 ; BROADWELL-NEXT:    cmovow %si, %di # sched: [1:0.50]
    349 ; BROADWELL-NEXT:    cmovnow %si, %di # sched: [1:0.50]
    350 ; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    351 ; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    352 ; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    353 ; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    354 ; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    355 ; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    356 ; BROADWELL-NEXT:    cmovew %si, %di # sched: [1:0.50]
    357 ; BROADWELL-NEXT:    cmovew %si, %di # sched: [1:0.50]
    358 ; BROADWELL-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    359 ; BROADWELL-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    360 ; BROADWELL-NEXT:    cmovbew %si, %di # sched: [2:0.50]
    361 ; BROADWELL-NEXT:    cmovbew %si, %di # sched: [2:0.50]
    362 ; BROADWELL-NEXT:    cmovaw %si, %di # sched: [2:0.50]
    363 ; BROADWELL-NEXT:    cmovaw %si, %di # sched: [2:0.50]
    364 ; BROADWELL-NEXT:    cmovsw %si, %di # sched: [1:0.50]
    365 ; BROADWELL-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
    366 ; BROADWELL-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    367 ; BROADWELL-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    368 ; BROADWELL-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    369 ; BROADWELL-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    370 ; BROADWELL-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    371 ; BROADWELL-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    372 ; BROADWELL-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    373 ; BROADWELL-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    374 ; BROADWELL-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    375 ; BROADWELL-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    376 ; BROADWELL-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    377 ; BROADWELL-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    378 ; BROADWELL-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
    379 ; BROADWELL-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
    380 ; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    381 ; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    382 ; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    383 ; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    384 ; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    385 ; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    386 ; BROADWELL-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    387 ; BROADWELL-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    388 ; BROADWELL-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    389 ; BROADWELL-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    390 ; BROADWELL-NEXT:    cmovbew (%rdx), %di # sched: [7:0.50]
    391 ; BROADWELL-NEXT:    cmovbew (%rdx), %di # sched: [7:0.50]
    392 ; BROADWELL-NEXT:    cmovaw (%rdx), %di # sched: [7:0.50]
    393 ; BROADWELL-NEXT:    cmovaw (%rdx), %di # sched: [7:0.50]
    394 ; BROADWELL-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
    395 ; BROADWELL-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
    396 ; BROADWELL-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    397 ; BROADWELL-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    398 ; BROADWELL-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    399 ; BROADWELL-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    400 ; BROADWELL-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    401 ; BROADWELL-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    402 ; BROADWELL-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    403 ; BROADWELL-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    404 ; BROADWELL-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    405 ; BROADWELL-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    406 ; BROADWELL-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    407 ; BROADWELL-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    408 ; BROADWELL-NEXT:    #NO_APP
    409 ; BROADWELL-NEXT:    retq # sched: [7:1.00]
    410 ;
    411 ; SKYLAKE-LABEL: test_cmov_16:
    412 ; SKYLAKE:       # %bb.0:
    413 ; SKYLAKE-NEXT:    #APP
    414 ; SKYLAKE-NEXT:    cmovow %si, %di # sched: [1:0.50]
    415 ; SKYLAKE-NEXT:    cmovnow %si, %di # sched: [1:0.50]
    416 ; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    417 ; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    418 ; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    419 ; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    420 ; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    421 ; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    422 ; SKYLAKE-NEXT:    cmovew %si, %di # sched: [1:0.50]
    423 ; SKYLAKE-NEXT:    cmovew %si, %di # sched: [1:0.50]
    424 ; SKYLAKE-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    425 ; SKYLAKE-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    426 ; SKYLAKE-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    427 ; SKYLAKE-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    428 ; SKYLAKE-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    429 ; SKYLAKE-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    430 ; SKYLAKE-NEXT:    cmovsw %si, %di # sched: [1:0.50]
    431 ; SKYLAKE-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
    432 ; SKYLAKE-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    433 ; SKYLAKE-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    434 ; SKYLAKE-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    435 ; SKYLAKE-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    436 ; SKYLAKE-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    437 ; SKYLAKE-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    438 ; SKYLAKE-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    439 ; SKYLAKE-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    440 ; SKYLAKE-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    441 ; SKYLAKE-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    442 ; SKYLAKE-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    443 ; SKYLAKE-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    444 ; SKYLAKE-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
    445 ; SKYLAKE-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
    446 ; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    447 ; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    448 ; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    449 ; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    450 ; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    451 ; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    452 ; SKYLAKE-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    453 ; SKYLAKE-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    454 ; SKYLAKE-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    455 ; SKYLAKE-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    456 ; SKYLAKE-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
    457 ; SKYLAKE-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
    458 ; SKYLAKE-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
    459 ; SKYLAKE-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
    460 ; SKYLAKE-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
    461 ; SKYLAKE-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
    462 ; SKYLAKE-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    463 ; SKYLAKE-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    464 ; SKYLAKE-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    465 ; SKYLAKE-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    466 ; SKYLAKE-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    467 ; SKYLAKE-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    468 ; SKYLAKE-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    469 ; SKYLAKE-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    470 ; SKYLAKE-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    471 ; SKYLAKE-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    472 ; SKYLAKE-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    473 ; SKYLAKE-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    474 ; SKYLAKE-NEXT:    #NO_APP
    475 ; SKYLAKE-NEXT:    retq # sched: [7:1.00]
    476 ;
    477 ; SKX-LABEL: test_cmov_16:
    478 ; SKX:       # %bb.0:
    479 ; SKX-NEXT:    #APP
    480 ; SKX-NEXT:    cmovow %si, %di # sched: [1:0.50]
    481 ; SKX-NEXT:    cmovnow %si, %di # sched: [1:0.50]
    482 ; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    483 ; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    484 ; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    485 ; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    486 ; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    487 ; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    488 ; SKX-NEXT:    cmovew %si, %di # sched: [1:0.50]
    489 ; SKX-NEXT:    cmovew %si, %di # sched: [1:0.50]
    490 ; SKX-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    491 ; SKX-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    492 ; SKX-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    493 ; SKX-NEXT:    cmovbew %si, %di # sched: [2:1.00]
    494 ; SKX-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    495 ; SKX-NEXT:    cmovaw %si, %di # sched: [2:1.00]
    496 ; SKX-NEXT:    cmovsw %si, %di # sched: [1:0.50]
    497 ; SKX-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
    498 ; SKX-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    499 ; SKX-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    500 ; SKX-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    501 ; SKX-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    502 ; SKX-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    503 ; SKX-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    504 ; SKX-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    505 ; SKX-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    506 ; SKX-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    507 ; SKX-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    508 ; SKX-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    509 ; SKX-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    510 ; SKX-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
    511 ; SKX-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
    512 ; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    513 ; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    514 ; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
    515 ; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    516 ; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    517 ; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
    518 ; SKX-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    519 ; SKX-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
    520 ; SKX-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    521 ; SKX-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
    522 ; SKX-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
    523 ; SKX-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
    524 ; SKX-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
    525 ; SKX-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
    526 ; SKX-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
    527 ; SKX-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
    528 ; SKX-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    529 ; SKX-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
    530 ; SKX-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    531 ; SKX-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
    532 ; SKX-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    533 ; SKX-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
    534 ; SKX-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    535 ; SKX-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
    536 ; SKX-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    537 ; SKX-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
    538 ; SKX-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    539 ; SKX-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
    540 ; SKX-NEXT:    #NO_APP
    541 ; SKX-NEXT:    retq # sched: [7:1.00]
    542 ;
    543 ; BTVER2-LABEL: test_cmov_16:
    544 ; BTVER2:       # %bb.0:
    545 ; BTVER2-NEXT:    #APP
    546 ; BTVER2-NEXT:    cmovow %si, %di # sched: [1:0.50]
    547 ; BTVER2-NEXT:    cmovnow %si, %di # sched: [1:0.50]
    548 ; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    549 ; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    550 ; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
    551 ; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    552 ; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    553 ; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
    554 ; BTVER2-NEXT:    cmovew %si, %di # sched: [1:0.50]
    555 ; BTVER2-NEXT:    cmovew %si, %di # sched: [1:0.50]
    556 ; BTVER2-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    557 ; BTVER2-NEXT:    cmovnew %si, %di # sched: [1:0.50]
    558 ; BTVER2-NEXT:    cmovbew %si, %di # sched: [1:0.50]
    559 ; BTVER2-NEXT:    cmovbew %si, %di # sched: [1:0.50]
    560 ; BTVER2-NEXT:    cmovaw %si, %di # sched: [1:0.50]
    561 ; BTVER2-NEXT:    cmovaw %si, %di # sched: [1:0.50]
    562 ; BTVER2-NEXT:    cmovsw %si, %di # sched: [1:0.50]
    563 ; BTVER2-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
    564 ; BTVER2-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    565 ; BTVER2-NEXT:    cmovpw %si, %di # sched: [1:0.50]
    566 ; BTVER2-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    567 ; BTVER2-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
    568 ; BTVER2-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    569 ; BTVER2-NEXT:    cmovlw %si, %di # sched: [1:0.50]
    570 ; BTVER2-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    571 ; BTVER2-NEXT:    cmovgew %si, %di # sched: [1:0.50]
    572 ; BTVER2-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    573 ; BTVER2-NEXT:    cmovlew %si, %di # sched: [1:0.50]
    574 ; BTVER2-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    575 ; BTVER2-NEXT:    cmovgw %si, %di # sched: [1:0.50]
    576 ; BTVER2-NEXT:    cmovow (%rdx), %di # sched: [4:1.00]
    577 ; BTVER2-NEXT:    cmovnow (%rdx), %di # sched: [4:1.00]
    578 ; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
    579 ; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
    580 ; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
    581 ; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
    582 ; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
    583 ; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
    584 ; BTVER2-NEXT:    cmovew (%rdx), %di # sched: [4:1.00]
    585 ; BTVER2-NEXT:    cmovew (%rdx), %di # sched: [4:1.00]
    586 ; BTVER2-NEXT:    cmovnew (%rdx), %di # sched: [4:1.00]
    587 ; BTVER2-NEXT:    cmovnew (%rdx), %di # sched: [4:1.00]
    588 ; BTVER2-NEXT:    cmovbew (%rdx), %di # sched: [4:1.00]
    589 ; BTVER2-NEXT:    cmovbew (%rdx), %di # sched: [4:1.00]
    590 ; BTVER2-NEXT:    cmovaw (%rdx), %di # sched: [4:1.00]
    591 ; BTVER2-NEXT:    cmovaw (%rdx), %di # sched: [4:1.00]
    592 ; BTVER2-NEXT:    cmovsw (%rdx), %di # sched: [4:1.00]
    593 ; BTVER2-NEXT:    cmovnsw (%rdx), %di # sched: [4:1.00]
    594 ; BTVER2-NEXT:    cmovpw (%rdx), %di # sched: [4:1.00]
    595 ; BTVER2-NEXT:    cmovpw (%rdx), %di # sched: [4:1.00]
    596 ; BTVER2-NEXT:    cmovnpw (%rdx), %di # sched: [4:1.00]
    597 ; BTVER2-NEXT:    cmovnpw (%rdx), %di # sched: [4:1.00]
    598 ; BTVER2-NEXT:    cmovlw (%rdx), %di # sched: [4:1.00]
    599 ; BTVER2-NEXT:    cmovlw (%rdx), %di # sched: [4:1.00]
    600 ; BTVER2-NEXT:    cmovgew (%rdx), %di # sched: [4:1.00]
    601 ; BTVER2-NEXT:    cmovgew (%rdx), %di # sched: [4:1.00]
    602 ; BTVER2-NEXT:    cmovlew (%rdx), %di # sched: [4:1.00]
    603 ; BTVER2-NEXT:    cmovlew (%rdx), %di # sched: [4:1.00]
    604 ; BTVER2-NEXT:    cmovgw (%rdx), %di # sched: [4:1.00]
    605 ; BTVER2-NEXT:    cmovgw (%rdx), %di # sched: [4:1.00]
    606 ; BTVER2-NEXT:    #NO_APP
    607 ; BTVER2-NEXT:    retq # sched: [4:1.00]
    608 ;
    609 ; ZNVER1-LABEL: test_cmov_16:
    610 ; ZNVER1:       # %bb.0:
    611 ; ZNVER1-NEXT:    #APP
    612 ; ZNVER1-NEXT:    cmovow %si, %di # sched: [1:0.25]
    613 ; ZNVER1-NEXT:    cmovnow %si, %di # sched: [1:0.25]
    614 ; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
    615 ; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
    616 ; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
    617 ; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
    618 ; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
    619 ; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
    620 ; ZNVER1-NEXT:    cmovew %si, %di # sched: [1:0.25]
    621 ; ZNVER1-NEXT:    cmovew %si, %di # sched: [1:0.25]
    622 ; ZNVER1-NEXT:    cmovnew %si, %di # sched: [1:0.25]
    623 ; ZNVER1-NEXT:    cmovnew %si, %di # sched: [1:0.25]
    624 ; ZNVER1-NEXT:    cmovbew %si, %di # sched: [1:0.25]
    625 ; ZNVER1-NEXT:    cmovbew %si, %di # sched: [1:0.25]
    626 ; ZNVER1-NEXT:    cmovaw %si, %di # sched: [1:0.25]
    627 ; ZNVER1-NEXT:    cmovaw %si, %di # sched: [1:0.25]
    628 ; ZNVER1-NEXT:    cmovsw %si, %di # sched: [1:0.25]
    629 ; ZNVER1-NEXT:    cmovnsw %si, %di # sched: [1:0.25]
    630 ; ZNVER1-NEXT:    cmovpw %si, %di # sched: [1:0.25]
    631 ; ZNVER1-NEXT:    cmovpw %si, %di # sched: [1:0.25]
    632 ; ZNVER1-NEXT:    cmovnpw %si, %di # sched: [1:0.25]
    633 ; ZNVER1-NEXT:    cmovnpw %si, %di # sched: [1:0.25]
    634 ; ZNVER1-NEXT:    cmovlw %si, %di # sched: [1:0.25]
    635 ; ZNVER1-NEXT:    cmovlw %si, %di # sched: [1:0.25]
    636 ; ZNVER1-NEXT:    cmovgew %si, %di # sched: [1:0.25]
    637 ; ZNVER1-NEXT:    cmovgew %si, %di # sched: [1:0.25]
    638 ; ZNVER1-NEXT:    cmovlew %si, %di # sched: [1:0.25]
    639 ; ZNVER1-NEXT:    cmovlew %si, %di # sched: [1:0.25]
    640 ; ZNVER1-NEXT:    cmovgw %si, %di # sched: [1:0.25]
    641 ; ZNVER1-NEXT:    cmovgw %si, %di # sched: [1:0.25]
    642 ; ZNVER1-NEXT:    cmovow (%rdx), %di # sched: [5:0.50]
    643 ; ZNVER1-NEXT:    cmovnow (%rdx), %di # sched: [5:0.50]
    644 ; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
    645 ; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
    646 ; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
    647 ; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
    648 ; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
    649 ; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
    650 ; ZNVER1-NEXT:    cmovew (%rdx), %di # sched: [5:0.50]
    651 ; ZNVER1-NEXT:    cmovew (%rdx), %di # sched: [5:0.50]
    652 ; ZNVER1-NEXT:    cmovnew (%rdx), %di # sched: [5:0.50]
    653 ; ZNVER1-NEXT:    cmovnew (%rdx), %di # sched: [5:0.50]
    654 ; ZNVER1-NEXT:    cmovbew (%rdx), %di # sched: [5:0.50]
    655 ; ZNVER1-NEXT:    cmovbew (%rdx), %di # sched: [5:0.50]
    656 ; ZNVER1-NEXT:    cmovaw (%rdx), %di # sched: [5:0.50]
    657 ; ZNVER1-NEXT:    cmovaw (%rdx), %di # sched: [5:0.50]
    658 ; ZNVER1-NEXT:    cmovsw (%rdx), %di # sched: [5:0.50]
    659 ; ZNVER1-NEXT:    cmovnsw (%rdx), %di # sched: [5:0.50]
    660 ; ZNVER1-NEXT:    cmovpw (%rdx), %di # sched: [5:0.50]
    661 ; ZNVER1-NEXT:    cmovpw (%rdx), %di # sched: [5:0.50]
    662 ; ZNVER1-NEXT:    cmovnpw (%rdx), %di # sched: [5:0.50]
    663 ; ZNVER1-NEXT:    cmovnpw (%rdx), %di # sched: [5:0.50]
    664 ; ZNVER1-NEXT:    cmovlw (%rdx), %di # sched: [5:0.50]
    665 ; ZNVER1-NEXT:    cmovlw (%rdx), %di # sched: [5:0.50]
    666 ; ZNVER1-NEXT:    cmovgew (%rdx), %di # sched: [5:0.50]
    667 ; ZNVER1-NEXT:    cmovgew (%rdx), %di # sched: [5:0.50]
    668 ; ZNVER1-NEXT:    cmovlew (%rdx), %di # sched: [5:0.50]
    669 ; ZNVER1-NEXT:    cmovlew (%rdx), %di # sched: [5:0.50]
    670 ; ZNVER1-NEXT:    cmovgw (%rdx), %di # sched: [5:0.50]
    671 ; ZNVER1-NEXT:    cmovgw (%rdx), %di # sched: [5:0.50]
    672 ; ZNVER1-NEXT:    #NO_APP
    673 ; ZNVER1-NEXT:    retq # sched: [1:0.50]
    674   call void asm sideeffect "cmovow $1, $0 \0A\09 cmovnow $1, $0 \0A\09 cmovbw $1, $0 \0A\09 cmovcw $1, $0 \0A\09 cmovnaew $1, $0 \0A\09 cmovnbw $1, $0 \0A\09 cmovncw $1, $0 \0A\09 cmovaew $1, $0 \0A\09 cmovzw $1, $0 \0A\09 cmovew $1, $0 \0A\09 cmovnzw $1, $0 \0A\09 cmovnew $1, $0 \0A\09 cmovbew $1, $0 \0A\09 cmovnaw $1, $0 \0A\09 cmovnbew $1, $0 \0A\09 cmovaw $1, $0 \0A\09 cmovsw $1, $0 \0A\09 cmovnsw $1, $0 \0A\09 cmovpw $1, $0 \0A\09 cmovpew $1, $0 \0A\09 cmovnpw $1, $0 \0A\09 cmovpow $1, $0 \0A\09 cmovlw $1, $0 \0A\09 cmovngew $1, $0 \0A\09 cmovnlw $1, $0 \0A\09 cmovgew $1, $0 \0A\09 cmovlew $1, $0 \0A\09 cmovngw $1, $0 \0A\09 cmovnlew $1, $0 \0A\09 cmovgw $1, $0 \0A\09 cmovow $2, $0 \0A\09 cmovnow $2, $0 \0A\09 cmovbw $2, $0 \0A\09 cmovcw $2, $0 \0A\09 cmovnaew $2, $0 \0A\09 cmovnbw $2, $0 \0A\09 cmovncw $2, $0 \0A\09 cmovaew $2, $0 \0A\09 cmovzw $2, $0 \0A\09 cmovew $2, $0 \0A\09 cmovnzw $2, $0 \0A\09 cmovnew $2, $0 \0A\09 cmovbew $2, $0 \0A\09 cmovnaw $2, $0 \0A\09 cmovnbew $2, $0 \0A\09 cmovaw $2, $0 \0A\09 cmovsw $2, $0 \0A\09 cmovnsw $2, $0 \0A\09 cmovpw $2, $0 \0A\09 cmovpew $2, $0 \0A\09 cmovnpw $2, $0 \0A\09 cmovpow $2, $0 \0A\09 cmovlw $2, $0 \0A\09 cmovngew $2, $0 \0A\09 cmovnlw $2, $0 \0A\09 cmovgew $2, $0 \0A\09 cmovlew $2, $0 \0A\09 cmovngw $2, $0 \0A\09 cmovnlew $2, $0 \0A\09 cmovgw $2, $0", "r,r,*m"(i16 %a0, i16 %a1, i16 *%a2)
    675   ret void
    676 }
    677 
    678 define void @test_cmov_32(i32 %a0, i32 %a1, i32 *%a2) optsize {
    679 ; GENERIC-LABEL: test_cmov_32:
    680 ; GENERIC:       # %bb.0:
    681 ; GENERIC-NEXT:    #APP
    682 ; GENERIC-NEXT:    cmovol %esi, %edi # sched: [2:0.67]
    683 ; GENERIC-NEXT:    cmovnol %esi, %edi # sched: [2:0.67]
    684 ; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    685 ; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    686 ; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    687 ; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    688 ; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    689 ; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    690 ; GENERIC-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
    691 ; GENERIC-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
    692 ; GENERIC-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
    693 ; GENERIC-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
    694 ; GENERIC-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
    695 ; GENERIC-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
    696 ; GENERIC-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
    697 ; GENERIC-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
    698 ; GENERIC-NEXT:    cmovsl %esi, %edi # sched: [2:0.67]
    699 ; GENERIC-NEXT:    cmovnsl %esi, %edi # sched: [2:0.67]
    700 ; GENERIC-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
    701 ; GENERIC-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
    702 ; GENERIC-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
    703 ; GENERIC-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
    704 ; GENERIC-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
    705 ; GENERIC-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
    706 ; GENERIC-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
    707 ; GENERIC-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
    708 ; GENERIC-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
    709 ; GENERIC-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
    710 ; GENERIC-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
    711 ; GENERIC-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
    712 ; GENERIC-NEXT:    cmovol (%rdx), %edi # sched: [7:0.67]
    713 ; GENERIC-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.67]
    714 ; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    715 ; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    716 ; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    717 ; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    718 ; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    719 ; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    720 ; GENERIC-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
    721 ; GENERIC-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
    722 ; GENERIC-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
    723 ; GENERIC-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
    724 ; GENERIC-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
    725 ; GENERIC-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
    726 ; GENERIC-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
    727 ; GENERIC-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
    728 ; GENERIC-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.67]
    729 ; GENERIC-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.67]
    730 ; GENERIC-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
    731 ; GENERIC-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
    732 ; GENERIC-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
    733 ; GENERIC-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
    734 ; GENERIC-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
    735 ; GENERIC-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
    736 ; GENERIC-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
    737 ; GENERIC-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
    738 ; GENERIC-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
    739 ; GENERIC-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
    740 ; GENERIC-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
    741 ; GENERIC-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
    742 ; GENERIC-NEXT:    #NO_APP
    743 ; GENERIC-NEXT:    retq # sched: [1:1.00]
    744 ;
    745 ; ATOM-LABEL: test_cmov_32:
    746 ; ATOM:       # %bb.0:
    747 ; ATOM-NEXT:    #APP
    748 ; ATOM-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
    749 ; ATOM-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
    750 ; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
    751 ; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
    752 ; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
    753 ; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
    754 ; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
    755 ; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
    756 ; ATOM-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
    757 ; ATOM-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
    758 ; ATOM-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
    759 ; ATOM-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
    760 ; ATOM-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
    761 ; ATOM-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
    762 ; ATOM-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
    763 ; ATOM-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
    764 ; ATOM-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
    765 ; ATOM-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
    766 ; ATOM-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
    767 ; ATOM-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
    768 ; ATOM-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
    769 ; ATOM-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
    770 ; ATOM-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
    771 ; ATOM-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
    772 ; ATOM-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
    773 ; ATOM-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
    774 ; ATOM-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
    775 ; ATOM-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
    776 ; ATOM-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
    777 ; ATOM-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
    778 ; ATOM-NEXT:    cmovol (%rdx), %edi # sched: [1:1.00]
    779 ; ATOM-NEXT:    cmovnol (%rdx), %edi # sched: [1:1.00]
    780 ; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
    781 ; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
    782 ; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
    783 ; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
    784 ; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
    785 ; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
    786 ; ATOM-NEXT:    cmovel (%rdx), %edi # sched: [1:1.00]
    787 ; ATOM-NEXT:    cmovel (%rdx), %edi # sched: [1:1.00]
    788 ; ATOM-NEXT:    cmovnel (%rdx), %edi # sched: [1:1.00]
    789 ; ATOM-NEXT:    cmovnel (%rdx), %edi # sched: [1:1.00]
    790 ; ATOM-NEXT:    cmovbel (%rdx), %edi # sched: [1:1.00]
    791 ; ATOM-NEXT:    cmovbel (%rdx), %edi # sched: [1:1.00]
    792 ; ATOM-NEXT:    cmoval (%rdx), %edi # sched: [1:1.00]
    793 ; ATOM-NEXT:    cmoval (%rdx), %edi # sched: [1:1.00]
    794 ; ATOM-NEXT:    cmovsl (%rdx), %edi # sched: [1:1.00]
    795 ; ATOM-NEXT:    cmovnsl (%rdx), %edi # sched: [1:1.00]
    796 ; ATOM-NEXT:    cmovpl (%rdx), %edi # sched: [1:1.00]
    797 ; ATOM-NEXT:    cmovpl (%rdx), %edi # sched: [1:1.00]
    798 ; ATOM-NEXT:    cmovnpl (%rdx), %edi # sched: [1:1.00]
    799 ; ATOM-NEXT:    cmovnpl (%rdx), %edi # sched: [1:1.00]
    800 ; ATOM-NEXT:    cmovll (%rdx), %edi # sched: [1:1.00]
    801 ; ATOM-NEXT:    cmovll (%rdx), %edi # sched: [1:1.00]
    802 ; ATOM-NEXT:    cmovgel (%rdx), %edi # sched: [1:1.00]
    803 ; ATOM-NEXT:    cmovgel (%rdx), %edi # sched: [1:1.00]
    804 ; ATOM-NEXT:    cmovlel (%rdx), %edi # sched: [1:1.00]
    805 ; ATOM-NEXT:    cmovlel (%rdx), %edi # sched: [1:1.00]
    806 ; ATOM-NEXT:    cmovgl (%rdx), %edi # sched: [1:1.00]
    807 ; ATOM-NEXT:    cmovgl (%rdx), %edi # sched: [1:1.00]
    808 ; ATOM-NEXT:    #NO_APP
    809 ; ATOM-NEXT:    retq # sched: [79:39.50]
    810 ;
    811 ; SLM-LABEL: test_cmov_32:
    812 ; SLM:       # %bb.0:
    813 ; SLM-NEXT:    #APP
    814 ; SLM-NEXT:    cmovol %esi, %edi # sched: [2:1.00]
    815 ; SLM-NEXT:    cmovnol %esi, %edi # sched: [2:1.00]
    816 ; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
    817 ; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
    818 ; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
    819 ; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
    820 ; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
    821 ; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
    822 ; SLM-NEXT:    cmovel %esi, %edi # sched: [2:1.00]
    823 ; SLM-NEXT:    cmovel %esi, %edi # sched: [2:1.00]
    824 ; SLM-NEXT:    cmovnel %esi, %edi # sched: [2:1.00]
    825 ; SLM-NEXT:    cmovnel %esi, %edi # sched: [2:1.00]
    826 ; SLM-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
    827 ; SLM-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
    828 ; SLM-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
    829 ; SLM-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
    830 ; SLM-NEXT:    cmovsl %esi, %edi # sched: [2:1.00]
    831 ; SLM-NEXT:    cmovnsl %esi, %edi # sched: [2:1.00]
    832 ; SLM-NEXT:    cmovpl %esi, %edi # sched: [2:1.00]
    833 ; SLM-NEXT:    cmovpl %esi, %edi # sched: [2:1.00]
    834 ; SLM-NEXT:    cmovnpl %esi, %edi # sched: [2:1.00]
    835 ; SLM-NEXT:    cmovnpl %esi, %edi # sched: [2:1.00]
    836 ; SLM-NEXT:    cmovll %esi, %edi # sched: [2:1.00]
    837 ; SLM-NEXT:    cmovll %esi, %edi # sched: [2:1.00]
    838 ; SLM-NEXT:    cmovgel %esi, %edi # sched: [2:1.00]
    839 ; SLM-NEXT:    cmovgel %esi, %edi # sched: [2:1.00]
    840 ; SLM-NEXT:    cmovlel %esi, %edi # sched: [2:1.00]
    841 ; SLM-NEXT:    cmovlel %esi, %edi # sched: [2:1.00]
    842 ; SLM-NEXT:    cmovgl %esi, %edi # sched: [2:1.00]
    843 ; SLM-NEXT:    cmovgl %esi, %edi # sched: [2:1.00]
    844 ; SLM-NEXT:    cmovol (%rdx), %edi # sched: [5:1.00]
    845 ; SLM-NEXT:    cmovnol (%rdx), %edi # sched: [5:1.00]
    846 ; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
    847 ; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
    848 ; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
    849 ; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
    850 ; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
    851 ; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
    852 ; SLM-NEXT:    cmovel (%rdx), %edi # sched: [5:1.00]
    853 ; SLM-NEXT:    cmovel (%rdx), %edi # sched: [5:1.00]
    854 ; SLM-NEXT:    cmovnel (%rdx), %edi # sched: [5:1.00]
    855 ; SLM-NEXT:    cmovnel (%rdx), %edi # sched: [5:1.00]
    856 ; SLM-NEXT:    cmovbel (%rdx), %edi # sched: [5:1.00]
    857 ; SLM-NEXT:    cmovbel (%rdx), %edi # sched: [5:1.00]
    858 ; SLM-NEXT:    cmoval (%rdx), %edi # sched: [5:1.00]
    859 ; SLM-NEXT:    cmoval (%rdx), %edi # sched: [5:1.00]
    860 ; SLM-NEXT:    cmovsl (%rdx), %edi # sched: [5:1.00]
    861 ; SLM-NEXT:    cmovnsl (%rdx), %edi # sched: [5:1.00]
    862 ; SLM-NEXT:    cmovpl (%rdx), %edi # sched: [5:1.00]
    863 ; SLM-NEXT:    cmovpl (%rdx), %edi # sched: [5:1.00]
    864 ; SLM-NEXT:    cmovnpl (%rdx), %edi # sched: [5:1.00]
    865 ; SLM-NEXT:    cmovnpl (%rdx), %edi # sched: [5:1.00]
    866 ; SLM-NEXT:    cmovll (%rdx), %edi # sched: [5:1.00]
    867 ; SLM-NEXT:    cmovll (%rdx), %edi # sched: [5:1.00]
    868 ; SLM-NEXT:    cmovgel (%rdx), %edi # sched: [5:1.00]
    869 ; SLM-NEXT:    cmovgel (%rdx), %edi # sched: [5:1.00]
    870 ; SLM-NEXT:    cmovlel (%rdx), %edi # sched: [5:1.00]
    871 ; SLM-NEXT:    cmovlel (%rdx), %edi # sched: [5:1.00]
    872 ; SLM-NEXT:    cmovgl (%rdx), %edi # sched: [5:1.00]
    873 ; SLM-NEXT:    cmovgl (%rdx), %edi # sched: [5:1.00]
    874 ; SLM-NEXT:    #NO_APP
    875 ; SLM-NEXT:    retq # sched: [4:1.00]
    876 ;
    877 ; SANDY-LABEL: test_cmov_32:
    878 ; SANDY:       # %bb.0:
    879 ; SANDY-NEXT:    #APP
    880 ; SANDY-NEXT:    cmovol %esi, %edi # sched: [2:0.67]
    881 ; SANDY-NEXT:    cmovnol %esi, %edi # sched: [2:0.67]
    882 ; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    883 ; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    884 ; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
    885 ; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    886 ; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    887 ; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
    888 ; SANDY-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
    889 ; SANDY-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
    890 ; SANDY-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
    891 ; SANDY-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
    892 ; SANDY-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
    893 ; SANDY-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
    894 ; SANDY-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
    895 ; SANDY-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
    896 ; SANDY-NEXT:    cmovsl %esi, %edi # sched: [2:0.67]
    897 ; SANDY-NEXT:    cmovnsl %esi, %edi # sched: [2:0.67]
    898 ; SANDY-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
    899 ; SANDY-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
    900 ; SANDY-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
    901 ; SANDY-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
    902 ; SANDY-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
    903 ; SANDY-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
    904 ; SANDY-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
    905 ; SANDY-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
    906 ; SANDY-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
    907 ; SANDY-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
    908 ; SANDY-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
    909 ; SANDY-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
    910 ; SANDY-NEXT:    cmovol (%rdx), %edi # sched: [7:0.67]
    911 ; SANDY-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.67]
    912 ; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    913 ; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    914 ; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
    915 ; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    916 ; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    917 ; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
    918 ; SANDY-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
    919 ; SANDY-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
    920 ; SANDY-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
    921 ; SANDY-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
    922 ; SANDY-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
    923 ; SANDY-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
    924 ; SANDY-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
    925 ; SANDY-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
    926 ; SANDY-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.67]
    927 ; SANDY-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.67]
    928 ; SANDY-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
    929 ; SANDY-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
    930 ; SANDY-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
    931 ; SANDY-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
    932 ; SANDY-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
    933 ; SANDY-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
    934 ; SANDY-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
    935 ; SANDY-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
    936 ; SANDY-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
    937 ; SANDY-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
    938 ; SANDY-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
    939 ; SANDY-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
    940 ; SANDY-NEXT:    #NO_APP
    941 ; SANDY-NEXT:    retq # sched: [1:1.00]
    942 ;
    943 ; HASWELL-LABEL: test_cmov_32:
    944 ; HASWELL:       # %bb.0:
    945 ; HASWELL-NEXT:    #APP
    946 ; HASWELL-NEXT:    cmovol %esi, %edi # sched: [2:0.50]
    947 ; HASWELL-NEXT:    cmovnol %esi, %edi # sched: [2:0.50]
    948 ; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
    949 ; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
    950 ; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
    951 ; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
    952 ; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
    953 ; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
    954 ; HASWELL-NEXT:    cmovel %esi, %edi # sched: [2:0.50]
    955 ; HASWELL-NEXT:    cmovel %esi, %edi # sched: [2:0.50]
    956 ; HASWELL-NEXT:    cmovnel %esi, %edi # sched: [2:0.50]
    957 ; HASWELL-NEXT:    cmovnel %esi, %edi # sched: [2:0.50]
    958 ; HASWELL-NEXT:    cmovbel %esi, %edi # sched: [3:0.75]
    959 ; HASWELL-NEXT:    cmovbel %esi, %edi # sched: [3:0.75]
    960 ; HASWELL-NEXT:    cmoval %esi, %edi # sched: [3:0.75]
    961 ; HASWELL-NEXT:    cmoval %esi, %edi # sched: [3:0.75]
    962 ; HASWELL-NEXT:    cmovsl %esi, %edi # sched: [2:0.50]
    963 ; HASWELL-NEXT:    cmovnsl %esi, %edi # sched: [2:0.50]
    964 ; HASWELL-NEXT:    cmovpl %esi, %edi # sched: [2:0.50]
    965 ; HASWELL-NEXT:    cmovpl %esi, %edi # sched: [2:0.50]
    966 ; HASWELL-NEXT:    cmovnpl %esi, %edi # sched: [2:0.50]
    967 ; HASWELL-NEXT:    cmovnpl %esi, %edi # sched: [2:0.50]
    968 ; HASWELL-NEXT:    cmovll %esi, %edi # sched: [2:0.50]
    969 ; HASWELL-NEXT:    cmovll %esi, %edi # sched: [2:0.50]
    970 ; HASWELL-NEXT:    cmovgel %esi, %edi # sched: [2:0.50]
    971 ; HASWELL-NEXT:    cmovgel %esi, %edi # sched: [2:0.50]
    972 ; HASWELL-NEXT:    cmovlel %esi, %edi # sched: [2:0.50]
    973 ; HASWELL-NEXT:    cmovlel %esi, %edi # sched: [2:0.50]
    974 ; HASWELL-NEXT:    cmovgl %esi, %edi # sched: [2:0.50]
    975 ; HASWELL-NEXT:    cmovgl %esi, %edi # sched: [2:0.50]
    976 ; HASWELL-NEXT:    cmovol (%rdx), %edi # sched: [7:0.50]
    977 ; HASWELL-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.50]
    978 ; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
    979 ; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
    980 ; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
    981 ; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
    982 ; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
    983 ; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
    984 ; HASWELL-NEXT:    cmovel (%rdx), %edi # sched: [7:0.50]
    985 ; HASWELL-NEXT:    cmovel (%rdx), %edi # sched: [7:0.50]
    986 ; HASWELL-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.50]
    987 ; HASWELL-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.50]
    988 ; HASWELL-NEXT:    cmovbel (%rdx), %edi # sched: [8:0.75]
    989 ; HASWELL-NEXT:    cmovbel (%rdx), %edi # sched: [8:0.75]
    990 ; HASWELL-NEXT:    cmoval (%rdx), %edi # sched: [8:0.75]
    991 ; HASWELL-NEXT:    cmoval (%rdx), %edi # sched: [8:0.75]
    992 ; HASWELL-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.50]
    993 ; HASWELL-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.50]
    994 ; HASWELL-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.50]
    995 ; HASWELL-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.50]
    996 ; HASWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.50]
    997 ; HASWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.50]
    998 ; HASWELL-NEXT:    cmovll (%rdx), %edi # sched: [7:0.50]
    999 ; HASWELL-NEXT:    cmovll (%rdx), %edi # sched: [7:0.50]
   1000 ; HASWELL-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.50]
   1001 ; HASWELL-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.50]
   1002 ; HASWELL-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.50]
   1003 ; HASWELL-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.50]
   1004 ; HASWELL-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.50]
   1005 ; HASWELL-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.50]
   1006 ; HASWELL-NEXT:    #NO_APP
   1007 ; HASWELL-NEXT:    retq # sched: [7:1.00]
   1008 ;
   1009 ; BROADWELL-LABEL: test_cmov_32:
   1010 ; BROADWELL:       # %bb.0:
   1011 ; BROADWELL-NEXT:    #APP
   1012 ; BROADWELL-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
   1013 ; BROADWELL-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
   1014 ; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1015 ; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1016 ; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1017 ; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1018 ; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1019 ; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1020 ; BROADWELL-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1021 ; BROADWELL-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1022 ; BROADWELL-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1023 ; BROADWELL-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1024 ; BROADWELL-NEXT:    cmovbel %esi, %edi # sched: [2:0.50]
   1025 ; BROADWELL-NEXT:    cmovbel %esi, %edi # sched: [2:0.50]
   1026 ; BROADWELL-NEXT:    cmoval %esi, %edi # sched: [2:0.50]
   1027 ; BROADWELL-NEXT:    cmoval %esi, %edi # sched: [2:0.50]
   1028 ; BROADWELL-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
   1029 ; BROADWELL-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
   1030 ; BROADWELL-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1031 ; BROADWELL-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1032 ; BROADWELL-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1033 ; BROADWELL-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1034 ; BROADWELL-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1035 ; BROADWELL-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1036 ; BROADWELL-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1037 ; BROADWELL-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1038 ; BROADWELL-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1039 ; BROADWELL-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1040 ; BROADWELL-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1041 ; BROADWELL-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1042 ; BROADWELL-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
   1043 ; BROADWELL-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
   1044 ; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1045 ; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1046 ; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1047 ; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1048 ; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1049 ; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1050 ; BROADWELL-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1051 ; BROADWELL-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1052 ; BROADWELL-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1053 ; BROADWELL-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1054 ; BROADWELL-NEXT:    cmovbel (%rdx), %edi # sched: [7:0.50]
   1055 ; BROADWELL-NEXT:    cmovbel (%rdx), %edi # sched: [7:0.50]
   1056 ; BROADWELL-NEXT:    cmoval (%rdx), %edi # sched: [7:0.50]
   1057 ; BROADWELL-NEXT:    cmoval (%rdx), %edi # sched: [7:0.50]
   1058 ; BROADWELL-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
   1059 ; BROADWELL-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
   1060 ; BROADWELL-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1061 ; BROADWELL-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1062 ; BROADWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1063 ; BROADWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1064 ; BROADWELL-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1065 ; BROADWELL-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1066 ; BROADWELL-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1067 ; BROADWELL-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1068 ; BROADWELL-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1069 ; BROADWELL-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1070 ; BROADWELL-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1071 ; BROADWELL-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1072 ; BROADWELL-NEXT:    #NO_APP
   1073 ; BROADWELL-NEXT:    retq # sched: [7:1.00]
   1074 ;
   1075 ; SKYLAKE-LABEL: test_cmov_32:
   1076 ; SKYLAKE:       # %bb.0:
   1077 ; SKYLAKE-NEXT:    #APP
   1078 ; SKYLAKE-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
   1079 ; SKYLAKE-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
   1080 ; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1081 ; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1082 ; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1083 ; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1084 ; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1085 ; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1086 ; SKYLAKE-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1087 ; SKYLAKE-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1088 ; SKYLAKE-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1089 ; SKYLAKE-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1090 ; SKYLAKE-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
   1091 ; SKYLAKE-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
   1092 ; SKYLAKE-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
   1093 ; SKYLAKE-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
   1094 ; SKYLAKE-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
   1095 ; SKYLAKE-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
   1096 ; SKYLAKE-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1097 ; SKYLAKE-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1098 ; SKYLAKE-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1099 ; SKYLAKE-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1100 ; SKYLAKE-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1101 ; SKYLAKE-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1102 ; SKYLAKE-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1103 ; SKYLAKE-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1104 ; SKYLAKE-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1105 ; SKYLAKE-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1106 ; SKYLAKE-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1107 ; SKYLAKE-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1108 ; SKYLAKE-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
   1109 ; SKYLAKE-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
   1110 ; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1111 ; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1112 ; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1113 ; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1114 ; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1115 ; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1116 ; SKYLAKE-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1117 ; SKYLAKE-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1118 ; SKYLAKE-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1119 ; SKYLAKE-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1120 ; SKYLAKE-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
   1121 ; SKYLAKE-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
   1122 ; SKYLAKE-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
   1123 ; SKYLAKE-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
   1124 ; SKYLAKE-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
   1125 ; SKYLAKE-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
   1126 ; SKYLAKE-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1127 ; SKYLAKE-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1128 ; SKYLAKE-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1129 ; SKYLAKE-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1130 ; SKYLAKE-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1131 ; SKYLAKE-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1132 ; SKYLAKE-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1133 ; SKYLAKE-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1134 ; SKYLAKE-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1135 ; SKYLAKE-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1136 ; SKYLAKE-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1137 ; SKYLAKE-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1138 ; SKYLAKE-NEXT:    #NO_APP
   1139 ; SKYLAKE-NEXT:    retq # sched: [7:1.00]
   1140 ;
   1141 ; SKX-LABEL: test_cmov_32:
   1142 ; SKX:       # %bb.0:
   1143 ; SKX-NEXT:    #APP
   1144 ; SKX-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
   1145 ; SKX-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
   1146 ; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1147 ; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1148 ; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1149 ; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1150 ; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1151 ; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1152 ; SKX-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1153 ; SKX-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1154 ; SKX-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1155 ; SKX-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1156 ; SKX-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
   1157 ; SKX-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
   1158 ; SKX-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
   1159 ; SKX-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
   1160 ; SKX-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
   1161 ; SKX-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
   1162 ; SKX-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1163 ; SKX-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1164 ; SKX-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1165 ; SKX-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1166 ; SKX-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1167 ; SKX-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1168 ; SKX-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1169 ; SKX-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1170 ; SKX-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1171 ; SKX-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1172 ; SKX-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1173 ; SKX-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1174 ; SKX-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
   1175 ; SKX-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
   1176 ; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1177 ; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1178 ; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
   1179 ; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1180 ; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1181 ; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
   1182 ; SKX-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1183 ; SKX-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
   1184 ; SKX-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1185 ; SKX-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
   1186 ; SKX-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
   1187 ; SKX-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
   1188 ; SKX-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
   1189 ; SKX-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
   1190 ; SKX-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
   1191 ; SKX-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
   1192 ; SKX-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1193 ; SKX-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
   1194 ; SKX-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1195 ; SKX-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
   1196 ; SKX-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1197 ; SKX-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
   1198 ; SKX-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1199 ; SKX-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
   1200 ; SKX-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1201 ; SKX-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
   1202 ; SKX-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1203 ; SKX-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
   1204 ; SKX-NEXT:    #NO_APP
   1205 ; SKX-NEXT:    retq # sched: [7:1.00]
   1206 ;
   1207 ; BTVER2-LABEL: test_cmov_32:
   1208 ; BTVER2:       # %bb.0:
   1209 ; BTVER2-NEXT:    #APP
   1210 ; BTVER2-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
   1211 ; BTVER2-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
   1212 ; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1213 ; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1214 ; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
   1215 ; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1216 ; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1217 ; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
   1218 ; BTVER2-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1219 ; BTVER2-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
   1220 ; BTVER2-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1221 ; BTVER2-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
   1222 ; BTVER2-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
   1223 ; BTVER2-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
   1224 ; BTVER2-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
   1225 ; BTVER2-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
   1226 ; BTVER2-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
   1227 ; BTVER2-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
   1228 ; BTVER2-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1229 ; BTVER2-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
   1230 ; BTVER2-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1231 ; BTVER2-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
   1232 ; BTVER2-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1233 ; BTVER2-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
   1234 ; BTVER2-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1235 ; BTVER2-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
   1236 ; BTVER2-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1237 ; BTVER2-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
   1238 ; BTVER2-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1239 ; BTVER2-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
   1240 ; BTVER2-NEXT:    cmovol (%rdx), %edi # sched: [4:1.00]
   1241 ; BTVER2-NEXT:    cmovnol (%rdx), %edi # sched: [4:1.00]
   1242 ; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
   1243 ; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
   1244 ; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
   1245 ; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
   1246 ; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
   1247 ; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
   1248 ; BTVER2-NEXT:    cmovel (%rdx), %edi # sched: [4:1.00]
   1249 ; BTVER2-NEXT:    cmovel (%rdx), %edi # sched: [4:1.00]
   1250 ; BTVER2-NEXT:    cmovnel (%rdx), %edi # sched: [4:1.00]
   1251 ; BTVER2-NEXT:    cmovnel (%rdx), %edi # sched: [4:1.00]
   1252 ; BTVER2-NEXT:    cmovbel (%rdx), %edi # sched: [4:1.00]
   1253 ; BTVER2-NEXT:    cmovbel (%rdx), %edi # sched: [4:1.00]
   1254 ; BTVER2-NEXT:    cmoval (%rdx), %edi # sched: [4:1.00]
   1255 ; BTVER2-NEXT:    cmoval (%rdx), %edi # sched: [4:1.00]
   1256 ; BTVER2-NEXT:    cmovsl (%rdx), %edi # sched: [4:1.00]
   1257 ; BTVER2-NEXT:    cmovnsl (%rdx), %edi # sched: [4:1.00]
   1258 ; BTVER2-NEXT:    cmovpl (%rdx), %edi # sched: [4:1.00]
   1259 ; BTVER2-NEXT:    cmovpl (%rdx), %edi # sched: [4:1.00]
   1260 ; BTVER2-NEXT:    cmovnpl (%rdx), %edi # sched: [4:1.00]
   1261 ; BTVER2-NEXT:    cmovnpl (%rdx), %edi # sched: [4:1.00]
   1262 ; BTVER2-NEXT:    cmovll (%rdx), %edi # sched: [4:1.00]
   1263 ; BTVER2-NEXT:    cmovll (%rdx), %edi # sched: [4:1.00]
   1264 ; BTVER2-NEXT:    cmovgel (%rdx), %edi # sched: [4:1.00]
   1265 ; BTVER2-NEXT:    cmovgel (%rdx), %edi # sched: [4:1.00]
   1266 ; BTVER2-NEXT:    cmovlel (%rdx), %edi # sched: [4:1.00]
   1267 ; BTVER2-NEXT:    cmovlel (%rdx), %edi # sched: [4:1.00]
   1268 ; BTVER2-NEXT:    cmovgl (%rdx), %edi # sched: [4:1.00]
   1269 ; BTVER2-NEXT:    cmovgl (%rdx), %edi # sched: [4:1.00]
   1270 ; BTVER2-NEXT:    #NO_APP
   1271 ; BTVER2-NEXT:    retq # sched: [4:1.00]
   1272 ;
   1273 ; ZNVER1-LABEL: test_cmov_32:
   1274 ; ZNVER1:       # %bb.0:
   1275 ; ZNVER1-NEXT:    #APP
   1276 ; ZNVER1-NEXT:    cmovol %esi, %edi # sched: [1:0.25]
   1277 ; ZNVER1-NEXT:    cmovnol %esi, %edi # sched: [1:0.25]
   1278 ; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
   1279 ; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
   1280 ; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
   1281 ; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
   1282 ; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
   1283 ; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
   1284 ; ZNVER1-NEXT:    cmovel %esi, %edi # sched: [1:0.25]
   1285 ; ZNVER1-NEXT:    cmovel %esi, %edi # sched: [1:0.25]
   1286 ; ZNVER1-NEXT:    cmovnel %esi, %edi # sched: [1:0.25]
   1287 ; ZNVER1-NEXT:    cmovnel %esi, %edi # sched: [1:0.25]
   1288 ; ZNVER1-NEXT:    cmovbel %esi, %edi # sched: [1:0.25]
   1289 ; ZNVER1-NEXT:    cmovbel %esi, %edi # sched: [1:0.25]
   1290 ; ZNVER1-NEXT:    cmoval %esi, %edi # sched: [1:0.25]
   1291 ; ZNVER1-NEXT:    cmoval %esi, %edi # sched: [1:0.25]
   1292 ; ZNVER1-NEXT:    cmovsl %esi, %edi # sched: [1:0.25]
   1293 ; ZNVER1-NEXT:    cmovnsl %esi, %edi # sched: [1:0.25]
   1294 ; ZNVER1-NEXT:    cmovpl %esi, %edi # sched: [1:0.25]
   1295 ; ZNVER1-NEXT:    cmovpl %esi, %edi # sched: [1:0.25]
   1296 ; ZNVER1-NEXT:    cmovnpl %esi, %edi # sched: [1:0.25]
   1297 ; ZNVER1-NEXT:    cmovnpl %esi, %edi # sched: [1:0.25]
   1298 ; ZNVER1-NEXT:    cmovll %esi, %edi # sched: [1:0.25]
   1299 ; ZNVER1-NEXT:    cmovll %esi, %edi # sched: [1:0.25]
   1300 ; ZNVER1-NEXT:    cmovgel %esi, %edi # sched: [1:0.25]
   1301 ; ZNVER1-NEXT:    cmovgel %esi, %edi # sched: [1:0.25]
   1302 ; ZNVER1-NEXT:    cmovlel %esi, %edi # sched: [1:0.25]
   1303 ; ZNVER1-NEXT:    cmovlel %esi, %edi # sched: [1:0.25]
   1304 ; ZNVER1-NEXT:    cmovgl %esi, %edi # sched: [1:0.25]
   1305 ; ZNVER1-NEXT:    cmovgl %esi, %edi # sched: [1:0.25]
   1306 ; ZNVER1-NEXT:    cmovol (%rdx), %edi # sched: [5:0.50]
   1307 ; ZNVER1-NEXT:    cmovnol (%rdx), %edi # sched: [5:0.50]
   1308 ; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
   1309 ; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
   1310 ; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
   1311 ; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
   1312 ; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
   1313 ; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
   1314 ; ZNVER1-NEXT:    cmovel (%rdx), %edi # sched: [5:0.50]
   1315 ; ZNVER1-NEXT:    cmovel (%rdx), %edi # sched: [5:0.50]
   1316 ; ZNVER1-NEXT:    cmovnel (%rdx), %edi # sched: [5:0.50]
   1317 ; ZNVER1-NEXT:    cmovnel (%rdx), %edi # sched: [5:0.50]
   1318 ; ZNVER1-NEXT:    cmovbel (%rdx), %edi # sched: [5:0.50]
   1319 ; ZNVER1-NEXT:    cmovbel (%rdx), %edi # sched: [5:0.50]
   1320 ; ZNVER1-NEXT:    cmoval (%rdx), %edi # sched: [5:0.50]
   1321 ; ZNVER1-NEXT:    cmoval (%rdx), %edi # sched: [5:0.50]
   1322 ; ZNVER1-NEXT:    cmovsl (%rdx), %edi # sched: [5:0.50]
   1323 ; ZNVER1-NEXT:    cmovnsl (%rdx), %edi # sched: [5:0.50]
   1324 ; ZNVER1-NEXT:    cmovpl (%rdx), %edi # sched: [5:0.50]
   1325 ; ZNVER1-NEXT:    cmovpl (%rdx), %edi # sched: [5:0.50]
   1326 ; ZNVER1-NEXT:    cmovnpl (%rdx), %edi # sched: [5:0.50]
   1327 ; ZNVER1-NEXT:    cmovnpl (%rdx), %edi # sched: [5:0.50]
   1328 ; ZNVER1-NEXT:    cmovll (%rdx), %edi # sched: [5:0.50]
   1329 ; ZNVER1-NEXT:    cmovll (%rdx), %edi # sched: [5:0.50]
   1330 ; ZNVER1-NEXT:    cmovgel (%rdx), %edi # sched: [5:0.50]
   1331 ; ZNVER1-NEXT:    cmovgel (%rdx), %edi # sched: [5:0.50]
   1332 ; ZNVER1-NEXT:    cmovlel (%rdx), %edi # sched: [5:0.50]
   1333 ; ZNVER1-NEXT:    cmovlel (%rdx), %edi # sched: [5:0.50]
   1334 ; ZNVER1-NEXT:    cmovgl (%rdx), %edi # sched: [5:0.50]
   1335 ; ZNVER1-NEXT:    cmovgl (%rdx), %edi # sched: [5:0.50]
   1336 ; ZNVER1-NEXT:    #NO_APP
   1337 ; ZNVER1-NEXT:    retq # sched: [1:0.50]
   1338   call void asm sideeffect "cmovol $1, $0 \0A\09 cmovnol $1, $0 \0A\09 cmovbl $1, $0 \0A\09 cmovcl $1, $0 \0A\09 cmovnael $1, $0 \0A\09 cmovnbl $1, $0 \0A\09 cmovncl $1, $0 \0A\09 cmovael $1, $0 \0A\09 cmovzl $1, $0 \0A\09 cmovel $1, $0 \0A\09 cmovnzl $1, $0 \0A\09 cmovnel $1, $0 \0A\09 cmovbel $1, $0 \0A\09 cmovnal $1, $0 \0A\09 cmovnbel $1, $0 \0A\09 cmoval $1, $0 \0A\09 cmovsl $1, $0 \0A\09 cmovnsl $1, $0 \0A\09 cmovpl $1, $0 \0A\09 cmovpel $1, $0 \0A\09 cmovnpl $1, $0 \0A\09 cmovpol $1, $0 \0A\09 cmovll $1, $0 \0A\09 cmovngel $1, $0 \0A\09 cmovnll $1, $0 \0A\09 cmovgel $1, $0 \0A\09 cmovlel $1, $0 \0A\09 cmovngl $1, $0 \0A\09 cmovnlel $1, $0 \0A\09 cmovgl $1, $0 \0A\09 cmovol $2, $0 \0A\09 cmovnol $2, $0 \0A\09 cmovbl $2, $0 \0A\09 cmovcl $2, $0 \0A\09 cmovnael $2, $0 \0A\09 cmovnbl $2, $0 \0A\09 cmovncl $2, $0 \0A\09 cmovael $2, $0 \0A\09 cmovzl $2, $0 \0A\09 cmovel $2, $0 \0A\09 cmovnzl $2, $0 \0A\09 cmovnel $2, $0 \0A\09 cmovbel $2, $0 \0A\09 cmovnal $2, $0 \0A\09 cmovnbel $2, $0 \0A\09 cmoval $2, $0 \0A\09 cmovsl $2, $0 \0A\09 cmovnsl $2, $0 \0A\09 cmovpl $2, $0 \0A\09 cmovpel $2, $0 \0A\09 cmovnpl $2, $0 \0A\09 cmovpol $2, $0 \0A\09 cmovll $2, $0 \0A\09 cmovngel $2, $0 \0A\09 cmovnll $2, $0 \0A\09 cmovgel $2, $0 \0A\09 cmovlel $2, $0 \0A\09 cmovngl $2, $0 \0A\09 cmovnlel $2, $0 \0A\09 cmovgl $2, $0", "r,r,*m"(i32 %a0, i32 %a1, i32 *%a2)
   1339   ret void
   1340 }
   1341 
   1342 define void @test_cmov_64(i64 %a0, i64 %a1, i64 *%a2) optsize {
   1343 ; GENERIC-LABEL: test_cmov_64:
   1344 ; GENERIC:       # %bb.0:
   1345 ; GENERIC-NEXT:    #APP
   1346 ; GENERIC-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.67]
   1347 ; GENERIC-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.67]
   1348 ; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1349 ; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1350 ; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1351 ; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1352 ; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1353 ; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1354 ; GENERIC-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
   1355 ; GENERIC-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
   1356 ; GENERIC-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
   1357 ; GENERIC-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
   1358 ; GENERIC-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
   1359 ; GENERIC-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
   1360 ; GENERIC-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
   1361 ; GENERIC-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
   1362 ; GENERIC-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.67]
   1363 ; GENERIC-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.67]
   1364 ; GENERIC-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
   1365 ; GENERIC-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
   1366 ; GENERIC-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
   1367 ; GENERIC-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
   1368 ; GENERIC-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
   1369 ; GENERIC-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
   1370 ; GENERIC-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
   1371 ; GENERIC-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
   1372 ; GENERIC-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
   1373 ; GENERIC-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
   1374 ; GENERIC-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
   1375 ; GENERIC-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
   1376 ; GENERIC-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.67]
   1377 ; GENERIC-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.67]
   1378 ; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1379 ; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1380 ; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1381 ; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1382 ; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1383 ; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1384 ; GENERIC-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
   1385 ; GENERIC-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
   1386 ; GENERIC-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
   1387 ; GENERIC-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
   1388 ; GENERIC-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
   1389 ; GENERIC-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
   1390 ; GENERIC-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
   1391 ; GENERIC-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
   1392 ; GENERIC-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.67]
   1393 ; GENERIC-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.67]
   1394 ; GENERIC-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
   1395 ; GENERIC-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
   1396 ; GENERIC-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
   1397 ; GENERIC-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
   1398 ; GENERIC-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
   1399 ; GENERIC-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
   1400 ; GENERIC-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
   1401 ; GENERIC-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
   1402 ; GENERIC-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
   1403 ; GENERIC-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
   1404 ; GENERIC-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
   1405 ; GENERIC-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
   1406 ; GENERIC-NEXT:    #NO_APP
   1407 ; GENERIC-NEXT:    retq # sched: [1:1.00]
   1408 ;
   1409 ; ATOM-LABEL: test_cmov_64:
   1410 ; ATOM:       # %bb.0:
   1411 ; ATOM-NEXT:    #APP
   1412 ; ATOM-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
   1413 ; ATOM-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
   1414 ; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1415 ; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1416 ; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1417 ; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1418 ; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1419 ; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1420 ; ATOM-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1421 ; ATOM-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1422 ; ATOM-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1423 ; ATOM-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1424 ; ATOM-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
   1425 ; ATOM-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
   1426 ; ATOM-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
   1427 ; ATOM-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
   1428 ; ATOM-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
   1429 ; ATOM-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
   1430 ; ATOM-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1431 ; ATOM-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1432 ; ATOM-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1433 ; ATOM-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1434 ; ATOM-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1435 ; ATOM-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1436 ; ATOM-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1437 ; ATOM-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1438 ; ATOM-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1439 ; ATOM-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1440 ; ATOM-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1441 ; ATOM-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1442 ; ATOM-NEXT:    cmovoq (%rdx), %rdi # sched: [1:1.00]
   1443 ; ATOM-NEXT:    cmovnoq (%rdx), %rdi # sched: [1:1.00]
   1444 ; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
   1445 ; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
   1446 ; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
   1447 ; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
   1448 ; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
   1449 ; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
   1450 ; ATOM-NEXT:    cmoveq (%rdx), %rdi # sched: [1:1.00]
   1451 ; ATOM-NEXT:    cmoveq (%rdx), %rdi # sched: [1:1.00]
   1452 ; ATOM-NEXT:    cmovneq (%rdx), %rdi # sched: [1:1.00]
   1453 ; ATOM-NEXT:    cmovneq (%rdx), %rdi # sched: [1:1.00]
   1454 ; ATOM-NEXT:    cmovbeq (%rdx), %rdi # sched: [1:1.00]
   1455 ; ATOM-NEXT:    cmovbeq (%rdx), %rdi # sched: [1:1.00]
   1456 ; ATOM-NEXT:    cmovaq (%rdx), %rdi # sched: [1:1.00]
   1457 ; ATOM-NEXT:    cmovaq (%rdx), %rdi # sched: [1:1.00]
   1458 ; ATOM-NEXT:    cmovsq (%rdx), %rdi # sched: [1:1.00]
   1459 ; ATOM-NEXT:    cmovnsq (%rdx), %rdi # sched: [1:1.00]
   1460 ; ATOM-NEXT:    cmovpq (%rdx), %rdi # sched: [1:1.00]
   1461 ; ATOM-NEXT:    cmovpq (%rdx), %rdi # sched: [1:1.00]
   1462 ; ATOM-NEXT:    cmovnpq (%rdx), %rdi # sched: [1:1.00]
   1463 ; ATOM-NEXT:    cmovnpq (%rdx), %rdi # sched: [1:1.00]
   1464 ; ATOM-NEXT:    cmovlq (%rdx), %rdi # sched: [1:1.00]
   1465 ; ATOM-NEXT:    cmovlq (%rdx), %rdi # sched: [1:1.00]
   1466 ; ATOM-NEXT:    cmovgeq (%rdx), %rdi # sched: [1:1.00]
   1467 ; ATOM-NEXT:    cmovgeq (%rdx), %rdi # sched: [1:1.00]
   1468 ; ATOM-NEXT:    cmovleq (%rdx), %rdi # sched: [1:1.00]
   1469 ; ATOM-NEXT:    cmovleq (%rdx), %rdi # sched: [1:1.00]
   1470 ; ATOM-NEXT:    cmovgq (%rdx), %rdi # sched: [1:1.00]
   1471 ; ATOM-NEXT:    cmovgq (%rdx), %rdi # sched: [1:1.00]
   1472 ; ATOM-NEXT:    #NO_APP
   1473 ; ATOM-NEXT:    retq # sched: [79:39.50]
   1474 ;
   1475 ; SLM-LABEL: test_cmov_64:
   1476 ; SLM:       # %bb.0:
   1477 ; SLM-NEXT:    #APP
   1478 ; SLM-NEXT:    cmovoq %rsi, %rdi # sched: [2:1.00]
   1479 ; SLM-NEXT:    cmovnoq %rsi, %rdi # sched: [2:1.00]
   1480 ; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
   1481 ; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
   1482 ; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
   1483 ; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
   1484 ; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
   1485 ; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
   1486 ; SLM-NEXT:    cmoveq %rsi, %rdi # sched: [2:1.00]
   1487 ; SLM-NEXT:    cmoveq %rsi, %rdi # sched: [2:1.00]
   1488 ; SLM-NEXT:    cmovneq %rsi, %rdi # sched: [2:1.00]
   1489 ; SLM-NEXT:    cmovneq %rsi, %rdi # sched: [2:1.00]
   1490 ; SLM-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1491 ; SLM-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1492 ; SLM-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1493 ; SLM-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1494 ; SLM-NEXT:    cmovsq %rsi, %rdi # sched: [2:1.00]
   1495 ; SLM-NEXT:    cmovnsq %rsi, %rdi # sched: [2:1.00]
   1496 ; SLM-NEXT:    cmovpq %rsi, %rdi # sched: [2:1.00]
   1497 ; SLM-NEXT:    cmovpq %rsi, %rdi # sched: [2:1.00]
   1498 ; SLM-NEXT:    cmovnpq %rsi, %rdi # sched: [2:1.00]
   1499 ; SLM-NEXT:    cmovnpq %rsi, %rdi # sched: [2:1.00]
   1500 ; SLM-NEXT:    cmovlq %rsi, %rdi # sched: [2:1.00]
   1501 ; SLM-NEXT:    cmovlq %rsi, %rdi # sched: [2:1.00]
   1502 ; SLM-NEXT:    cmovgeq %rsi, %rdi # sched: [2:1.00]
   1503 ; SLM-NEXT:    cmovgeq %rsi, %rdi # sched: [2:1.00]
   1504 ; SLM-NEXT:    cmovleq %rsi, %rdi # sched: [2:1.00]
   1505 ; SLM-NEXT:    cmovleq %rsi, %rdi # sched: [2:1.00]
   1506 ; SLM-NEXT:    cmovgq %rsi, %rdi # sched: [2:1.00]
   1507 ; SLM-NEXT:    cmovgq %rsi, %rdi # sched: [2:1.00]
   1508 ; SLM-NEXT:    cmovoq (%rdx), %rdi # sched: [5:1.00]
   1509 ; SLM-NEXT:    cmovnoq (%rdx), %rdi # sched: [5:1.00]
   1510 ; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
   1511 ; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
   1512 ; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
   1513 ; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
   1514 ; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
   1515 ; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
   1516 ; SLM-NEXT:    cmoveq (%rdx), %rdi # sched: [5:1.00]
   1517 ; SLM-NEXT:    cmoveq (%rdx), %rdi # sched: [5:1.00]
   1518 ; SLM-NEXT:    cmovneq (%rdx), %rdi # sched: [5:1.00]
   1519 ; SLM-NEXT:    cmovneq (%rdx), %rdi # sched: [5:1.00]
   1520 ; SLM-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:1.00]
   1521 ; SLM-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:1.00]
   1522 ; SLM-NEXT:    cmovaq (%rdx), %rdi # sched: [5:1.00]
   1523 ; SLM-NEXT:    cmovaq (%rdx), %rdi # sched: [5:1.00]
   1524 ; SLM-NEXT:    cmovsq (%rdx), %rdi # sched: [5:1.00]
   1525 ; SLM-NEXT:    cmovnsq (%rdx), %rdi # sched: [5:1.00]
   1526 ; SLM-NEXT:    cmovpq (%rdx), %rdi # sched: [5:1.00]
   1527 ; SLM-NEXT:    cmovpq (%rdx), %rdi # sched: [5:1.00]
   1528 ; SLM-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:1.00]
   1529 ; SLM-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:1.00]
   1530 ; SLM-NEXT:    cmovlq (%rdx), %rdi # sched: [5:1.00]
   1531 ; SLM-NEXT:    cmovlq (%rdx), %rdi # sched: [5:1.00]
   1532 ; SLM-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:1.00]
   1533 ; SLM-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:1.00]
   1534 ; SLM-NEXT:    cmovleq (%rdx), %rdi # sched: [5:1.00]
   1535 ; SLM-NEXT:    cmovleq (%rdx), %rdi # sched: [5:1.00]
   1536 ; SLM-NEXT:    cmovgq (%rdx), %rdi # sched: [5:1.00]
   1537 ; SLM-NEXT:    cmovgq (%rdx), %rdi # sched: [5:1.00]
   1538 ; SLM-NEXT:    #NO_APP
   1539 ; SLM-NEXT:    retq # sched: [4:1.00]
   1540 ;
   1541 ; SANDY-LABEL: test_cmov_64:
   1542 ; SANDY:       # %bb.0:
   1543 ; SANDY-NEXT:    #APP
   1544 ; SANDY-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.67]
   1545 ; SANDY-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.67]
   1546 ; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1547 ; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1548 ; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
   1549 ; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1550 ; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1551 ; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
   1552 ; SANDY-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
   1553 ; SANDY-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
   1554 ; SANDY-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
   1555 ; SANDY-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
   1556 ; SANDY-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
   1557 ; SANDY-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
   1558 ; SANDY-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
   1559 ; SANDY-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
   1560 ; SANDY-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.67]
   1561 ; SANDY-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.67]
   1562 ; SANDY-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
   1563 ; SANDY-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
   1564 ; SANDY-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
   1565 ; SANDY-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
   1566 ; SANDY-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
   1567 ; SANDY-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
   1568 ; SANDY-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
   1569 ; SANDY-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
   1570 ; SANDY-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
   1571 ; SANDY-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
   1572 ; SANDY-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
   1573 ; SANDY-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
   1574 ; SANDY-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.67]
   1575 ; SANDY-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.67]
   1576 ; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1577 ; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1578 ; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
   1579 ; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1580 ; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1581 ; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
   1582 ; SANDY-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
   1583 ; SANDY-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
   1584 ; SANDY-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
   1585 ; SANDY-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
   1586 ; SANDY-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
   1587 ; SANDY-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
   1588 ; SANDY-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
   1589 ; SANDY-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
   1590 ; SANDY-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.67]
   1591 ; SANDY-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.67]
   1592 ; SANDY-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
   1593 ; SANDY-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
   1594 ; SANDY-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
   1595 ; SANDY-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
   1596 ; SANDY-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
   1597 ; SANDY-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
   1598 ; SANDY-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
   1599 ; SANDY-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
   1600 ; SANDY-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
   1601 ; SANDY-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
   1602 ; SANDY-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
   1603 ; SANDY-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
   1604 ; SANDY-NEXT:    #NO_APP
   1605 ; SANDY-NEXT:    retq # sched: [1:1.00]
   1606 ;
   1607 ; HASWELL-LABEL: test_cmov_64:
   1608 ; HASWELL:       # %bb.0:
   1609 ; HASWELL-NEXT:    #APP
   1610 ; HASWELL-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.50]
   1611 ; HASWELL-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.50]
   1612 ; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
   1613 ; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
   1614 ; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
   1615 ; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
   1616 ; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
   1617 ; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
   1618 ; HASWELL-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.50]
   1619 ; HASWELL-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.50]
   1620 ; HASWELL-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.50]
   1621 ; HASWELL-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.50]
   1622 ; HASWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [3:0.75]
   1623 ; HASWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [3:0.75]
   1624 ; HASWELL-NEXT:    cmovaq %rsi, %rdi # sched: [3:0.75]
   1625 ; HASWELL-NEXT:    cmovaq %rsi, %rdi # sched: [3:0.75]
   1626 ; HASWELL-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.50]
   1627 ; HASWELL-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.50]
   1628 ; HASWELL-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.50]
   1629 ; HASWELL-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.50]
   1630 ; HASWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.50]
   1631 ; HASWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.50]
   1632 ; HASWELL-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.50]
   1633 ; HASWELL-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.50]
   1634 ; HASWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.50]
   1635 ; HASWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.50]
   1636 ; HASWELL-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.50]
   1637 ; HASWELL-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.50]
   1638 ; HASWELL-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.50]
   1639 ; HASWELL-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.50]
   1640 ; HASWELL-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.50]
   1641 ; HASWELL-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.50]
   1642 ; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
   1643 ; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
   1644 ; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
   1645 ; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
   1646 ; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
   1647 ; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
   1648 ; HASWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.50]
   1649 ; HASWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.50]
   1650 ; HASWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.50]
   1651 ; HASWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.50]
   1652 ; HASWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:0.75]
   1653 ; HASWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:0.75]
   1654 ; HASWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [8:0.75]
   1655 ; HASWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [8:0.75]
   1656 ; HASWELL-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.50]
   1657 ; HASWELL-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.50]
   1658 ; HASWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.50]
   1659 ; HASWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.50]
   1660 ; HASWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.50]
   1661 ; HASWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.50]
   1662 ; HASWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.50]
   1663 ; HASWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.50]
   1664 ; HASWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.50]
   1665 ; HASWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.50]
   1666 ; HASWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.50]
   1667 ; HASWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.50]
   1668 ; HASWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.50]
   1669 ; HASWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.50]
   1670 ; HASWELL-NEXT:    #NO_APP
   1671 ; HASWELL-NEXT:    retq # sched: [7:1.00]
   1672 ;
   1673 ; BROADWELL-LABEL: test_cmov_64:
   1674 ; BROADWELL:       # %bb.0:
   1675 ; BROADWELL-NEXT:    #APP
   1676 ; BROADWELL-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
   1677 ; BROADWELL-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
   1678 ; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1679 ; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1680 ; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1681 ; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1682 ; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1683 ; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1684 ; BROADWELL-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1685 ; BROADWELL-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1686 ; BROADWELL-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1687 ; BROADWELL-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1688 ; BROADWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [2:0.50]
   1689 ; BROADWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [2:0.50]
   1690 ; BROADWELL-NEXT:    cmovaq %rsi, %rdi # sched: [2:0.50]
   1691 ; BROADWELL-NEXT:    cmovaq %rsi, %rdi # sched: [2:0.50]
   1692 ; BROADWELL-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
   1693 ; BROADWELL-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
   1694 ; BROADWELL-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1695 ; BROADWELL-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1696 ; BROADWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1697 ; BROADWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1698 ; BROADWELL-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1699 ; BROADWELL-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1700 ; BROADWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1701 ; BROADWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1702 ; BROADWELL-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1703 ; BROADWELL-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1704 ; BROADWELL-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1705 ; BROADWELL-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1706 ; BROADWELL-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
   1707 ; BROADWELL-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
   1708 ; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1709 ; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1710 ; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1711 ; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1712 ; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1713 ; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1714 ; BROADWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1715 ; BROADWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1716 ; BROADWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1717 ; BROADWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1718 ; BROADWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:0.50]
   1719 ; BROADWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:0.50]
   1720 ; BROADWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [7:0.50]
   1721 ; BROADWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [7:0.50]
   1722 ; BROADWELL-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
   1723 ; BROADWELL-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
   1724 ; BROADWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1725 ; BROADWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1726 ; BROADWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1727 ; BROADWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1728 ; BROADWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1729 ; BROADWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1730 ; BROADWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1731 ; BROADWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1732 ; BROADWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1733 ; BROADWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1734 ; BROADWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1735 ; BROADWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1736 ; BROADWELL-NEXT:    #NO_APP
   1737 ; BROADWELL-NEXT:    retq # sched: [7:1.00]
   1738 ;
   1739 ; SKYLAKE-LABEL: test_cmov_64:
   1740 ; SKYLAKE:       # %bb.0:
   1741 ; SKYLAKE-NEXT:    #APP
   1742 ; SKYLAKE-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
   1743 ; SKYLAKE-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
   1744 ; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1745 ; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1746 ; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1747 ; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1748 ; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1749 ; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1750 ; SKYLAKE-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1751 ; SKYLAKE-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1752 ; SKYLAKE-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1753 ; SKYLAKE-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1754 ; SKYLAKE-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1755 ; SKYLAKE-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1756 ; SKYLAKE-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1757 ; SKYLAKE-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1758 ; SKYLAKE-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
   1759 ; SKYLAKE-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
   1760 ; SKYLAKE-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1761 ; SKYLAKE-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1762 ; SKYLAKE-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1763 ; SKYLAKE-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1764 ; SKYLAKE-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1765 ; SKYLAKE-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1766 ; SKYLAKE-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1767 ; SKYLAKE-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1768 ; SKYLAKE-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1769 ; SKYLAKE-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1770 ; SKYLAKE-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1771 ; SKYLAKE-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1772 ; SKYLAKE-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
   1773 ; SKYLAKE-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
   1774 ; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1775 ; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1776 ; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1777 ; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1778 ; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1779 ; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1780 ; SKYLAKE-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1781 ; SKYLAKE-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1782 ; SKYLAKE-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1783 ; SKYLAKE-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1784 ; SKYLAKE-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
   1785 ; SKYLAKE-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
   1786 ; SKYLAKE-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
   1787 ; SKYLAKE-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
   1788 ; SKYLAKE-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
   1789 ; SKYLAKE-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
   1790 ; SKYLAKE-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1791 ; SKYLAKE-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1792 ; SKYLAKE-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1793 ; SKYLAKE-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1794 ; SKYLAKE-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1795 ; SKYLAKE-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1796 ; SKYLAKE-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1797 ; SKYLAKE-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1798 ; SKYLAKE-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1799 ; SKYLAKE-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1800 ; SKYLAKE-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1801 ; SKYLAKE-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1802 ; SKYLAKE-NEXT:    #NO_APP
   1803 ; SKYLAKE-NEXT:    retq # sched: [7:1.00]
   1804 ;
   1805 ; SKX-LABEL: test_cmov_64:
   1806 ; SKX:       # %bb.0:
   1807 ; SKX-NEXT:    #APP
   1808 ; SKX-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
   1809 ; SKX-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
   1810 ; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1811 ; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1812 ; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1813 ; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1814 ; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1815 ; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1816 ; SKX-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1817 ; SKX-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1818 ; SKX-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1819 ; SKX-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1820 ; SKX-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1821 ; SKX-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
   1822 ; SKX-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1823 ; SKX-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
   1824 ; SKX-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
   1825 ; SKX-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
   1826 ; SKX-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1827 ; SKX-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1828 ; SKX-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1829 ; SKX-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1830 ; SKX-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1831 ; SKX-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1832 ; SKX-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1833 ; SKX-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1834 ; SKX-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1835 ; SKX-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1836 ; SKX-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1837 ; SKX-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1838 ; SKX-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
   1839 ; SKX-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
   1840 ; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1841 ; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1842 ; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
   1843 ; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1844 ; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1845 ; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
   1846 ; SKX-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1847 ; SKX-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
   1848 ; SKX-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1849 ; SKX-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
   1850 ; SKX-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
   1851 ; SKX-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
   1852 ; SKX-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
   1853 ; SKX-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
   1854 ; SKX-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
   1855 ; SKX-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
   1856 ; SKX-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1857 ; SKX-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
   1858 ; SKX-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1859 ; SKX-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
   1860 ; SKX-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1861 ; SKX-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
   1862 ; SKX-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1863 ; SKX-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
   1864 ; SKX-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1865 ; SKX-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
   1866 ; SKX-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1867 ; SKX-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
   1868 ; SKX-NEXT:    #NO_APP
   1869 ; SKX-NEXT:    retq # sched: [7:1.00]
   1870 ;
   1871 ; BTVER2-LABEL: test_cmov_64:
   1872 ; BTVER2:       # %bb.0:
   1873 ; BTVER2-NEXT:    #APP
   1874 ; BTVER2-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
   1875 ; BTVER2-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
   1876 ; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1877 ; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1878 ; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
   1879 ; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1880 ; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1881 ; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
   1882 ; BTVER2-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1883 ; BTVER2-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
   1884 ; BTVER2-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1885 ; BTVER2-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
   1886 ; BTVER2-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
   1887 ; BTVER2-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
   1888 ; BTVER2-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
   1889 ; BTVER2-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
   1890 ; BTVER2-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
   1891 ; BTVER2-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
   1892 ; BTVER2-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1893 ; BTVER2-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
   1894 ; BTVER2-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1895 ; BTVER2-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
   1896 ; BTVER2-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1897 ; BTVER2-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
   1898 ; BTVER2-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1899 ; BTVER2-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
   1900 ; BTVER2-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1901 ; BTVER2-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
   1902 ; BTVER2-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1903 ; BTVER2-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
   1904 ; BTVER2-NEXT:    cmovoq (%rdx), %rdi # sched: [4:1.00]
   1905 ; BTVER2-NEXT:    cmovnoq (%rdx), %rdi # sched: [4:1.00]
   1906 ; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
   1907 ; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
   1908 ; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
   1909 ; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
   1910 ; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
   1911 ; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
   1912 ; BTVER2-NEXT:    cmoveq (%rdx), %rdi # sched: [4:1.00]
   1913 ; BTVER2-NEXT:    cmoveq (%rdx), %rdi # sched: [4:1.00]
   1914 ; BTVER2-NEXT:    cmovneq (%rdx), %rdi # sched: [4:1.00]
   1915 ; BTVER2-NEXT:    cmovneq (%rdx), %rdi # sched: [4:1.00]
   1916 ; BTVER2-NEXT:    cmovbeq (%rdx), %rdi # sched: [4:1.00]
   1917 ; BTVER2-NEXT:    cmovbeq (%rdx), %rdi # sched: [4:1.00]
   1918 ; BTVER2-NEXT:    cmovaq (%rdx), %rdi # sched: [4:1.00]
   1919 ; BTVER2-NEXT:    cmovaq (%rdx), %rdi # sched: [4:1.00]
   1920 ; BTVER2-NEXT:    cmovsq (%rdx), %rdi # sched: [4:1.00]
   1921 ; BTVER2-NEXT:    cmovnsq (%rdx), %rdi # sched: [4:1.00]
   1922 ; BTVER2-NEXT:    cmovpq (%rdx), %rdi # sched: [4:1.00]
   1923 ; BTVER2-NEXT:    cmovpq (%rdx), %rdi # sched: [4:1.00]
   1924 ; BTVER2-NEXT:    cmovnpq (%rdx), %rdi # sched: [4:1.00]
   1925 ; BTVER2-NEXT:    cmovnpq (%rdx), %rdi # sched: [4:1.00]
   1926 ; BTVER2-NEXT:    cmovlq (%rdx), %rdi # sched: [4:1.00]
   1927 ; BTVER2-NEXT:    cmovlq (%rdx), %rdi # sched: [4:1.00]
   1928 ; BTVER2-NEXT:    cmovgeq (%rdx), %rdi # sched: [4:1.00]
   1929 ; BTVER2-NEXT:    cmovgeq (%rdx), %rdi # sched: [4:1.00]
   1930 ; BTVER2-NEXT:    cmovleq (%rdx), %rdi # sched: [4:1.00]
   1931 ; BTVER2-NEXT:    cmovleq (%rdx), %rdi # sched: [4:1.00]
   1932 ; BTVER2-NEXT:    cmovgq (%rdx), %rdi # sched: [4:1.00]
   1933 ; BTVER2-NEXT:    cmovgq (%rdx), %rdi # sched: [4:1.00]
   1934 ; BTVER2-NEXT:    #NO_APP
   1935 ; BTVER2-NEXT:    retq # sched: [4:1.00]
   1936 ;
   1937 ; ZNVER1-LABEL: test_cmov_64:
   1938 ; ZNVER1:       # %bb.0:
   1939 ; ZNVER1-NEXT:    #APP
   1940 ; ZNVER1-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.25]
   1941 ; ZNVER1-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.25]
   1942 ; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
   1943 ; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
   1944 ; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
   1945 ; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
   1946 ; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
   1947 ; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
   1948 ; ZNVER1-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.25]
   1949 ; ZNVER1-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.25]
   1950 ; ZNVER1-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.25]
   1951 ; ZNVER1-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.25]
   1952 ; ZNVER1-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.25]
   1953 ; ZNVER1-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.25]
   1954 ; ZNVER1-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.25]
   1955 ; ZNVER1-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.25]
   1956 ; ZNVER1-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.25]
   1957 ; ZNVER1-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.25]
   1958 ; ZNVER1-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.25]
   1959 ; ZNVER1-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.25]
   1960 ; ZNVER1-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.25]
   1961 ; ZNVER1-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.25]
   1962 ; ZNVER1-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.25]
   1963 ; ZNVER1-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.25]
   1964 ; ZNVER1-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.25]
   1965 ; ZNVER1-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.25]
   1966 ; ZNVER1-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.25]
   1967 ; ZNVER1-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.25]
   1968 ; ZNVER1-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.25]
   1969 ; ZNVER1-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.25]
   1970 ; ZNVER1-NEXT:    cmovoq (%rdx), %rdi # sched: [5:0.50]
   1971 ; ZNVER1-NEXT:    cmovnoq (%rdx), %rdi # sched: [5:0.50]
   1972 ; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
   1973 ; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
   1974 ; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
   1975 ; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
   1976 ; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
   1977 ; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
   1978 ; ZNVER1-NEXT:    cmoveq (%rdx), %rdi # sched: [5:0.50]
   1979 ; ZNVER1-NEXT:    cmoveq (%rdx), %rdi # sched: [5:0.50]
   1980 ; ZNVER1-NEXT:    cmovneq (%rdx), %rdi # sched: [5:0.50]
   1981 ; ZNVER1-NEXT:    cmovneq (%rdx), %rdi # sched: [5:0.50]
   1982 ; ZNVER1-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:0.50]
   1983 ; ZNVER1-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:0.50]
   1984 ; ZNVER1-NEXT:    cmovaq (%rdx), %rdi # sched: [5:0.50]
   1985 ; ZNVER1-NEXT:    cmovaq (%rdx), %rdi # sched: [5:0.50]
   1986 ; ZNVER1-NEXT:    cmovsq (%rdx), %rdi # sched: [5:0.50]
   1987 ; ZNVER1-NEXT:    cmovnsq (%rdx), %rdi # sched: [5:0.50]
   1988 ; ZNVER1-NEXT:    cmovpq (%rdx), %rdi # sched: [5:0.50]
   1989 ; ZNVER1-NEXT:    cmovpq (%rdx), %rdi # sched: [5:0.50]
   1990 ; ZNVER1-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:0.50]
   1991 ; ZNVER1-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:0.50]
   1992 ; ZNVER1-NEXT:    cmovlq (%rdx), %rdi # sched: [5:0.50]
   1993 ; ZNVER1-NEXT:    cmovlq (%rdx), %rdi # sched: [5:0.50]
   1994 ; ZNVER1-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:0.50]
   1995 ; ZNVER1-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:0.50]
   1996 ; ZNVER1-NEXT:    cmovleq (%rdx), %rdi # sched: [5:0.50]
   1997 ; ZNVER1-NEXT:    cmovleq (%rdx), %rdi # sched: [5:0.50]
   1998 ; ZNVER1-NEXT:    cmovgq (%rdx), %rdi # sched: [5:0.50]
   1999 ; ZNVER1-NEXT:    cmovgq (%rdx), %rdi # sched: [5:0.50]
   2000 ; ZNVER1-NEXT:    #NO_APP
   2001 ; ZNVER1-NEXT:    retq # sched: [1:0.50]
   2002   call void asm sideeffect "cmovoq $1, $0 \0A\09 cmovnoq $1, $0 \0A\09 cmovbq $1, $0 \0A\09 cmovcq $1, $0 \0A\09 cmovnaeq $1, $0 \0A\09 cmovnbq $1, $0 \0A\09 cmovncq $1, $0 \0A\09 cmovaeq $1, $0 \0A\09 cmovzq $1, $0 \0A\09 cmoveq $1, $0 \0A\09 cmovnzq $1, $0 \0A\09 cmovneq $1, $0 \0A\09 cmovbeq $1, $0 \0A\09 cmovnaq $1, $0 \0A\09 cmovnbeq $1, $0 \0A\09 cmovaq $1, $0 \0A\09 cmovsq $1, $0 \0A\09 cmovnsq $1, $0 \0A\09 cmovpq $1, $0 \0A\09 cmovpeq $1, $0 \0A\09 cmovnpq $1, $0 \0A\09 cmovpoq $1, $0 \0A\09 cmovlq $1, $0 \0A\09 cmovngeq $1, $0 \0A\09 cmovnlq $1, $0 \0A\09 cmovgeq $1, $0 \0A\09 cmovleq $1, $0 \0A\09 cmovngq $1, $0 \0A\09 cmovnleq $1, $0 \0A\09 cmovgq $1, $0 \0A\09 cmovoq $2, $0 \0A\09 cmovnoq $2, $0 \0A\09 cmovbq $2, $0 \0A\09 cmovcq $2, $0 \0A\09 cmovnaeq $2, $0 \0A\09 cmovnbq $2, $0 \0A\09 cmovncq $2, $0 \0A\09 cmovaeq $2, $0 \0A\09 cmovzq $2, $0 \0A\09 cmoveq $2, $0 \0A\09 cmovnzq $2, $0 \0A\09 cmovneq $2, $0 \0A\09 cmovbeq $2, $0 \0A\09 cmovnaq $2, $0 \0A\09 cmovnbeq $2, $0 \0A\09 cmovaq $2, $0 \0A\09 cmovsq $2, $0 \0A\09 cmovnsq $2, $0 \0A\09 cmovpq $2, $0 \0A\09 cmovpeq $2, $0 \0A\09 cmovnpq $2, $0 \0A\09 cmovpoq $2, $0 \0A\09 cmovlq $2, $0 \0A\09 cmovngeq $2, $0 \0A\09 cmovnlq $2, $0 \0A\09 cmovgeq $2, $0 \0A\09 cmovleq $2, $0 \0A\09 cmovngq $2, $0 \0A\09 cmovnleq $2, $0 \0A\09 cmovgq $2, $0", "r,r,*m"(i64 %a0, i64 %a1, i64 *%a2)
   2003   ret void
   2004 }
   2005