Skip to content

Commit 608701e

Browse files
committed
instcountci: Reimplementation of quiet and signalling nan propagation on x87
1 parent 60fe273 commit 608701e

8 files changed

Lines changed: 9480 additions & 1615 deletions

File tree

unittests/InstructionCountCI/FlagM/HotBlocks_32Bit.json

Lines changed: 193 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
},
135135
"Psychonauts matrix swizzle": {
136136
"x86InstructionCount": 103,
137-
"ExpectedInstructionCount": 113,
137+
"ExpectedInstructionCount": 273,
138138
"Comment": [
139139
"Hottest block in Windows Psychonauts",
140140
"Doing a 4x4 32-bit float matrix swizzle",
@@ -254,100 +254,260 @@
254254
"stur w7, [x9, #-68]",
255255
"ldur w4, [x9, #-68]",
256256
"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]",
258263
"ldur w7, [x9, #-68]",
259264
"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]",
261271
"ldur w5, [x9, #-68]",
262272
"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]",
264279
"ldur w4, [x9, #-68]",
265280
"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]",
267287
"ldur w7, [x9, #-68]",
268288
"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]",
270295
"ldur w5, [x9, #-68]",
271296
"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]",
273303
"ldur w4, [x9, #-68]",
274304
"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]",
276311
"ldur w7, [x9, #-68]",
277312
"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]",
279319
"ldur w5, [x9, #-68]",
280320
"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]",
282327
"ldur w4, [x9, #-68]",
283328
"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]",
285335
"ldur w7, [x9, #-68]",
286336
"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]",
288343
"ldur w5, [x9, #-68]",
289344
"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]",
291351
"ldur w4, [x9, #-68]",
292352
"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]",
294359
"ldur w7, [x9, #-68]",
295360
"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]",
297367
"ldur w5, [x9, #-68]",
298368
"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]",
300375
"ldur w4, [x9, #-68]",
301376
"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]",
303383
"ldr w7, [x9, #8]",
304384
"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]",
306391
"ldr w5, [x9, #8]",
307392
"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]",
309399
"ldr w4, [x9, #8]",
310400
"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]",
312407
"ldr w7, [x9, #8]",
313408
"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]",
315415
"ldr w5, [x9, #8]",
316416
"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]",
318423
"ldr w4, [x9, #8]",
319424
"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]",
321431
"ldr w7, [x9, #8]",
322432
"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]",
324439
"ldr w5, [x9, #8]",
325440
"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]",
327447
"ldr w4, [x9, #8]",
328448
"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]",
330455
"ldr w7, [x9, #8]",
331456
"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]",
333463
"ldr w5, [x9, #8]",
334464
"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]",
336471
"ldr w4, [x9, #8]",
337472
"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]",
339479
"ldr w7, [x9, #8]",
340480
"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]",
342487
"ldr w5, [x9, #8]",
343488
"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]",
345495
"ldr w4, [x9, #8]",
346496
"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]",
348503
"ldr w7, [x9, #8]",
349504
"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]",
351511
"ldr w4, [x9, #8]",
352512
"mov x8, x9",
353513
"ldr w9, [x8], #4",

0 commit comments

Comments
 (0)