ultimatepp/uppsrc/Core/SIMD.cpp
cxl b8598982eb Core: SIMD
git-svn-id: svn://ultimatepp.org/upp/trunk@14650 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-07-03 07:29:31 +00:00

35 lines
748 B
C++

#include "Core.h"
#ifdef CPU_SIMD
namespace Upp {
String AsString(const f32x4& x)
{
float *f = (float *)&x;
return Format("%g %g %g %g", f[3], f[2], f[1], f[0]);
}
String AsString(const i32x4& x)
{
int *f = (int *)&x;
return Format("%d %d %d %d", f[3], f[2], f[1], f[0]);
}
String AsString(const i16x8& x)
{
int16 *f = (int16 *)&x;
return Format("%d %d %d %d %d %d %d %d", f[7], f[6], f[5], f[4], f[3], f[2], f[1], f[0]);
}
String AsString(const i8x16& x)
{
int8 *f = (int8 *)&x;
return Format("%d %d %d %d . %d %d %d %d . %d %d %d %d . %d %d %d %d",
f[15], f[14], f[13], f[12], f[11], f[10], f[9], f[8],
f[7], f[6], f[5], f[4], f[3], f[2], f[1], f[0]);
}
};
#endif