Add count_{leading,trailing}_zeros() functions to stdlib.
(Documentation is still yet to be written.)
This commit is contained in:
11
tests/count-leading-trailing-zeros-1.ispc
Normal file
11
tests/count-leading-trailing-zeros-1.ispc
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
RET[programIndex] = count_trailing_zeros(0xf0);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 4;
|
||||
}
|
||||
11
tests/count-leading-trailing-zeros-2.ispc
Normal file
11
tests/count-leading-trailing-zeros-2.ispc
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
RET[programIndex] = count_leading_zeros((int32)0xf0);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 24;
|
||||
}
|
||||
11
tests/count-leading-trailing-zeros-3.ispc
Normal file
11
tests/count-leading-trailing-zeros-3.ispc
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
RET[programIndex] = count_leading_zeros((unsigned int64)0xf0);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 56;
|
||||
}
|
||||
12
tests/count-leading-trailing-zeros-4.ispc
Normal file
12
tests/count-leading-trailing-zeros-4.ispc
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
int32 i = (1 << programIndex);
|
||||
RET[programIndex] = count_leading_zeros(i);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 31-programIndex;
|
||||
}
|
||||
12
tests/count-leading-trailing-zeros-5.ispc
Normal file
12
tests/count-leading-trailing-zeros-5.ispc
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
unsigned int64 i = ((unsigned int64)1 << (50+programIndex));
|
||||
RET[programIndex] = count_trailing_zeros(i);
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 50+programIndex;
|
||||
}
|
||||
Reference in New Issue
Block a user