4 typedef unsigned char uint8_t;
5 typedef signed char int8_t;
6 typedef unsigned short uint16_t;
7 typedef signed short int16_t;
8 typedef unsigned int uint32_t;
9 typedef signed int int32_t;
10 typedef unsigned long long uint64_t;
11 typedef signed long long int64_t;
15 void printuint8_t(uint8_t a) { printf( "%08X ", (unsigned int)a ); }
16 void printint8_t(int8_t a) { printf( "%08X ", (unsigned int)(uint8_t)a ); }
17 void printuint16_t(uint16_t a) { printf( "%08X ", (unsigned int)a ); }
18 void printint16_t(int16_t a) { printf( "%08X ", (unsigned int)(uint16_t)a ); }
19 void printuint32_t(uint32_t a) { printf( "%08X ", (unsigned int)a ); }
20 void printint32_t(int32_t a) { printf( "%08X ", (unsigned int)a ); }
21 void printuint64_t(uint64_t a) { printf( "%08X%08X ", (unsigned int)(a>>32),(unsigned int)a ); }
22 void printint64_t(int64_t a) { printf( "%08X%08X ", (unsigned int)(a>>32),(unsigned int)a ); }
24 #define TEST_TYPE(T) \
27 read(0,&a,sizeof(a)); read(0,&b,sizeof(b)); read(0,&c,sizeof(c)); read(0,&d,sizeof(d)); \
29 if( b != 0 && c != 0 ) { f = a / b + 1/c; }\
30 T g = e - f / 2 + (uint32_t)b;\
31 T h = b * c / d; T i = a / -d; \
32 printf( "%d| ", sizeof(a) ); \
33 print##T(a); print##T(b); print##T(c); print##T(d); \
34 printf( ": " ); print##T(e); print##T(f); print##T(g); \
35 print##T(h); print##T(i); \
48 int main(int argc, char *argv[]) {
51 for(i=0;i<TEST_REPS;i++ ) { testuint64_t(); }
52 for(i=0;i<TEST_REPS;i++ ) { testint64_t(); }
53 for(i=0;i<TEST_REPS;i++ ) { testuint32_t(); }
54 for(i=0;i<TEST_REPS;i++ ) { testint32_t(); }
55 for(i=0;i<TEST_REPS;i++ ) { testuint16_t(); }
56 for(i=0;i<TEST_REPS;i++ ) { testint16_t(); }
57 for(i=0;i<TEST_REPS;i++ ) { testuint8_t(); }
58 for(i=0;i<TEST_REPS;i++ ) { testint8_t(); }
.