1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=atom -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 99 49.50 U f2xm1 210 # CHECK-NEXT: 1 1 1.00 U fabs 211 # CHECK-NEXT: 1 5 5.00 U fadd %st(0), %st(1) 212 # CHECK-NEXT: 1 5 5.00 U fadd %st(2) 213 # CHECK-NEXT: 1 5 5.00 * U fadds (%ecx) 214 # CHECK-NEXT: 1 5 5.00 * U faddl (%ecx) 215 # CHECK-NEXT: 1 5 5.00 U faddp %st(1) 216 # CHECK-NEXT: 1 5 5.00 U faddp %st(2) 217 # CHECK-NEXT: 1 5 5.00 * U fiadds (%ecx) 218 # CHECK-NEXT: 1 5 5.00 * U fiaddl (%ecx) 219 # CHECK-NEXT: 1 100 0.50 U fbld (%ecx) 220 # CHECK-NEXT: 1 100 0.50 U fbstp (%eax) 221 # CHECK-NEXT: 1 1 1.00 U fchs 222 # CHECK-NEXT: 1 25 12.50 U fnclex 223 # CHECK-NEXT: 1 9 4.50 U fcmovb %st(1), %st(0) 224 # CHECK-NEXT: 1 9 4.50 U fcmovbe %st(1), %st(0) 225 # CHECK-NEXT: 1 9 4.50 U fcmove %st(1), %st(0) 226 # CHECK-NEXT: 1 9 4.50 U fcmovnb %st(1), %st(0) 227 # CHECK-NEXT: 1 9 4.50 U fcmovnbe %st(1), %st(0) 228 # CHECK-NEXT: 1 9 4.50 U fcmovne %st(1), %st(0) 229 # CHECK-NEXT: 1 9 4.50 U fcmovnu %st(1), %st(0) 230 # CHECK-NEXT: 1 9 4.50 U fcmovu %st(1), %st(0) 231 # CHECK-NEXT: 1 5 5.00 U fcom %st(1) 232 # CHECK-NEXT: 1 5 5.00 U fcom %st(3) 233 # CHECK-NEXT: 1 5 5.00 U fcoms (%ecx) 234 # CHECK-NEXT: 1 5 5.00 U fcoml (%eax) 235 # CHECK-NEXT: 1 5 5.00 U fcomp %st(1) 236 # CHECK-NEXT: 1 5 5.00 U fcomp %st(3) 237 # CHECK-NEXT: 1 5 5.00 U fcomps (%ecx) 238 # CHECK-NEXT: 1 5 5.00 U fcompl (%eax) 239 # CHECK-NEXT: 1 1 1.00 U fcompp 240 # CHECK-NEXT: 1 9 4.50 U fcomi %st(3) 241 # CHECK-NEXT: 1 9 4.50 U fcompi %st(3) 242 # CHECK-NEXT: 1 174 87.00 U fcos 243 # CHECK-NEXT: 1 1 0.50 U fdecstp 244 # CHECK-NEXT: 1 34 17.00 U fdiv %st(0), %st(1) 245 # CHECK-NEXT: 1 34 17.00 U fdiv %st(2) 246 # CHECK-NEXT: 1 34 17.00 * U fdivs (%ecx) 247 # CHECK-NEXT: 1 34 17.00 * U fdivl (%eax) 248 # CHECK-NEXT: 1 34 17.00 U fdivp %st(1) 249 # CHECK-NEXT: 1 34 17.00 U fdivp %st(2) 250 # CHECK-NEXT: 1 34 17.00 * U fidivs (%ecx) 251 # CHECK-NEXT: 1 34 17.00 * U fidivl (%eax) 252 # CHECK-NEXT: 1 34 17.00 U fdivr %st(0), %st(1) 253 # CHECK-NEXT: 1 34 17.00 U fdivr %st(2) 254 # CHECK-NEXT: 1 34 17.00 * U fdivrs (%ecx) 255 # CHECK-NEXT: 1 34 17.00 * U fdivrl (%eax) 256 # CHECK-NEXT: 1 34 17.00 U fdivrp %st(1) 257 # CHECK-NEXT: 1 34 17.00 U fdivrp %st(2) 258 # CHECK-NEXT: 1 34 17.00 * U fidivrs (%ecx) 259 # CHECK-NEXT: 1 34 17.00 * U fidivrl (%eax) 260 # CHECK-NEXT: 1 1 0.50 U ffree %st(0) 261 # CHECK-NEXT: 1 5 5.00 U ficoms (%ecx) 262 # CHECK-NEXT: 1 5 5.00 U ficoml (%eax) 263 # CHECK-NEXT: 1 5 5.00 U ficomps (%ecx) 264 # CHECK-NEXT: 1 5 5.00 U ficompl (%eax) 265 # CHECK-NEXT: 1 5 5.00 * U filds (%edx) 266 # CHECK-NEXT: 1 5 5.00 * U fildl (%ecx) 267 # CHECK-NEXT: 1 5 5.00 * U fildll (%eax) 268 # CHECK-NEXT: 1 1 0.50 U fincstp 269 # CHECK-NEXT: 1 63 31.50 U fninit 270 # CHECK-NEXT: 1 6 3.00 * U fists (%edx) 271 # CHECK-NEXT: 1 6 3.00 * U fistl (%ecx) 272 # CHECK-NEXT: 1 6 3.00 * U fistps (%edx) 273 # CHECK-NEXT: 1 6 3.00 * U fistpl (%ecx) 274 # CHECK-NEXT: 1 6 3.00 * U fistpll (%eax) 275 # CHECK-NEXT: 1 2 1.00 * U fisttps (%edx) 276 # CHECK-NEXT: 1 2 1.00 * U fisttpl (%ecx) 277 # CHECK-NEXT: 1 2 1.00 * U fisttpll (%eax) 278 # CHECK-NEXT: 1 1 1.00 U fld %st(0) 279 # CHECK-NEXT: 1 1 1.00 * U flds (%edx) 280 # CHECK-NEXT: 1 1 1.00 * U fldl (%ecx) 281 # CHECK-NEXT: 1 4 2.00 * U fldt (%eax) 282 # CHECK-NEXT: 1 5 2.50 * U fldcw (%eax) 283 # CHECK-NEXT: 1 100 0.50 U fldenv (%eax) 284 # CHECK-NEXT: 1 6 3.00 U fld1 285 # CHECK-NEXT: 1 10 5.00 U fldl2e 286 # CHECK-NEXT: 1 10 5.00 U fldl2t 287 # CHECK-NEXT: 1 10 5.00 U fldlg2 288 # CHECK-NEXT: 1 10 5.00 U fldln2 289 # CHECK-NEXT: 1 10 5.00 U fldpi 290 # CHECK-NEXT: 1 1 0.50 U fldz 291 # CHECK-NEXT: 1 4 4.00 U fmul %st(0), %st(1) 292 # CHECK-NEXT: 1 4 4.00 U fmul %st(2) 293 # CHECK-NEXT: 1 4 4.00 * U fmuls (%ecx) 294 # CHECK-NEXT: 1 4 4.00 * U fmull (%eax) 295 # CHECK-NEXT: 1 4 4.00 U fmulp %st(1) 296 # CHECK-NEXT: 1 4 4.00 U fmulp %st(2) 297 # CHECK-NEXT: 1 4 4.00 * U fimuls (%ecx) 298 # CHECK-NEXT: 1 4 4.00 * U fimull (%eax) 299 # CHECK-NEXT: 1 1 0.50 U fnop 300 # CHECK-NEXT: 1 183 91.50 U fpatan 301 # CHECK-NEXT: 1 55 27.50 U fprem 302 # CHECK-NEXT: 1 71 35.50 U fprem1 303 # CHECK-NEXT: 1 168 84.00 U fptan 304 # CHECK-NEXT: 1 46 23.00 U frndint 305 # CHECK-NEXT: 1 100 0.50 U frstor (%eax) 306 # CHECK-NEXT: 1 100 0.50 U fnsave (%eax) 307 # CHECK-NEXT: 1 77 38.50 U fscale 308 # CHECK-NEXT: 1 174 87.00 U fsin 309 # CHECK-NEXT: 1 174 87.00 U fsincos 310 # CHECK-NEXT: 1 71 35.50 U fsqrt 311 # CHECK-NEXT: 1 2 1.00 U fst %st(0) 312 # CHECK-NEXT: 1 2 1.00 * U fsts (%edx) 313 # CHECK-NEXT: 1 2 1.00 * U fstl (%ecx) 314 # CHECK-NEXT: 1 2 1.00 U fstp %st(0) 315 # CHECK-NEXT: 1 2 1.00 * U fstpl (%edx) 316 # CHECK-NEXT: 1 2 1.00 * U fstpl (%ecx) 317 # CHECK-NEXT: 1 5 2.50 * U fstpt (%eax) 318 # CHECK-NEXT: 1 8 4.00 * U fnstcw (%eax) 319 # CHECK-NEXT: 1 100 0.50 U fnstenv (%eax) 320 # CHECK-NEXT: 1 100 0.50 U fnstsw (%eax) 321 # CHECK-NEXT: 1 100 0.50 U frstor (%eax) 322 # CHECK-NEXT: 1 1 0.50 U wait 323 # CHECK-NEXT: 1 100 0.50 U fnsave (%eax) 324 # CHECK-NEXT: 1 5 5.00 U fsub %st(0), %st(1) 325 # CHECK-NEXT: 1 5 5.00 U fsub %st(2) 326 # CHECK-NEXT: 1 5 5.00 * U fsubs (%ecx) 327 # CHECK-NEXT: 1 5 5.00 * U fsubl (%eax) 328 # CHECK-NEXT: 1 5 5.00 U fsubp %st(1) 329 # CHECK-NEXT: 1 5 5.00 U fsubp %st(2) 330 # CHECK-NEXT: 1 5 5.00 * U fisubs (%ecx) 331 # CHECK-NEXT: 1 5 5.00 * U fisubl (%eax) 332 # CHECK-NEXT: 1 5 5.00 U fsubr %st(0), %st(1) 333 # CHECK-NEXT: 1 5 5.00 U fsubr %st(2) 334 # CHECK-NEXT: 1 5 5.00 * U fsubrs (%ecx) 335 # CHECK-NEXT: 1 5 5.00 * U fsubrl (%eax) 336 # CHECK-NEXT: 1 5 5.00 U fsubrp %st(1) 337 # CHECK-NEXT: 1 5 5.00 U fsubrp %st(2) 338 # CHECK-NEXT: 1 5 5.00 * U fisubrs (%ecx) 339 # CHECK-NEXT: 1 5 5.00 * U fisubrl (%eax) 340 # CHECK-NEXT: 1 9 4.50 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 1 1.00 U fucompp 346 # CHECK-NEXT: 1 9 4.50 U fucomi %st(3) 347 # CHECK-NEXT: 1 9 4.50 U fucompi %st(3) 348 # CHECK-NEXT: 1 1 0.50 U wait 349 # CHECK-NEXT: 1 1 1.00 U fxam 350 # CHECK-NEXT: 1 1 1.00 U fxch %st(1) 351 # CHECK-NEXT: 1 1 1.00 U fxch %st(3) 352 # CHECK-NEXT: 1 141 70.50 * * U fxrstor (%eax) 353 # CHECK-NEXT: 1 140 70.00 * * U fxsave (%eax) 354 # CHECK-NEXT: 1 25 12.50 U fxtract 355 # CHECK-NEXT: 1 146 73.00 U fyl2x 356 # CHECK-NEXT: 1 147 73.50 U fyl2xp1 357 358 # CHECK: Resources: 359 # CHECK-NEXT: [0] - AtomPort0 360 # CHECK-NEXT: [1] - AtomPort1 361 362 # CHECK: Resource pressure per iteration: 363 # CHECK-NEXT: [0] [1] 364 # CHECK-NEXT: 1624.00 1416.00 365 366 # CHECK: Resource pressure by instruction: 367 # CHECK-NEXT: [0] [1] Instructions: 368 # CHECK-NEXT: 49.50 49.50 f2xm1 369 # CHECK-NEXT: - 1.00 fabs 370 # CHECK-NEXT: 5.00 - fadd %st(0), %st(1) 371 # CHECK-NEXT: 5.00 - fadd %st(2) 372 # CHECK-NEXT: 5.00 - fadds (%ecx) 373 # CHECK-NEXT: 5.00 - faddl (%ecx) 374 # CHECK-NEXT: 5.00 - faddp %st(1) 375 # CHECK-NEXT: 5.00 - faddp %st(2) 376 # CHECK-NEXT: 5.00 - fiadds (%ecx) 377 # CHECK-NEXT: 5.00 - fiaddl (%ecx) 378 # CHECK-NEXT: 0.50 0.50 fbld (%ecx) 379 # CHECK-NEXT: 0.50 0.50 fbstp (%eax) 380 # CHECK-NEXT: - 1.00 fchs 381 # CHECK-NEXT: 12.50 12.50 fnclex 382 # CHECK-NEXT: 4.50 4.50 fcmovb %st(1), %st(0) 383 # CHECK-NEXT: 4.50 4.50 fcmovbe %st(1), %st(0) 384 # CHECK-NEXT: 4.50 4.50 fcmove %st(1), %st(0) 385 # CHECK-NEXT: 4.50 4.50 fcmovnb %st(1), %st(0) 386 # CHECK-NEXT: 4.50 4.50 fcmovnbe %st(1), %st(0) 387 # CHECK-NEXT: 4.50 4.50 fcmovne %st(1), %st(0) 388 # CHECK-NEXT: 4.50 4.50 fcmovnu %st(1), %st(0) 389 # CHECK-NEXT: 4.50 4.50 fcmovu %st(1), %st(0) 390 # CHECK-NEXT: 5.00 - fcom %st(1) 391 # CHECK-NEXT: 5.00 - fcom %st(3) 392 # CHECK-NEXT: 5.00 - fcoms (%ecx) 393 # CHECK-NEXT: 5.00 - fcoml (%eax) 394 # CHECK-NEXT: 5.00 - fcomp %st(1) 395 # CHECK-NEXT: 5.00 - fcomp %st(3) 396 # CHECK-NEXT: 5.00 - fcomps (%ecx) 397 # CHECK-NEXT: 5.00 - fcompl (%eax) 398 # CHECK-NEXT: - 1.00 fcompp 399 # CHECK-NEXT: 4.50 4.50 fcomi %st(3) 400 # CHECK-NEXT: 4.50 4.50 fcompi %st(3) 401 # CHECK-NEXT: 87.00 87.00 fcos 402 # CHECK-NEXT: 0.50 0.50 fdecstp 403 # CHECK-NEXT: 17.00 17.00 fdiv %st(0), %st(1) 404 # CHECK-NEXT: 17.00 17.00 fdiv %st(2) 405 # CHECK-NEXT: 17.00 17.00 fdivs (%ecx) 406 # CHECK-NEXT: 17.00 17.00 fdivl (%eax) 407 # CHECK-NEXT: 17.00 17.00 fdivp %st(1) 408 # CHECK-NEXT: 17.00 17.00 fdivp %st(2) 409 # CHECK-NEXT: 17.00 17.00 fidivs (%ecx) 410 # CHECK-NEXT: 17.00 17.00 fidivl (%eax) 411 # CHECK-NEXT: 17.00 17.00 fdivr %st(0), %st(1) 412 # CHECK-NEXT: 17.00 17.00 fdivr %st(2) 413 # CHECK-NEXT: 17.00 17.00 fdivrs (%ecx) 414 # CHECK-NEXT: 17.00 17.00 fdivrl (%eax) 415 # CHECK-NEXT: 17.00 17.00 fdivrp %st(1) 416 # CHECK-NEXT: 17.00 17.00 fdivrp %st(2) 417 # CHECK-NEXT: 17.00 17.00 fidivrs (%ecx) 418 # CHECK-NEXT: 17.00 17.00 fidivrl (%eax) 419 # CHECK-NEXT: 0.50 0.50 ffree %st(0) 420 # CHECK-NEXT: 5.00 - ficoms (%ecx) 421 # CHECK-NEXT: 5.00 - ficoml (%eax) 422 # CHECK-NEXT: 5.00 - ficomps (%ecx) 423 # CHECK-NEXT: 5.00 - ficompl (%eax) 424 # CHECK-NEXT: 5.00 5.00 filds (%edx) 425 # CHECK-NEXT: 5.00 5.00 fildl (%ecx) 426 # CHECK-NEXT: 5.00 5.00 fildll (%eax) 427 # CHECK-NEXT: 0.50 0.50 fincstp 428 # CHECK-NEXT: 31.50 31.50 fninit 429 # CHECK-NEXT: 3.00 3.00 fists (%edx) 430 # CHECK-NEXT: 3.00 3.00 fistl (%ecx) 431 # CHECK-NEXT: 3.00 3.00 fistps (%edx) 432 # CHECK-NEXT: 3.00 3.00 fistpl (%ecx) 433 # CHECK-NEXT: 3.00 3.00 fistpll (%eax) 434 # CHECK-NEXT: 1.00 1.00 fisttps (%edx) 435 # CHECK-NEXT: 1.00 1.00 fisttpl (%ecx) 436 # CHECK-NEXT: 1.00 1.00 fisttpll (%eax) 437 # CHECK-NEXT: 1.00 - fld %st(0) 438 # CHECK-NEXT: 1.00 - flds (%edx) 439 # CHECK-NEXT: 1.00 - fldl (%ecx) 440 # CHECK-NEXT: 2.00 2.00 fldt (%eax) 441 # CHECK-NEXT: 2.50 2.50 fldcw (%eax) 442 # CHECK-NEXT: 0.50 0.50 fldenv (%eax) 443 # CHECK-NEXT: 3.00 3.00 fld1 444 # CHECK-NEXT: 5.00 5.00 fldl2e 445 # CHECK-NEXT: 5.00 5.00 fldl2t 446 # CHECK-NEXT: 5.00 5.00 fldlg2 447 # CHECK-NEXT: 5.00 5.00 fldln2 448 # CHECK-NEXT: 5.00 5.00 fldpi 449 # CHECK-NEXT: 0.50 0.50 fldz 450 # CHECK-NEXT: 4.00 - fmul %st(0), %st(1) 451 # CHECK-NEXT: 4.00 - fmul %st(2) 452 # CHECK-NEXT: 4.00 - fmuls (%ecx) 453 # CHECK-NEXT: 4.00 - fmull (%eax) 454 # CHECK-NEXT: 4.00 - fmulp %st(1) 455 # CHECK-NEXT: 4.00 - fmulp %st(2) 456 # CHECK-NEXT: 4.00 - fimuls (%ecx) 457 # CHECK-NEXT: 4.00 - fimull (%eax) 458 # CHECK-NEXT: 0.50 0.50 fnop 459 # CHECK-NEXT: 91.50 91.50 fpatan 460 # CHECK-NEXT: 27.50 27.50 fprem 461 # CHECK-NEXT: 35.50 35.50 fprem1 462 # CHECK-NEXT: 84.00 84.00 fptan 463 # CHECK-NEXT: 23.00 23.00 frndint 464 # CHECK-NEXT: 0.50 0.50 frstor (%eax) 465 # CHECK-NEXT: 0.50 0.50 fnsave (%eax) 466 # CHECK-NEXT: 38.50 38.50 fscale 467 # CHECK-NEXT: 87.00 87.00 fsin 468 # CHECK-NEXT: 87.00 87.00 fsincos 469 # CHECK-NEXT: 35.50 35.50 fsqrt 470 # CHECK-NEXT: 1.00 1.00 fst %st(0) 471 # CHECK-NEXT: 1.00 1.00 fsts (%edx) 472 # CHECK-NEXT: 1.00 1.00 fstl (%ecx) 473 # CHECK-NEXT: 1.00 1.00 fstp %st(0) 474 # CHECK-NEXT: 1.00 1.00 fstpl (%edx) 475 # CHECK-NEXT: 1.00 1.00 fstpl (%ecx) 476 # CHECK-NEXT: 2.50 2.50 fstpt (%eax) 477 # CHECK-NEXT: 4.00 4.00 fnstcw (%eax) 478 # CHECK-NEXT: 0.50 0.50 fnstenv (%eax) 479 # CHECK-NEXT: 0.50 0.50 fnstsw (%eax) 480 # CHECK-NEXT: 0.50 0.50 frstor (%eax) 481 # CHECK-NEXT: 0.50 0.50 wait 482 # CHECK-NEXT: 0.50 0.50 fnsave (%eax) 483 # CHECK-NEXT: 5.00 - fsub %st(0), %st(1) 484 # CHECK-NEXT: 5.00 - fsub %st(2) 485 # CHECK-NEXT: 5.00 - fsubs (%ecx) 486 # CHECK-NEXT: 5.00 - fsubl (%eax) 487 # CHECK-NEXT: 5.00 - fsubp %st(1) 488 # CHECK-NEXT: 5.00 - fsubp %st(2) 489 # CHECK-NEXT: 5.00 - fisubs (%ecx) 490 # CHECK-NEXT: 5.00 - fisubl (%eax) 491 # CHECK-NEXT: 5.00 - fsubr %st(0), %st(1) 492 # CHECK-NEXT: 5.00 - fsubr %st(2) 493 # CHECK-NEXT: 5.00 - fsubrs (%ecx) 494 # CHECK-NEXT: 5.00 - fsubrl (%eax) 495 # CHECK-NEXT: 5.00 - fsubrp %st(1) 496 # CHECK-NEXT: 5.00 - fsubrp %st(2) 497 # CHECK-NEXT: 5.00 - fisubrs (%ecx) 498 # CHECK-NEXT: 5.00 - fisubrl (%eax) 499 # CHECK-NEXT: 4.50 4.50 ftst 500 # CHECK-NEXT: - 1.00 fucom %st(1) 501 # CHECK-NEXT: - 1.00 fucom %st(3) 502 # CHECK-NEXT: - 1.00 fucomp %st(1) 503 # CHECK-NEXT: - 1.00 fucomp %st(3) 504 # CHECK-NEXT: - 1.00 fucompp 505 # CHECK-NEXT: 4.50 4.50 fucomi %st(3) 506 # CHECK-NEXT: 4.50 4.50 fucompi %st(3) 507 # CHECK-NEXT: 0.50 0.50 wait 508 # CHECK-NEXT: 1.00 - fxam 509 # CHECK-NEXT: 1.00 1.00 fxch %st(1) 510 # CHECK-NEXT: 1.00 1.00 fxch %st(3) 511 # CHECK-NEXT: 70.50 70.50 fxrstor (%eax) 512 # CHECK-NEXT: 70.00 70.00 fxsave (%eax) 513 # CHECK-NEXT: 12.50 12.50 fxtract 514 # CHECK-NEXT: 73.00 73.00 fyl2x 515 # CHECK-NEXT: 73.50 73.50 fyl2xp1 516