[msan] Handle Arm NEON BFloat16 multiply-add to single-precision (#178510)
aarch64.neon.bfmlalb/t perform dot-products after zeroing out the
odd/even-indexed values. We handle these by generalizing
handleVectorDotProductIntrinsic() and (mis-)using getPclmulMask().
[clang-tidy] Speed up `cppcoreguidelines-pro-bounds-array-to-pointer-decay` (#178775)
By just changing the order of some conditions, the check goes from
fairly expensive to very cheap:
```txt
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
Status quo: 0.7812 ( 1.7%) 0.0469 ( 0.7%) 0.8281 ( 1.6%) 0.5585 ( 1.1%) cppcoreguidelines-pro-bounds-array-to-pointer-decay
With this change: 0.0312 ( 0.1%) 0.0000 ( 0.0%) 0.0312 ( 0.1%) 0.0598 ( 0.1%) cppcoreguidelines-pro-bounds-array-to-pointer-decay
```
`hicpp-no-array-decay` is an alias of this check and so benefits too.
loader.efi: Only use SPCR if enabled.
SerialPort in the SPCR is zeroed when serial redirection is disabled,
rather than the SPCR being omitted from the ACPI tables ony many
systems. Check to see that SerialPort.Address is non-zero before using.
FreeBSD would fail to boot on systems that could have a serial port
redireciton, but don't have it enabled because the loader would create a
bogus hw.uart.console. While one could unset this value to boot, you
couldn't do that automatically very easily. Instead, don't even look
at the SPCR table if the SerialPort is zero'd.
PR: 292206
MFC After: 3 days
Sponsored by: Netflix
Co-authored-by: Warner Losh <imp at FreeBSD.org>
Closes: https://github.com/freebsd/freebsd-src/pull/1948
(cherry picked from commit d82698ac68c23d856716dc9f6524b9ef363d7eba)
(cherry picked from commit 34c94bee0cee0cbf67e14d47809acc751fca8da5)