|
134 | 134 | }, |
135 | 135 | "Psychonauts matrix swizzle": { |
136 | 136 | "x86InstructionCount": 103, |
137 | | - "ExpectedInstructionCount": 113, |
| 137 | + "ExpectedInstructionCount": 273, |
138 | 138 | "Comment": [ |
139 | 139 | "Hottest block in Windows Psychonauts", |
140 | 140 | "Doing a 4x4 32-bit float matrix swizzle", |
|
254 | 254 | "stur w7, [x9, #-68]", |
255 | 255 | "ldur w4, [x9, #-68]", |
256 | 256 | "ldr s2, [x4]", |
257 | | - "stur s2, [x9, #-64]", |
| 257 | + "mov w20, #0x400000", |
| 258 | + "fmov s3, w20", |
| 259 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 260 | + "orr v3.8b, v2.8b, v3.8b", |
| 261 | + "bsl v4.8b, v2.8b, v3.8b", |
| 262 | + "stur s4, [x9, #-64]", |
258 | 263 | "ldur w7, [x9, #-68]", |
259 | 264 | "ldr s2, [x7, #16]", |
260 | | - "stur s2, [x9, #-60]", |
| 265 | + "mov w20, #0x400000", |
| 266 | + "fmov s3, w20", |
| 267 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 268 | + "orr v3.8b, v2.8b, v3.8b", |
| 269 | + "bsl v4.8b, v2.8b, v3.8b", |
| 270 | + "stur s4, [x9, #-60]", |
261 | 271 | "ldur w5, [x9, #-68]", |
262 | 272 | "ldr s2, [x5, #32]", |
263 | | - "stur s2, [x9, #-56]", |
| 273 | + "mov w20, #0x400000", |
| 274 | + "fmov s3, w20", |
| 275 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 276 | + "orr v3.8b, v2.8b, v3.8b", |
| 277 | + "bsl v4.8b, v2.8b, v3.8b", |
| 278 | + "stur s4, [x9, #-56]", |
264 | 279 | "ldur w4, [x9, #-68]", |
265 | 280 | "ldr s2, [x4, #48]", |
266 | | - "stur s2, [x9, #-52]", |
| 281 | + "mov w20, #0x400000", |
| 282 | + "fmov s3, w20", |
| 283 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 284 | + "orr v3.8b, v2.8b, v3.8b", |
| 285 | + "bsl v4.8b, v2.8b, v3.8b", |
| 286 | + "stur s4, [x9, #-52]", |
267 | 287 | "ldur w7, [x9, #-68]", |
268 | 288 | "ldr s2, [x7, #4]", |
269 | | - "stur s2, [x9, #-48]", |
| 289 | + "mov w20, #0x400000", |
| 290 | + "fmov s3, w20", |
| 291 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 292 | + "orr v3.8b, v2.8b, v3.8b", |
| 293 | + "bsl v4.8b, v2.8b, v3.8b", |
| 294 | + "stur s4, [x9, #-48]", |
270 | 295 | "ldur w5, [x9, #-68]", |
271 | 296 | "ldr s2, [x5, #20]", |
272 | | - "stur s2, [x9, #-44]", |
| 297 | + "mov w20, #0x400000", |
| 298 | + "fmov s3, w20", |
| 299 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 300 | + "orr v3.8b, v2.8b, v3.8b", |
| 301 | + "bsl v4.8b, v2.8b, v3.8b", |
| 302 | + "stur s4, [x9, #-44]", |
273 | 303 | "ldur w4, [x9, #-68]", |
274 | 304 | "ldr s2, [x4, #36]", |
275 | | - "stur s2, [x9, #-40]", |
| 305 | + "mov w20, #0x400000", |
| 306 | + "fmov s3, w20", |
| 307 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 308 | + "orr v3.8b, v2.8b, v3.8b", |
| 309 | + "bsl v4.8b, v2.8b, v3.8b", |
| 310 | + "stur s4, [x9, #-40]", |
276 | 311 | "ldur w7, [x9, #-68]", |
277 | 312 | "ldr s2, [x7, #52]", |
278 | | - "stur s2, [x9, #-36]", |
| 313 | + "mov w20, #0x400000", |
| 314 | + "fmov s3, w20", |
| 315 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 316 | + "orr v3.8b, v2.8b, v3.8b", |
| 317 | + "bsl v4.8b, v2.8b, v3.8b", |
| 318 | + "stur s4, [x9, #-36]", |
279 | 319 | "ldur w5, [x9, #-68]", |
280 | 320 | "ldr s2, [x5, #8]", |
281 | | - "stur s2, [x9, #-32]", |
| 321 | + "mov w20, #0x400000", |
| 322 | + "fmov s3, w20", |
| 323 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 324 | + "orr v3.8b, v2.8b, v3.8b", |
| 325 | + "bsl v4.8b, v2.8b, v3.8b", |
| 326 | + "stur s4, [x9, #-32]", |
282 | 327 | "ldur w4, [x9, #-68]", |
283 | 328 | "ldr s2, [x4, #24]", |
284 | | - "stur s2, [x9, #-28]", |
| 329 | + "mov w20, #0x400000", |
| 330 | + "fmov s3, w20", |
| 331 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 332 | + "orr v3.8b, v2.8b, v3.8b", |
| 333 | + "bsl v4.8b, v2.8b, v3.8b", |
| 334 | + "stur s4, [x9, #-28]", |
285 | 335 | "ldur w7, [x9, #-68]", |
286 | 336 | "ldr s2, [x7, #40]", |
287 | | - "stur s2, [x9, #-24]", |
| 337 | + "mov w20, #0x400000", |
| 338 | + "fmov s3, w20", |
| 339 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 340 | + "orr v3.8b, v2.8b, v3.8b", |
| 341 | + "bsl v4.8b, v2.8b, v3.8b", |
| 342 | + "stur s4, [x9, #-24]", |
288 | 343 | "ldur w5, [x9, #-68]", |
289 | 344 | "ldr s2, [x5, #56]", |
290 | | - "stur s2, [x9, #-20]", |
| 345 | + "mov w20, #0x400000", |
| 346 | + "fmov s3, w20", |
| 347 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 348 | + "orr v3.8b, v2.8b, v3.8b", |
| 349 | + "bsl v4.8b, v2.8b, v3.8b", |
| 350 | + "stur s4, [x9, #-20]", |
291 | 351 | "ldur w4, [x9, #-68]", |
292 | 352 | "ldr s2, [x4, #12]", |
293 | | - "stur s2, [x9, #-16]", |
| 353 | + "mov w20, #0x400000", |
| 354 | + "fmov s3, w20", |
| 355 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 356 | + "orr v3.8b, v2.8b, v3.8b", |
| 357 | + "bsl v4.8b, v2.8b, v3.8b", |
| 358 | + "stur s4, [x9, #-16]", |
294 | 359 | "ldur w7, [x9, #-68]", |
295 | 360 | "ldr s2, [x7, #28]", |
296 | | - "stur s2, [x9, #-12]", |
| 361 | + "mov w20, #0x400000", |
| 362 | + "fmov s3, w20", |
| 363 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 364 | + "orr v3.8b, v2.8b, v3.8b", |
| 365 | + "bsl v4.8b, v2.8b, v3.8b", |
| 366 | + "stur s4, [x9, #-12]", |
297 | 367 | "ldur w5, [x9, #-68]", |
298 | 368 | "ldr s2, [x5, #44]", |
299 | | - "stur s2, [x9, #-8]", |
| 369 | + "mov w20, #0x400000", |
| 370 | + "fmov s3, w20", |
| 371 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 372 | + "orr v3.8b, v2.8b, v3.8b", |
| 373 | + "bsl v4.8b, v2.8b, v3.8b", |
| 374 | + "stur s4, [x9, #-8]", |
300 | 375 | "ldur w4, [x9, #-68]", |
301 | 376 | "ldr s2, [x4, #60]", |
302 | | - "stur s2, [x9, #-4]", |
| 377 | + "mov w20, #0x400000", |
| 378 | + "fmov s3, w20", |
| 379 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 380 | + "orr v3.8b, v2.8b, v3.8b", |
| 381 | + "bsl v4.8b, v2.8b, v3.8b", |
| 382 | + "stur s4, [x9, #-4]", |
303 | 383 | "ldr w7, [x9, #8]", |
304 | 384 | "ldur s2, [x9, #-64]", |
305 | | - "str s2, [x7]", |
| 385 | + "mov w20, #0x400000", |
| 386 | + "fmov s3, w20", |
| 387 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 388 | + "orr v3.8b, v2.8b, v3.8b", |
| 389 | + "bsl v4.8b, v2.8b, v3.8b", |
| 390 | + "str s4, [x7]", |
306 | 391 | "ldr w5, [x9, #8]", |
307 | 392 | "ldur s2, [x9, #-60]", |
308 | | - "str s2, [x5, #4]", |
| 393 | + "mov w20, #0x400000", |
| 394 | + "fmov s3, w20", |
| 395 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 396 | + "orr v3.8b, v2.8b, v3.8b", |
| 397 | + "bsl v4.8b, v2.8b, v3.8b", |
| 398 | + "str s4, [x5, #4]", |
309 | 399 | "ldr w4, [x9, #8]", |
310 | 400 | "ldur s2, [x9, #-56]", |
311 | | - "str s2, [x4, #8]", |
| 401 | + "mov w20, #0x400000", |
| 402 | + "fmov s3, w20", |
| 403 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 404 | + "orr v3.8b, v2.8b, v3.8b", |
| 405 | + "bsl v4.8b, v2.8b, v3.8b", |
| 406 | + "str s4, [x4, #8]", |
312 | 407 | "ldr w7, [x9, #8]", |
313 | 408 | "ldur s2, [x9, #-52]", |
314 | | - "str s2, [x7, #12]", |
| 409 | + "mov w20, #0x400000", |
| 410 | + "fmov s3, w20", |
| 411 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 412 | + "orr v3.8b, v2.8b, v3.8b", |
| 413 | + "bsl v4.8b, v2.8b, v3.8b", |
| 414 | + "str s4, [x7, #12]", |
315 | 415 | "ldr w5, [x9, #8]", |
316 | 416 | "ldur s2, [x9, #-48]", |
317 | | - "str s2, [x5, #16]", |
| 417 | + "mov w20, #0x400000", |
| 418 | + "fmov s3, w20", |
| 419 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 420 | + "orr v3.8b, v2.8b, v3.8b", |
| 421 | + "bsl v4.8b, v2.8b, v3.8b", |
| 422 | + "str s4, [x5, #16]", |
318 | 423 | "ldr w4, [x9, #8]", |
319 | 424 | "ldur s2, [x9, #-44]", |
320 | | - "str s2, [x4, #20]", |
| 425 | + "mov w20, #0x400000", |
| 426 | + "fmov s3, w20", |
| 427 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 428 | + "orr v3.8b, v2.8b, v3.8b", |
| 429 | + "bsl v4.8b, v2.8b, v3.8b", |
| 430 | + "str s4, [x4, #20]", |
321 | 431 | "ldr w7, [x9, #8]", |
322 | 432 | "ldur s2, [x9, #-40]", |
323 | | - "str s2, [x7, #24]", |
| 433 | + "mov w20, #0x400000", |
| 434 | + "fmov s3, w20", |
| 435 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 436 | + "orr v3.8b, v2.8b, v3.8b", |
| 437 | + "bsl v4.8b, v2.8b, v3.8b", |
| 438 | + "str s4, [x7, #24]", |
324 | 439 | "ldr w5, [x9, #8]", |
325 | 440 | "ldur s2, [x9, #-36]", |
326 | | - "str s2, [x5, #28]", |
| 441 | + "mov w20, #0x400000", |
| 442 | + "fmov s3, w20", |
| 443 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 444 | + "orr v3.8b, v2.8b, v3.8b", |
| 445 | + "bsl v4.8b, v2.8b, v3.8b", |
| 446 | + "str s4, [x5, #28]", |
327 | 447 | "ldr w4, [x9, #8]", |
328 | 448 | "ldur s2, [x9, #-32]", |
329 | | - "str s2, [x4, #32]", |
| 449 | + "mov w20, #0x400000", |
| 450 | + "fmov s3, w20", |
| 451 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 452 | + "orr v3.8b, v2.8b, v3.8b", |
| 453 | + "bsl v4.8b, v2.8b, v3.8b", |
| 454 | + "str s4, [x4, #32]", |
330 | 455 | "ldr w7, [x9, #8]", |
331 | 456 | "ldur s2, [x9, #-28]", |
332 | | - "str s2, [x7, #36]", |
| 457 | + "mov w20, #0x400000", |
| 458 | + "fmov s3, w20", |
| 459 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 460 | + "orr v3.8b, v2.8b, v3.8b", |
| 461 | + "bsl v4.8b, v2.8b, v3.8b", |
| 462 | + "str s4, [x7, #36]", |
333 | 463 | "ldr w5, [x9, #8]", |
334 | 464 | "ldur s2, [x9, #-24]", |
335 | | - "str s2, [x5, #40]", |
| 465 | + "mov w20, #0x400000", |
| 466 | + "fmov s3, w20", |
| 467 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 468 | + "orr v3.8b, v2.8b, v3.8b", |
| 469 | + "bsl v4.8b, v2.8b, v3.8b", |
| 470 | + "str s4, [x5, #40]", |
336 | 471 | "ldr w4, [x9, #8]", |
337 | 472 | "ldur s2, [x9, #-20]", |
338 | | - "str s2, [x4, #44]", |
| 473 | + "mov w20, #0x400000", |
| 474 | + "fmov s3, w20", |
| 475 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 476 | + "orr v3.8b, v2.8b, v3.8b", |
| 477 | + "bsl v4.8b, v2.8b, v3.8b", |
| 478 | + "str s4, [x4, #44]", |
339 | 479 | "ldr w7, [x9, #8]", |
340 | 480 | "ldur s2, [x9, #-16]", |
341 | | - "str s2, [x7, #48]", |
| 481 | + "mov w20, #0x400000", |
| 482 | + "fmov s3, w20", |
| 483 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 484 | + "orr v3.8b, v2.8b, v3.8b", |
| 485 | + "bsl v4.8b, v2.8b, v3.8b", |
| 486 | + "str s4, [x7, #48]", |
342 | 487 | "ldr w5, [x9, #8]", |
343 | 488 | "ldur s2, [x9, #-12]", |
344 | | - "str s2, [x5, #52]", |
| 489 | + "mov w20, #0x400000", |
| 490 | + "fmov s3, w20", |
| 491 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 492 | + "orr v3.8b, v2.8b, v3.8b", |
| 493 | + "bsl v4.8b, v2.8b, v3.8b", |
| 494 | + "str s4, [x5, #52]", |
345 | 495 | "ldr w4, [x9, #8]", |
346 | 496 | "ldur s2, [x9, #-8]", |
347 | | - "str s2, [x4, #56]", |
| 497 | + "mov w20, #0x400000", |
| 498 | + "fmov s3, w20", |
| 499 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 500 | + "orr v3.8b, v2.8b, v3.8b", |
| 501 | + "bsl v4.8b, v2.8b, v3.8b", |
| 502 | + "str s4, [x4, #56]", |
348 | 503 | "ldr w7, [x9, #8]", |
349 | 504 | "ldur s2, [x9, #-4]", |
350 | | - "str s2, [x7, #60]", |
| 505 | + "mov w20, #0x400000", |
| 506 | + "fmov s3, w20", |
| 507 | + "fcmeq v4.4s, v2.4s, v2.4s", |
| 508 | + "orr v3.8b, v2.8b, v3.8b", |
| 509 | + "bsl v4.8b, v2.8b, v3.8b", |
| 510 | + "str s4, [x7, #60]", |
351 | 511 | "ldr w4, [x9, #8]", |
352 | 512 | "mov x8, x9", |
353 | 513 | "ldr w9, [x8], #4", |
|
0 commit comments