From 407e78e69c09bcafd932cd4b841c699cca75fa3b Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 20 Oct 2026 17:17:02 -0700 Subject: [PATCH] InstcountCI: Update and add AVX_NE_CONVERT instructions --- FEXCore/Source/Interface/Core/DiskCache.h | 2 +- unittests/InstructionCountCI/AFP/H0F3A.json | 2 +- .../AFP/SVE256/Secondary.json | 2 +- .../AFP/SVE256/Secondary_REP.json | 2 +- .../AFP/SVE256/Secondary_REPNE.json | 2 +- .../InstructionCountCI/AFP/Secondary.json | 2 +- .../InstructionCountCI/AFP/Secondary_REP.json | 2 +- .../AFP/Secondary_REPNE.json | 2 +- .../InstructionCountCI/AFP/VEX_map1.json | 2 +- .../InstructionCountCI/AFP/VEX_map3.json | 2 +- unittests/InstructionCountCI/AVX128/FMA4.json | 2 +- .../InstructionCountCI/AVX128/VEX_map1.json | 2 +- .../AVX128/VEX_map1_FCMA.json | 2 +- .../AVX128/VEX_map1_SVE128.json | 2 +- .../AVX128/VEX_map1_flagm.json | 2 +- .../InstructionCountCI/AVX128/VEX_map2.json | 176 +++++++++++++++++- .../AVX128/VEX_map2_AFP.json | 2 +- .../AVX128/VEX_map2_DOTPROD.json | 2 +- .../AVX128/VEX_map2_I8MM.json | 2 +- .../AVX128/VEX_map2_SVE128.json | 2 +- .../AVX128/VEX_map2_flagm.json | 2 +- .../InstructionCountCI/AVX128/VEX_map3.json | 2 +- .../AVX128/VEX_map3_SVE128.json | 2 +- .../AVX128/VEX_map_group.json | 2 +- unittests/InstructionCountCI/Atomics.json | 2 +- .../InstructionCountCI/Crypto/H0F38.json | 2 +- .../Crypto/H0F38_SVE128.json | 2 +- .../InstructionCountCI/Crypto/H0F3A.json | 2 +- unittests/InstructionCountCI/DDD.json | 2 +- .../FEXOpt/AddressingLimitations.json | 2 +- .../FEXOpt/AddressingLimitations_32Bit.json | 2 +- .../InstructionCountCI/FEXOpt/MultiInst.json | 2 +- .../FEXOpt/MultiInst_32bit.json | 2 +- .../FEXOpt/MultiInst_AFP.json | 2 +- .../FEXOpt/MultiInst_TSO.json | 2 +- .../FEXOpt/MultiInst_TSO_32bit.json | 2 +- .../InstructionCountCI/FEXOpt/Peephole.json | 2 +- .../FEXOpt/Peephole_SVE128.json | 2 +- .../InstructionCountCI/FEXOpt/libnss.json | 2 +- .../InstructionCountCI/FlagM/Atomics.json | 2 +- .../InstructionCountCI/FlagM/FlagOpts.json | 2 +- unittests/InstructionCountCI/FlagM/H0F38.json | 2 +- .../InstructionCountCI/FlagM/HotBlocks.json | 2 +- .../FlagM/HotBlocks_32Bit.json | 2 +- .../FlagM/HotBlocks_AFP.json | 2 +- .../FlagM/HotBlocks_TSO_32Bit.json | 2 +- .../InstructionCountCI/FlagM/Primary.json | 2 +- .../FlagM/PrimaryGroup.json | 2 +- .../FlagM/Primary_32Bit.json | 2 +- .../InstructionCountCI/FlagM/Secondary.json | 2 +- .../FlagM/SecondaryGroup.json | 2 +- .../FlagM/SecondaryModRM.json | 2 +- .../FlagM/Secondary_OpSize.json | 2 +- .../FlagM/Secondary_REP.json | 2 +- .../FlagM/Secondary_REP_CSSC.json | 2 +- .../InstructionCountCI/FlagM/VEX_map1.json | 2 +- .../InstructionCountCI/FlagM/VEX_map2.json | 2 +- .../FlagM/VEX_map_group.json | 2 +- .../FlagM/x87-Crysis2Max-fmodel.json | 2 +- .../FlagM/x87-HalfLife.json | 2 +- .../FlagM/x87-Oblivion.json | 2 +- .../FlagM/x87-Psychonauts.json | 2 +- unittests/InstructionCountCI/FlagM/x87.json | 2 +- .../FlagM/x87_f64-Crysis2Max-fmodel.json | 2 +- .../FlagM/x87_f64-HalfLife.json | 2 +- .../FlagM/x87_f64-Oblivion.json | 2 +- .../FlagM/x87_f64-Psychonauts.json | 2 +- .../InstructionCountCI/FlagM/x87_f64.json | 2 +- unittests/InstructionCountCI/H0F38.json | 2 +- unittests/InstructionCountCI/H0F3A.json | 2 +- .../InstructionCountCI/H0F3A_SVE128.json | 2 +- .../InstructionCountCI/MOPS/Primary.json | 2 +- unittests/InstructionCountCI/Primary.json | 2 +- .../InstructionCountCI/PrimaryGroup.json | 2 +- .../InstructionCountCI/Primary_32Bit.json | 2 +- unittests/InstructionCountCI/RPRES/DDD.json | 2 +- .../InstructionCountCI/RPRES/Secondary.json | 2 +- .../RPRES/Secondary_REP_AFP.json | 2 +- .../RPRES/VEX_map1_AFP.json | 2 +- unittests/InstructionCountCI/Repeat.json | 2 +- .../InstructionCountCI/SSE42_Strings.json | 2 +- unittests/InstructionCountCI/Secondary.json | 2 +- .../InstructionCountCI/SecondaryGroup.json | 2 +- .../InstructionCountCI/SecondaryModRM.json | 2 +- .../InstructionCountCI/Secondary_32Bit.json | 2 +- .../InstructionCountCI/Secondary_OpSize.json | 2 +- .../Secondary_OpSize_FCMA.json | 2 +- .../Secondary_OpSize_SVE128.json | 2 +- .../Secondary_OpSize_SVE256.json | 2 +- .../InstructionCountCI/Secondary_REP.json | 2 +- .../InstructionCountCI/Secondary_REPNE.json | 2 +- .../Secondary_REPNE_FCMA.json | 2 +- .../Secondary_REPNE_SVE128.json | 2 +- .../Secondary_REP_FRINTTS.json | 2 +- .../InstructionCountCI/Secondary_SVE128.json | 2 +- unittests/InstructionCountCI/VEX_map1.json | 2 +- .../InstructionCountCI/VEX_map1_FCMA.json | 2 +- .../InstructionCountCI/VEX_map1_FRINTTS.json | 2 +- unittests/InstructionCountCI/VEX_map2.json | 155 ++++++++++++++- .../InstructionCountCI/VEX_map2_DOTPROD.json | 2 +- .../InstructionCountCI/VEX_map2_I8MM.json | 2 +- .../VEX_map2_svebitperm.json | 2 +- unittests/InstructionCountCI/VEX_map3.json | 2 +- .../InstructionCountCI/VEX_map_group.json | 2 +- unittests/InstructionCountCI/X87ldst-SVE.json | 2 +- unittests/InstructionCountCI/x87.json | 2 +- unittests/InstructionCountCI/x87_32Bit.json | 2 +- unittests/InstructionCountCI/x87_f64.json | 2 +- .../InstructionCountCI/x87_f64_32Bit.json | 2 +- 109 files changed, 434 insertions(+), 111 deletions(-) diff --git a/FEXCore/Source/Interface/Core/DiskCache.h b/FEXCore/Source/Interface/Core/DiskCache.h index 40dcfcc61..1b6847611 100644 --- a/FEXCore/Source/Interface/Core/DiskCache.h +++ b/FEXCore/Source/Interface/Core/DiskCache.h @@ -249,7 +249,7 @@ namespace DiskCache { // The current version of the diskcache. // This must be changed any time codegen changes occur! // Be aware of the impact of changing this frequently! - static constexpr uint16_t FormatVersion = 32; + static constexpr uint16_t FormatVersion = 33; static constexpr uint32_t LOOKUP_KEY_MAX_BUCKET_DEPTH = 500; diff --git a/unittests/InstructionCountCI/AFP/H0F3A.json b/unittests/InstructionCountCI/AFP/H0F3A.json index 8d7854a14..b6e23c996 100644 --- a/unittests/InstructionCountCI/AFP/H0F3A.json +++ b/unittests/InstructionCountCI/AFP/H0F3A.json @@ -8,7 +8,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "roundss xmm0, xmm1, 00000000b": { diff --git a/unittests/InstructionCountCI/AFP/SVE256/Secondary.json b/unittests/InstructionCountCI/AFP/SVE256/Secondary.json index a2dc3e3ca..3fbbad3e0 100644 --- a/unittests/InstructionCountCI/AFP/SVE256/Secondary.json +++ b/unittests/InstructionCountCI/AFP/SVE256/Secondary.json @@ -7,7 +7,7 @@ "AFP" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtpi2ps xmm0, [rax]": { diff --git a/unittests/InstructionCountCI/AFP/SVE256/Secondary_REP.json b/unittests/InstructionCountCI/AFP/SVE256/Secondary_REP.json index ea8c62fc1..3ae3dc3c9 100644 --- a/unittests/InstructionCountCI/AFP/SVE256/Secondary_REP.json +++ b/unittests/InstructionCountCI/AFP/SVE256/Secondary_REP.json @@ -9,7 +9,7 @@ "DisabledHostFeatures": [ "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtsi2ss xmm0, eax": { diff --git a/unittests/InstructionCountCI/AFP/SVE256/Secondary_REPNE.json b/unittests/InstructionCountCI/AFP/SVE256/Secondary_REPNE.json index 9aeec44a7..d2a8a7dec 100644 --- a/unittests/InstructionCountCI/AFP/SVE256/Secondary_REPNE.json +++ b/unittests/InstructionCountCI/AFP/SVE256/Secondary_REPNE.json @@ -7,7 +7,7 @@ "AFP" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtsi2sd xmm0, eax": { diff --git a/unittests/InstructionCountCI/AFP/Secondary.json b/unittests/InstructionCountCI/AFP/Secondary.json index 226d8c609..d1710adbf 100644 --- a/unittests/InstructionCountCI/AFP/Secondary.json +++ b/unittests/InstructionCountCI/AFP/Secondary.json @@ -8,7 +8,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtpi2ps xmm0, [rax]": { diff --git a/unittests/InstructionCountCI/AFP/Secondary_REP.json b/unittests/InstructionCountCI/AFP/Secondary_REP.json index 92dedf6fa..992695651 100644 --- a/unittests/InstructionCountCI/AFP/Secondary_REP.json +++ b/unittests/InstructionCountCI/AFP/Secondary_REP.json @@ -9,7 +9,7 @@ "SVE256", "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtsi2ss xmm0, eax": { diff --git a/unittests/InstructionCountCI/AFP/Secondary_REPNE.json b/unittests/InstructionCountCI/AFP/Secondary_REPNE.json index 48262bbe5..789a1bc94 100644 --- a/unittests/InstructionCountCI/AFP/Secondary_REPNE.json +++ b/unittests/InstructionCountCI/AFP/Secondary_REPNE.json @@ -8,7 +8,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtsi2sd xmm0, eax": { diff --git a/unittests/InstructionCountCI/AFP/VEX_map1.json b/unittests/InstructionCountCI/AFP/VEX_map1.json index 7b71a1387..3debd7d41 100644 --- a/unittests/InstructionCountCI/AFP/VEX_map1.json +++ b/unittests/InstructionCountCI/AFP/VEX_map1.json @@ -9,7 +9,7 @@ "DisabledHostFeatures": [ "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vsqrtss xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/AFP/VEX_map3.json b/unittests/InstructionCountCI/AFP/VEX_map3.json index 69bb8cf5c..2dc4fa431 100644 --- a/unittests/InstructionCountCI/AFP/VEX_map3.json +++ b/unittests/InstructionCountCI/AFP/VEX_map3.json @@ -7,7 +7,7 @@ "AFP" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vroundss xmm0, xmm1, 00000000b": { diff --git a/unittests/InstructionCountCI/AVX128/FMA4.json b/unittests/InstructionCountCI/AVX128/FMA4.json index e844dfc87..8e25533af 100644 --- a/unittests/InstructionCountCI/AVX128/FMA4.json +++ b/unittests/InstructionCountCI/AVX128/FMA4.json @@ -7,7 +7,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vfmaddsubps xmm0, xmm1, xmm2, xmm3": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map1.json b/unittests/InstructionCountCI/AVX128/VEX_map1.json index f00c4a167..639b5ea4a 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map1.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map1.json @@ -13,7 +13,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vmovups xmm0, xmm0": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map1_FCMA.json b/unittests/InstructionCountCI/AVX128/VEX_map1_FCMA.json index 4868c4a41..6d47f22a8 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map1_FCMA.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map1_FCMA.json @@ -9,7 +9,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vaddsubpd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map1_SVE128.json b/unittests/InstructionCountCI/AVX128/VEX_map1_SVE128.json index 9204b877b..c0f76ed7b 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map1_SVE128.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map1_SVE128.json @@ -10,7 +10,7 @@ "FLAGM2", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vmovntps [rax], xmm0": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map1_flagm.json b/unittests/InstructionCountCI/AVX128/VEX_map1_flagm.json index 606d78300..7a8fc8177 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map1_flagm.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map1_flagm.json @@ -10,7 +10,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vucomiss xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2.json b/unittests/InstructionCountCI/AVX128/VEX_map2.json index dbace438e..3fd594be3 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2.json @@ -1,7 +1,9 @@ { "Features": { "Bitness": 64, - "EnabledHostFeatures": [], + "EnabledHostFeatures": [ + "BF16" + ], "DisabledHostFeatures": [ "AFP", "FLAGM", @@ -11,7 +13,7 @@ "I8MM", "DOTPROD" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpshufb xmm0, xmm1, xmm2": { @@ -2393,6 +2395,30 @@ "str q16, [x28, #192]" ] }, + "db 0xc4, 0xe2, 0x7a, 0x72, 0xd4 ; {vex} vcvtneps2bf16 xmm2, xmm4": { + "ExpectedInstructionCount": 2, + "Comment": [ + "Map 2 0b01 0x72 128-bit" + ], + "ExpectedArm64ASM": [ + "bfcvtn v18.4h, v20.4s", + "stp xzr, xzr, [x28, #224]" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0x72, 0xdc ; {vex} vcvtneps2bf16 xmm3, ymm4": { + "ExpectedInstructionCount": 6, + "Comment": [ + "Map 2 0b01 0x72 256-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x28, #256]", + "bfcvtn v3.4h, v20.4s", + "mov v0.16b, v3.16b", + "bfcvtn2 v0.8h, v2.4s", + "mov v19.16b, v0.16b", + "stp xzr, xzr, [x28, #240]" + ] + }, "vpbroadcastb xmm0, xmm1": { "ExpectedInstructionCount": 2, "Comment": [ @@ -5877,6 +5903,152 @@ "str q4, [x28, #192]" ] }, + "db 0xc4, 0xe2, 0x78, 0xb0, 0x00 ; vcvtneoph2ps xmm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b00 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7c, 0xb0, 0x00 ; vcvtneoph2ps ymm0, [rax]": { + "ExpectedInstructionCount": 6, + "Comment": [ + "Map 2 0b00 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ldp q2, q3, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16", + "ushr v3.4s, v3.4s, #16", + "shl v3.4s, v3.4s, #16", + "str q3, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x79, 0xb0, 0x00 ; vcvtneeph2ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b01 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v16.4s, v2.4s, #16", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7d, 0xb0, 0x00 ; vcvtneeph2ps ymm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b01 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ldp q2, q3, [x4]", + "shl v16.4s, v2.4s, #16", + "shl v3.4s, v3.4s, #16", + "str q3, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7b, 0xb0, 0x00 ; vcvtneobf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b10 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7f, 0xb0, 0x00 ; vcvtneobf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 6, + "Comment": [ + "Map 2 0b10 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ldp q2, q3, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16", + "ushr v3.4s, v3.4s, #16", + "shl v3.4s, v3.4s, #16", + "str q3, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7a, 0xb0, 0x00 ; vcvtneebf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b11 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v16.4s, v2.4s, #16", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0xb0, 0x00 ; vcvtneebf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b11 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ldp q2, q3, [x4]", + "shl v16.4s, v2.4s, #16", + "shl v3.4s, v3.4s, #16", + "str q3, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x79, 0xb1, 0x00 ; vbcstnesh2ps xmm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b01 0xb1 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr h2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7d, 0xb1, 0x00 ; vbcstnesh2ps ymm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b01 0xb1 256-bit" + ], + "ExpectedArm64ASM": [ + "ldr h2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]", + "str q16, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7a, 0xb1, 0x00 ; vbcstnebf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b10 0xb1 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr h2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]", + "stp xzr, xzr, [x28, #192]" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0xb1, 0x00 ; vbcstnebf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 4, + "Comment": [ + "Map 2 0b10 0xb1 256-bit" + ], + "ExpectedArm64ASM": [ + "ldr h2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]", + "str q16, [x28, #192]" + ] + }, "vfmaddsub231ps xmm0, xmm1, xmm2": { "ExpectedInstructionCount": 5, "Comment": [ diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2_AFP.json b/unittests/InstructionCountCI/AVX128/VEX_map2_AFP.json index e810b7c77..fd6f4bc8b 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2_AFP.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2_AFP.json @@ -8,7 +8,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vfmadd132ss xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2_DOTPROD.json b/unittests/InstructionCountCI/AVX128/VEX_map2_DOTPROD.json index 9ee1c9f08..cf283a688 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2_DOTPROD.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2_DOTPROD.json @@ -12,7 +12,7 @@ "SVE256", "I8MM" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpdpbusd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2_I8MM.json b/unittests/InstructionCountCI/AVX128/VEX_map2_I8MM.json index 5cbda91cd..5acac62ad 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2_I8MM.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2_I8MM.json @@ -11,7 +11,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpdpbusd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2_SVE128.json b/unittests/InstructionCountCI/AVX128/VEX_map2_SVE128.json index 09421a5da..74e59dc37 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2_SVE128.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2_SVE128.json @@ -10,7 +10,7 @@ "FLAGM2", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vmovntdqa xmm0, [rax]": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map2_flagm.json b/unittests/InstructionCountCI/AVX128/VEX_map2_flagm.json index f3b7dddf8..4b738ab42 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map2_flagm.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map2_flagm.json @@ -11,7 +11,7 @@ "SVE256", "SVEBITPERM" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vtestps xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map3.json b/unittests/InstructionCountCI/AVX128/VEX_map3.json index 4a7220873..fe783104b 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map3.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map3.json @@ -7,7 +7,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpermq ymm0, ymm1, 1": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map3_SVE128.json b/unittests/InstructionCountCI/AVX128/VEX_map3_SVE128.json index 3b9cfc247..52cc751a4 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map3_SVE128.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map3_SVE128.json @@ -8,7 +8,7 @@ "AFP", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vblendvps xmm0, xmm1, xmm2, xmm3": { diff --git a/unittests/InstructionCountCI/AVX128/VEX_map_group.json b/unittests/InstructionCountCI/AVX128/VEX_map_group.json index 7ae518ae2..e204793e3 100644 --- a/unittests/InstructionCountCI/AVX128/VEX_map_group.json +++ b/unittests/InstructionCountCI/AVX128/VEX_map_group.json @@ -9,7 +9,7 @@ "SVE256", "SVE128" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpsrlw xmm0, xmm1, 0": { diff --git a/unittests/InstructionCountCI/Atomics.json b/unittests/InstructionCountCI/Atomics.json index 539be5df1..813854e7e 100644 --- a/unittests/InstructionCountCI/Atomics.json +++ b/unittests/InstructionCountCI/Atomics.json @@ -9,7 +9,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "lock add byte [rax], cl": { diff --git a/unittests/InstructionCountCI/Crypto/H0F38.json b/unittests/InstructionCountCI/Crypto/H0F38.json index e1c39be40..fccf5dd38 100644 --- a/unittests/InstructionCountCI/Crypto/H0F38.json +++ b/unittests/InstructionCountCI/Crypto/H0F38.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "sha1nexte xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Crypto/H0F38_SVE128.json b/unittests/InstructionCountCI/Crypto/H0F38_SVE128.json index f2c3db41f..a5156ae08 100644 --- a/unittests/InstructionCountCI/Crypto/H0F38_SVE128.json +++ b/unittests/InstructionCountCI/Crypto/H0F38_SVE128.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "sha1nexte xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Crypto/H0F3A.json b/unittests/InstructionCountCI/Crypto/H0F3A.json index d739ed3e7..c86cf97d1 100644 --- a/unittests/InstructionCountCI/Crypto/H0F3A.json +++ b/unittests/InstructionCountCI/Crypto/H0F3A.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pclmulqdq xmm0, xmm1, 00000b": { diff --git a/unittests/InstructionCountCI/DDD.json b/unittests/InstructionCountCI/DDD.json index 104437551..574bab24b 100644 --- a/unittests/InstructionCountCI/DDD.json +++ b/unittests/InstructionCountCI/DDD.json @@ -10,7 +10,7 @@ "AFP", "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These 3DNow! instructions are optimal assuming that FEX doesn't SRA MMX registers", diff --git a/unittests/InstructionCountCI/FEXOpt/AddressingLimitations.json b/unittests/InstructionCountCI/FEXOpt/AddressingLimitations.json index 9b9cf900a..3a40e3cef 100644 --- a/unittests/InstructionCountCI/FEXOpt/AddressingLimitations.json +++ b/unittests/InstructionCountCI/FEXOpt/AddressingLimitations.json @@ -8,7 +8,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "Instructions that explicitly push against the limits of ARM's loadstore instructions" diff --git a/unittests/InstructionCountCI/FEXOpt/AddressingLimitations_32Bit.json b/unittests/InstructionCountCI/FEXOpt/AddressingLimitations_32Bit.json index e4819dc00..8dbb40e30 100644 --- a/unittests/InstructionCountCI/FEXOpt/AddressingLimitations_32Bit.json +++ b/unittests/InstructionCountCI/FEXOpt/AddressingLimitations_32Bit.json @@ -8,7 +8,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "Instructions that explicitly push against the limits of ARM's loadstore instructions" diff --git a/unittests/InstructionCountCI/FEXOpt/MultiInst.json b/unittests/InstructionCountCI/FEXOpt/MultiInst.json index 1334e49b0..e9025aebc 100644 --- a/unittests/InstructionCountCI/FEXOpt/MultiInst.json +++ b/unittests/InstructionCountCI/FEXOpt/MultiInst.json @@ -13,7 +13,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These are instruction combinations that could be more optimal if FEX optimized for them" diff --git a/unittests/InstructionCountCI/FEXOpt/MultiInst_32bit.json b/unittests/InstructionCountCI/FEXOpt/MultiInst_32bit.json index 18af9207a..bc3ac8d31 100644 --- a/unittests/InstructionCountCI/FEXOpt/MultiInst_32bit.json +++ b/unittests/InstructionCountCI/FEXOpt/MultiInst_32bit.json @@ -11,7 +11,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These are instruction combinations that could be more optimal if FEX optimized for them" diff --git a/unittests/InstructionCountCI/FEXOpt/MultiInst_AFP.json b/unittests/InstructionCountCI/FEXOpt/MultiInst_AFP.json index 819c9f365..f47c48b1e 100644 --- a/unittests/InstructionCountCI/FEXOpt/MultiInst_AFP.json +++ b/unittests/InstructionCountCI/FEXOpt/MultiInst_AFP.json @@ -9,7 +9,7 @@ "SVE256", "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These are instruction combinations that could be more optimal if FEX optimized for them" diff --git a/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO.json b/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO.json index d65cf876a..8a5cddb70 100644 --- a/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO.json +++ b/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO.json @@ -14,7 +14,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These are instruction combinations that could be more optimal if FEX optimized for them" diff --git a/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO_32bit.json b/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO_32bit.json index b02e6cea1..2e58cdbbf 100644 --- a/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO_32bit.json +++ b/unittests/InstructionCountCI/FEXOpt/MultiInst_TSO_32bit.json @@ -14,7 +14,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "These are instruction combinations that could be more optimal if FEX optimized for them" diff --git a/unittests/InstructionCountCI/FEXOpt/Peephole.json b/unittests/InstructionCountCI/FEXOpt/Peephole.json index 78b0d946b..878fc0610 100644 --- a/unittests/InstructionCountCI/FEXOpt/Peephole.json +++ b/unittests/InstructionCountCI/FEXOpt/Peephole.json @@ -11,7 +11,7 @@ "I8MM", "DOTPROD" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "This file tracks the translations for the 'peephole' optimizations in FEX.", diff --git a/unittests/InstructionCountCI/FEXOpt/Peephole_SVE128.json b/unittests/InstructionCountCI/FEXOpt/Peephole_SVE128.json index 7c03afea5..9432319bf 100644 --- a/unittests/InstructionCountCI/FEXOpt/Peephole_SVE128.json +++ b/unittests/InstructionCountCI/FEXOpt/Peephole_SVE128.json @@ -10,7 +10,7 @@ "FLAGM2", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "This file tracks the translations for the 'peephole' optimizations in FEX.", diff --git a/unittests/InstructionCountCI/FEXOpt/libnss.json b/unittests/InstructionCountCI/FEXOpt/libnss.json index cc4a577cc..eed06e7f8 100644 --- a/unittests/InstructionCountCI/FEXOpt/libnss.json +++ b/unittests/InstructionCountCI/FEXOpt/libnss.json @@ -12,7 +12,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [], "Instructions": { diff --git a/unittests/InstructionCountCI/FlagM/Atomics.json b/unittests/InstructionCountCI/FlagM/Atomics.json index f532e33b8..527ef83f7 100644 --- a/unittests/InstructionCountCI/FlagM/Atomics.json +++ b/unittests/InstructionCountCI/FlagM/Atomics.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "lock add byte [rax], cl": { diff --git a/unittests/InstructionCountCI/FlagM/FlagOpts.json b/unittests/InstructionCountCI/FlagM/FlagOpts.json index 4cdad0487..eba369799 100644 --- a/unittests/InstructionCountCI/FlagM/FlagOpts.json +++ b/unittests/InstructionCountCI/FlagM/FlagOpts.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Chained add": { diff --git a/unittests/InstructionCountCI/FlagM/H0F38.json b/unittests/InstructionCountCI/FlagM/H0F38.json index e972050a4..d0b6e5154 100644 --- a/unittests/InstructionCountCI/FlagM/H0F38.json +++ b/unittests/InstructionCountCI/FlagM/H0F38.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "ptest xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/FlagM/HotBlocks.json b/unittests/InstructionCountCI/FlagM/HotBlocks.json index bf2ede178..e7d12b3f7 100644 --- a/unittests/InstructionCountCI/FlagM/HotBlocks.json +++ b/unittests/InstructionCountCI/FlagM/HotBlocks.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "The Witcher 3": { diff --git a/unittests/InstructionCountCI/FlagM/HotBlocks_32Bit.json b/unittests/InstructionCountCI/FlagM/HotBlocks_32Bit.json index 14646d49d..5f0588afe 100644 --- a/unittests/InstructionCountCI/FlagM/HotBlocks_32Bit.json +++ b/unittests/InstructionCountCI/FlagM/HotBlocks_32Bit.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Sonic Mania movie player": { diff --git a/unittests/InstructionCountCI/FlagM/HotBlocks_AFP.json b/unittests/InstructionCountCI/FlagM/HotBlocks_AFP.json index 7ebe5393c..7ca672084 100644 --- a/unittests/InstructionCountCI/FlagM/HotBlocks_AFP.json +++ b/unittests/InstructionCountCI/FlagM/HotBlocks_AFP.json @@ -10,7 +10,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "FMOD scalar loop": { diff --git a/unittests/InstructionCountCI/FlagM/HotBlocks_TSO_32Bit.json b/unittests/InstructionCountCI/FlagM/HotBlocks_TSO_32Bit.json index 745b9bd8a..c60adc240 100644 --- a/unittests/InstructionCountCI/FlagM/HotBlocks_TSO_32Bit.json +++ b/unittests/InstructionCountCI/FlagM/HotBlocks_TSO_32Bit.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "The Sims 1 hot block": { diff --git a/unittests/InstructionCountCI/FlagM/Primary.json b/unittests/InstructionCountCI/FlagM/Primary.json index 609e11d58..ced089f16 100644 --- a/unittests/InstructionCountCI/FlagM/Primary.json +++ b/unittests/InstructionCountCI/FlagM/Primary.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "add bl, cl": { diff --git a/unittests/InstructionCountCI/FlagM/PrimaryGroup.json b/unittests/InstructionCountCI/FlagM/PrimaryGroup.json index e220131f9..34121a353 100644 --- a/unittests/InstructionCountCI/FlagM/PrimaryGroup.json +++ b/unittests/InstructionCountCI/FlagM/PrimaryGroup.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "add al, 1": { diff --git a/unittests/InstructionCountCI/FlagM/Primary_32Bit.json b/unittests/InstructionCountCI/FlagM/Primary_32Bit.json index d25415d85..ef17add82 100644 --- a/unittests/InstructionCountCI/FlagM/Primary_32Bit.json +++ b/unittests/InstructionCountCI/FlagM/Primary_32Bit.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "push es": { diff --git a/unittests/InstructionCountCI/FlagM/Secondary.json b/unittests/InstructionCountCI/FlagM/Secondary.json index 80b313179..b9f4110bf 100644 --- a/unittests/InstructionCountCI/FlagM/Secondary.json +++ b/unittests/InstructionCountCI/FlagM/Secondary.json @@ -11,7 +11,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "ucomiss xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/FlagM/SecondaryGroup.json b/unittests/InstructionCountCI/FlagM/SecondaryGroup.json index a0d0561d0..7172c743b 100644 --- a/unittests/InstructionCountCI/FlagM/SecondaryGroup.json +++ b/unittests/InstructionCountCI/FlagM/SecondaryGroup.json @@ -11,7 +11,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "sgdt [rax]": { diff --git a/unittests/InstructionCountCI/FlagM/SecondaryModRM.json b/unittests/InstructionCountCI/FlagM/SecondaryModRM.json index 6b967bef6..50fd221c8 100644 --- a/unittests/InstructionCountCI/FlagM/SecondaryModRM.json +++ b/unittests/InstructionCountCI/FlagM/SecondaryModRM.json @@ -11,7 +11,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "xgetbv": { diff --git a/unittests/InstructionCountCI/FlagM/Secondary_OpSize.json b/unittests/InstructionCountCI/FlagM/Secondary_OpSize.json index 7ff35f3e3..7d7f820a2 100644 --- a/unittests/InstructionCountCI/FlagM/Secondary_OpSize.json +++ b/unittests/InstructionCountCI/FlagM/Secondary_OpSize.json @@ -11,7 +11,7 @@ "AFP", "FCMA" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "ucomisd xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/FlagM/Secondary_REP.json b/unittests/InstructionCountCI/FlagM/Secondary_REP.json index 80a2dc009..7ddf17238 100644 --- a/unittests/InstructionCountCI/FlagM/Secondary_REP.json +++ b/unittests/InstructionCountCI/FlagM/Secondary_REP.json @@ -12,7 +12,7 @@ "AFP", "CSSC" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "popcnt ax, bx": { diff --git a/unittests/InstructionCountCI/FlagM/Secondary_REP_CSSC.json b/unittests/InstructionCountCI/FlagM/Secondary_REP_CSSC.json index 435015530..c4066aecc 100644 --- a/unittests/InstructionCountCI/FlagM/Secondary_REP_CSSC.json +++ b/unittests/InstructionCountCI/FlagM/Secondary_REP_CSSC.json @@ -12,7 +12,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "popcnt ax, bx": { diff --git a/unittests/InstructionCountCI/FlagM/VEX_map1.json b/unittests/InstructionCountCI/FlagM/VEX_map1.json index c6243ecca..29d6504dc 100644 --- a/unittests/InstructionCountCI/FlagM/VEX_map1.json +++ b/unittests/InstructionCountCI/FlagM/VEX_map1.json @@ -12,7 +12,7 @@ "RPRES", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vucomiss xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/FlagM/VEX_map2.json b/unittests/InstructionCountCI/FlagM/VEX_map2.json index 2527e077d..5ac0efc48 100644 --- a/unittests/InstructionCountCI/FlagM/VEX_map2.json +++ b/unittests/InstructionCountCI/FlagM/VEX_map2.json @@ -10,7 +10,7 @@ "AFP", "SVEBITPERM" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vtestps xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/FlagM/VEX_map_group.json b/unittests/InstructionCountCI/FlagM/VEX_map_group.json index ff09d097a..3c5aaee39 100644 --- a/unittests/InstructionCountCI/FlagM/VEX_map_group.json +++ b/unittests/InstructionCountCI/FlagM/VEX_map_group.json @@ -9,7 +9,7 @@ "DisabledHostFeatures": [ "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "blsr eax, ebx": { diff --git a/unittests/InstructionCountCI/FlagM/x87-Crysis2Max-fmodel.json b/unittests/InstructionCountCI/FlagM/x87-Crysis2Max-fmodel.json index 747f05f09..3991c0eb8 100644 --- a/unittests/InstructionCountCI/FlagM/x87-Crysis2Max-fmodel.json +++ b/unittests/InstructionCountCI/FlagM/x87-Crysis2Max-fmodel.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87-HalfLife.json b/unittests/InstructionCountCI/FlagM/x87-HalfLife.json index 6c0379a61..d38117a33 100644 --- a/unittests/InstructionCountCI/FlagM/x87-HalfLife.json +++ b/unittests/InstructionCountCI/FlagM/x87-HalfLife.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87-Oblivion.json b/unittests/InstructionCountCI/FlagM/x87-Oblivion.json index 729a7fc81..971cb523f 100644 --- a/unittests/InstructionCountCI/FlagM/x87-Oblivion.json +++ b/unittests/InstructionCountCI/FlagM/x87-Oblivion.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87-Psychonauts.json b/unittests/InstructionCountCI/FlagM/x87-Psychonauts.json index 82f15b3f9..e22524396 100644 --- a/unittests/InstructionCountCI/FlagM/x87-Psychonauts.json +++ b/unittests/InstructionCountCI/FlagM/x87-Psychonauts.json @@ -10,7 +10,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87.json b/unittests/InstructionCountCI/FlagM/x87.json index 22a4a7d7f..953ac9648 100644 --- a/unittests/InstructionCountCI/FlagM/x87.json +++ b/unittests/InstructionCountCI/FlagM/x87.json @@ -11,7 +11,7 @@ "CSSC", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fadd dword [rax]": { diff --git a/unittests/InstructionCountCI/FlagM/x87_f64-Crysis2Max-fmodel.json b/unittests/InstructionCountCI/FlagM/x87_f64-Crysis2Max-fmodel.json index 61d09a817..f4bfc05c0 100644 --- a/unittests/InstructionCountCI/FlagM/x87_f64-Crysis2Max-fmodel.json +++ b/unittests/InstructionCountCI/FlagM/x87_f64-Crysis2Max-fmodel.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87_f64-HalfLife.json b/unittests/InstructionCountCI/FlagM/x87_f64-HalfLife.json index d156691a6..7f6b22cd6 100644 --- a/unittests/InstructionCountCI/FlagM/x87_f64-HalfLife.json +++ b/unittests/InstructionCountCI/FlagM/x87_f64-HalfLife.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87_f64-Oblivion.json b/unittests/InstructionCountCI/FlagM/x87_f64-Oblivion.json index b9da6b03a..162ccae8c 100644 --- a/unittests/InstructionCountCI/FlagM/x87_f64-Oblivion.json +++ b/unittests/InstructionCountCI/FlagM/x87_f64-Oblivion.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87_f64-Psychonauts.json b/unittests/InstructionCountCI/FlagM/x87_f64-Psychonauts.json index 2bbc7293c..d6131f86f 100644 --- a/unittests/InstructionCountCI/FlagM/x87_f64-Psychonauts.json +++ b/unittests/InstructionCountCI/FlagM/x87_f64-Psychonauts.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Block1": { diff --git a/unittests/InstructionCountCI/FlagM/x87_f64.json b/unittests/InstructionCountCI/FlagM/x87_f64.json index 49cac1151..07262c15c 100644 --- a/unittests/InstructionCountCI/FlagM/x87_f64.json +++ b/unittests/InstructionCountCI/FlagM/x87_f64.json @@ -13,7 +13,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fadd dword [rax]": { diff --git a/unittests/InstructionCountCI/H0F38.json b/unittests/InstructionCountCI/H0F38.json index 824e3668e..444b09c4e 100644 --- a/unittests/InstructionCountCI/H0F38.json +++ b/unittests/InstructionCountCI/H0F38.json @@ -10,7 +10,7 @@ "FLAGM2", "CRYPTO" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pshufb mm0, mm1": { diff --git a/unittests/InstructionCountCI/H0F3A.json b/unittests/InstructionCountCI/H0F3A.json index 0b9545f0b..40350017c 100644 --- a/unittests/InstructionCountCI/H0F3A.json +++ b/unittests/InstructionCountCI/H0F3A.json @@ -8,7 +8,7 @@ "AFP", "CRYPTO" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "SSE4.2 string instructions are skipped here.", diff --git a/unittests/InstructionCountCI/H0F3A_SVE128.json b/unittests/InstructionCountCI/H0F3A_SVE128.json index ae23a3a5d..9563923d1 100644 --- a/unittests/InstructionCountCI/H0F3A_SVE128.json +++ b/unittests/InstructionCountCI/H0F3A_SVE128.json @@ -8,7 +8,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "dpps xmm0, xmm1, 00000000b": { diff --git a/unittests/InstructionCountCI/MOPS/Primary.json b/unittests/InstructionCountCI/MOPS/Primary.json index 77fca2480..d2418d146 100644 --- a/unittests/InstructionCountCI/MOPS/Primary.json +++ b/unittests/InstructionCountCI/MOPS/Primary.json @@ -11,7 +11,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "rep movsb": { diff --git a/unittests/InstructionCountCI/Primary.json b/unittests/InstructionCountCI/Primary.json index fb27a359c..a4c03205e 100644 --- a/unittests/InstructionCountCI/Primary.json +++ b/unittests/InstructionCountCI/Primary.json @@ -10,7 +10,7 @@ "FLAGM2", "MOPS" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "add bl, cl": { diff --git a/unittests/InstructionCountCI/PrimaryGroup.json b/unittests/InstructionCountCI/PrimaryGroup.json index 4dd039dc2..aa37e3b05 100644 --- a/unittests/InstructionCountCI/PrimaryGroup.json +++ b/unittests/InstructionCountCI/PrimaryGroup.json @@ -9,7 +9,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "Instructions in this table that are marked optimal don't have their flag calculation part of this assumption", diff --git a/unittests/InstructionCountCI/Primary_32Bit.json b/unittests/InstructionCountCI/Primary_32Bit.json index fd7d01891..6c1ad480c 100644 --- a/unittests/InstructionCountCI/Primary_32Bit.json +++ b/unittests/InstructionCountCI/Primary_32Bit.json @@ -9,7 +9,7 @@ "FlagM", "FlagM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "push es": { diff --git a/unittests/InstructionCountCI/RPRES/DDD.json b/unittests/InstructionCountCI/RPRES/DDD.json index d1fda1044..0b149ff35 100644 --- a/unittests/InstructionCountCI/RPRES/DDD.json +++ b/unittests/InstructionCountCI/RPRES/DDD.json @@ -9,7 +9,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pfrcpv mm0, mm1": { diff --git a/unittests/InstructionCountCI/RPRES/Secondary.json b/unittests/InstructionCountCI/RPRES/Secondary.json index 7961bd44b..05faeff6f 100644 --- a/unittests/InstructionCountCI/RPRES/Secondary.json +++ b/unittests/InstructionCountCI/RPRES/Secondary.json @@ -9,7 +9,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "rsqrtps xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/RPRES/Secondary_REP_AFP.json b/unittests/InstructionCountCI/RPRES/Secondary_REP_AFP.json index 9042edd10..fcdf7bc89 100644 --- a/unittests/InstructionCountCI/RPRES/Secondary_REP_AFP.json +++ b/unittests/InstructionCountCI/RPRES/Secondary_REP_AFP.json @@ -9,7 +9,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "rsqrtss xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/RPRES/VEX_map1_AFP.json b/unittests/InstructionCountCI/RPRES/VEX_map1_AFP.json index 2b1e49c04..2316ec5d1 100644 --- a/unittests/InstructionCountCI/RPRES/VEX_map1_AFP.json +++ b/unittests/InstructionCountCI/RPRES/VEX_map1_AFP.json @@ -8,7 +8,7 @@ "AFP" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vrsqrtps xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Repeat.json b/unittests/InstructionCountCI/Repeat.json index 6687806b3..19ceb4833 100644 --- a/unittests/InstructionCountCI/Repeat.json +++ b/unittests/InstructionCountCI/Repeat.json @@ -6,7 +6,7 @@ "SVE128", "SVE256" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": {} } diff --git a/unittests/InstructionCountCI/SSE42_Strings.json b/unittests/InstructionCountCI/SSE42_Strings.json index c81117156..40b5435ec 100644 --- a/unittests/InstructionCountCI/SSE42_Strings.json +++ b/unittests/InstructionCountCI/SSE42_Strings.json @@ -33,7 +33,7 @@ " - 1b: ECX = MSB", "[7] - Reserved" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pcmpestrm xmm0, xmm1, 0_0_00_00_00b": { diff --git a/unittests/InstructionCountCI/Secondary.json b/unittests/InstructionCountCI/Secondary.json index 2e4dc3618..8e8de9a6d 100644 --- a/unittests/InstructionCountCI/Secondary.json +++ b/unittests/InstructionCountCI/Secondary.json @@ -12,7 +12,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Comment": [ "MMX instructions are defined as optimal without SRA being used for these instructions.", diff --git a/unittests/InstructionCountCI/SecondaryGroup.json b/unittests/InstructionCountCI/SecondaryGroup.json index 84baa1c39..2326e5603 100644 --- a/unittests/InstructionCountCI/SecondaryGroup.json +++ b/unittests/InstructionCountCI/SecondaryGroup.json @@ -11,7 +11,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "sgdt [rax]": { diff --git a/unittests/InstructionCountCI/SecondaryModRM.json b/unittests/InstructionCountCI/SecondaryModRM.json index ab005def8..186fad9ab 100644 --- a/unittests/InstructionCountCI/SecondaryModRM.json +++ b/unittests/InstructionCountCI/SecondaryModRM.json @@ -11,7 +11,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "xgetbv": { diff --git a/unittests/InstructionCountCI/Secondary_32Bit.json b/unittests/InstructionCountCI/Secondary_32Bit.json index ffcbe13fc..015eeb4f3 100644 --- a/unittests/InstructionCountCI/Secondary_32Bit.json +++ b/unittests/InstructionCountCI/Secondary_32Bit.json @@ -7,7 +7,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "push fs": { diff --git a/unittests/InstructionCountCI/Secondary_OpSize.json b/unittests/InstructionCountCI/Secondary_OpSize.json index f6fda287a..82ace3c8e 100644 --- a/unittests/InstructionCountCI/Secondary_OpSize.json +++ b/unittests/InstructionCountCI/Secondary_OpSize.json @@ -12,7 +12,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "movupd xmm0, xmm0": { diff --git a/unittests/InstructionCountCI/Secondary_OpSize_FCMA.json b/unittests/InstructionCountCI/Secondary_OpSize_FCMA.json index adeef3b6a..59c1cabc0 100644 --- a/unittests/InstructionCountCI/Secondary_OpSize_FCMA.json +++ b/unittests/InstructionCountCI/Secondary_OpSize_FCMA.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "addsubpd xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_OpSize_SVE128.json b/unittests/InstructionCountCI/Secondary_OpSize_SVE128.json index bbb3b8462..81d2d0e3c 100644 --- a/unittests/InstructionCountCI/Secondary_OpSize_SVE128.json +++ b/unittests/InstructionCountCI/Secondary_OpSize_SVE128.json @@ -8,7 +8,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "psrlw xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_OpSize_SVE256.json b/unittests/InstructionCountCI/Secondary_OpSize_SVE256.json index 6f573616a..516b52894 100644 --- a/unittests/InstructionCountCI/Secondary_OpSize_SVE256.json +++ b/unittests/InstructionCountCI/Secondary_OpSize_SVE256.json @@ -7,7 +7,7 @@ "AFP" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pmulhuw xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_REP.json b/unittests/InstructionCountCI/Secondary_REP.json index 49d23ec40..967d541b2 100644 --- a/unittests/InstructionCountCI/Secondary_REP.json +++ b/unittests/InstructionCountCI/Secondary_REP.json @@ -12,7 +12,7 @@ "FRINTTS", "CSSC" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "movss xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_REPNE.json b/unittests/InstructionCountCI/Secondary_REPNE.json index ae6f1cc77..5d3798974 100644 --- a/unittests/InstructionCountCI/Secondary_REPNE.json +++ b/unittests/InstructionCountCI/Secondary_REPNE.json @@ -10,7 +10,7 @@ "FCMA", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "movsd xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_REPNE_FCMA.json b/unittests/InstructionCountCI/Secondary_REPNE_FCMA.json index 62ea220d2..dc8b77350 100644 --- a/unittests/InstructionCountCI/Secondary_REPNE_FCMA.json +++ b/unittests/InstructionCountCI/Secondary_REPNE_FCMA.json @@ -9,7 +9,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "addsubps xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_REPNE_SVE128.json b/unittests/InstructionCountCI/Secondary_REPNE_SVE128.json index c4154d5ae..851647aa8 100644 --- a/unittests/InstructionCountCI/Secondary_REPNE_SVE128.json +++ b/unittests/InstructionCountCI/Secondary_REPNE_SVE128.json @@ -10,7 +10,7 @@ "FCMA", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvtpd2dq xmm0, xmm1": { diff --git a/unittests/InstructionCountCI/Secondary_REP_FRINTTS.json b/unittests/InstructionCountCI/Secondary_REP_FRINTTS.json index a0eea4455..17ce8032f 100644 --- a/unittests/InstructionCountCI/Secondary_REP_FRINTTS.json +++ b/unittests/InstructionCountCI/Secondary_REP_FRINTTS.json @@ -12,7 +12,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "cvttss2si eax, xmm0": { diff --git a/unittests/InstructionCountCI/Secondary_SVE128.json b/unittests/InstructionCountCI/Secondary_SVE128.json index fe12fd952..498a4d05d 100644 --- a/unittests/InstructionCountCI/Secondary_SVE128.json +++ b/unittests/InstructionCountCI/Secondary_SVE128.json @@ -8,7 +8,7 @@ "SVE256", "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "movmskps eax, xmm0": { diff --git a/unittests/InstructionCountCI/VEX_map1.json b/unittests/InstructionCountCI/VEX_map1.json index 06612c47d..36e61032f 100644 --- a/unittests/InstructionCountCI/VEX_map1.json +++ b/unittests/InstructionCountCI/VEX_map1.json @@ -13,7 +13,7 @@ "FLAGM2", "FRINTTS" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vmovups xmm0, xmm0": { diff --git a/unittests/InstructionCountCI/VEX_map1_FCMA.json b/unittests/InstructionCountCI/VEX_map1_FCMA.json index 3791c6883..a80499b4a 100644 --- a/unittests/InstructionCountCI/VEX_map1_FCMA.json +++ b/unittests/InstructionCountCI/VEX_map1_FCMA.json @@ -8,7 +8,7 @@ "FCMA" ], "DisabledHostFeatures": [], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vaddsubpd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/VEX_map1_FRINTTS.json b/unittests/InstructionCountCI/VEX_map1_FRINTTS.json index 12c43a022..fae322ba1 100644 --- a/unittests/InstructionCountCI/VEX_map1_FRINTTS.json +++ b/unittests/InstructionCountCI/VEX_map1_FRINTTS.json @@ -13,7 +13,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vcvttss2si eax, xmm0": { diff --git a/unittests/InstructionCountCI/VEX_map2.json b/unittests/InstructionCountCI/VEX_map2.json index aff9b820e..68896245d 100644 --- a/unittests/InstructionCountCI/VEX_map2.json +++ b/unittests/InstructionCountCI/VEX_map2.json @@ -3,7 +3,8 @@ "Bitness": 64, "EnabledHostFeatures": [ "SVE256", - "SVE128" + "SVE128", + "BF16" ], "DisabledHostFeatures": [ "AFP", @@ -13,7 +14,7 @@ "I8MM", "DOTPROD" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpshufb xmm0, xmm1, xmm2": { @@ -1915,6 +1916,28 @@ "ld1rqb {z16.b}, p7/z, [x4]" ] }, + "db 0xc4, 0xe2, 0x7a, 0x72, 0xd4 ; {vex} vcvtneps2bf16 xmm2, xmm4": { + "ExpectedInstructionCount": 1, + "Comment": [ + "Map 2 0b01 0x72 128-bit" + ], + "ExpectedArm64ASM": [ + "bfcvtn v18.4h, v20.4s" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0x72, 0xdc ; {vex} vcvtneps2bf16 xmm3, ymm4": { + "ExpectedInstructionCount": 5, + "Comment": [ + "Map 2 0b01 0x72 256-bit" + ], + "ExpectedArm64ASM": [ + "mov z2.q, z20.q[1]", + "bfcvtn v3.4h, v20.4s", + "mov v0.16b, v3.16b", + "bfcvtn2 v0.8h, v2.4s", + "mov v19.16b, v0.16b" + ] + }, "vpbroadcastb xmm0, xmm1": { "ExpectedInstructionCount": 1, "Comment": [ @@ -4807,6 +4830,134 @@ "mov z16.d, z0.d" ] }, + "db 0xc4, 0xe2, 0x78, 0xb0, 0x00 ; vcvtneoph2ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b00 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7c, 0xb0, 0x00 ; vcvtneoph2ps ymm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b00 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsr z2.s, z2.s, #16", + "lsl z16.s, z2.s, #16" + ] + }, + "db 0xc4, 0xe2, 0x79, 0xb0, 0x00 ; vcvtneeph2ps xmm0, [rax]": { + "ExpectedInstructionCount": 2, + "Comment": [ + "Map 2 0b01 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v16.4s, v2.4s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7d, 0xb0, 0x00 ; vcvtneeph2ps ymm0, [rax]": { + "ExpectedInstructionCount": 2, + "Comment": [ + "Map 2 0b01 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsl z16.s, z2.s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7b, 0xb0, 0x00 ; vcvtneobf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b10 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "ushr v2.4s, v2.4s, #16", + "shl v16.4s, v2.4s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7f, 0xb0, 0x00 ; vcvtneobf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b10 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsr z2.s, z2.s, #16", + "lsl z16.s, z2.s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7a, 0xb0, 0x00 ; vcvtneebf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 2, + "Comment": [ + "Map 2 0b11 0xb0 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v16.4s, v2.4s, #16" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0xb0, 0x00 ; vcvtneebf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 2, + "Comment": [ + "Map 2 0b11 0xb0 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsl z16.s, z2.s, #16" + ] + }, + "db 0xc4, 0xe2, 0x79, 0xb1, 0x00 ; vbcstnesh2ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b01 0xb1 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]" + ] + }, + "db 0xc4, 0xe2, 0x7d, 0xb1, 0x00 ; vbcstnesh2ps ymm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b01 0xb1 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsl z2.s, z2.s, #16", + "mov z16.s, s2" + ] + }, + "db 0xc4, 0xe2, 0x7a, 0xb1, 0x00 ; vbcstnebf162ps xmm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b10 0xb1 128-bit" + ], + "ExpectedArm64ASM": [ + "ldr q2, [x4]", + "shl v2.4s, v2.4s, #16", + "dup v16.4s, v2.s[0]" + ] + }, + "db 0xc4, 0xe2, 0x7e, 0xb1, 0x00 ; vbcstnebf162ps ymm0, [rax]": { + "ExpectedInstructionCount": 3, + "Comment": [ + "Map 2 0b10 0xb1 256-bit" + ], + "ExpectedArm64ASM": [ + "ld1b {z2.b}, p7/z, [x4]", + "lsl z2.s, z2.s, #16", + "mov z16.s, s2" + ] + }, "vfmaddsub231ps xmm0, xmm1, xmm2": { "ExpectedInstructionCount": 4, "Comment": [ diff --git a/unittests/InstructionCountCI/VEX_map2_DOTPROD.json b/unittests/InstructionCountCI/VEX_map2_DOTPROD.json index 4250d8330..3ab021507 100644 --- a/unittests/InstructionCountCI/VEX_map2_DOTPROD.json +++ b/unittests/InstructionCountCI/VEX_map2_DOTPROD.json @@ -13,7 +13,7 @@ "SVEBITPERM", "I8MM" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpdpbusd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/VEX_map2_I8MM.json b/unittests/InstructionCountCI/VEX_map2_I8MM.json index 502ff6ea4..ed2a450a9 100644 --- a/unittests/InstructionCountCI/VEX_map2_I8MM.json +++ b/unittests/InstructionCountCI/VEX_map2_I8MM.json @@ -12,7 +12,7 @@ "FLAGM2", "SVEBITPERM" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpdpbusd xmm0, xmm1, xmm2": { diff --git a/unittests/InstructionCountCI/VEX_map2_svebitperm.json b/unittests/InstructionCountCI/VEX_map2_svebitperm.json index ec762cc03..40b5ebeb2 100644 --- a/unittests/InstructionCountCI/VEX_map2_svebitperm.json +++ b/unittests/InstructionCountCI/VEX_map2_svebitperm.json @@ -11,7 +11,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "pext eax, ebx, ecx": { diff --git a/unittests/InstructionCountCI/VEX_map3.json b/unittests/InstructionCountCI/VEX_map3.json index a68c95f21..507383662 100644 --- a/unittests/InstructionCountCI/VEX_map3.json +++ b/unittests/InstructionCountCI/VEX_map3.json @@ -8,7 +8,7 @@ "DisabledHostFeatures": [ "AFP" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpermq ymm0, ymm1, 1": { diff --git a/unittests/InstructionCountCI/VEX_map_group.json b/unittests/InstructionCountCI/VEX_map_group.json index 152019b89..e9e2cf814 100644 --- a/unittests/InstructionCountCI/VEX_map_group.json +++ b/unittests/InstructionCountCI/VEX_map_group.json @@ -9,7 +9,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "vpsrlw xmm0, xmm1, 0": { diff --git a/unittests/InstructionCountCI/X87ldst-SVE.json b/unittests/InstructionCountCI/X87ldst-SVE.json index 1d1430b48..7672ac5cb 100644 --- a/unittests/InstructionCountCI/X87ldst-SVE.json +++ b/unittests/InstructionCountCI/X87ldst-SVE.json @@ -11,7 +11,7 @@ "FLAGM2", "RPRES" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fstp tword [rax]": { diff --git a/unittests/InstructionCountCI/x87.json b/unittests/InstructionCountCI/x87.json index 8ec682273..d9f7bc0d5 100644 --- a/unittests/InstructionCountCI/x87.json +++ b/unittests/InstructionCountCI/x87.json @@ -10,7 +10,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fadd dword [rax]": { diff --git a/unittests/InstructionCountCI/x87_32Bit.json b/unittests/InstructionCountCI/x87_32Bit.json index 8cf1b163f..107fcca4f 100644 --- a/unittests/InstructionCountCI/x87_32Bit.json +++ b/unittests/InstructionCountCI/x87_32Bit.json @@ -10,7 +10,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "Multiple fld/fst": { diff --git a/unittests/InstructionCountCI/x87_f64.json b/unittests/InstructionCountCI/x87_f64.json index 42ae20930..e12ccdc69 100644 --- a/unittests/InstructionCountCI/x87_f64.json +++ b/unittests/InstructionCountCI/x87_f64.json @@ -12,7 +12,7 @@ "FLAGM", "FLAGM2" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fadd dword [rax]": { diff --git a/unittests/InstructionCountCI/x87_f64_32Bit.json b/unittests/InstructionCountCI/x87_f64_32Bit.json index 7a0e8f394..fe8203a73 100644 --- a/unittests/InstructionCountCI/x87_f64_32Bit.json +++ b/unittests/InstructionCountCI/x87_f64_32Bit.json @@ -15,7 +15,7 @@ "SVE256", "CSSC" ], - "BinaryCacheVersion": 32 + "BinaryCacheVersion": 33 }, "Instructions": { "fstp dword [ebx*4+0x204a20]": {