summaryrefslogtreecommitdiff
path: root/div-test.c
blob: 4e4a00927bc81e0bd290d0fe036dbf9a3c1e4ba8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#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;
}