UnrealMathNeon.hなどSSE以外に実装されているVectorSign/VectorStepの実装が逆になっているようです。
/**/ コメント部が元実装です。
FORCEINLINE VectorRegister VectorSign(const VectorRegister& X)
{
return MakeVectorRegister(
(float)(VectorGetComponent(X, 0) >= 0.0f ? 1.0f : -1.0/*0.0f*/),
(float)(VectorGetComponent(X, 1) >= 0.0f ? 1.0f : -1.0/*0.0f*/),
(float)(VectorGetComponent(X, 2) >= 0.0f ? 1.0f : -1.0/*0.0f*/),
(float)(VectorGetComponent(X, 3) >= 0.0f ? 1.0f : -1.0/*0.0f*/));
}
//TODO: Vectorize
FORCEINLINE VectorRegister VectorStep(const VectorRegister& X)
{
return MakeVectorRegister(
(float)(VectorGetComponent(X, 0) >= 0.0f ? 1.0f : 0.0f/*-1.0f*/),
(float)(VectorGetComponent(X, 1) >= 0.0f ? 1.0f : 0.0f/*-1.0f*/),
(float)(VectorGetComponent(X, 2) >= 0.0f ? 1.0f : 0.0f/*-1.0f*/),
(float)(VectorGetComponent(X, 3) >= 0.0f ? 1.0f : 0.0f/*-1.0f*/));
}