ghidra/Ghidra/Extensions/SleighDevTools/pcodetest/c_src/BIOPS.test
2019-07-11 16:46:11 -04:00

677 lines
19 KiB
Text

#include "pcode_test.h"
TEST pcode_u1_complexLogic_Main()
{
extern u1 pcode_u1_complexLogic(u1 a, u1 b, u1 c, u1 d, u1 e, u1 f);
ASSERTU1(pcode_u1_complexLogic(237, 210, 0, 0, 153, 76), 11);
ASSERTU1(pcode_u1_complexLogic(139, 0, 34, 0, 86, 154), 10);
ASSERTU1(pcode_u1_complexLogic(24, 209, 254, 0, 228, 217), 15);
ASSERTU1(pcode_u1_complexLogic(0, 9, 209, 0, 165, 150), 11);
}
TEST pcode_u2_complexLogic_Main()
{
extern u2 pcode_u2_complexLogic(u2 a, u2 b, u2 c, u2 d, u2 e, u2 f);
ASSERTU2(pcode_u2_complexLogic(15941, 23971, 41361, 0, 43462, 0), 15);
ASSERTU2(pcode_u2_complexLogic(52937, 43562, 0, 0, 48661, 51969), 11);
ASSERTU2(pcode_u2_complexLogic(54831, 59630, 16661, 0, 0, 25991), 14);
ASSERTU2(pcode_u2_complexLogic(0, 49882, 61260, 0, 8407, 16234), 10);
}
TEST pcode_u4_complexLogic_Main()
{
extern u4 pcode_u4_complexLogic(u4 a, u4 b, u4 c, u4 d, u4 e, u4 f);
ASSERTU4(pcode_u4_complexLogic(2016764524, 1717226057, 1748349614, 0, 1276673168, 0), 15);
ASSERTU4(pcode_u4_complexLogic(2009726312, 696947386, 0, 0, 1265204346, 1369602726), 11);
ASSERTU4(pcode_u4_complexLogic(1665204916, 1707056552, 564325578, 0, 0, 1010528946), 14);
ASSERTU4(pcode_u4_complexLogic(0, 1516266761, 1866000081, 0, 1175526309, 1586903190), 10);
}
TEST pcode_i1_complexLogic_Main()
{
extern i1 pcode_i1_complexLogic(i1 a, i1 b, i1 c, i1 d, i1 e, i1 f);
ASSERTI1(pcode_i1_complexLogic((i1) -150, 45, (i1) -232, 0, 0, 37), 15);
ASSERTI1(pcode_i1_complexLogic((i1) -70, (i1) -39, 134, 0, 229, 63), 14);
ASSERTI1(pcode_i1_complexLogic(0, (i1) -164, (i1) -188, 0, (i1) -106, 238), 10);
ASSERTI1(pcode_i1_complexLogic(0, 43, (i1) -140, 0, (i1) -182, 135), 11);
}
TEST pcode_i2_complexLogic_Main()
{
extern i2 pcode_i2_complexLogic(i2 a, i2 b, i2 c, i2 d, i2 e, i2 f);
ASSERTI2(pcode_i2_complexLogic(0, 46379, (i2) -52108, 0, (i2) -54966, 53127), 11);
ASSERTI2(pcode_i2_complexLogic((i2) -5607, 26256, 23643, 0, (i2) -21648, 0), 14);
ASSERTI2(pcode_i2_complexLogic((i2) -19816, 41002, 63272, 0, 4483, 0), 15);
ASSERTI2(pcode_i2_complexLogic(0, (i2) -25128, 33393, 0, 61486, 53285), 11);
}
TEST pcode_i4_complexLogic_Main()
{
extern i4 pcode_i4_complexLogic(i4 a, i4 b, i4 c, i4 d, i4 e, i4 f);
ASSERTI4(pcode_i4_complexLogic((i4) -1916250774, 1528806445, (i4) -870305000, 0, 0, 1799560997), 14);
ASSERTI4(pcode_i4_complexLogic((i4) -1375179334, (i4) -1539942439, 987987334, 0, 1162088421, 12548159), 15);
ASSERTI4(pcode_i4_complexLogic(0, (i4) -750167716, (i4) -1104561852, 0, (i4) -915711850, 737703662), 11);
ASSERTI4(pcode_i4_complexLogic(0, 386839851, (i4) -771476364, 0, (i4) -942724790, 1833488263), 10);
}
TEST biopCmpu1u1_Main()
{
extern u1 biopCmpu1u1(u1 lhs, u1 rhs);
ASSERTU1(biopCmpu1u1(0x1, 0x1), 1);
ASSERTU1(biopCmpu1u1(0x1, 0x2), 23);
ASSERTU1(biopCmpu1u1(0x2, 0x1), 22);
}
TEST biopCmpu2u2_Main()
{
extern u2 biopCmpu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopCmpu2u2(0x1, 0x1), 1);
ASSERTU2(biopCmpu2u2(0x1, 0x2), 23);
ASSERTU2(biopCmpu2u2(0x2, 0x1), 22);
}
TEST biopCmpu4u4_Main()
{
extern u4 biopCmpu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopCmpu4u4(0x1, 0x1), 1);
ASSERTU4(biopCmpu4u4(0x1, 0x2), 23);
ASSERTU4(biopCmpu4u4(0x2, 0x1), 22);
}
TEST biopCmpi1i1_Main()
{
extern i1 biopCmpi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopCmpi1i1(0x1, 0x1), 21);
ASSERTI1(biopCmpi1i1(0x1, 0x2), 21);
ASSERTI1(biopCmpi1i1(0x2, 0x1), 22);
ASSERTI1(biopCmpi1i1(-0x1, -0x1), 21);
ASSERTI1(biopCmpi1i1(-0x1, -0x2), 21);
ASSERTI1(biopCmpi1i1(-0x2, -0x1), 24);
}
TEST biopCmpi2i2_Main()
{
extern i2 biopCmpi2i2(i2 lhs, i2 rhs);
ASSERTI2(biopCmpi2i2(0x1, 0x1), 21);
ASSERTI2(biopCmpi2i2(0x1, 0x2), 21);
ASSERTI2(biopCmpi2i2(0x2, 0x1), 22);
ASSERTI2(biopCmpi2i2(-0x1, -0x1), 21);
ASSERTI2(biopCmpi2i2(-0x1, -0x2), 21);
ASSERTI2(biopCmpi2i2(-0x2, -0x1), 24);
}
TEST biopCmpi4i4_Main()
{
extern i4 biopCmpi4i4(i4 lhs, i4 rhs);
ASSERTI4(biopCmpi4i4(0x1, 0x1), 21);
ASSERTI4(biopCmpi4i4(0x1, 0x2), 21);
ASSERTI4(biopCmpi4i4(0x2, 0x1), 22);
ASSERTI4(biopCmpi4i4(-0x1, -0x1), 21);
ASSERTI4(biopCmpi4i4(-0x1, -0x2), 21);
ASSERTI4(biopCmpi4i4(-0x2, -0x1), 24);
}
TEST biopAndi4i4_Main()
{
extern i4 biopAndi4i4(i4 lhs, i4 rhs);
ASSERTI4(biopAndi4i4(0x01010101, 0x01010101), 0x01010101);
ASSERTI4(biopAndi4i4(2, 1), 0);
ASSERTI4(/*val*/ biopAndi4i4(I4_MAX, I4_MAX), 2147483647)
ASSERTI4(/*val*/ biopAndi4i4(0, 0), 0)
ASSERTI4(/*val*/ biopAndi4i4(I4_MIN, I4_MIN), -2147483648)
}
TEST biopLei1i1_Main()
{
extern i1 biopLei1i1(i1 lhs, i1 rhs);
ASSERTI1(biopLei1i1(2, 1), 0);
ASSERTI1(biopLei1i1(~2, ~1), 1);
}
TEST biopLogicAndu4u4_Main()
{
extern u4 biopLogicAndu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopLogicAndu4u4(0x01010101, 0x01010101), 1);
ASSERTU4(biopLogicAndu4u4(2, 1), 1);
ASSERTU4(biopLogicAndu4u4(U4_MAX, U4_MAX), 1)
}
TEST biopGtu2u2_Main()
{
extern u2 biopGtu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopGtu2u2(2, 1), 1);
ASSERTU2(biopGtu2u2(U2_MAX, U2_MAX), 0);
ASSERTU2(biopGtu2u2(U2_MAX, 0), 1);
ASSERTU2(biopGtu2u2(0, U2_MAX), 0);
}
TEST biopEqi1i1_Main()
{
extern i1 biopEqi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopEqi1i1(2, 1), 0);
ASSERTI1(biopEqi1i1(I1_MAX, I1_MAX), 1);
ASSERTI1(biopEqi1i1(I1_MAX, I1_MIN), 0);
ASSERTI1(biopEqi1i1(I1_MIN, I1_MAX), 0);
}
TEST biopOri4i4_Main()
{
extern i4 biopOri4i4(i4 lhs, i4 rhs);
ASSERTI4(biopOri4i4(0x01010101, 0x01010101), 0x01010101);
ASSERTI4(biopOri4i4(0x01010101, 0x0), 0x01010101);
ASSERTI4(biopOri4i4(2, 1), 3);
ASSERTI4(biopOri4i4(I4_MAX, I4_MAX), 2147483647);
ASSERTI4(biopOri4i4(0, 0), 0);
}
TEST unopNotu4_Main()
{
extern u4 unopNotu4(u4 lhs);
ASSERTU4(unopNotu4(0x01010101), 0);
ASSERTU4(unopNotu4(2), 0);
ASSERTU4(unopNotu4(U4_MAX), 0);
}
TEST unopPlusu1_Main()
{
extern u1 unopPlusu1(u1 lhs);
ASSERTU1(unopPlusu1(0x01), 0x01);
ASSERTU1(unopPlusu1(U1_MAX), 255);
ASSERTU1(unopPlusu1(0), 0);
}
TEST biopGeu2u2_Main()
{
extern u2 biopGeu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopGeu2u2(2, 1), 1);
ASSERTU2(biopGeu2u2(U2_MAX, U2_MAX), 1);
ASSERTU2(biopGeu2u2(1, 1), 1);
ASSERTU2(biopGeu2u2(1, 2), 0);
}
TEST biopNei1i1_Main()
{
extern i1 biopNei1i1(i1 lhs, i1 rhs);
ASSERTI1(biopNei1i1(2, 1), 1);
ASSERTI1(biopNei1i1(I1_MAX, I1_MAX), 0);
ASSERTI1(biopNei1i1(I1_MIN, I1_MIN), 0);
ASSERTI1(biopNei1i1(0, 0), 0);
}
TEST biopXOri4i4_Main()
{
extern i4 biopXOri4i4(i4 lhs, i4 rhs);
ASSERTI4(biopXOri4i4(0x01010101, 0x01010101), 0);
ASSERTI4(biopXOri4i4(0x01010101, 0x01000101), 0x10000);
ASSERTI4(biopXOri4i4(2, 1), 3);
ASSERTI4(biopXOri4i4(I4_MAX, I4_MAX), 0);
ASSERTI4(biopXOri4i4(I4_MAX, 0), 2147483647);
ASSERTI4(biopXOri4i4(0, 0), 0);
}
TEST biopDividi4i4_Main()
{
extern i4 biopDividi4i4(i4 lhs, i4 rhs);
ASSERTI4(biopDividi4i4(0x01010101, 0x01010101), 1);
ASSERTI4(biopDividi4i4(-0x01010101, 0x01010101), -1);
ASSERTI4(biopDividi4i4(0, 0x01010101), 0);
ASSERTI4(biopDividi4i4(0x01010101, 2), 0x808080);
ASSERTI4(biopDividi4i4(I4_MAX, I4_MAX), 1);
ASSERTI4(biopDividi4i4(I4_MIN, I4_MIN), 1);
ASSERTI4(biopDividi4i4(-1, I4_MIN), 0);
}
TEST biopRemainderi4i4_Main()
{
extern i4 biopRemainderi4i4(i4 lhs, i4 rhs);
ASSERTI4(biopRemainderi4i4(0x01010101, 0x01010101), 0);
ASSERTI4(biopRemainderi4i4(I4_MAX, I4_MAX), 0);
ASSERTI4(biopRemainderi4i4(I4_MIN, I4_MIN), 0);
ASSERTI4(biopRemainderi4i4(0, I4_MIN), 0);
ASSERTI4(biopRemainderi4i4(0, I4_MAX), 0);
}
TEST biopLtu2u2_Main()
{
extern u2 biopLtu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopLtu2u2(2, 1), 0);
ASSERTU2(biopLtu2u2(2, 1), 0);
ASSERTU2(biopLtu2u2(U2_MAX, U2_MAX), 0);
ASSERTU2(biopLtu2u2(0, 0), 0);
ASSERTU2(biopLtu2u2(1, 2), 1);
}
TEST biopAndi1i1_Main()
{
extern i1 biopAndi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopAndi1i1(2, 1), 0);
ASSERTI1(biopAndi1i1(I1_MAX, I1_MAX), 127);
ASSERTI1(biopAndi1i1(I1_MIN, I1_MIN), -128);
ASSERTI1(biopAndi1i1(0, 0), 0);
}
TEST biopLogicOri4i4_Main()
{
extern i4 biopLogicOri4i4(i4 lhs, i4 rhs);
ASSERTI4(biopLogicOri4i4(0x01010101, 0x01010101), 1);
ASSERTI4(biopLogicOri4i4(2, 1), 1);
ASSERTI4(biopLogicOri4i4(I4_MAX, I4_MAX), 1);
ASSERTI4(biopLogicOri4i4(I4_MIN, I4_MIN), 1);
ASSERTI4(biopLogicOri4i4(0, 0), 0);
}
TEST unopPlusu4_Main()
{
extern u4 unopPlusu4(u4 lhs);
ASSERTU4(unopPlusu4(0x01010101), 0x01010101);
ASSERTU4(unopPlusu4(2), 2);
ASSERTU4(unopPlusu4(U4_MAX), -1);
ASSERTU4(unopPlusu4(~1000), 4294966295);
ASSERTU4(unopPlusu4(0), 0);
}
TEST biopLeu2u2_Main()
{
extern u2 biopLeu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopLeu2u2(2, 1), 0);
ASSERTU2(biopLeu2u2(U2_MAX, U2_MAX), 1);
ASSERTU2(biopLeu2u2(U2_MIN, U2_MIN), 1);
ASSERTU2(biopLeu2u2(1, 2), 1);
}
TEST biopLogicAndi4i4_Main()
{
extern i4 biopLogicAndi4i4(i4 lhs, i4 rhs);
ASSERTI4(biopLogicAndi4i4(0x01010101, 0x01010101), 1);
ASSERTI4(biopLogicAndi4i4(2, 1), 1);
ASSERTI4(biopLogicAndi4i4(0x01000101, 0x01010101), 1);
ASSERTI4(biopLogicAndi4i4(0x01000101, 0x0), 0);
ASSERTI4(biopLogicAndi4i4(I4_MAX, I4_MAX), 1);
ASSERTI4(biopLogicAndi4i4(I4_MIN, I4_MIN), 1);
ASSERTI4(biopLogicAndi4i4(0, 0), 0);
}
TEST biopOri1i1_Main()
{
extern i1 biopOri1i1(i1 lhs, i1 rhs);
ASSERTI1(biopOri1i1(2, 1), 3);
ASSERTI1(biopOri1i1(I1_MAX, I1_MAX), 127);
ASSERTI1(biopOri1i1(I1_MIN, I1_MIN), -128);
ASSERTI1(biopOri1i1(0, 0), 0);
}
TEST biopRemainderi2i2_Main()
{
extern i2 biopRemainderi2i2(i2 lhs, i2 rhs);
ASSERTI2(biopRemainderi2i2(0x0101, 0x0101), 0x0);
ASSERTI2(biopRemainderi2i2(I2_MAX, I2_MAX), 0x0);
ASSERTI2(biopRemainderi2i2(I2_MIN, I2_MIN), 0x0);
ASSERTI2(biopRemainderi2i2(0, I2_MIN), 0x0);
}
TEST biopMulti2i2_Main()
{
extern i2 biopMulti2i2(i2 lhs, i2 rhs);
ASSERTI2(biopMulti2i2(0x0101, 0x0101), 0x201);
ASSERTI2(biopMulti2i2(0x0101, -0x0101), -513);
ASSERTI2(biopMulti2i2(0, -0x0101), 0);
ASSERTI2(biopMulti2i2(2, 1), 2);
ASSERTI2(biopMulti2i2(I2_MAX, I2_MAX), 1);
ASSERTI2(biopMulti2i2(I2_MIN, I2_MIN), 0);
ASSERTI2(biopMulti2i2(1, I2_MIN), I2_MIN);
ASSERTI2(biopMulti2i2(-1, I2_MIN), -I2_MIN);
}
TEST biopEqu2u2_Main()
{
extern u2 biopEqu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopEqu2u2(2, 1), 0);
ASSERTU2(biopEqu2u2(U2_MAX, U2_MAX), 1);
ASSERTU2(biopEqu2u2(U2_MIN, U2_MIN), 1);
ASSERTU2(biopEqu2u2(0, 0), 1);
}
TEST biopDividi2i2_Main()
{
extern i2 biopDividi2i2(i2 lhs, i2 rhs);
ASSERTI2(biopDividi2i2(0x0101, 0x0101), 0x1);
ASSERTI2(biopDividi2i2(I2_MAX, I2_MAX), 0x1);
ASSERTI2(biopDividi2i2(I2_MIN, I2_MIN), 0x1);
}
TEST unopNoti4_Main()
{
extern i4 unopNoti4(i4 lhs);
ASSERTI4(unopNoti4(0x01010101), 0);
ASSERTI4(unopNoti4(2), 0);
ASSERTI4(unopNoti4(I4_MAX), 0);
ASSERTI4(unopNoti4(I4_MIN), 0);
ASSERTI4(unopNoti4(0), 1);
}
TEST biopXOri1i1_Main()
{
extern i1 biopXOri1i1(i1 lhs, i1 rhs);
ASSERTI1(biopXOri1i1(2, 1), 3);
ASSERTI1(biopXOri1i1(I1_MAX, I1_MAX), 0);
ASSERTI1(biopXOri1i1(I1_MIN, I1_MIN), 0);
ASSERTI1(biopXOri1i1(I1_MAX, 0), 127);
ASSERTI1(biopXOri1i1(I1_MAX, 1), 126);
}
TEST biopRemainderi1i1_Main()
{
extern i1 biopRemainderi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopRemainderi1i1(0x01, 0x01), 0);
ASSERTI1(biopRemainderi1i1(I1_MAX, I1_MAX), 0);
ASSERTI1(biopRemainderi1i1(I1_MIN, I1_MIN), 0);
ASSERTI1(biopRemainderi1i1(0, I1_MIN), 0);
}
TEST biopSubi2i2_Main()
{
extern i2 biopSubi2i2(i2 lhs, i2 rhs);
ASSERTI2(biopSubi2i2(0x0101, 0x0100), 0x1);
ASSERTI2(biopSubi2i2(0x0100, 0x0101), -0x1);
ASSERTI2(biopSubi2i2(0x0101, 0x0101), 0);
ASSERTI2(biopSubi2i2(2, 1), 1);
ASSERTI2(biopSubi2i2(I2_MAX, I2_MAX), 0);
ASSERTI2(biopSubi2i2(I2_MIN, I2_MIN), 0);
ASSERTI2(biopSubi2i2(I2_MAX, 0), I2_MAX);
ASSERTI2(biopSubi2i2(0, 0), 0);
}
TEST biopNeu2u2_Main()
{
extern u2 biopNeu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopNeu2u2(2, 1), 1);
ASSERTU2(biopNeu2u2(U2_MAX, U2_MAX), 0);
ASSERTU2(biopNeu2u2(0, 0), 0);
}
TEST biopLogicOri1i1_Main()
{
extern i1 biopLogicOri1i1(i1 lhs, i1 rhs);
ASSERTI1(biopLogicOri1i1(2, 1), 1);
ASSERTI1(biopLogicOri1i1(I1_MAX, I1_MAX), 1);
ASSERTI1(biopLogicOri1i1(I1_MIN, I1_MIN), 1);
ASSERTI1(biopLogicOri1i1(0, 0), 0);
ASSERTI1(biopLogicOri1i1(0, I1_MAX), 1);
ASSERTI1(biopLogicOri1i1(I1_MAX, I1_MIN), 1);
}
TEST biopDividi1i1_Main()
{
extern i1 biopDividi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopDividi1i1(0x01, 0x01), 1);
ASSERTI1(biopDividi1i1(I1_MAX, I1_MAX), 1);
ASSERTI1(biopDividi1i1(I1_MIN, I1_MIN), 1);
ASSERTI1(biopDividi1i1(I1_MAX, 1), I1_MAX);
}
TEST unopNegativei4_Main()
{
extern i4 unopNegativei4(i4 lhs);
ASSERTI4(unopNegativei4(0x01010101), -0x01010101);
ASSERTI4(unopNegativei4(-0x01010101), 0x01010101);
ASSERTI4(unopNegativei4(I4_MAX), -I4_MAX);
ASSERTI4(unopNegativei4(I4_MIN), I4_MIN);
ASSERTI4(unopNegativei4(0), 0);
}
TEST biopAddi2i2_Main()
{
extern i2 biopAddi2i2(i2 lhs, i2 rhs);
ASSERTI2(biopAddi2i2(0x0101, 0x0101), 514);
ASSERTI2(biopAddi2i2(0x0101, -0x0101), 0);
ASSERTI2(biopAddi2i2(2, 1), 3);
ASSERTI2(biopAddi2i2(I2_MAX, I2_MAX), -2);
ASSERTI2(biopAddi2i2(I2_MIN, I2_MIN), 0);
ASSERTI2(biopAddi2i2(0, 0), 0);
}
TEST biopAndu2u2_Main()
{
extern u2 biopAndu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopAndu2u2(2, 1), 0);
ASSERTU2(biopAndu2u2(U2_MAX, U2_MAX), 65535);
ASSERTU2(biopAndu2u2(U2_MIN, U2_MIN), 0);
ASSERTU2(biopAndu2u2(0, U2_MAX), 0);
ASSERTU2(biopAndu2u2(0, 0), 0);
}
TEST biopLogicAndi1i1_Main()
{
extern i1 biopLogicAndi1i1(i1 lhs, i1 rhs);
ASSERTI1(biopLogicAndi1i1(2, 1), 1);
ASSERTI1(biopLogicAndi1i1(I1_MAX, I1_MAX), 1);
ASSERTI1(biopLogicAndi1i1(I1_MIN, I1_MIN), 1);
ASSERTI1(biopLogicAndi1i1(0, I1_MAX), 0);
ASSERTI1(biopLogicAndi1i1(0, 0), 0);
}
TEST unopPlusi4_Main()
{
extern i4 unopPlusi4(i4 lhs);
ASSERTI4(unopPlusi4(0x01010101), 0x01010101);
ASSERTI4(unopPlusi4(-0x01010101), -0x01010101);
ASSERTI4(unopPlusi4(2), 2);
ASSERTI4(unopPlusi4(I4_MAX), 2147483647);
ASSERTI4(unopPlusi4(I4_MIN), -2147483648);
ASSERTI4(unopPlusi4(0), 0);
}
TEST biopShtLfti2i2_Main()
{
extern i2 biopShtLfti2i2(i2 lhs, i2 rhs);
ASSERTI2(biopShtLfti2i2(0x0101, 16), 0x0);
ASSERTI2(biopShtLfti2i2(0x0101, 8), 0x100);
ASSERTI2(biopShtLfti2i2(0x0101, 0), 0x101);
ASSERTI2(biopShtLfti2i2(2, 1), 4);
ASSERTI2(biopShtLfti2i2(I2_MAX, 4), -16);
ASSERTI2(biopShtLfti2i2(I2_MIN, 4), 0);
ASSERTI2(biopShtLfti2i2(0, 4), 0);
}
TEST biopOru2u2_Main()
{
extern u2 biopOru2u2(u2 lhs, u2 rhs);
ASSERTU2(biopOru2u2(2, 1), 3);
ASSERTU2(biopOru2u2(U2_MAX, U2_MAX), 65535);
ASSERTU2(biopOru2u2(U2_MAX, 0), 65535);
ASSERTU2(biopOru2u2(U2_MAX, U2_MAX), 65535);
}
TEST unopNoti1_Main()
{
extern i1 unopNoti1(i1 lhs);
ASSERTI1(unopNoti1(2), 0);
ASSERTI1(unopNoti1(I1_MAX), 0);
ASSERTI1(unopNoti1(I1_MIN), 0);
ASSERTI1(unopNoti1(0), 1);
}
TEST biopMultu4u4_Main()
{
extern u4 biopMultu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopMultu4u4(0x01010101, 0x01010101), 67305985);
ASSERTU4(biopMultu4u4(2, 1), 2);
ASSERTU4(biopMultu4u4(~2, ~1), 6);
ASSERTU4(biopMultu4u4(U4_MAX, U4_MAX), 1);
ASSERTU4(biopMultu4u4(U4_MAX, 1), U4_MAX);
ASSERTU4(biopMultu4u4(U4_MAX, 0), 0);
}
TEST biopShtRhti2i2_Main()
{
extern i2 biopShtRhti2i2(i2 lhs, i2 rhs);
ASSERTI2(biopShtRhti2i2(0x0101, 16), 0x0);
ASSERTI2(biopShtRhti2i2(0x0101, 8), 0x1);
ASSERTI2(biopShtRhti2i2(0x0101, 0), 0x0101);
ASSERTI2(biopShtRhti2i2(2, 1), 1);
ASSERTI2(biopShtRhti2i2(I2_MAX, 4), 2047);
ASSERTI2(biopShtRhti2i2(I2_MAX, 0), 32767);
ASSERTI2(biopShtRhti2i2(I2_MIN, 4), -2048);
ASSERTI2(biopShtRhti2i2(I2_MIN, 0), -32768);
}
TEST biopXOru2u2_Main()
{
extern u2 biopXOru2u2(u2 lhs, u2 rhs);
ASSERTU2(biopXOru2u2(2, 1), 3);
ASSERTU2(biopXOru2u2(U2_MAX, U2_MAX), 0);
ASSERTU2(biopXOru2u2(0, 0), 0);
ASSERTU2(biopXOru2u2(0, U2_MAX), 65535);
}
TEST biopSubu4u4_Main()
{
extern u4 biopSubu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopSubu4u4(0x01010101, 0x01010101), 0);
ASSERTU4(biopSubu4u4(2, 1), 1);
ASSERTU4(biopSubu4u4(~2, ~1), 4294967295);
ASSERTU4(biopSubu4u4(U4_MAX, U4_MAX), 0);
ASSERTU4(biopSubu4u4(U4_MAX, 0), U4_MAX);
ASSERTU4(biopSubu4u4(0, U4_MAX), 1);
}
TEST unopNegativei1_Main()
{
extern i1 unopNegativei1(i1 lhs);
ASSERTI1(unopNegativei1(2), -2);
ASSERTI1(unopNegativei1(I1_MAX), -127);
ASSERTI1(unopNegativei1(I1_MIN), -128);
ASSERTI1(unopNegativei1(0), 0);
}
TEST biopGti2i2_Main()
{
extern i2 biopGti2i2(i2 lhs, i2 rhs);
ASSERTI2(biopGti2i2(0x0101, 0x0101), 0);
ASSERTI2(biopGti2i2(0x0101, 0x0100), 1);
ASSERTI2(biopGti2i2(0x0101, -0x0101), 1);
ASSERTI2(biopGti2i2(2, 1), 1);
ASSERTI2(biopGti2i2(I1_MAX, I1_MAX), 0);
ASSERTI2(biopGti2i2(I1_MIN, I1_MIN), 0);
ASSERTI2(biopGti2i2(I1_MAX-1, I1_MAX), 0);
ASSERTI2(biopGti2i2(I1_MAX, I1_MAX-1), 1);
}
TEST biopLogicOru2u2_Main()
{
extern u2 biopLogicOru2u2(u2 lhs, u2 rhs);
ASSERTU2(biopLogicOru2u2(2, 1), 1);
ASSERTU2(biopLogicOru2u2(2, 1), 1);
ASSERTU2(biopLogicOru2u2(U2_MAX, U2_MAX), 1);
ASSERTU2(biopLogicOru2u2(U2_MIN, U2_MIN), 0);
ASSERTU2(biopLogicOru2u2(U2_MAX, U2_MIN), 1);
ASSERTU2(biopLogicOru2u2(U2_MAX, 0), 1);
ASSERTU2(biopLogicOru2u2(0, 0), 0);
}
TEST biopAddu4u4_Main()
{
extern u4 biopAddu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopAddu4u4(0x01010101, 0x01010101), 33686018);
ASSERTU4(biopAddu4u4(2, 1), 3);
ASSERTU4(biopAddu4u4(~2, ~1), 4294967291);
ASSERTU4(biopAddu4u4(U4_MAX, U4_MAX), -2);
ASSERTU4(biopAddu4u4(U4_MAX, 0), -1);
ASSERTU4(biopAddu4u4(0, 0), 0);
}
TEST unopPlusi1_Main()
{
extern i1 unopPlusi1(i1 lhs);
ASSERTI1(unopPlusi1(2), 2);
ASSERTI1(unopPlusi1(I1_MAX), 127);
ASSERTI1(unopPlusi1(I1_MIN), -128);
ASSERTI1(unopPlusi1(0), 0);
}
TEST biopGei2i2_Main()
{
extern i2 biopGei2i2(i2 lhs, i2 rhs);
ASSERTI2(biopGei2i2(2, 1), 1);
ASSERTI2(biopGei2i2(I2_MAX, I2_MAX), 1);
ASSERTI2(biopGei2i2(I2_MIN, I2_MIN), 1);
ASSERTI2(biopGei2i2(I2_MAX, I2_MIN), 1);
ASSERTI2(biopGei2i2(I2_MIN, I2_MAX), 0);
}
TEST biopLogicAndu2u2_Main()
{
extern u2 biopLogicAndu2u2(u2 lhs, u2 rhs);
ASSERTU2(biopLogicAndu2u2(2, 1), 1);
ASSERTU2(biopLogicAndu2u2(I2_MAX, I2_MAX), 1);
ASSERTU2(biopLogicAndu2u2(I2_MIN, I2_MIN), 1);
ASSERTU2(biopLogicAndu2u2(I2_MAX, I2_MIN), 1);
ASSERTU2(biopLogicAndu2u2(I2_MAX, 0), 0);
}
TEST biopMultu1u1_Main()
{
extern u1 biopMultu1u1(u1 lhs, u1 rhs);
ASSERTU1(biopMultu1u1(0x01, 0x01), 1);
ASSERTU1(biopMultu1u1(U1_MAX, 1), U1_MAX);
ASSERTU1(biopMultu1u1(U1_MAX, U1_MAX), 1);
ASSERTU1(biopMultu1u1(U1_MAX, 0), 0);
}
TEST biopGtu1u1_Main()
{
extern u1 biopGtu1u1(u1 lhs, u1 rhs);
ASSERTU1(biopGtu1u1(0x01, 0x01), 0);
ASSERTU1(biopGtu1u1(U1_MAX, U1_MAX), 0);
ASSERTU1(biopGtu1u1(U1_MAX, 0), 1);
ASSERTU1(biopGtu1u1(0, U1_MAX), 0);
}
TEST biopShtLftu4u4_Main()
{
extern u4 biopShtLftu4u4(u4 lhs, u4 rhs);
ASSERTU4(biopShtLftu4u4(0x01010101, 16), 0x01010000);
ASSERTU4(biopShtLftu4u4(2, 1), 4);
ASSERTU4(biopShtLftu4u4(U4_MAX, 4*8-1), 2147483648);
ASSERTU4(biopShtLftu4u4(U4_MAX, 4), -16);
}
TEST biopOri2i2_Main()
{
extern i2 biopOri2i2(i2 lhs, i2 rhs);
ASSERTI2(biopOri2i2(2, 1), 3);
ASSERTI2(biopOri2i2(0x0101, 0x0101), 0x0101);
ASSERTI2(biopOri2i2(0x0101, 0x1010), 0x1111);
ASSERTI2(biopOri2i2(0x0101, 0x0), 0x0101);
ASSERTI2(biopOri2i2(I2_MAX, I2_MAX), 32767);
ASSERTI2(biopOri2i2(I2_MAX, I2_MIN), -1);
ASSERTI2(biopOri2i2(I2_MAX, 0), 32767);
}
TEST biopLti2i2_Main()
{
extern i2 biopLti2i2(i2 lhs, i2 rhs);
ASSERTI2(biopLti2i2(2, 1), 0);
ASSERTI2(biopLti2i2(0x0101, 0x0101), 0);
ASSERTI2(biopLti2i2(0x0101, -0x0101), 0);
ASSERTI2(biopLti2i2(0x0101, -0x0101), 0);
ASSERTI2(biopLti2i2(I2_MAX, I2_MAX), 0);
ASSERTI2(biopLti2i2(I2_MAX, I2_MIN), 0);
ASSERTI2(biopLti2i2(I2_MAX, 0), 0);
ASSERTI2(biopLti2i2(0, I2_MAX), 1);
}
TEST biopMulti4i4_Main()
{
extern i4 biopMulti4i4(i4 lhs, i4 rhs);
ASSERTI4(biopMulti4i4(2, 1), 2);
ASSERTI4(biopMulti4i4(0x01010101, 0x01010101), 67305985);
ASSERTI4(biopMulti4i4(0x01010101, -16843009), -67305985);
ASSERTI4(biopMulti4i4(0, -16843009), 0);
ASSERTI4(biopMulti4i4(I4_MAX, I4_MAX), 1);
ASSERTI4(biopMulti4i4(I4_MAX, I4_MIN), -2147483648);
ASSERTI4(biopMulti4i4(I4_MAX, 0), 0);
}
MAIN BIOPS_main() { }