LLVM: lib/Target/AArch64/SVEIntrinsicOpts.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "aarch64-sve-intrinsic-opts"

DEBUG_TYPE

#define DEBUG_TYPE "aarch64-sve-intrinsic-opts"

INITIALIZE_PASS_DEPENDENCY()

isPTruePromoted()

Checks if a ptrue intrinsic call is promoted.

The act of promoting a ptrue will introduce zeroing. For example:

%1 = <vscale x 4 x i1> call @llvm.aarch64.sve.ptrue.nxv4i1(i32 31) %2 = <vscale x 16 x i1> call @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> %1) %3 = <vscale x 8 x i1> call @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> %2)

%1 is promoted, because it is converted:

<vscale x 4 x i1> => <vscale x 16 x i1> => <vscale x 8 x i1>

via a sequence of the SVE reinterpret intrinsics convert.{to,from}.svbool.

Definition at line 94 of file SVEIntrinsicOpts.cpp.

References llvm::cast(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::Value::getType(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::match(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::users().

name