1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -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 2 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: 1 10 1.00 * U fadds (%ecx) 214 # CHECK-NEXT: 1 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: 1 10 1.00 * U fiadds (%ecx) 218 # CHECK-NEXT: 1 10 1.00 * U fiaddl (%ecx) 219 # CHECK-NEXT: 1 100 0.25 U fbld (%ecx) 220 # CHECK-NEXT: 1 100 0.25 U fbstp (%eax) 221 # CHECK-NEXT: 1 1 1.00 U fchs 222 # CHECK-NEXT: 1 100 0.25 U fnclex 223 # CHECK-NEXT: 1 100 0.25 U fcmovb %st(1), %st(0) 224 # CHECK-NEXT: 1 100 0.25 U fcmovbe %st(1), %st(0) 225 # CHECK-NEXT: 1 100 0.25 U fcmove %st(1), %st(0) 226 # CHECK-NEXT: 1 100 0.25 U fcmovnb %st(1), %st(0) 227 # CHECK-NEXT: 1 100 0.25 U fcmovnbe %st(1), %st(0) 228 # CHECK-NEXT: 1 100 0.25 U fcmovne %st(1), %st(0) 229 # CHECK-NEXT: 1 100 0.25 U fcmovnu %st(1), %st(0) 230 # CHECK-NEXT: 1 100 0.25 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: 1 8 1.00 U fcoms (%ecx) 234 # CHECK-NEXT: 1 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: 1 8 1.00 U fcomps (%ecx) 238 # CHECK-NEXT: 1 8 1.00 U fcompl (%eax) 239 # CHECK-NEXT: 1 1 1.00 U fcompp 240 # CHECK-NEXT: 1 9 0.50 U fcomi %st(3) 241 # CHECK-NEXT: 1 9 0.50 U fcompi %st(3) 242 # CHECK-NEXT: 1 100 0.25 U fcos 243 # CHECK-NEXT: 1 11 1.00 U fdecstp 244 # CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) 245 # CHECK-NEXT: 1 15 1.00 U fdiv %st(2) 246 # CHECK-NEXT: 1 22 1.00 * U fdivs (%ecx) 247 # CHECK-NEXT: 1 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: 1 22 1.00 * U fidivs (%ecx) 251 # CHECK-NEXT: 1 22 1.00 * U fidivl (%eax) 252 # CHECK-NEXT: 1 15 1.00 U fdivr %st(0), %st(1) 253 # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) 254 # CHECK-NEXT: 1 22 1.00 * U fdivrs (%ecx) 255 # CHECK-NEXT: 1 22 1.00 * U fdivrl (%eax) 256 # CHECK-NEXT: 1 15 1.00 U fdivrp %st(1) 257 # CHECK-NEXT: 1 15 1.00 U fdivrp %st(2) 258 # CHECK-NEXT: 1 22 1.00 * U fidivrs (%ecx) 259 # CHECK-NEXT: 1 22 1.00 * U fidivrl (%eax) 260 # CHECK-NEXT: 1 11 1.00 U ffree %st(0) 261 # CHECK-NEXT: 2 12 1.50 U ficoms (%ecx) 262 # CHECK-NEXT: 2 12 1.50 U ficoml (%eax) 263 # CHECK-NEXT: 2 12 1.50 U ficomps (%ecx) 264 # CHECK-NEXT: 2 12 1.50 U ficompl (%eax) 265 # CHECK-NEXT: 2 11 1.00 * U filds (%edx) 266 # CHECK-NEXT: 2 11 1.00 * U fildl (%ecx) 267 # CHECK-NEXT: 2 11 1.00 * U fildll (%eax) 268 # CHECK-NEXT: 1 11 1.00 U fincstp 269 # CHECK-NEXT: 1 100 0.25 U fninit 270 # CHECK-NEXT: 1 12 0.50 * U fists (%edx) 271 # CHECK-NEXT: 1 12 0.50 * U fistl (%ecx) 272 # CHECK-NEXT: 1 12 0.50 * U fistps (%edx) 273 # CHECK-NEXT: 1 12 0.50 * U fistpl (%ecx) 274 # CHECK-NEXT: 1 12 0.50 * U fistpll (%eax) 275 # CHECK-NEXT: 1 12 0.50 * U fisttps (%edx) 276 # CHECK-NEXT: 1 12 0.50 * U fisttpl (%ecx) 277 # CHECK-NEXT: 1 12 0.50 * U fisttpll (%eax) 278 # CHECK-NEXT: 1 1 0.50 U fld %st(0) 279 # CHECK-NEXT: 1 8 0.50 * U flds (%edx) 280 # CHECK-NEXT: 1 8 0.50 * U fldl (%ecx) 281 # CHECK-NEXT: 2 1 0.50 * U fldt (%eax) 282 # CHECK-NEXT: 1 100 0.25 * U fldcw (%eax) 283 # CHECK-NEXT: 1 100 0.25 U fldenv (%eax) 284 # CHECK-NEXT: 1 11 1.00 U fld1 285 # CHECK-NEXT: 1 11 1.00 U fldl2e 286 # CHECK-NEXT: 1 11 1.00 U fldl2t 287 # CHECK-NEXT: 1 11 1.00 U fldlg2 288 # CHECK-NEXT: 1 11 1.00 U fldln2 289 # CHECK-NEXT: 1 11 1.00 U fldpi 290 # CHECK-NEXT: 1 8 0.50 U fldz 291 # CHECK-NEXT: 1 3 0.50 U fmul %st(0), %st(1) 292 # CHECK-NEXT: 1 3 0.50 U fmul %st(2) 293 # CHECK-NEXT: 2 10 0.50 * U fmuls (%ecx) 294 # CHECK-NEXT: 2 10 0.50 * U fmull (%eax) 295 # CHECK-NEXT: 1 3 0.50 U fmulp %st(1) 296 # CHECK-NEXT: 1 3 0.50 U fmulp %st(2) 297 # CHECK-NEXT: 2 10 0.50 * U fimuls (%ecx) 298 # CHECK-NEXT: 2 10 0.50 * U fimull (%eax) 299 # CHECK-NEXT: 1 1 1.00 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 20 20.00 U fsqrt 311 # CHECK-NEXT: 2 5 0.50 U fst %st(0) 312 # CHECK-NEXT: 1 1 0.50 * U fsts (%edx) 313 # CHECK-NEXT: 1 1 0.50 * U fstl (%ecx) 314 # CHECK-NEXT: 2 5 0.50 U fstp %st(0) 315 # CHECK-NEXT: 1 1 0.50 * U fstpl (%edx) 316 # CHECK-NEXT: 1 1 0.50 * U fstpl (%ecx) 317 # CHECK-NEXT: 1 5 0.50 * U fstpt (%eax) 318 # CHECK-NEXT: 1 100 0.25 * U fnstcw (%eax) 319 # CHECK-NEXT: 1 100 0.25 U fnstenv (%eax) 320 # CHECK-NEXT: 1 100 0.25 U fnstsw (%eax) 321 # CHECK-NEXT: 1 100 0.25 U frstor (%eax) 322 # CHECK-NEXT: 1 1 1.00 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: 1 10 1.00 * U fsubs (%ecx) 327 # CHECK-NEXT: 1 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: 1 10 1.00 * U fisubs (%ecx) 331 # CHECK-NEXT: 1 10 1.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: 1 10 1.00 * U fsubrs (%ecx) 335 # CHECK-NEXT: 1 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: 1 10 1.00 * U fisubrs (%ecx) 339 # CHECK-NEXT: 1 10 1.00 * U fisubrl (%eax) 340 # CHECK-NEXT: 1 1 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 1 1.00 U fucompp 346 # CHECK-NEXT: 1 9 0.50 U fucomi %st(3) 347 # CHECK-NEXT: 1 9 0.50 U fucompi %st(3) 348 # CHECK-NEXT: 1 1 1.00 U wait 349 # CHECK-NEXT: 1 1 1.00 U fxam 350 # CHECK-NEXT: 1 1 0.25 U fxch %st(1) 351 # CHECK-NEXT: 1 1 0.25 U fxch %st(3) 352 # CHECK-NEXT: 1 100 0.25 * * 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] - ZnAGU0 360 # CHECK-NEXT: [1] - ZnAGU1 361 # CHECK-NEXT: [2] - ZnALU0 362 # CHECK-NEXT: [3] - ZnALU1 363 # CHECK-NEXT: [4] - ZnALU2 364 # CHECK-NEXT: [5] - ZnALU3 365 # CHECK-NEXT: [6] - ZnDivider 366 # CHECK-NEXT: [7] - ZnFPU0 367 # CHECK-NEXT: [8] - ZnFPU1 368 # CHECK-NEXT: [9] - ZnFPU2 369 # CHECK-NEXT: [10] - ZnFPU3 370 # CHECK-NEXT: [11] - ZnMultiplier 371 372 # CHECK: Resource pressure per iteration: 373 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 374 # CHECK-NEXT: 32.50 32.50 - - - - - 54.50 6.00 8.00 64.50 - 375 376 # CHECK: Resource pressure by instruction: 377 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: 378 # CHECK-NEXT: - - - - - - - - - - - - f2xm1 379 # CHECK-NEXT: - - - - - - - - - - 1.00 - fabs 380 # CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st(0), %st(1) 381 # CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st(2) 382 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fadds (%ecx) 383 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - faddl (%ecx) 384 # CHECK-NEXT: - - - - - - - 1.00 - - - - faddp %st(1) 385 # CHECK-NEXT: - - - - - - - 1.00 - - - - faddp %st(2) 386 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fiadds (%ecx) 387 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fiaddl (%ecx) 388 # CHECK-NEXT: - - - - - - - - - - - - fbld (%ecx) 389 # CHECK-NEXT: - - - - - - - - - - - - fbstp (%eax) 390 # CHECK-NEXT: - - - - - - - - - - 1.00 - fchs 391 # CHECK-NEXT: - - - - - - - - - - - - fnclex 392 # CHECK-NEXT: - - - - - - - - - - - - fcmovb %st(1), %st(0) 393 # CHECK-NEXT: - - - - - - - - - - - - fcmovbe %st(1), %st(0) 394 # CHECK-NEXT: - - - - - - - - - - - - fcmove %st(1), %st(0) 395 # CHECK-NEXT: - - - - - - - - - - - - fcmovnb %st(1), %st(0) 396 # CHECK-NEXT: - - - - - - - - - - - - fcmovnbe %st(1), %st(0) 397 # CHECK-NEXT: - - - - - - - - - - - - fcmovne %st(1), %st(0) 398 # CHECK-NEXT: - - - - - - - - - - - - fcmovnu %st(1), %st(0) 399 # CHECK-NEXT: - - - - - - - - - - - - fcmovu %st(1), %st(0) 400 # CHECK-NEXT: - - - - - - - 1.00 - - - - fcom %st(1) 401 # CHECK-NEXT: - - - - - - - 1.00 - - - - fcom %st(3) 402 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fcoms (%ecx) 403 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fcoml (%eax) 404 # CHECK-NEXT: - - - - - - - 1.00 - - - - fcomp %st(1) 405 # CHECK-NEXT: - - - - - - - 1.00 - - - - fcomp %st(3) 406 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fcomps (%ecx) 407 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fcompl (%eax) 408 # CHECK-NEXT: - - - - - - - 1.00 - - - - fcompp 409 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fcomi %st(3) 410 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fcompi %st(3) 411 # CHECK-NEXT: - - - - - - - - - - - - fcos 412 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdecstp 413 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st(0), %st(1) 414 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st(2) 415 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivs (%ecx) 416 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivl (%eax) 417 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivp %st(1) 418 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivp %st(2) 419 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivs (%ecx) 420 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivl (%eax) 421 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st(0), %st(1) 422 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st(2) 423 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrs (%ecx) 424 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrl (%eax) 425 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivrp %st(1) 426 # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivrp %st(2) 427 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrs (%ecx) 428 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrl (%eax) 429 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - ffree %st(0) 430 # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoms (%ecx) 431 # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoml (%eax) 432 # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficomps (%ecx) 433 # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficompl (%eax) 434 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - filds (%edx) 435 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fildl (%ecx) 436 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fildll (%eax) 437 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fincstp 438 # CHECK-NEXT: - - - - - - - - - - - - fninit 439 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fists (%edx) 440 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fistl (%ecx) 441 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fistps (%edx) 442 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fistpl (%ecx) 443 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fistpll (%eax) 444 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttps (%edx) 445 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttpl (%ecx) 446 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttpll (%eax) 447 # CHECK-NEXT: - - - - - - - - 0.50 - 0.50 - fld %st(0) 448 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - flds (%edx) 449 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fldl (%ecx) 450 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - fldt (%eax) 451 # CHECK-NEXT: - - - - - - - - - - - - fldcw (%eax) 452 # CHECK-NEXT: - - - - - - - - - - - - fldenv (%eax) 453 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fld1 454 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldl2e 455 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldl2t 456 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldlg2 457 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldln2 458 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldpi 459 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - fldz 460 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmul %st(0), %st(1) 461 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmul %st(2) 462 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fmuls (%ecx) 463 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fmull (%eax) 464 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmulp %st(1) 465 # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmulp %st(2) 466 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fimuls (%ecx) 467 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fimull (%eax) 468 # CHECK-NEXT: - - - - - - - 1.00 - - - - fnop 469 # CHECK-NEXT: - - - - - - - - - - - - fpatan 470 # CHECK-NEXT: - - - - - - - - - - - - fprem 471 # CHECK-NEXT: - - - - - - - - - - - - fprem1 472 # CHECK-NEXT: - - - - - - - - - - - - fptan 473 # CHECK-NEXT: - - - - - - - - - - - - frndint 474 # CHECK-NEXT: - - - - - - - - - - - - frstor (%eax) 475 # CHECK-NEXT: - - - - - - - - - - - - fnsave (%eax) 476 # CHECK-NEXT: - - - - - - - - - - - - fscale 477 # CHECK-NEXT: - - - - - - - - - - - - fsin 478 # CHECK-NEXT: - - - - - - - - - - - - fsincos 479 # CHECK-NEXT: - - - - - - - - - - 20.00 - fsqrt 480 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fst %st(0) 481 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fsts (%edx) 482 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstl (%ecx) 483 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fstp %st(0) 484 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstpl (%edx) 485 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstpl (%ecx) 486 # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fstpt (%eax) 487 # CHECK-NEXT: - - - - - - - - - - - - fnstcw (%eax) 488 # CHECK-NEXT: - - - - - - - - - - - - fnstenv (%eax) 489 # CHECK-NEXT: - - - - - - - - - - - - fnstsw (%eax) 490 # CHECK-NEXT: - - - - - - - - - - - - frstor (%eax) 491 # CHECK-NEXT: - - - - - - - 1.00 - - - - wait 492 # CHECK-NEXT: - - - - - - - - - - - - fnsave (%eax) 493 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st(0), %st(1) 494 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st(2) 495 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubs (%ecx) 496 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubl (%eax) 497 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubp %st(1) 498 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubp %st(2) 499 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubs (%ecx) 500 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubl (%eax) 501 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st(0), %st(1) 502 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st(2) 503 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrs (%ecx) 504 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrl (%eax) 505 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubrp %st(1) 506 # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubrp %st(2) 507 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubrs (%ecx) 508 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubrl (%eax) 509 # CHECK-NEXT: - - - - - - - 1.00 - - - - ftst 510 # CHECK-NEXT: - - - - - - - 1.00 - - - - fucom %st(1) 511 # CHECK-NEXT: - - - - - - - 1.00 - - - - fucom %st(3) 512 # CHECK-NEXT: - - - - - - - 1.00 - - - - fucomp %st(1) 513 # CHECK-NEXT: - - - - - - - 1.00 - - - - fucomp %st(3) 514 # CHECK-NEXT: - - - - - - - 1.00 - - - - fucompp 515 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fucomi %st(3) 516 # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fucompi %st(3) 517 # CHECK-NEXT: - - - - - - - 1.00 - - - - wait 518 # CHECK-NEXT: - - - - - - - - - - 1.00 - fxam 519 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - fxch %st(1) 520 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - fxch %st(3) 521 # CHECK-NEXT: - - - - - - - - - - - - fxrstor (%eax) 522 # CHECK-NEXT: - - - - - - - - - - - - fxsave (%eax) 523 # CHECK-NEXT: - - - - - - - - - - - - fxtract 524 # CHECK-NEXT: - - - - - - - - - - - - fyl2x 525 # CHECK-NEXT: - - - - - - - - - - - - fyl2xp1 526