Azur/libnum/test/isel_num8.cpp

57 lines
802 B
C++

#include <num/num.h>
using namespace libnum;
extern "C" {
// num8_of_num16: %=0
num8 num8_of_num16(num16 x)
{
return num8(x);
}
// num8_of_num32: %=1 && [shlr8]
num8 num8_of_num32(num32 x)
{
return num8(x);
}
// num8_of_num64: %<=2 && %=[shlr*||shad]
num8 num8_of_num64(num64 x)
{
return num8(x);
}
/* This requires sign extensions because we care about high bits */
// num8_mul: %<=5
num8 num8_mul(num8 x, num8 y)
{
return x * y;
}
// num8_eq: [or] && ![bt* || bf*]
bool num8_eq(num8 x, int i)
{
return x == i;
}
// num8_le: ![bt* || bf*] && %<=4
bool num8_le(num8 x, int i)
{
return x <= i;
}
// num8_gt: ![bt* || bf*] && %<=4
bool num8_gt(num8 x, int i)
{
return x > i;
}
// num8_floor: %=0
num8 num8_floor(num8 x)
{
return x.floor();
}
} /* extern "C" */