ネット上のほとんどのチュートリアルまたはコードスニペットでは、次のように表示されます。
float *arr= (float*) _aligned_malloc(length * sizeof(float), 16);
__m128 *m1 = (__m128*)arr;
これは厳密なエイリアシングルールに違反していますか?確かにそうだと思いますが、チュートリアルの作成者はすべて、便宜上それを無視していません。__m128はfloat [4]を含むユニオンであるため、複雑な部分を誤解している可能性があります。