1#pragma version(1) 2#pragma rs java_package_name(foo) 3 4uchar uc; 5uchar2 uc2; 6uchar3 uc3; 7uchar4 uc4; 8 9ushort us; 10ushort2 us2; 11ushort3 us3; 12ushort4 us4; 13 14uint ui; 15uint2 ui2; 16uint3 ui3; 17uint4 ui4; 18 19char c; 20char2 c2; 21char3 c3; 22char4 c4; 23 24short s; 25short2 s2; 26short3 s3; 27short4 s4; 28 29int i; 30int2 i2; 31int3 i3; 32int4 i4; 33 34float f; 35float2 f2; 36float3 f3; 37float4 f4; 38 39#define TEST4_1(ret, typ, fnc) \ 40 ret = fnc(typ); \ 41 ret##2 = fnc(typ##2); \ 42 ret##3 = fnc(typ##3); \ 43 ret##4 = fnc(typ##4); 44 45#define TEST4_2(typ, fnc) \ 46 typ = fnc(typ, typ); \ 47 typ##2 = fnc(typ##2, typ##2); \ 48 typ##3 = fnc(typ##3, typ##3); \ 49 typ##4 = fnc(typ##4, typ##4); 50 51#define TEST4_2S(typ, fnc) \ 52 typ = fnc(typ, typ); \ 53 typ##2 = fnc(typ##2, typ); \ 54 typ##3 = fnc(typ##3, typ); \ 55 typ##4 = fnc(typ##4, typ); 56 57#define TEST_UIFUNC_1(fnc) \ 58 TEST4_1(uc, c, fnc); \ 59 TEST4_1(us, s, fnc); \ 60 TEST4_1(ui, i, fnc); 61 62#define TEST_IFUNC_1(fnc) \ 63 TEST4_1(uc, uc, fnc); \ 64 TEST4_1(c, c, fnc); \ 65 TEST4_1(us, us, fnc); \ 66 TEST4_1(s, s, fnc); \ 67 TEST4_1(ui, ui, fnc); \ 68 TEST4_1(i, i, fnc); 69 70#define TEST_IFUNC_2(fnc) \ 71 TEST4_2(uc, fnc); \ 72 TEST4_2(c, fnc); \ 73 TEST4_2(us, fnc); \ 74 TEST4_2(s, fnc); \ 75 TEST4_2(ui, fnc); \ 76 TEST4_2(f, fnc); \ 77 78 79void compile_all_math_int_ops() { 80 TEST_UIFUNC_1(abs); 81 TEST_IFUNC_1(clz); 82 TEST_IFUNC_2(min); 83 TEST_IFUNC_2(max); 84 TEST4_2S(f, min); 85 TEST4_2S(f, max); 86 87 return; 88} 89 90