WIN32 上の Visual C++ では、4 つ以上の SSE パラメータを持つ関数に長年の問題があります。
__m128i foo4(__m128i m0, __m128i m1, __m128i m2, __m128i m3) {}
エラーが発生します:
align.c(8) : error C2719: 'm3': formal parameter with __declspec(align('16')) won't be aligned
問題を複雑にするために、Visual C++ は、関数が__inline
.
これは 64 ビット Windows でまだ問題があるのでしょうか? ABI 制限は x64 でも適用されますか?
(私は 64 ビットの Windows システムにアクセスできません。それ以外の場合は、自分で試してみたいと思います。Google で広範囲に検索しても、決定的なものは見つかりませんでした。)