Visible to Intel only — GUID: GUID-9DE11563-9828-4D80-9B4E-FAD5725CD40A
Visible to Intel only — GUID: GUID-9DE11563-9828-4D80-9B4E-FAD5725CD40A
aligned_offset
Represent an integer based offset whose value is a multiple of an IndexAlignment specified at compile time. #include <sdlt/aligned_offset.h>
template<int IndexAlignmentT> class aligned_offset;
int IndexAlignmentT |
The index alignment the user is stating that the offset have. |
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 |