d3d10/effect: Add support for udiv instruction.

This commit is contained in:
Nikolay Sivov 2023-03-18 21:14:52 +01:00 committed by Alexandre Julliard
parent c96c6b9826
commit 19b799fd62
2 changed files with 186 additions and 139 deletions

View file

@ -274,6 +274,15 @@ static void pres_itof(float **args, unsigned int n, const struct preshader_instr
retval[i] = *(int *)&args[0][i];
}
static void pres_utof(float **args, unsigned int n, const struct preshader_instr *instr)
{
float *retval = args[1];
unsigned int i;
for (i = 0; i < instr->comp_count; ++i)
retval[i] = *(unsigned int *)&args[0][i];
}
static void pres_ftou(float **args, unsigned int n, const struct preshader_instr *instr)
{
float *retval = args[1];
@ -343,6 +352,20 @@ static void pres_div(float **args, unsigned int n, const struct preshader_instr
retval[i] = args[0][instr->scalar ? 0 : i] / args[1][i];
}
static void pres_udiv(float **args, unsigned int n, const struct preshader_instr *instr)
{
unsigned int *arg1 = (unsigned int *)args[0];
unsigned int *arg2 = (unsigned int *)args[1];
float *retval = args[2];
unsigned int i;
for (i = 0; i < instr->comp_count; ++i)
{
unsigned int v = arg1[instr->scalar ? 0 : i] / arg2[i];
retval[i] = *(float *)&v;
}
}
static void pres_imax(float **args, unsigned int n, const struct preshader_instr *instr)
{
int *arg1 = (int *)args[0], *arg2 = (int *)args[1];
@ -372,6 +395,7 @@ static const struct preshader_op_info preshader_ops[] =
{ 0x109, "cos", pres_cos },
{ 0x120, "ineg", pres_ineg },
{ 0x130, "itof", pres_itof },
{ 0x131, "utof", pres_utof },
{ 0x133, "ftou", pres_ftou },
{ 0x137, "ftob", pres_ftob },
{ 0x200, "min", pres_min },
@ -379,6 +403,7 @@ static const struct preshader_op_info preshader_ops[] =
{ 0x204, "add", pres_add },
{ 0x205, "mul", pres_mul },
{ 0x208, "div", pres_div },
{ 0x21a, "udiv", pres_udiv },
{ 0x21e, "imax", pres_imax },
};

View file

@ -8140,6 +8140,7 @@ static void test_effect_index_expression(void)
float4 g_var;
float4 g_var2;
int4 g_var3;
uint4 g_var4;
DepthStencilState ds_state
{
@ -8184,163 +8185,184 @@ technique10 tech
{
SetBlendState( NULL, 0.1 * -max(g_var3.x, g_var3.y), 0 );
}
pass p9
{
SetBlendState( NULL, g_var4.x / g_var4.y, 0 );
}
}
#endif
static DWORD fx_test_value_expression[] =
{
0x43425844, 0xded44036, 0x7bec29fc, 0xc38ee283, 0x80c175ae, 0x00000001, 0x0000130c, 0x00000001,
0x00000024, 0x30315846, 0x000012e0, 0xfeff1001, 0x00000001, 0x00000003, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00000fd8, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x43425844, 0xa05fa168, 0x4ae376c3, 0x7d2afd0a, 0x1f264749, 0x00000001, 0x00001524, 0x00000001,
0x00000024, 0x30315846, 0x000014f8, 0xfeff1001, 0x00000001, 0x00000004, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00001198, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724,
0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010,
0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x746e6900, 0x003d0034, 0x00010000,
0x00000000, 0x00100000, 0x00100000, 0x00100000, 0x21120000, 0x5f670000, 0x33726176, 0x70654400,
0x74536874, 0x69636e65, 0x6174536c, 0x65006574, 0x02000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x03000000, 0x64000000, 0x74735f73, 0x00657461, 0x000000ec, 0x43425844, 0x79125440,
0x90f05fca, 0xfe55a99c, 0x45e16165, 0x00000001, 0x000000ec, 0x00000003, 0x0000002c, 0x000000a8,
0x000000b4, 0x42415443, 0x00000074, 0x0000001c, 0x0000004b, 0x46580400, 0x00000001, 0x0000001c,
0x00000100, 0x00000048, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000000, 0x61765f67,
0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73,
0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e,
0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x00000030, 0x00000001, 0x13700001, 0x00000001,
0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
0x0000ffff, 0x68636574, 0x00307000, 0x00000244, 0x43425844, 0x6fff1042, 0x03a078c0, 0xc7b9d7d0,
0x4c421eb8, 0x00000001, 0x00000244, 0x00000003, 0x0000002c, 0x000000d4, 0x000000f0, 0x42415443,
0x000000a0, 0x0000001c, 0x00000077, 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074,
0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001,
0x00000064, 0x00000000, 0x61765f67, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x61765f67, 0xab003272, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369,
0x00000000, 0x00100000, 0x00100000, 0x00100000, 0x21120000, 0x5f670000, 0x33726176, 0x6e697500,
0x65003474, 0x01000000, 0x00000000, 0x10000000, 0x10000000, 0x10000000, 0x1a000000, 0x67000021,
0x7261765f, 0x65440034, 0x53687470, 0x636e6574, 0x74536c69, 0x00657461, 0x0000008e, 0x00000002,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x735f7364, 0x65746174, 0x0000ec00,
0x42584400, 0x12544043, 0xf05fca79, 0x55a99c90, 0xe16165fe, 0x00000145, 0x0000ec00, 0x00000300,
0x00002c00, 0x0000a800, 0x0000b400, 0x41544300, 0x00007442, 0x00001c00, 0x00004b00, 0x58040000,
0x00000146, 0x00001c00, 0x00010000, 0x00004800, 0x00003000, 0x00000200, 0x00000100, 0x00003800,
0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400,
0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d,
0x31207265, 0x00312e30, 0x494c43ab, 0x00000434, 0x00000000, 0x4c584600, 0x00003043, 0x00000100,
0x70000100, 0x00000113, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000400, 0x00000000,
0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x63657400, 0x30700068, 0x00024400, 0x42584400, 0xff104243,
0xa078c06f, 0xb9d7d003, 0x421eb8c7, 0x0000014c, 0x00024400, 0x00000300, 0x00002c00, 0x0000d400,
0x0000f000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00,
0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00,
0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100,
0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000,
0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072,
0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00001434, 0x00000400, 0xcccccd00, 0x0666663d,
0x00000040, 0x00000000, 0x4c584600, 0x00014c43, 0x00000800, 0x10000400, 0x00000110, 0x00000000,
0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x80000100, 0x00000110, 0x00000000,
0x00000200, 0x00000000, 0x00000000, 0x00000700, 0x00000400, 0x40000400, 0x000002a0, 0x00000000,
0x00000700, 0x00000400, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000700, 0x00000800,
0x90000100, 0x00000110, 0x00000000, 0x00000200, 0x00000100, 0x00000000, 0x00000700, 0x00000000,
0x40000400, 0x000002a0, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000700, 0x00000800,
0x00000000, 0x00000700, 0x00000400, 0x40000400, 0x000002a0, 0x00000000, 0x00000100, 0x00000000,
0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000700, 0x00000000, 0x50000400, 0x000002a0,
0x00000000, 0x00000100, 0x00000100, 0x00000000, 0x00000200, 0x00000400, 0x00000000, 0x00000700,
0x00000400, 0x40000400, 0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000700,
0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100,
0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00317000, 0x00000150, 0x43425844,
0xc6a29e4c, 0x6292ed35, 0xd90bb8cb, 0x50dcd25f, 0x00000001, 0x00000150, 0x00000003, 0x0000002c,
0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, 0x0000001c, 0x00000077, 0x46580400, 0x00000002,
0x0000001c, 0x00000100, 0x00000074, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x00000000,
0x0000005c, 0x00010002, 0x00000001, 0x00000064, 0x00000000, 0x61765f67, 0xabab0072, 0x00030001,
0x00040001, 0x00000001, 0x00000000, 0x61765f67, 0xab003272, 0x00030001, 0x00040001, 0x00000001,
0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x34494c43, 0x00000004, 0x00000000, 0x434c5846,
0x00000068, 0x00000002, 0xa0400004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0400004, 0x00000002, 0x00000000,
0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, 0x00000000,
0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000002,
0x00000000, 0x2c003270, 0x44000002, 0x9e434258, 0xfae994e0, 0xb641b826, 0x0bac8f3a, 0x019d4eb7,
0x2c000000, 0x03000002, 0x2c000000, 0xd4000000, 0xe0000000, 0x43000000, 0xa0424154, 0x1c000000,
0x77000000, 0x00000000, 0x02465804, 0x1c000000, 0x00000000, 0x74000001, 0x44000000, 0x02000000,
0x01000000, 0x4c000000, 0x00000000, 0x5c000000, 0x02000000, 0x01000100, 0x64000000, 0x00000000,
0x67000000, 0x7261765f, 0x01abab00, 0x01000300, 0x01000400, 0x00000000, 0x67000000, 0x7261765f,
0x01ab0032, 0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078, 0x736f7263, 0x2074666f,
0x20295228, 0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69, 0x2e303120, 0x43ab0031,
0x0434494c, 0x00000000, 0x46000000, 0x44434c58, 0x07000001, 0x01000000, 0x02200000, 0x00000000,
0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000,
0x01000000, 0x02201000, 0x00000000, 0x02000000, 0x01000000, 0x00000000, 0x02000000, 0x05000000,
0x00000000, 0x07000000, 0x01000000, 0x01000000, 0x02204000, 0x00000000, 0x07000000, 0x01000000,
0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x04000000, 0x04000000, 0x02200000,
0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000,
0x00000000, 0x04000000, 0x02a04000, 0x00000000, 0x07000000, 0x04000000, 0x00000000, 0x07000000,
0x00000000, 0x00000000, 0x07000000, 0x08000000, 0x04000000, 0x02201000, 0x00000000, 0x02000000,
0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000, 0x07000000, 0x00000000, 0x04000000,
0x02204000, 0x00000000, 0x07000000, 0x00000000, 0x00000000, 0x07000000, 0x08000000, 0x00000000,
0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f, 0x010000ff, 0x02000000, 0x00000000,
0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x01240033, 0x58440000, 0xf4c54342, 0x070658ce,
0xcabd2023, 0x24d22fca, 0x00010f0c, 0x01240000, 0x00030000, 0x002c0000, 0x00d40000, 0x00e00000,
0x54430000, 0x00a04241, 0x001c0000, 0x00770000, 0x04000000, 0x00024658, 0x001c0000, 0x01000000,
0x00740000, 0x00440000, 0x00020000, 0x00010000, 0x004c0000, 0x00000000, 0x005c0000, 0x00020000,
0x00010001, 0x00640000, 0x00000000, 0x5f670000, 0x00726176, 0x0001abab, 0x00010003, 0x00010004,
0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, 0x00010003, 0x00010004, 0x00000000, 0x78740000,
0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853, 0x43207265, 0x69706d6f,
0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000, 0x003c434c, 0x00010000,
0x00040000, 0x0002a000, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00020000, 0x00040000,
0x00000000, 0x00040000, 0x00000000, 0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000,
0x00000000, 0x00010000, 0x00020000, 0x00000000, 0x34700000, 0x00012400, 0x42584400, 0xc902bb43,
0xafcba635, 0xa383ff89, 0xed53a9f6, 0x000001f8, 0x00012400, 0x00000300, 0x00002c00, 0x0000d400,
0x0000e000, 0x41544300, 0x0000a042, 0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00,
0x00010000, 0x00007400, 0x00004400, 0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00,
0x01000200, 0x00000100, 0x00006400, 0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100,
0x00000100, 0x00000000, 0x765f6700, 0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000,
0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072,
0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00000434, 0x00000000, 0x4c584600, 0x00003c43,
0x00000100, 0x10000400, 0x000002a0, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000200,
0x00000400, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100,
0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00357000, 0x000000f8, 0x43425844,
0xf74bf893, 0x3d094d0b, 0xf013f99e, 0x99d86fff, 0x00000001, 0x000000f8, 0x00000003, 0x0000002c,
0x000000a8, 0x000000b4, 0x42415443, 0x00000074, 0x0000001c, 0x0000004b, 0x46580400, 0x00000001,
0x0000001c, 0x00000100, 0x00000048, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000000,
0x61765f67, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072,
0xab00312e, 0x34494c43, 0x00000014, 0x00000004, 0x3dcccccd, 0x40066666, 0x00000000, 0x00000000,
0x434c5846, 0x0000014c, 0x00000008, 0x10100004, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
0x00000000, 0x00000007, 0x00000000, 0x10800001, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
0x00000000, 0x00000007, 0x00000004, 0xa0400004, 0x00000002, 0x00000000, 0x00000007, 0x00000004,
0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000008, 0x10900001, 0x00000001,
0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0xa0400004, 0x00000002,
0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000007,
0x00000004, 0xa0400004, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000007,
0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0500004, 0x00000002, 0x00000000, 0x00000001,
0x00000001, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000004, 0x20400004,
0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000,
0xab00312e, 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x0000003c, 0x00000001, 0xa0800004,
0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000,
0x00000001, 0x00000002, 0x00000000, 0x50003170, 0x44000001, 0x4c434258, 0x35c6a29e, 0xcb6292ed,
0x5fd90bb8, 0x0150dcd2, 0x50000000, 0x03000001, 0x2c000000, 0xd4000000, 0xe0000000, 0x43000000,
0xa0424154, 0x1c000000, 0x77000000, 0x00000000, 0x02465804, 0x1c000000, 0x00000000, 0x74000001,
0x44000000, 0x02000000, 0x01000000, 0x4c000000, 0x00000000, 0x5c000000, 0x02000000, 0x01000100,
0x64000000, 0x00000000, 0x67000000, 0x7261765f, 0x01abab00, 0x01000300, 0x01000400, 0x00000000,
0x67000000, 0x7261765f, 0x01ab0032, 0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078,
0x736f7263, 0x2074666f, 0x20295228, 0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69,
0x2e303120, 0x43ab0031, 0x0434494c, 0x00000000, 0x46000000, 0x68434c58, 0x02000000, 0x04000000,
0x02a04000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x02000000, 0x04000000, 0x00000000,
0x07000000, 0x00000000, 0x04000000, 0x02a04000, 0x00000000, 0x02000000, 0x01000000, 0x00000000,
0x07000000, 0x00000000, 0x00000000, 0x04000000, 0x00000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f,
0x010000ff, 0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x022c0032,
0x58440000, 0xe09e4342, 0x26fae994, 0x3ab641b8, 0xb70bac8f, 0x00019d4e, 0x022c0000, 0x00030000,
0x002c0000, 0x00d40000, 0x00e00000, 0x54430000, 0x00a04241, 0x001c0000, 0x00770000, 0x04000000,
0x00024658, 0x001c0000, 0x01000000, 0x00740000, 0x00440000, 0x00020000, 0x00010000, 0x004c0000,
0x00000000, 0x005c0000, 0x00020000, 0x00010001, 0x00640000, 0x00000000, 0x5f670000, 0x00726176,
0x0001abab, 0x00010003, 0x00010004, 0x00000000, 0x5f670000, 0x32726176, 0x0001ab00, 0x00010003,
0x00010004, 0x00000000, 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c,
0x64616853, 0x43207265, 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000,
0x58460000, 0x0144434c, 0x00070000, 0x00010000, 0x00022000, 0x00000000, 0x00020000, 0x00000000,
0x00000000, 0x00020000, 0x00040000, 0x00000000, 0x00070000, 0x00000000, 0x00010000, 0x00022010,
0x00000000, 0x00020000, 0x00010000, 0x00000000, 0x00020000, 0x00050000, 0x00000000, 0x00070000,
0x00010000, 0x00010000, 0x00022040, 0x00000000, 0x00070000, 0x00010000, 0x00000000, 0x00070000,
0x00000000, 0x00000000, 0x00070000, 0x00040000, 0x00040000, 0x00022000, 0x00000000, 0x00020000,
0x00000000, 0x00000000, 0x00020000, 0x00040000, 0x00000000, 0x00070000, 0x00000000, 0x00040000,
0x0002a040, 0x00000000, 0x00070000, 0x00040000, 0x00000000, 0x00070000, 0x00000000, 0x00000000,
0x00070000, 0x00080000, 0x00040000, 0x00022010, 0x00000000, 0x00020000, 0x00000000, 0x00000000,
0x00020000, 0x00040000, 0x00000000, 0x00070000, 0x00000000, 0x00040000, 0x00022040, 0x00000000,
0x00070000, 0x00000000, 0x00000000, 0x00070000, 0x00080000, 0x00000000, 0x00040000, 0x00000000,
0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000, 0x00000000, 0x00010000, 0x00020000,
0x00000000, 0x33700000, 0x00012400, 0x42584400, 0xcef4c543, 0x23070658, 0xcacabd20, 0x0c24d22f,
0x0000010f, 0x00012400, 0x00000300, 0x00002c00, 0x0000d400, 0x0000e000, 0x41544300, 0x0000a042,
0x00001c00, 0x00007700, 0x58040000, 0x00000246, 0x00001c00, 0x00010000, 0x00007400, 0x00004400,
0x00000200, 0x00000100, 0x00004c00, 0x00000000, 0x00005c00, 0x01000200, 0x00000100, 0x00006400,
0x00000000, 0x765f6700, 0xab007261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x765f6700,
0x00327261, 0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f,
0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30,
0x494c43ab, 0x00000434, 0x00000000, 0x4c584600, 0x00003c43, 0x00000100, 0x00000400, 0x000002a0,
0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000200, 0x00000400, 0x00000000, 0x00000400,
0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f, 0x00000100, 0x00000200, 0x00000000, 0x00000100,
0x00000200, 0x00000000, 0x00347000, 0x00000124, 0x43425844, 0x35c902bb, 0x89afcba6, 0xf6a383ff,
0xf8ed53a9, 0x00000001, 0x00000124, 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443,
0x000000a0, 0x0000001c, 0x00000077, 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074,
0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001,
0x00000064, 0x00000000, 0x61765f67, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x61765f67, 0xab003272, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072,
0xab00312e, 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x0000003c, 0x00000001, 0xa0100004,
0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000,
0x00000001, 0x00000002, 0x00000000, 0xf8003570, 0x44000000, 0x93434258, 0x0bf74bf8, 0x9e3d094d,
0xfff013f9, 0x0199d86f, 0xf8000000, 0x03000000, 0x2c000000, 0xa8000000, 0xb4000000, 0x43000000,
0x00000001, 0x00000002, 0x00000000, 0x4c003670, 0x44000001, 0x0f434258, 0xd38746b5, 0x34bf74fe,
0x9d061641, 0x01dbbd02, 0x4c000000, 0x03000001, 0x2c000000, 0xa8000000, 0xb4000000, 0x43000000,
0x74424154, 0x1c000000, 0x4b000000, 0x00000000, 0x01465804, 0x1c000000, 0x00000000, 0x48000001,
0x30000000, 0x02000000, 0x01000000, 0x38000000, 0x00000000, 0x67000000, 0x7261765f, 0x01abab00,
0x01000300, 0x01000400, 0x00000000, 0x74000000, 0x694d0078, 0x736f7263, 0x2074666f, 0x20295228,
0x4c534c48, 0x61685320, 0x20726564, 0x706d6f43, 0x72656c69, 0x2e303120, 0x43ab0031, 0x0434494c,
0x00000000, 0x46000000, 0x3c434c58, 0x01000000, 0x04000000, 0x02a08000, 0x00000000, 0x02000000,
0x00000000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x04000000, 0x00000000, 0xf0000000,
0x0ff0f0f0, 0xff0f0f0f, 0x010000ff, 0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000,
0x70000000, 0x014c0036, 0x58440000, 0xb50f4342, 0xfed38746, 0x4134bf74, 0x029d0616, 0x0001dbbd,
0x014c0000, 0x00030000, 0x002c0000, 0x00a80000, 0x00b40000, 0x54430000, 0x00744241, 0x001c0000,
0x004b0000, 0x04000000, 0x00014658, 0x001c0000, 0x01000000, 0x00480000, 0x00300000, 0x00020000,
0x00010000, 0x00380000, 0x00000000, 0x5f670000, 0x00726176, 0x0001abab, 0x00010003, 0x00010004,
0x00000000, 0x78740000, 0x63694d00, 0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853,
0x43207265, 0x69706d6f, 0x2072656c, 0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000,
0x0090434c, 0x00040000, 0x00010000, 0x00011030, 0x00000000, 0x00020000, 0x00000000, 0x00000000,
0x00040000, 0x00000000, 0x00010000, 0x00011030, 0x00000000, 0x00020000, 0x00010000, 0x00000000,
0x00040000, 0x00010000, 0x00010000, 0x00011030, 0x00000000, 0x00020000, 0x00020000, 0x00000000,
0x00040000, 0x00020000, 0x00010000, 0x00011030, 0x00000000, 0x00020000, 0x00030000, 0x00000000,
0x00040000, 0x00030000, 0xf0f00000, 0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000, 0x00000000,
0x00010000, 0x00020000, 0x00000000, 0x37700000, 0x0000ec00, 0x42584400, 0x67aa4243, 0xe24a7796,
0x86419cce, 0xdf743a20, 0x000001e1, 0x0000ec00, 0x00000300, 0x00002c00, 0x0000a800, 0x0000b400,
0x41544300, 0x00007442, 0x00001c00, 0x00004b00, 0x58040000, 0x00000146, 0x00001c00, 0x00010000,
0x00004800, 0x00003000, 0x00000200, 0x00000100, 0x00003800, 0x00000000, 0x765f6700, 0xab007261,
0x030001ab, 0x04000100, 0x00000100, 0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074,
0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab,
0x00000434, 0x00000000, 0x4c584600, 0x00003043, 0x00000100, 0x40000400, 0x00000110, 0x00000000,
0x00000200, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f,
0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00387000, 0x000001f8,
0x43425844, 0x126df990, 0x80e623cb, 0x58b7d817, 0xba4894a5, 0x00000001, 0x000001f8, 0x00000003,
0x0000002c, 0x000000a8, 0x000000c4, 0x42415443, 0x00000074, 0x0000001c, 0x0000004b, 0x46580400,
0x00000000, 0x46000000, 0x90434c58, 0x04000000, 0x01000000, 0x01103000, 0x00000000, 0x02000000,
0x00000000, 0x00000000, 0x04000000, 0x00000000, 0x01000000, 0x01103000, 0x00000000, 0x02000000,
0x01000000, 0x00000000, 0x04000000, 0x01000000, 0x01000000, 0x01103000, 0x00000000, 0x02000000,
0x02000000, 0x00000000, 0x04000000, 0x02000000, 0x01000000, 0x01103000, 0x00000000, 0x02000000,
0x03000000, 0x00000000, 0x04000000, 0x03000000, 0xf0000000, 0x0ff0f0f0, 0xff0f0f0f, 0x010000ff,
0x02000000, 0x00000000, 0x01000000, 0x02000000, 0x00000000, 0x70000000, 0x00ec0037, 0x58440000,
0xaa424342, 0x4a779667, 0x419ccee2, 0x743a2086, 0x0001e1df, 0x00ec0000, 0x00030000, 0x002c0000,
0x00a80000, 0x00b40000, 0x54430000, 0x00744241, 0x001c0000, 0x004b0000, 0x04000000, 0x00014658,
0x001c0000, 0x01000000, 0x00480000, 0x00300000, 0x00020000, 0x00010000, 0x00380000, 0x00000000,
0x5f670000, 0x00726176, 0x0001abab, 0x00010003, 0x00010004, 0x00000000, 0x78740000, 0x63694d00,
0x6f736f72, 0x28207466, 0x48202952, 0x204c534c, 0x64616853, 0x43207265, 0x69706d6f, 0x2072656c,
0x312e3031, 0x4c43ab00, 0x00043449, 0x00000000, 0x58460000, 0x0030434c, 0x00010000, 0x00040000,
0x00011040, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0xf0f00000,
0x0f0ff0f0, 0xffff0f0f, 0x00010000, 0x00020000, 0x00000000, 0x00010000, 0x00020000, 0x00000000,
0x38700000, 0x0001f800, 0x42584400, 0x6df99043, 0xe623cb12, 0xb7d81780, 0x4894a558, 0x000001ba,
0x0001f800, 0x00000300, 0x00002c00, 0x0000a800, 0x0000c400, 0x41544300, 0x00007442, 0x00001c00,
0x00004b00, 0x58040000, 0x00000146, 0x00001c00, 0x00010000, 0x00004800, 0x00003000, 0x00000200,
0x00000100, 0x00003800, 0x00000000, 0x765f6700, 0x00337261, 0x020001ab, 0x04000100, 0x00000100,
0x00000000, 0x00787400, 0x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168,
0x6f432072, 0x6c69706d, 0x31207265, 0x00312e30, 0x494c43ab, 0x00001434, 0x00000400, 0xcccccd00,
0x0000003d, 0x00000000, 0x00000000, 0x4c584600, 0x00012c43, 0x00000700, 0xe0000100, 0x00000221,
0x00000000, 0x00000200, 0x00000100, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000700,
0x00000000, 0x00000100, 0x00000112, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000700,
0x00000400, 0x00000100, 0x00000113, 0x00000000, 0x00000700, 0x00000400, 0x00000000, 0x00000700,
0x00000000, 0x50000100, 0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000100,
0x00000000, 0x00000000, 0x00000400, 0x00000000, 0x50000100, 0x00000220, 0x00000000, 0x00000700,
0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x00000400, 0x00000100, 0x50000100,
0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000,
0x00000400, 0x00000200, 0x50000100, 0x00000220, 0x00000000, 0x00000700, 0x00000000, 0x00000000,
0x00000100, 0x00000000, 0x00000000, 0x00000400, 0x00000300, 0xf0f0f000, 0x0f0f0ff0, 0x00ffff0f,
0x00000100, 0x00000200, 0x00000000, 0x00000100, 0x00000200, 0x00000000, 0x00397000, 0x00000178,
0x43425844, 0x453449ff, 0x2e103a44, 0x8883c1ca, 0x78e0dcb1, 0x00000001, 0x00000178, 0x00000003,
0x0000002c, 0x000000a8, 0x000000b4, 0x42415443, 0x00000074, 0x0000001c, 0x0000004b, 0x46580400,
0x00000001, 0x0000001c, 0x00000100, 0x00000048, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
0x00000000, 0x61765f67, 0xab003372, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874,
0x00000000, 0x61765f67, 0xab003472, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874,
0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
0x30312072, 0xab00312e, 0x34494c43, 0x00000014, 0x00000004, 0x3dcccccd, 0x00000000, 0x00000000,
0x00000000, 0x434c5846, 0x0000012c, 0x00000007, 0x21e00001, 0x00000002, 0x00000000, 0x00000002,
0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x12000001,
0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x13000001,
0x00000001, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0x20500001,
0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000,
0x00000004, 0x00000000, 0x20500001, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000,
0x00000001, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x20500001, 0x00000002, 0x00000000,
0x00000007, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000004, 0x00000002,
0x20500001, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x30312072, 0xab00312e, 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x000000bc, 0x00000005,
0x21a00001, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
0x00000000, 0x00000007, 0x00000000, 0x13100001, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
0x00000000, 0x00000004, 0x00000000, 0x13100001, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
0x00000000, 0x00000004, 0x00000001, 0x13100001, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
0x00000000, 0x00000004, 0x00000002, 0x13100001, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002,
0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x00000004, 0x00000030, 0x00000000, 0x00000003,
0x00000000, 0x00000001, 0x00000002, 0x00000000, 0x00000004, 0x00000040, 0x00000000, 0x00000004,
0xffffffff, 0x00000000, 0x00000030, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000036, 0x00000014, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000,
0x0000005e, 0x00000042, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000093,
0x00000077, 0x00000000, 0xffffffff, 0x00000001, 0x00000019, 0x00000000, 0x00000006, 0x0000009c,
0x00000000, 0x0000018c, 0x00000009, 0x00000000, 0x00000191, 0x00000003, 0x00000000, 0x0000000a,
0x00000000, 0x00000006, 0x00000194, 0x0000000b, 0x00000000, 0x00000001, 0x000003dc, 0x00000002,
0x00000000, 0x00000001, 0x000003e8, 0x000003f4, 0x00000003, 0x00000000, 0x0000000a, 0x00000000,
0x00000006, 0x000003f7, 0x0000000b, 0x00000000, 0x00000001, 0x0000054b, 0x00000002, 0x00000000,
0x00000001, 0x00000557, 0x00000563, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006,
0x00000566, 0x0000000b, 0x00000000, 0x00000001, 0x00000796, 0x00000002, 0x00000000, 0x00000001,
0x000007a2, 0x000007ae, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000007b1,
0x0000000b, 0x00000000, 0x00000001, 0x000008d9, 0x00000002, 0x00000000, 0x00000001, 0x000008e5,
0x000008f1, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000008f4, 0x0000000b,
0x00000000, 0x00000001, 0x00000a1c, 0x00000002, 0x00000000, 0x00000001, 0x00000a28, 0x00000a34,
0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000a37, 0x0000000b, 0x00000000,
0x00000001, 0x00000b33, 0x00000002, 0x00000000, 0x00000001, 0x00000b3f, 0x00000b4b, 0x00000003,
0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000b4e, 0x0000000b, 0x00000000, 0x00000001,
0x00000c9e, 0x00000002, 0x00000000, 0x00000001, 0x00000caa, 0x00000cb6, 0x00000003, 0x00000000,
0x0000000a, 0x00000000, 0x00000006, 0x00000cb9, 0x0000000b, 0x00000000, 0x00000001, 0x00000da9,
0x00000002, 0x00000000, 0x00000001, 0x00000db5, 0x00000dc1, 0x00000003, 0x00000000, 0x0000000a,
0x00000000, 0x00000006, 0x00000dc4, 0x0000000b, 0x00000000, 0x00000001, 0x00000fc0, 0x00000002,
0x00000000, 0x00000001, 0x00000fcc,
0x0000005e, 0x00000042, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000087,
0x0000006b, 0x00000000, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x000000bc, 0x000000a0,
0x00000000, 0xffffffff, 0x00000001, 0x00000019, 0x00000000, 0x00000006, 0x000000c5, 0x00000000,
0x000001b5, 0x0000000a, 0x00000000, 0x000001ba, 0x00000003, 0x00000000, 0x0000000a, 0x00000000,
0x00000006, 0x000001bd, 0x0000000b, 0x00000000, 0x00000001, 0x00000405, 0x00000002, 0x00000000,
0x00000001, 0x00000411, 0x0000041d, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006,
0x00000420, 0x0000000b, 0x00000000, 0x00000001, 0x00000574, 0x00000002, 0x00000000, 0x00000001,
0x00000580, 0x0000058c, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000058f,
0x0000000b, 0x00000000, 0x00000001, 0x000007bf, 0x00000002, 0x00000000, 0x00000001, 0x000007cb,
0x000007d7, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000007da, 0x0000000b,
0x00000000, 0x00000001, 0x00000902, 0x00000002, 0x00000000, 0x00000001, 0x0000090e, 0x0000091a,
0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000091d, 0x0000000b, 0x00000000,
0x00000001, 0x00000a45, 0x00000002, 0x00000000, 0x00000001, 0x00000a51, 0x00000a5d, 0x00000003,
0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000a60, 0x0000000b, 0x00000000, 0x00000001,
0x00000b5c, 0x00000002, 0x00000000, 0x00000001, 0x00000b68, 0x00000b74, 0x00000003, 0x00000000,
0x0000000a, 0x00000000, 0x00000006, 0x00000b77, 0x0000000b, 0x00000000, 0x00000001, 0x00000cc7,
0x00000002, 0x00000000, 0x00000001, 0x00000cd3, 0x00000cdf, 0x00000003, 0x00000000, 0x0000000a,
0x00000000, 0x00000006, 0x00000ce2, 0x0000000b, 0x00000000, 0x00000001, 0x00000dd2, 0x00000002,
0x00000000, 0x00000001, 0x00000dde, 0x00000dea, 0x00000003, 0x00000000, 0x0000000a, 0x00000000,
0x00000006, 0x00000ded, 0x0000000b, 0x00000000, 0x00000001, 0x00000fe9, 0x00000002, 0x00000000,
0x00000001, 0x00000ff5, 0x00001001, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006,
0x00001004, 0x0000000b, 0x00000000, 0x00000001, 0x00001180, 0x00000002, 0x00000000, 0x00000001,
0x0000118c,
};
static float get_frc(float v)