diff options
author | Thurston Dang <thurston@google.com> | 2025-01-26 15:40:55 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-26 15:40:55 -0800 |
commit | db79fb2a91df31a07f312f8e061936927ac5c506 (patch) | |
tree | 0348818a4dbbfde04da8fa183a782a57bbfa9c1e /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | bfa7de0df5d8eb8dd284b0f49f10e7f0cd850693 (diff) | |
download | llvm-db79fb2a91df31a07f312f8e061936927ac5c506.zip llvm-db79fb2a91df31a07f312f8e061936927ac5c506.tar.gz llvm-db79fb2a91df31a07f312f8e061936927ac5c506.tar.bz2 |
[msan] Add handlers for AVX masked load/store intrinsics (#123857)
This patch adds explicit support for AVX masked load/store intrinsics,
largely by applying the intrinsics to the shadows (but subtly different
to handleIntrinsicByApplyingToShadow()).
We do not reuse the handleMaskedLoad/Store functions. The key challenge
is that the LLVM masked intrinsics require a vector of booleans, while
AVX masked intrinsics use the MSBs of a vector of integers.
X86InstCombineIntrinsic.cpp::simplifyX86MaskedLoad mentions that the x86
backend does not know how to efficiently convert from a vector of
booleans back into the AVX mask format; therefore, they (and we) do not
reduce AVX masked intrinsics into LLVM masked intrinsics.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions