0 day streak
cpp / expert
Snippet

Vectorized Buffer Alignment with Explicit Padding

Enforcing memory alignment at the hardware level to enable SIMD (Single Instruction, Multiple Data) optimizations and prevent unaligned access penalties.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
struct alignas(32) SIMDBlock {
float data[8];
};
void processBlock(SIMDBlock& block) {
for(int i = 0; i < 8; ++i) {
block.data[i] *= 1.5f;
}
}
static_assert(sizeof(SIMDBlock) == 32, "Alignment mismatch");
Breakdown
1
struct alignas(32) SIMDBlock
Directs the compiler to align the structure on a 32-byte boundary (AVX requirement).
2
float data[8];
An array of 8 floats, perfectly fitting into a 256-bit SIMD register.
3
static_assert(sizeof(SIMDBlock) == 32
Compile-time validation that the structure size matches the alignment.