[DA] Remove calls to the GCD MIV test from `testSIV` (#187220)
This patch removes all invocations of the GCD MIV test in `testSIV`
function, specifically:
- If both the source and destination are addrecs, replace the call to
the GCD MIV test with the Exact SIV test. Generally, the Exact SIV test
has a narrower applicability than the GCD MIV test (both the source and
destination must be affine addrecs), while the former likely yields a
more precise result. Therefore, in this case, there's no reason to use
the GCD MIV test. This replacement also means that previously the Exact
SIV test was called conditionally (only when the Strong and Weak
Crossing SIV tests are not applicable), but now it will be called
unconditionally when both the source and destination are addrecs.
- If either the source or the destination is loop-invariant, simply
remove the call to the GCD MIV test without replacing it with anything.
In this case, the Weak Zero SIV test will be invoked, and part of that
test performs almost the same analysis as the GCD MIV test. Therefore,
the GCD MIV test should be redundant in nearly all cases.
[6 lines not shown]
[msan] Fix bfmmla instrumentation incompatibility issue (#188834)
#176264 instrumented bfmmla by applying ummla to the shadows. However,
Armv8.2+bf16 (as an example) supports bfmmla but not ummla, thus the
instrumentation is not always compatible.
This patch changes the bfmmla instrumentation to use bfmmla and basic
LLVM intrinsics, thus guaranteeing backend compatibility. The key
insights are that we can 1) use CreateSelect to convert the integer
shadows to bf16 2) apply bfmmla to these "shadows" 3) use FCmpULT to
check that the matrix entries denote fully initialized outputs.
This patch significantly refactors `handleNEONMatrixMultiply`, which is
also used for {s,u,su}mmla instrumentation, but the output is unaffected
for {s,u,su}mmla.
Improve OpenBSD::Unveil POD
The choice of variable names made it somewhat unclear what arguments
to pass and made it seem the interface might differ from unveil(2).
ok dgl@