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