Files
xemu/util
Alexander MonakovandRichard Henderson 8a917b99d5 util/bufferiszero: Remove SSE4.1 variant
The SSE4.1 variant is virtually identical to the SSE2 variant, except
for using 'PTEST+JNZ' in place of 'PCMPEQB+PMOVMSKB+CMP+JNE' for testing
if an SSE register is all zeroes. The PTEST instruction decodes to two
uops, so it can be handled only by the complex decoder, and since
CMP+JNE are macro-fused, both sequences decode to three uops. The uops
comprising the PTEST instruction dispatch to p0 and p5 on Intel CPUs, so
PCMPEQB+PMOVMSKB is comparatively more flexible from dispatch
standpoint.

Hence, the use of PTEST brings no benefit from throughput standpoint.
Its latency is not important, since it feeds only a conditional jump,
which terminates the dependency chain.

I never observed PTEST variants to be faster on real hardware.

Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
Signed-off-by: Mikhail Romanov <mmromanov@ispras.ru>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20240206204809.9859-2-amonakov@ispras.ru>
2024-05-03 08:03:04 -07:00
..
2023-12-19 19:03:38 +01:00
2024-01-10 06:58:50 +00:00
2023-09-07 20:32:11 -05:00
2024-04-18 11:17:27 +02:00
2023-08-31 19:47:43 +02:00
2023-11-15 12:06:05 +03:00
2024-01-30 21:20:20 +03:00
2023-11-03 09:20:31 +01:00