mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 18:24:35 +00:00
Updated test
This commit is contained in:
parent
0c522117c8
commit
1b6b8183a0
@ -530,12 +530,12 @@ namespace bitCount
|
|||||||
{0x00000001, 1},
|
{0x00000001, 1},
|
||||||
{0x00000003, 2},
|
{0x00000003, 2},
|
||||||
{0x00000002, 1},
|
{0x00000002, 1},
|
||||||
{0xffffffff, 32},
|
{0x7fffffff, 31},
|
||||||
{0x00000000, 0}
|
{0x00000000, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
int bitCount_if(T v)
|
inline int bitCount_if(T v)
|
||||||
{
|
{
|
||||||
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
|
||||||
|
|
||||||
@ -549,7 +549,7 @@ namespace bitCount
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
int bitCount_vec(T v)
|
inline int bitCount_vec(T v)
|
||||||
{
|
{
|
||||||
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
|
||||||
|
|
||||||
@ -566,46 +566,56 @@ namespace bitCount
|
|||||||
int Error(0);
|
int Error(0);
|
||||||
|
|
||||||
std::size_t Size = 10000000;
|
std::size_t Size = 10000000;
|
||||||
|
|
||||||
std::clock_t TimestampsA = std::clock();
|
|
||||||
|
|
||||||
{
|
|
||||||
std::vector<int> v;
|
std::vector<int> v;
|
||||||
v.resize(Size);
|
v.resize(Size);
|
||||||
|
|
||||||
|
std::vector<glm::ivec4> w;
|
||||||
|
w.resize(Size);
|
||||||
|
|
||||||
|
|
||||||
|
std::clock_t TimestampsA = std::clock();
|
||||||
|
|
||||||
|
// bitCount - TimeIf
|
||||||
|
{
|
||||||
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
||||||
v[i] = bitCount_if(i);
|
v[i] = bitCount_if(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::clock_t TimestampsB = std::clock();
|
std::clock_t TimestampsB = std::clock();
|
||||||
|
|
||||||
|
// bitCount - TimeVec
|
||||||
{
|
{
|
||||||
std::vector<int> v;
|
|
||||||
v.resize(Size);
|
|
||||||
|
|
||||||
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
||||||
v[i] = bitCount_vec(i);
|
v[i] = bitCount_vec(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::clock_t TimestampsC = std::clock();
|
std::clock_t TimestampsC = std::clock();
|
||||||
|
|
||||||
|
// bitCount - TimeDefault
|
||||||
{
|
{
|
||||||
std::vector<int> v;
|
|
||||||
v.resize(Size);
|
|
||||||
|
|
||||||
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
||||||
v[i] = glm::bitCount(i);
|
v[i] = glm::bitCount(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::clock_t TimestampsD = std::clock();
|
std::clock_t TimestampsD = std::clock();
|
||||||
|
|
||||||
|
// bitCount - TimeVec4
|
||||||
|
{
|
||||||
|
for(std::size_t i = 0, n = v.size(); i < n; ++i)
|
||||||
|
w[i] = glm::bitCount(glm::ivec4(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::clock_t TimestampsE = std::clock();
|
||||||
|
|
||||||
std::clock_t TimeIf = TimestampsB - TimestampsA;
|
std::clock_t TimeIf = TimestampsB - TimestampsA;
|
||||||
std::clock_t TimeVec = TimestampsC - TimestampsB;
|
std::clock_t TimeVec = TimestampsC - TimestampsB;
|
||||||
std::clock_t TimeDefault = TimestampsD - TimestampsC;
|
std::clock_t TimeDefault = TimestampsD - TimestampsC;
|
||||||
|
std::clock_t TimeVec4 = TimestampsE - TimestampsD;
|
||||||
|
|
||||||
printf("TimeIf %d\n", TimeIf);
|
printf("bitCount - TimeIf %d\n", TimeIf);
|
||||||
printf("TimeVec %d\n", TimeVec);
|
printf("bitCount - TimeVec %d\n", TimeVec);
|
||||||
printf("TimeDefault %d\n", TimeDefault);
|
printf("bitCount - TimeDefault %d\n", TimeDefault);
|
||||||
|
printf("bitCount - TimeVec4 %d\n", TimeVec4);
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user