对于 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
使问题更加复杂的是,即使函数是__inline
.
我想知道这在 64 位 Windows 上是否仍然是一个问题?ABI 限制是否仍然适用于 x64 ?
(我无法访问 64 位 Windows 系统,否则我会自己尝试,而且广泛的 Google 搜索还没有找到任何确定的结果。)