Work around MemorySanitizer movmsk false positives
MemorySanitizer does not recognize the x86 movmskps and pmovmskb
instructions. In such cases it falls back to checking all input operands
for uninitialized bits. This causes false positives specifically with
Reactor's Byte8 type which is often loaded from memory, leaving the
upper 64-bit of an SSE register undefined.
This change masks out the unused parts of the input vector, leaving just
the sign bits.
Bug: b/172238865
Change-Id: I50c921a7ff8a4ebdba89136bb82c9f46ccdc3769
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/54268
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by:
Nicolas Capens <nicolascapens@google.com>
Reviewed-by:
Alexis Hétu <sugoi@google.com>
Showing
Please
register
or
sign in
to comment