90 lines
1.6 KiB
Plaintext
90 lines
1.6 KiB
Plaintext
|
#pragma version(1)
|
||
|
#pragma rs java_package_name(foo)
|
||
|
|
||
|
uchar uc;
|
||
|
uchar2 uc2;
|
||
|
uchar3 uc3;
|
||
|
uchar4 uc4;
|
||
|
|
||
|
ushort us;
|
||
|
ushort2 us2;
|
||
|
ushort3 us3;
|
||
|
ushort4 us4;
|
||
|
|
||
|
uint ui;
|
||
|
uint2 ui2;
|
||
|
uint3 ui3;
|
||
|
uint4 ui4;
|
||
|
|
||
|
char c;
|
||
|
char2 c2;
|
||
|
char3 c3;
|
||
|
char4 c4;
|
||
|
|
||
|
short s;
|
||
|
short2 s2;
|
||
|
short3 s3;
|
||
|
short4 s4;
|
||
|
|
||
|
int i;
|
||
|
int2 i2;
|
||
|
int3 i3;
|
||
|
int4 i4;
|
||
|
|
||
|
float f;
|
||
|
float2 f2;
|
||
|
float3 f3;
|
||
|
float4 f4;
|
||
|
|
||
|
#define TEST4_1(ret, typ, fnc) \
|
||
|
ret = fnc(typ); \
|
||
|
ret##2 = fnc(typ##2); \
|
||
|
ret##3 = fnc(typ##3); \
|
||
|
ret##4 = fnc(typ##4);
|
||
|
|
||
|
#define TEST4_2(typ, fnc) \
|
||
|
typ = fnc(typ, typ); \
|
||
|
typ##2 = fnc(typ##2, typ##2); \
|
||
|
typ##3 = fnc(typ##3, typ##3); \
|
||
|
typ##4 = fnc(typ##4, typ##4);
|
||
|
|
||
|
#define TEST4_2S(typ, fnc) \
|
||
|
typ = fnc(typ, typ); \
|
||
|
typ##2 = fnc(typ##2, typ); \
|
||
|
typ##3 = fnc(typ##3, typ); \
|
||
|
typ##4 = fnc(typ##4, typ);
|
||
|
|
||
|
#define TEST_UIFUNC_1(fnc) \
|
||
|
TEST4_1(uc, c, fnc); \
|
||
|
TEST4_1(us, s, fnc); \
|
||
|
TEST4_1(ui, i, fnc);
|
||
|
|
||
|
#define TEST_IFUNC_1(fnc) \
|
||
|
TEST4_1(uc, uc, fnc); \
|
||
|
TEST4_1(c, c, fnc); \
|
||
|
TEST4_1(us, us, fnc); \
|
||
|
TEST4_1(s, s, fnc); \
|
||
|
TEST4_1(ui, ui, fnc); \
|
||
|
TEST4_1(i, i, fnc);
|
||
|
|
||
|
#define TEST_IFUNC_2(fnc) \
|
||
|
TEST4_2(uc, fnc); \
|
||
|
TEST4_2(c, fnc); \
|
||
|
TEST4_2(us, fnc); \
|
||
|
TEST4_2(s, fnc); \
|
||
|
TEST4_2(ui, fnc); \
|
||
|
TEST4_2(f, fnc); \
|
||
|
|
||
|
|
||
|
void compile_all_math_int_ops() {
|
||
|
TEST_UIFUNC_1(abs);
|
||
|
TEST_IFUNC_1(clz);
|
||
|
TEST_IFUNC_2(min);
|
||
|
TEST_IFUNC_2(max);
|
||
|
TEST4_2S(f, min);
|
||
|
TEST4_2S(f, max);
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|