1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -instruction-tables < %s | FileCheck %s 3 4 f2xm1 5 6 fabs 7 8 fadd %st(0), %st(1) 9 fadd %st(2) 10 fadds (%ecx) 11 faddl (%ecx) 12 faddp %st(1) 13 faddp %st(2) 14 fiadds (%ecx) 15 fiaddl (%ecx) 16 17 fbld (%ecx) 18 fbstp (%eax) 19 20 fchs 21 22 fnclex 23 24 fcmovb %st(1), %st(0) 25 fcmovbe %st(1), %st(0) 26 fcmove %st(1), %st(0) 27 fcmovnb %st(1), %st(0) 28 fcmovnbe %st(1), %st(0) 29 fcmovne %st(1), %st(0) 30 fcmovnu %st(1), %st(0) 31 fcmovu %st(1), %st(0) 32 33 fcom %st(1) 34 fcom %st(3) 35 fcoms (%ecx) 36 fcoml (%eax) 37 fcomp %st(1) 38 fcomp %st(3) 39 fcomps (%ecx) 40 fcompl (%eax) 41 fcompp 42 43 fcomi %st(3) 44 fcompi %st(3) 45 46 fcos 47 48 fdecstp 49 50 fdiv %st(0), %st(1) 51 fdiv %st(2) 52 fdivs (%ecx) 53 fdivl (%eax) 54 fdivp %st(1) 55 fdivp %st(2) 56 fidivs (%ecx) 57 fidivl (%eax) 58 59 fdivr %st(0), %st(1) 60 fdivr %st(2) 61 fdivrs (%ecx) 62 fdivrl (%eax) 63 fdivrp %st(1) 64 fdivrp %st(2) 65 fidivrs (%ecx) 66 fidivrl (%eax) 67 68 ffree %st(0) 69 70 ficoms (%ecx) 71 ficoml (%eax) 72 ficomps (%ecx) 73 ficompl (%eax) 74 75 filds (%edx) 76 fildl (%ecx) 77 fildll (%eax) 78 79 fincstp 80 81 fninit 82 83 fists (%edx) 84 fistl (%ecx) 85 fistps (%edx) 86 fistpl (%ecx) 87 fistpll (%eax) 88 89 fisttps (%edx) 90 fisttpl (%ecx) 91 fisttpll (%eax) 92 93 fld %st(0) 94 flds (%edx) 95 fldl (%ecx) 96 fldt (%eax) 97 98 fldcw (%eax) 99 fldenv (%eax) 100 101 fld1 102 fldl2e 103 fldl2t 104 fldlg2 105 fldln2 106 fldpi 107 fldz 108 109 fmul %st(0), %st(1) 110 fmul %st(2) 111 fmuls (%ecx) 112 fmull (%eax) 113 fmulp %st(1) 114 fmulp %st(2) 115 fimuls (%ecx) 116 fimull (%eax) 117 118 fnop 119 120 fpatan 121 122 fprem 123 fprem1 124 125 fptan 126 127 frndint 128 129 frstor (%eax) 130 131 fnsave (%eax) 132 133 fscale 134 135 fsin 136 137 fsincos 138 139 fsqrt 140 141 fst %st(0) 142 fsts (%edx) 143 fstl (%ecx) 144 fstp %st(0) 145 fstpl (%edx) 146 fstpl (%ecx) 147 fstpt (%eax) 148 149 fnstcw (%eax) 150 fnstenv (%eax) 151 fnstsw (%eax) 152 153 frstor (%eax) 154 fsave (%eax) 155 156 fsub %st(0), %st(1) 157 fsub %st(2) 158 fsubs (%ecx) 159 fsubl (%eax) 160 fsubp %st(1) 161 fsubp %st(2) 162 fisubs (%ecx) 163 fisubl (%eax) 164 165 fsubr %st(0), %st(1) 166 fsubr %st(2) 167 fsubrs (%ecx) 168 fsubrl (%eax) 169 fsubrp %st(1) 170 fsubrp %st(2) 171 fisubrs (%ecx) 172 fisubrl (%eax) 173 174 ftst 175 176 fucom %st(1) 177 fucom %st(3) 178 fucomp %st(1) 179 fucomp %st(3) 180 fucompp 181 182 fucomi %st(3) 183 fucompi %st(3) 184 185 fwait 186 187 fxam 188 189 fxch %st(1) 190 fxch %st(3) 191 192 fxrstor (%eax) 193 fxsave (%eax) 194 195 fxtract 196 197 fyl2x 198 fyl2xp1 199 200 # CHECK: Instruction Info: 201 # CHECK-NEXT: [1]: #uOps 202 # CHECK-NEXT: [2]: Latency 203 # CHECK-NEXT: [3]: RThroughput 204 # CHECK-NEXT: [4]: MayLoad 205 # CHECK-NEXT: [5]: MayStore 206 # CHECK-NEXT: [6]: HasSideEffects (U) 207 208 # CHECK: [1] [2] [3] [4] [5] [6] Instructions: 209 # CHECK-NEXT: 1 100 0.25 U f2xm1 210 # CHECK-NEXT: 1 1 1.00 U fabs 211 # CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) 212 # CHECK-NEXT: 1 3 1.00 U fadd %st(2) 213 # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) 214 # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) 215 # CHECK-NEXT: 1 3 1.00 U faddp %st(1) 216 # CHECK-NEXT: 1 3 1.00 U faddp %st(2) 217 # CHECK-NEXT: 3 13 2.00 * U fiadds (%ecx) 218 # CHECK-NEXT: 3 13 2.00 * U fiaddl (%ecx) 219 # CHECK-NEXT: 1 100 0.25 U fbld (%ecx) 220 # CHECK-NEXT: 2 1 1.00 U fbstp (%eax) 221 # CHECK-NEXT: 1 1 1.00 U fchs 222 # CHECK-NEXT: 4 4 1.00 U fnclex 223 # CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) 224 # CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) 225 # CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) 226 # CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) 227 # CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) 228 # CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) 229 # CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) 230 # CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) 231 # CHECK-NEXT: 1 1 1.00 U fcom %st(1) 232 # CHECK-NEXT: 1 1 1.00 U fcom %st(3) 233 # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) 234 # CHECK-NEXT: 2 8 1.00 U fcoml (%eax) 235 # CHECK-NEXT: 1 1 1.00 U fcomp %st(1) 236 # CHECK-NEXT: 1 1 1.00 U fcomp %st(3) 237 # CHECK-NEXT: 2 8 1.00 U fcomps (%ecx) 238 # CHECK-NEXT: 2 8 1.00 U fcompl (%eax) 239 # CHECK-NEXT: 1 100 0.25 U fcompp 240 # CHECK-NEXT: 1 2 1.00 U fcomi %st(3) 241 # CHECK-NEXT: 1 2 1.00 U fcompi %st(3) 242 # CHECK-NEXT: 1 100 0.25 U fcos 243 # CHECK-NEXT: 2 2 1.00 U fdecstp 244 # CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) 245 # CHECK-NEXT: 1 20 1.00 U fdiv %st(2) 246 # CHECK-NEXT: 2 22 1.00 * U fdivs (%ecx) 247 # CHECK-NEXT: 2 22 1.00 * U fdivl (%eax) 248 # CHECK-NEXT: 1 15 1.00 U fdivp %st(1) 249 # CHECK-NEXT: 1 15 1.00 U fdivp %st(2) 250 # CHECK-NEXT: 3 25 1.00 * U fidivs (%ecx) 251 # CHECK-NEXT: 3 25 1.00 * U fidivl (%eax) 252 # CHECK-NEXT: 1 20 1.00 U fdivr %st(0), %st(1) 253 # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) 254 # CHECK-NEXT: 2 27 1.00 * U fdivrs (%ecx) 255 # CHECK-NEXT: 2 27 1.00 * U fdivrl (%eax) 256 # CHECK-NEXT: 1 20 1.00 U fdivrp %st(1) 257 # CHECK-NEXT: 1 20 1.00 U fdivrp %st(2) 258 # CHECK-NEXT: 3 30 1.00 * U fidivrs (%ecx) 259 # CHECK-NEXT: 3 30 1.00 * U fidivrl (%eax) 260 # CHECK-NEXT: 1 100 0.25 U ffree %st(0) 261 # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) 262 # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) 263 # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) 264 # CHECK-NEXT: 3 11 2.00 U ficompl (%eax) 265 # CHECK-NEXT: 2 10 1.00 * U filds (%edx) 266 # CHECK-NEXT: 2 10 1.00 * U fildl (%ecx) 267 # CHECK-NEXT: 2 10 1.00 * U fildll (%eax) 268 # CHECK-NEXT: 1 1 0.50 U fincstp 269 # CHECK-NEXT: 15 75 6.00 U fninit 270 # CHECK-NEXT: 3 4 1.00 * U fists (%edx) 271 # CHECK-NEXT: 3 4 1.00 * U fistl (%ecx) 272 # CHECK-NEXT: 3 4 1.00 * U fistps (%edx) 273 # CHECK-NEXT: 3 4 1.00 * U fistpl (%ecx) 274 # CHECK-NEXT: 3 4 1.00 * U fistpll (%eax) 275 # CHECK-NEXT: 3 4 1.00 * U fisttps (%edx) 276 # CHECK-NEXT: 3 4 1.00 * U fisttpl (%ecx) 277 # CHECK-NEXT: 3 4 1.00 * U fisttpll (%eax) 278 # CHECK-NEXT: 1 1 0.25 U fld %st(0) 279 # CHECK-NEXT: 1 7 0.50 * U flds (%edx) 280 # CHECK-NEXT: 1 7 0.50 * U fldl (%ecx) 281 # CHECK-NEXT: 1 7 0.50 * U fldt (%eax) 282 # CHECK-NEXT: 3 7 1.00 * U fldcw (%eax) 283 # CHECK-NEXT: 64 62 14.00 U fldenv (%eax) 284 # CHECK-NEXT: 2 1 1.00 U fld1 285 # CHECK-NEXT: 2 1 1.00 U fldl2e 286 # CHECK-NEXT: 2 1 1.00 U fldl2t 287 # CHECK-NEXT: 2 1 1.00 U fldlg2 288 # CHECK-NEXT: 2 1 1.00 U fldln2 289 # CHECK-NEXT: 2 1 1.00 U fldpi 290 # CHECK-NEXT: 1 1 0.50 U fldz 291 # CHECK-NEXT: 1 4 1.00 U fmul %st(0), %st(1) 292 # CHECK-NEXT: 1 4 1.00 U fmul %st(2) 293 # CHECK-NEXT: 2 11 1.00 * U fmuls (%ecx) 294 # CHECK-NEXT: 2 11 1.00 * U fmull (%eax) 295 # CHECK-NEXT: 1 4 1.00 U fmulp %st(1) 296 # CHECK-NEXT: 1 4 1.00 U fmulp %st(2) 297 # CHECK-NEXT: 3 14 1.00 * U fimuls (%ecx) 298 # CHECK-NEXT: 3 14 1.00 * U fimull (%eax) 299 # CHECK-NEXT: 1 1 0.50 U fnop 300 # CHECK-NEXT: 1 100 0.25 U fpatan 301 # CHECK-NEXT: 1 100 0.25 U fprem 302 # CHECK-NEXT: 1 100 0.25 U fprem1 303 # CHECK-NEXT: 1 100 0.25 U fptan 304 # CHECK-NEXT: 1 100 0.25 U frndint 305 # CHECK-NEXT: 1 100 0.25 U frstor (%eax) 306 # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) 307 # CHECK-NEXT: 1 100 0.25 U fscale 308 # CHECK-NEXT: 1 100 0.25 U fsin 309 # CHECK-NEXT: 1 100 0.25 U fsincos 310 # CHECK-NEXT: 1 21 7.00 U fsqrt 311 # CHECK-NEXT: 1 1 0.25 U fst %st(0) 312 # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) 313 # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) 314 # CHECK-NEXT: 1 1 0.25 U fstp %st(0) 315 # CHECK-NEXT: 2 1 1.00 * U fstpl (%edx) 316 # CHECK-NEXT: 2 1 1.00 * U fstpl (%ecx) 317 # CHECK-NEXT: 2 1 1.00 * U fstpt (%eax) 318 # CHECK-NEXT: 3 2 1.00 * U fnstcw (%eax) 319 # CHECK-NEXT: 100 106 19.50 U fnstenv (%eax) 320 # CHECK-NEXT: 3 3 1.00 U fnstsw (%eax) 321 # CHECK-NEXT: 1 100 0.25 U frstor (%eax) 322 # CHECK-NEXT: 2 2 0.50 U wait 323 # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) 324 # CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) 325 # CHECK-NEXT: 1 3 1.00 U fsub %st(2) 326 # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) 327 # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) 328 # CHECK-NEXT: 1 3 1.00 U fsubp %st(1) 329 # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) 330 # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) 331 # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) 332 # CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) 333 # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) 334 # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) 335 # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) 336 # CHECK-NEXT: 1 3 1.00 U fsubrp %st(1) 337 # CHECK-NEXT: 1 3 1.00 U fsubrp %st(2) 338 # CHECK-NEXT: 3 13 2.00 * U fisubrs (%ecx) 339 # CHECK-NEXT: 3 13 2.00 * U fisubrl (%eax) 340 # CHECK-NEXT: 1 2 1.00 U ftst 341 # CHECK-NEXT: 1 1 1.00 U fucom %st(1) 342 # CHECK-NEXT: 1 1 1.00 U fucom %st(3) 343 # CHECK-NEXT: 1 1 1.00 U fucomp %st(1) 344 # CHECK-NEXT: 1 1 1.00 U fucomp %st(3) 345 # CHECK-NEXT: 1 2 1.00 U fucompp 346 # CHECK-NEXT: 1 2 1.00 U fucomi %st(3) 347 # CHECK-NEXT: 1 2 1.00 U fucompi %st(3) 348 # CHECK-NEXT: 2 2 0.50 U wait 349 # CHECK-NEXT: 1 100 0.25 U fxam 350 # CHECK-NEXT: 15 17 4.00 U fxch %st(1) 351 # CHECK-NEXT: 15 17 4.00 U fxch %st(3) 352 # CHECK-NEXT: 90 63 16.50 * * U fxrstor (%eax) 353 # CHECK-NEXT: 1 100 0.25 * * U fxsave (%eax) 354 # CHECK-NEXT: 1 100 0.25 U fxtract 355 # CHECK-NEXT: 1 100 0.25 U fyl2x 356 # CHECK-NEXT: 1 100 0.25 U fyl2xp1 357 358 # CHECK: Resources: 359 # CHECK-NEXT: [0] - SKLDivider 360 # CHECK-NEXT: [1] - SKLFPDivider 361 # CHECK-NEXT: [2] - SKLPort0 362 # CHECK-NEXT: [3] - SKLPort1 363 # CHECK-NEXT: [4] - SKLPort2 364 # CHECK-NEXT: [5] - SKLPort3 365 # CHECK-NEXT: [6] - SKLPort4 366 # CHECK-NEXT: [7] - SKLPort5 367 # CHECK-NEXT: [8] - SKLPort6 368 # CHECK-NEXT: [9] - SKLPort7 369 370 # CHECK: Resource pressure per iteration: 371 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 372 # CHECK-NEXT: - 7.00 126.75 52.25 49.00 49.00 27.00 149.75 69.25 9.00 373 374 # CHECK: Resource pressure by instruction: 375 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: 376 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - f2xm1 377 # CHECK-NEXT: - - 1.00 - - - - - - - fabs 378 # CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(0), %st(1) 379 # CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(2) 380 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fadds (%ecx) 381 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - faddl (%ecx) 382 # CHECK-NEXT: - - - - - - - 1.00 - - faddp %st(1) 383 # CHECK-NEXT: - - - - - - - 1.00 - - faddp %st(2) 384 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fiadds (%ecx) 385 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fiaddl (%ecx) 386 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fbld (%ecx) 387 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fbstp (%eax) 388 # CHECK-NEXT: - - 1.00 - - - - - - - fchs 389 # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - fnclex 390 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st(0) 391 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st(0) 392 # CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st(0) 393 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st(0) 394 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st(0) 395 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st(0) 396 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st(0) 397 # CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st(0) 398 # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(1) 399 # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(3) 400 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcoms (%ecx) 401 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcoml (%eax) 402 # CHECK-NEXT: - - - - - - - 1.00 - - fcomp %st(1) 403 # CHECK-NEXT: - - - - - - - 1.00 - - fcomp %st(3) 404 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcomps (%ecx) 405 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcompl (%eax) 406 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcompp 407 # CHECK-NEXT: - - 1.00 - - - - - - - fcomi %st(3) 408 # CHECK-NEXT: - - 1.00 - - - - - - - fcompi %st(3) 409 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcos 410 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fdecstp 411 # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(0), %st(1) 412 # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(2) 413 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivs (%ecx) 414 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivl (%eax) 415 # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(1) 416 # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(2) 417 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivs (%ecx) 418 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivl (%eax) 419 # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(0), %st(1) 420 # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(2) 421 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrs (%ecx) 422 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrl (%eax) 423 # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(1) 424 # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(2) 425 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrs (%ecx) 426 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrl (%eax) 427 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st(0) 428 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoms (%ecx) 429 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoml (%eax) 430 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficomps (%ecx) 431 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficompl (%eax) 432 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - filds (%edx) 433 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fildl (%ecx) 434 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fildll (%eax) 435 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - fincstp 436 # CHECK-NEXT: - - 3.00 1.50 - - - 9.00 1.50 - fninit 437 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fists (%edx) 438 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fistl (%ecx) 439 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fistps (%edx) 440 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fistpl (%ecx) 441 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fistpll (%eax) 442 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttps (%edx) 443 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpl (%ecx) 444 # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpll (%eax) 445 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st(0) 446 # CHECK-NEXT: - - - - 0.50 0.50 - - - - flds (%edx) 447 # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldl (%ecx) 448 # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax) 449 # CHECK-NEXT: - - 1.50 - 0.50 0.50 - 0.50 - - fldcw (%eax) 450 # CHECK-NEXT: - - 19.25 9.75 4.00 4.00 - 12.25 14.75 - fldenv (%eax) 451 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fld1 452 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldl2e 453 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldl2t 454 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldlg2 455 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldln2 456 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldpi 457 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - fldz 458 # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1) 459 # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2) 460 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx) 461 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmull (%eax) 462 # CHECK-NEXT: - - 1.00 - - - - - - - fmulp %st(1) 463 # CHECK-NEXT: - - 1.00 - - - - - - - fmulp %st(2) 464 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fimuls (%ecx) 465 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fimull (%eax) 466 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - fnop 467 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fpatan 468 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fprem 469 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fprem1 470 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fptan 471 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frndint 472 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frstor (%eax) 473 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fnsave (%eax) 474 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fscale 475 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsin 476 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsincos 477 # CHECK-NEXT: - 7.00 1.00 - - - - - - - fsqrt 478 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st(0) 479 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fsts (%edx) 480 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstl (%ecx) 481 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st(0) 482 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%edx) 483 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%ecx) 484 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpt (%eax) 485 # CHECK-NEXT: - - - - 0.33 0.33 1.00 - 1.00 0.33 fnstcw (%eax) 486 # CHECK-NEXT: - - 27.00 8.50 3.67 3.67 11.00 23.50 19.00 3.67 fnstenv (%eax) 487 # CHECK-NEXT: - - 1.00 - 0.33 0.33 1.00 - - 0.33 fnstsw (%eax) 488 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frstor (%eax) 489 # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait 490 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fnsave (%eax) 491 # CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(0), %st(1) 492 # CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(2) 493 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubs (%ecx) 494 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubl (%eax) 495 # CHECK-NEXT: - - - - - - - 1.00 - - fsubp %st(1) 496 # CHECK-NEXT: - - - - - - - 1.00 - - fsubp %st(2) 497 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubs (%ecx) 498 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubl (%eax) 499 # CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(0), %st(1) 500 # CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(2) 501 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrs (%ecx) 502 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrl (%eax) 503 # CHECK-NEXT: - - - - - - - 1.00 - - fsubrp %st(1) 504 # CHECK-NEXT: - - - - - - - 1.00 - - fsubrp %st(2) 505 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubrs (%ecx) 506 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubrl (%eax) 507 # CHECK-NEXT: - - 1.00 - - - - - - - ftst 508 # CHECK-NEXT: - - - - - - - 1.00 - - fucom %st(1) 509 # CHECK-NEXT: - - - - - - - 1.00 - - fucom %st(3) 510 # CHECK-NEXT: - - - - - - - 1.00 - - fucomp %st(1) 511 # CHECK-NEXT: - - - - - - - 1.00 - - fucomp %st(3) 512 # CHECK-NEXT: - - 1.00 - - - - - - - fucompp 513 # CHECK-NEXT: - - 1.00 - - - - - - - fucomi %st(3) 514 # CHECK-NEXT: - - 1.00 - - - - - - - fucompi %st(3) 515 # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait 516 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxam 517 # CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(1) 518 # CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(3) 519 # CHECK-NEXT: - - 17.25 12.25 16.50 16.50 - 12.75 14.75 - fxrstor (%eax) 520 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxsave (%eax) 521 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxtract 522 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2x 523 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fyl2xp1 524