Intel® oneAPI DPC++/C++ Compiler
Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
aligned_offset
Represent an integer based offset whose value is a multiple of an IndexAlignment specified at compile time. #include <sdlt/aligned_offset.h>
Syntax
template<int IndexAlignmentT> class aligned_offset;
Arguments
| int IndexAlignmentT | The index alignment the user is stating that the offset have. | 
Description
aligned_offset is a deprecated feature.
If we can tell the compiler that we know an offset will be a multiple of known value, then when combined with a loop index inside a SIMD loop, the compiler can use that information to maintain aligned access when accessing underlying data layout.
Internally, the offset value is converted to a block count.
Block Count = offsetValue/IndexAlignmentT;
Indices can then use that aligned block count as needed.
| Member | Description | 
|---|---|
| static const int IndexAlignment = IndexAlignmentT; | The alignment the offset is a multiple of | 
| explicit aligned_offset(const int offset) | Construct instance based on offset | 
| static aligned_offset from_block_count(int aligned_block_count); | Returns: Instance based on aligned_block_count, where the offset value = IndexAlignment*aligned_block_count | 
| int aligned_block_count() const; | Returns: number of blocks of IndexAlignment it takes to represent the offset value. | 
| int value() const; | Returns: offset value |