|
LLVM
4.0.0
|
This class holds necessary information to represent an interleaved access group and supports utilities to lower the group into X86-specific instructions/intrinsics. More...
Public Member Functions | |
| X86InterleavedAccessGroup (Instruction *I, ArrayRef< ShuffleVectorInst * > Shuffs, ArrayRef< unsigned > Ind, const unsigned F, const X86Subtarget &STarget, IRBuilder<> &B) | |
In order to form an interleaved access group X86InterleavedAccessGroup requires a wide-load instruction 'I', a group of interleaved-vectors Shuffs, reference to the first indices of each interleaved-vector 'Ind' and the interleaving stride factor F. More... | |
| bool | isSupported () const |
| Returns true if this interleaved access group can be lowered into x86-specific instructions/intrinsics, false otherwise. More... | |
| bool | lowerIntoOptimizedSequence () |
| Lowers this interleaved access group into X86-specific instructions/intrinsics. More... | |
This class holds necessary information to represent an interleaved access group and supports utilities to lower the group into X86-specific instructions/intrinsics.
E.g. A group of interleaving access loads (Factor = 2; accessing every other element) wide.vec = load <8 x i32>, <8 x i32>* ptr v0 = shuffle <8 x i32> wide.vec, <8 x i32> undef, <0, 2, 4, 6> v1 = shuffle <8 x i32> wide.vec, <8 x i32> undef, <1, 3, 5, 7>
Definition at line 31 of file X86InterleavedAccess.cpp.
|
inlineexplicit |
In order to form an interleaved access group X86InterleavedAccessGroup requires a wide-load instruction 'I', a group of interleaved-vectors Shuffs, reference to the first indices of each interleaved-vector 'Ind' and the interleaving stride factor F.
In order to generate X86-specific instructions/intrinsics it also requires the underlying target information STarget.
Definition at line 81 of file X86InterleavedAccess.cpp.
| bool X86InterleavedAccessGroup::isSupported | ( | ) | const |
Returns true if this interleaved access group can be lowered into x86-specific instructions/intrinsics, false otherwise.
Definition at line 99 of file X86InterleavedAccess.cpp.
References llvm::Type::getVectorElementType().
Referenced by llvm::X86TargetLowering::lowerInterleavedLoad().
| bool X86InterleavedAccessGroup::lowerIntoOptimizedSequence | ( | ) |
Lowers this interleaved access group into X86-specific instructions/intrinsics.
Definition at line 181 of file X86InterleavedAccess.cpp.
References i.
Referenced by llvm::X86TargetLowering::lowerInterleavedLoad().
1.8.6