我正在尝试在 SSE 中使用对齐的操作,但遇到了问题(惊喜)。
typedef struct _declspec(align(16)) Vec4 {
float x;
float y;
float z;
float w;
};
Vec4 SSE_Add(const Vec4 &a, const Vec4 &b) {
_declspec(align(16)) Vec4 return_val;
_asm {
MOV EAX, a // Load pointers into CPU regs
MOV EBX, b
MOVAPS XMM0, [EAX] // Move unaligned vectors to SSE regs
MOVAPS XMM1, [EBX]
ADDPS XMM0, XMM1 // Add vector elements
MOVAPS [return_val], XMM0 // Save the return vector
}
return return_val;
}
我在 处遇到访问冲突return return_val
。这是对齐问题吗?我该如何纠正?