blob: 4e4a00927bc81e0bd290d0fe036dbf9a3c1e4ba8 [file] [log] [blame]
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
uint32_t ref(uint32_t a)
{
return (a + 128)/ 255;
return (a + (65535/2))/ 65535;
}
uint32_t try1(a)
{
return (((uint64_t)a + 128)*257) / 65535LL;
return (((uint64_t)a + 32767)*65538) / 4294967296LL;
}
int main()
{
uint32_t x = 0;
do {
uint32_t r1 = ref(x);
uint32_t r2 = try1(x);
if (r1 != r2) {
printf("FAIL: %x -> %x %x\n", x, r1, r2);
exit(1);
}
if (x == 0xffffffff)
break;
x++;
} while (1);
return 0;
}