0x0000555555559e78 <+88>: movups %xmm1,(%rdx,%rax,1)
0x0000555555559e7c <+92>: movups %xmm0,(%rcx,%rax,1)
Word * words = new (std::align_val_t(16)) Word[N];
Half * halfs = new (std::align_val_t(16)) Half[N];
Чтобы операцию можно было векторизовать, у тебя данные довольно строго должны укладываться в 128 бит. Желательно еще и выравнивание на 16 байт сделать.
LLVM/Clang is the primary (or only) compiler for many gaming platforms these days. iOS, Android, PlayStation 4, MacOS/OSX, and Nintendo Switch all use Clang as their default native compiler.
XBox One is only supported by Microsoft's compiler, and their compiler is also still the most commonly used for Windows.
Чисто к слову. Для size_t Integral promotion не выполняется по своему определению.