Clarify new tests

This commit is contained in:
Justin Becker committed 2026-09-22 12:53:05 -07:00
1 parent 0ddd46ba44
commit 0206479a08
2 files changed
+38 -36

No files matched your search

+21 -20
View File
@@ -2,11 +2,11 @@
{
"RegData": {
"RAX": ["2"],
"RDX": ["16"],
"XMM0": ["0x00060F000F000D01", "0x0000000101070007"],
"XMM1": ["0x3111313131311111", "0x0000001111313131"],
"XMM2": ["0x000000000010FFE0", "0x0000000000000000"],
"XMM3": ["0x7FFFFFF000050030", "0x00410010FFE08000"]
"RDX": ["6"],
"XMM0": ["0x00060F000F000D01", "0x0000000504070007"],
"XMM1": ["0x3111313131311111", "0x0000001919313131"],
"XMM2": ["0x000000000010FFF0", "0x0000000000000000"],
"XMM3": ["0xFFEF0011FF80007F", "0x000100000010FFF0"]
},
"HostFeatures": ["SSE4.2"]
}
@@ -113,20 +113,21 @@ CompareAndStore 9, 0b00110101
; Range unsigned word check (msb, negative masked)
CompareAndStore 10, 0b01110101
; --- Signed tests (range is empty when read as unsigned) ---
; --- 8-bit signed byte tests ---
movaps xmm2, [rel .data_signed]
movaps xmm3, [rel .data_signed + 32]
mov rax, 2
mov rdx, 16
; Range signed byte check (lsb, positive polarity)
mov rax, 2
mov rdx, 6
CompareAndStore 11, 0b00000110
; --- 16-bit signed word tests ---
movaps xmm2, [rel .data16_signed]
movaps xmm3, [rel .data16_signed + 32]
; Range signed word check (lsb, positive polarity)
CompareAndStore 12, 0b00000111
; Range signed word check (msb, positive polarity)
CompareAndStore 12, 0b01000111
; Load all our stored indices and flags for result comparing
movaps xmm0, [rel .indices]
@@ -158,26 +159,26 @@ dq 0x8888888888888888
dq 0x9999999999999999
.data_signed:
dq 0x00000000000010E0 ; Range [-32, 16] as signed bytes, [224, 16] as unsigned
dq 0x00000000000010F0 ; -16, 16 (240, 16 as unsigned, an empty range)
dq 0x0000000000000000
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0x1110E0907FF00530 ; 48, 5, -16, 127, -112, -32, 16, 17
dq 0x004142434445FFDF ; -33, -1, then "EDCBA" (valid, all outside the range)
dq 0x010010F0EF11807F ; 127, -128, 17, -17, -16, 16 (followed by null and junk)
dq 0x0101010101010101
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
.data16_signed:
dq 0x000000000010FFE0 ; Range [-32, 16] as signed words, [65504, 16] as unsigned
dq 0x000000000010FFF0 ; -16, 16 (65520, 16 as unsigned, an empty range)
dq 0x0000000000000000
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0xAAAAAAAAAAAAAAAA
dq 0xBBBBBBBBBBBBBBBB
dq 0x7FFFFFF000050030 ; 48, 5, -16, 32767
dq 0x00410010FFE08000 ; -32768, -32, 16, 65
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0xFFEF0011FF80007F ; 127, -128, 17, -17
dq 0x000100000010FFF0 ; -16, 16 (followed by null and junk)
dq 0x8888888888888888
dq 0x9999999999999999
.indices:
dq 0x0000000000000000
+17 -16
View File
@@ -1,10 +1,10 @@
%ifdef CONFIG
{
"RegData": {
"XMM0": ["0x00060F000F000D01", "0x0001011010070007"],
"XMM0": ["0x00060F000F000D01", "0x0005041010070007"],
"XMM1": ["0x3111313131311111", "0x0019191818313131"],
"XMM2": ["0x000000000010FFE0", "0x0000000000000000"],
"XMM3": ["0x7FFFFFF000050030", "0x00000010FFE08000"]
"XMM2": ["0x000000000010FFF0", "0x0000000000000000"],
"XMM3": ["0xFFEF0011FF80007F", "0x000100000010FFF0"]
},
"HostFeatures": ["SSE4.2"]
}
@@ -115,18 +115,19 @@ CompareAndStore 11, 0b01000110
; Range signed byte check (lsb)
CompareAndStore 12, 0b01000110
; --- Signed tests (range is empty when read as unsigned) ---
; --- 8-bit signed byte tests ---
movaps xmm2, [rel .data_signed]
movaps xmm3, [rel .data_signed + 32]
; Range signed byte check (lsb, positive polarity)
CompareAndStore 13, 0b00000110
; --- 16-bit signed word tests ---
movaps xmm2, [rel .data16_signed]
movaps xmm3, [rel .data16_signed + 32]
; Range signed word check (lsb, positive polarity)
CompareAndStore 14, 0b00000111
; Range signed word check (msb, positive polarity)
CompareAndStore 14, 0b01000111
; Load all our stored indices and flags for result comparing
movaps xmm0, [rel .indices]
@@ -169,26 +170,26 @@ dq 0x8888888888888888
dq 0x9999999999999999
.data_signed:
dq 0x00000000000010E0 ; Range [-32, 16] as signed bytes, [224, 16] as unsigned
dq 0x00000000000010F0 ; -16, 16 (240, 16 as unsigned, an empty range)
dq 0x0000000000000000
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0x1110E0907FF00530 ; 48, 5, -16, 127, -112, -32, 16, 17
dq 0x000000000000FFDF ; -33, -1, then null
dq 0x010010F0EF11807F ; 127, -128, 17, -17, -16, 16 (followed by null and junk)
dq 0x0101010101010101
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
.data16_signed:
dq 0x000000000010FFE0 ; Range [-32, 16] as signed words, [65504, 16] as unsigned
dq 0x000000000010FFF0 ; -16, 16 (65520, 16 as unsigned, an empty range)
dq 0x0000000000000000
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0xAAAAAAAAAAAAAAAA
dq 0xBBBBBBBBBBBBBBBB
dq 0x7FFFFFF000050030 ; 48, 5, -16, 32767
dq 0x00000010FFE08000 ; -32768, -32, 16, then null
dq 0xFFFFFFFFFFFFFFFF
dq 0xEEEEEEEEEEEEEEEE
dq 0xFFEF0011FF80007F ; 127, -128, 17, -17
dq 0x000100000010FFF0 ; -16, 16 (followed by null and junk)
dq 0x8888888888888888
dq 0x9999999999999999
.indices:
dq 0x0000000000000000