summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/c/Makefile2
-rw-r--r--test/c/Results/siphash241
-rw-r--r--test/c/siphash24.c255
-rw-r--r--test/regression/Makefile2
-rw-r--r--test/regression/Results/int643780
-rw-r--r--test/regression/Results/volatile24
-rw-r--r--test/regression/int64.c115
-rw-r--r--test/regression/volatile2.c4
8 files changed, 4161 insertions, 2 deletions
diff --git a/test/c/Makefile b/test/c/Makefile
index 6839ac4..a11ab69 100644
--- a/test/c/Makefile
+++ b/test/c/Makefile
@@ -13,7 +13,7 @@ TIME=xtime -o /dev/null -mintime 1.0 # Xavier's hack
PROGS=fib integr qsort fft sha1 aes almabench lists \
binarytrees fannkuch knucleotide mandelbrot nbody \
nsieve nsievebits spectral vmach \
- bisect chomp perlin floats floats-basics
+ bisect chomp perlin siphash24 floats floats-basics
PROGS_INTERP=floats floats-basics
diff --git a/test/c/Results/siphash24 b/test/c/Results/siphash24
new file mode 100644
index 0000000..a99b4f1
--- /dev/null
+++ b/test/c/Results/siphash24
@@ -0,0 +1 @@
+test vectors ok
diff --git a/test/c/siphash24.c b/test/c/siphash24.c
new file mode 100644
index 0000000..0ed1841
--- /dev/null
+++ b/test/c/siphash24.c
@@ -0,0 +1,255 @@
+/*
+ SipHash reference C implementation
+
+ Written in 2012 by
+ Jean-Philippe Aumasson <jeanphilippe.aumasson@gmail.com>
+ Daniel J. Bernstein <djb@cr.yp.to>
+
+ To the extent possible under law, the author(s) have dedicated all copyright
+ and related and neighboring rights to this software to the public domain
+ worldwide. This software is distributed without any warranty.
+
+ You should have received a copy of the CC0 Public Domain Dedication along with
+ this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+*/
+
+#include <stdio.h>
+#include <string.h>
+typedef unsigned long long u64;
+typedef unsigned long u32;
+typedef unsigned char u8;
+
+#define ROTL(x,b) (u64)( ((x) << (b)) | ( (x) >> (64 - (b))) )
+
+#define U32TO8_LE(p, v) \
+ (p)[0] = (u8)((v) ); (p)[1] = (u8)((v) >> 8); \
+ (p)[2] = (u8)((v) >> 16); (p)[3] = (u8)((v) >> 24);
+
+#define U64TO8_LE(p, v) \
+ U32TO8_LE((p), (u32)((v) )); \
+ U32TO8_LE((p) + 4, (u32)((v) >> 32));
+
+#define U8TO64_LE(p) \
+ (((u64)((p)[0]) ) | \
+ ((u64)((p)[1]) << 8) | \
+ ((u64)((p)[2]) << 16) | \
+ ((u64)((p)[3]) << 24) | \
+ ((u64)((p)[4]) << 32) | \
+ ((u64)((p)[5]) << 40) | \
+ ((u64)((p)[6]) << 48) | \
+ ((u64)((p)[7]) << 56))
+
+#define SIPROUND \
+ do { \
+ v0 += v1; v1=ROTL(v1,13); v1 ^= v0; v0=ROTL(v0,32); \
+ v2 += v3; v3=ROTL(v3,16); v3 ^= v2; \
+ v0 += v3; v3=ROTL(v3,21); v3 ^= v0; \
+ v2 += v1; v1=ROTL(v1,17); v1 ^= v2; v2=ROTL(v2,32); \
+ } while(0)
+
+/* SipHash-2-4 */
+int crypto_auth( unsigned char *out, const unsigned char *in, unsigned long long inlen, const unsigned char *k )
+{
+ /* "somepseudorandomlygeneratedbytes" */
+ u64 v0 = 0x736f6d6570736575ULL;
+ u64 v1 = 0x646f72616e646f6dULL;
+ u64 v2 = 0x6c7967656e657261ULL;
+ u64 v3 = 0x7465646279746573ULL;
+ u64 b;
+ u64 k0 = U8TO64_LE( k );
+ u64 k1 = U8TO64_LE( k + 8 );
+ u64 m;
+ const u8 *end = in + inlen - ( inlen % sizeof( u64 ) );
+ const int left = inlen & 7;
+ b = ( ( u64 )inlen ) << 56;
+ v3 ^= k1;
+ v2 ^= k0;
+ v1 ^= k1;
+ v0 ^= k0;
+
+ for ( ; in != end; in += 8 )
+ {
+ m = U8TO64_LE( in );
+#ifdef DEBUG
+ printf( "(%3d) v0 %08x %08x\n", ( int )inlen, ( u32 )( v0 >> 32 ), ( u32 )v0 );
+ printf( "(%3d) v1 %08x %08x\n", ( int )inlen, ( u32 )( v1 >> 32 ), ( u32 )v1 );
+ printf( "(%3d) v2 %08x %08x\n", ( int )inlen, ( u32 )( v2 >> 32 ), ( u32 )v2 );
+ printf( "(%3d) v3 %08x %08x\n", ( int )inlen, ( u32 )( v3 >> 32 ), ( u32 )v3 );
+ printf( "(%3d) compress %08x %08x\n", ( int )inlen, ( u32 )( m >> 32 ), ( u32 )m );
+#endif
+ v3 ^= m;
+ SIPROUND;
+ SIPROUND;
+ v0 ^= m;
+ }
+
+ switch( left )
+ {
+ case 7: b |= ( ( u64 )in[ 6] ) << 48;
+
+ case 6: b |= ( ( u64 )in[ 5] ) << 40;
+
+ case 5: b |= ( ( u64 )in[ 4] ) << 32;
+
+ case 4: b |= ( ( u64 )in[ 3] ) << 24;
+
+ case 3: b |= ( ( u64 )in[ 2] ) << 16;
+
+ case 2: b |= ( ( u64 )in[ 1] ) << 8;
+
+ case 1: b |= ( ( u64 )in[ 0] ); break;
+
+ case 0: break;
+ }
+
+#ifdef DEBUG
+ printf( "(%3d) v0 %08x %08x\n", ( int )inlen, ( u32 )( v0 >> 32 ), ( u32 )v0 );
+ printf( "(%3d) v1 %08x %08x\n", ( int )inlen, ( u32 )( v1 >> 32 ), ( u32 )v1 );
+ printf( "(%3d) v2 %08x %08x\n", ( int )inlen, ( u32 )( v2 >> 32 ), ( u32 )v2 );
+ printf( "(%3d) v3 %08x %08x\n", ( int )inlen, ( u32 )( v3 >> 32 ), ( u32 )v3 );
+ printf( "(%3d) padding %08x %08x\n", ( int )inlen, ( u32 )( b >> 32 ), ( u32 )b );
+#endif
+ v3 ^= b;
+ SIPROUND;
+ SIPROUND;
+ v0 ^= b;
+#ifdef DEBUG
+ printf( "(%3d) v0 %08x %08x\n", ( int )inlen, ( u32 )( v0 >> 32 ), ( u32 )v0 );
+ printf( "(%3d) v1 %08x %08x\n", ( int )inlen, ( u32 )( v1 >> 32 ), ( u32 )v1 );
+ printf( "(%3d) v2 %08x %08x\n", ( int )inlen, ( u32 )( v2 >> 32 ), ( u32 )v2 );
+ printf( "(%3d) v3 %08x %08x\n", ( int )inlen, ( u32 )( v3 >> 32 ), ( u32 )v3 );
+#endif
+ v2 ^= 0xff;
+ SIPROUND;
+ SIPROUND;
+ SIPROUND;
+ SIPROUND;
+ b = v0 ^ v1 ^ v2 ^ v3;
+ U64TO8_LE( out, b );
+ return 0;
+}
+
+/*
+ SipHash-2-4 output with
+ k = 00 01 02 ...
+ and
+ in = (empty string)
+ in = 00 (1 byte)
+ in = 00 01 (2 bytes)
+ in = 00 01 02 (3 bytes)
+ ...
+ in = 00 01 02 ... 3e (63 bytes)
+*/
+u8 vectors[64][8] =
+{
+ { 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, },
+ { 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, },
+ { 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, },
+ { 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, },
+ { 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, },
+ { 0x8d, 0xa6, 0x99, 0xcd, 0x64, 0x55, 0x76, 0x18, },
+ { 0xce, 0xe3, 0xfe, 0x58, 0x6e, 0x46, 0xc9, 0xcb, },
+ { 0x37, 0xd1, 0x01, 0x8b, 0xf5, 0x00, 0x02, 0xab, },
+ { 0x62, 0x24, 0x93, 0x9a, 0x79, 0xf5, 0xf5, 0x93, },
+ { 0xb0, 0xe4, 0xa9, 0x0b, 0xdf, 0x82, 0x00, 0x9e, },
+ { 0xf3, 0xb9, 0xdd, 0x94, 0xc5, 0xbb, 0x5d, 0x7a, },
+ { 0xa7, 0xad, 0x6b, 0x22, 0x46, 0x2f, 0xb3, 0xf4, },
+ { 0xfb, 0xe5, 0x0e, 0x86, 0xbc, 0x8f, 0x1e, 0x75, },
+ { 0x90, 0x3d, 0x84, 0xc0, 0x27, 0x56, 0xea, 0x14, },
+ { 0xee, 0xf2, 0x7a, 0x8e, 0x90, 0xca, 0x23, 0xf7, },
+ { 0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1, },
+ { 0xdb, 0x9b, 0xc2, 0x57, 0x7f, 0xcc, 0x2a, 0x3f, },
+ { 0x94, 0x47, 0xbe, 0x2c, 0xf5, 0xe9, 0x9a, 0x69, },
+ { 0x9c, 0xd3, 0x8d, 0x96, 0xf0, 0xb3, 0xc1, 0x4b, },
+ { 0xbd, 0x61, 0x79, 0xa7, 0x1d, 0xc9, 0x6d, 0xbb, },
+ { 0x98, 0xee, 0xa2, 0x1a, 0xf2, 0x5c, 0xd6, 0xbe, },
+ { 0xc7, 0x67, 0x3b, 0x2e, 0xb0, 0xcb, 0xf2, 0xd0, },
+ { 0x88, 0x3e, 0xa3, 0xe3, 0x95, 0x67, 0x53, 0x93, },
+ { 0xc8, 0xce, 0x5c, 0xcd, 0x8c, 0x03, 0x0c, 0xa8, },
+ { 0x94, 0xaf, 0x49, 0xf6, 0xc6, 0x50, 0xad, 0xb8, },
+ { 0xea, 0xb8, 0x85, 0x8a, 0xde, 0x92, 0xe1, 0xbc, },
+ { 0xf3, 0x15, 0xbb, 0x5b, 0xb8, 0x35, 0xd8, 0x17, },
+ { 0xad, 0xcf, 0x6b, 0x07, 0x63, 0x61, 0x2e, 0x2f, },
+ { 0xa5, 0xc9, 0x1d, 0xa7, 0xac, 0xaa, 0x4d, 0xde, },
+ { 0x71, 0x65, 0x95, 0x87, 0x66, 0x50, 0xa2, 0xa6, },
+ { 0x28, 0xef, 0x49, 0x5c, 0x53, 0xa3, 0x87, 0xad, },
+ { 0x42, 0xc3, 0x41, 0xd8, 0xfa, 0x92, 0xd8, 0x32, },
+ { 0xce, 0x7c, 0xf2, 0x72, 0x2f, 0x51, 0x27, 0x71, },
+ { 0xe3, 0x78, 0x59, 0xf9, 0x46, 0x23, 0xf3, 0xa7, },
+ { 0x38, 0x12, 0x05, 0xbb, 0x1a, 0xb0, 0xe0, 0x12, },
+ { 0xae, 0x97, 0xa1, 0x0f, 0xd4, 0x34, 0xe0, 0x15, },
+ { 0xb4, 0xa3, 0x15, 0x08, 0xbe, 0xff, 0x4d, 0x31, },
+ { 0x81, 0x39, 0x62, 0x29, 0xf0, 0x90, 0x79, 0x02, },
+ { 0x4d, 0x0c, 0xf4, 0x9e, 0xe5, 0xd4, 0xdc, 0xca, },
+ { 0x5c, 0x73, 0x33, 0x6a, 0x76, 0xd8, 0xbf, 0x9a, },
+ { 0xd0, 0xa7, 0x04, 0x53, 0x6b, 0xa9, 0x3e, 0x0e, },
+ { 0x92, 0x59, 0x58, 0xfc, 0xd6, 0x42, 0x0c, 0xad, },
+ { 0xa9, 0x15, 0xc2, 0x9b, 0xc8, 0x06, 0x73, 0x18, },
+ { 0x95, 0x2b, 0x79, 0xf3, 0xbc, 0x0a, 0xa6, 0xd4, },
+ { 0xf2, 0x1d, 0xf2, 0xe4, 0x1d, 0x45, 0x35, 0xf9, },
+ { 0x87, 0x57, 0x75, 0x19, 0x04, 0x8f, 0x53, 0xa9, },
+ { 0x10, 0xa5, 0x6c, 0xf5, 0xdf, 0xcd, 0x9a, 0xdb, },
+ { 0xeb, 0x75, 0x09, 0x5c, 0xcd, 0x98, 0x6c, 0xd0, },
+ { 0x51, 0xa9, 0xcb, 0x9e, 0xcb, 0xa3, 0x12, 0xe6, },
+ { 0x96, 0xaf, 0xad, 0xfc, 0x2c, 0xe6, 0x66, 0xc7, },
+ { 0x72, 0xfe, 0x52, 0x97, 0x5a, 0x43, 0x64, 0xee, },
+ { 0x5a, 0x16, 0x45, 0xb2, 0x76, 0xd5, 0x92, 0xa1, },
+ { 0xb2, 0x74, 0xcb, 0x8e, 0xbf, 0x87, 0x87, 0x0a, },
+ { 0x6f, 0x9b, 0xb4, 0x20, 0x3d, 0xe7, 0xb3, 0x81, },
+ { 0xea, 0xec, 0xb2, 0xa3, 0x0b, 0x22, 0xa8, 0x7f, },
+ { 0x99, 0x24, 0xa4, 0x3c, 0xc1, 0x31, 0x57, 0x24, },
+ { 0xbd, 0x83, 0x8d, 0x3a, 0xaf, 0xbf, 0x8d, 0xb7, },
+ { 0x0b, 0x1a, 0x2a, 0x32, 0x65, 0xd5, 0x1a, 0xea, },
+ { 0x13, 0x50, 0x79, 0xa3, 0x23, 0x1c, 0xe6, 0x60, },
+ { 0x93, 0x2b, 0x28, 0x46, 0xe4, 0xd7, 0x06, 0x66, },
+ { 0xe1, 0x91, 0x5f, 0x5c, 0xb1, 0xec, 0xa4, 0x6c, },
+ { 0xf3, 0x25, 0x96, 0x5c, 0xa1, 0x6d, 0x62, 0x9f, },
+ { 0x57, 0x5f, 0xf2, 0x8e, 0x60, 0x38, 0x1b, 0xe5, },
+ { 0x72, 0x45, 0x06, 0xeb, 0x4c, 0x32, 0x8a, 0x95, }
+};
+
+
+int test_vectors()
+{
+#define MAXLEN 64
+ u8 in[MAXLEN], out[8], k[16];
+ int i;
+ int ok = 1;
+
+ for( i = 0; i < 16; ++i ) k[i] = i;
+
+ for( i = 0; i < MAXLEN; ++i )
+ {
+ in[i] = i;
+ crypto_auth( out, in, i, k );
+
+ if ( memcmp( out, vectors[i], 8 ) )
+ {
+ printf( "test vector failed for %d bytes\n", i );
+ ok = 0;
+ }
+ }
+
+ return ok;
+}
+
+u8 testdata[100] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 12, 34, 56, 78, 90 };
+
+int speed_test(void)
+{
+ u8 out[8], k[16];
+ int i;
+
+ for(i = 0; i < 16; ++i ) k[i] = i;
+ for(i = 0; i < 10000000; i++) {
+ crypto_auth(out, testdata, 100, k);
+ }
+ return out[0];
+}
+
+int main()
+{
+ if ( test_vectors() ) printf( "test vectors ok\n" );
+ (void) speed_test();
+ return 0;
+}
diff --git a/test/regression/Makefile b/test/regression/Makefile
index 48e3b97..2974444 100644
--- a/test/regression/Makefile
+++ b/test/regression/Makefile
@@ -12,7 +12,7 @@ TESTS=attribs1 bitfields1 bitfields2 bitfields3 bitfields4 \
expr1 expr6 funptr2 initializers volatile1 volatile2 volatile3 \
funct3 expr5 struct7 struct8 struct11 casts1 casts2 char1 \
sizeof1 sizeof2 packedstruct1 packedstruct2 \
- instrsel bool compar switch
+ instrsel bool compar switch int64
# Other tests: should compile to .s without errors (but expect warnings)
EXTRAS=annot1 commaprec expr2 expr3 expr4 extern1 funct2 funptr1 init1 \
diff --git a/test/regression/Results/int64 b/test/regression/Results/int64
new file mode 100644
index 0000000..15e4ecc
--- /dev/null
+++ b/test/regression/Results/int64
@@ -0,0 +1,3780 @@
+x = 0
+y = 0
+-x = 0
+x + y = 0
+x - y = 0
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = 0
+x ^ y = 0
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = eq
+x cmps y = eq
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 0
+y = 1
+-x = 0
+x + y = 1
+x - y = ffffffffffffffff
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = 1
+x ^ y = 1
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = lt
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 0
+y = ffffffffffffffff
+-x = 0
+x + y = ffffffffffffffff
+x - y = 1
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = ffffffffffffffff
+x ^ y = ffffffffffffffff
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 0
+y = 7fffffff
+-x = 0
+x + y = 7fffffff
+x - y = ffffffff80000001
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = 7fffffff
+x ^ y = 7fffffff
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = lt
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 0
+y = 80000000
+-x = 0
+x + y = 80000000
+x - y = ffffffff80000000
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = 80000000
+x ^ y = 80000000
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = lt
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 0
+y = 14057b7ef767814f
+-x = 0
+x + y = 14057b7ef767814f
+x - y = ebfa848108987eb1
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffffffffffff
+x & y = 0
+x | y = 14057b7ef767814f
+x ^ y = 14057b7ef767814f
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = lt
+utod x = 0
+dtou f = 0
+stod x = 0
+dtos f = 0
+
+x = 1a08ee1184ba6d32
+y = 0
+-x = e5f711ee7b4592ce
+x + y = 1a08ee1184ba6d32
+x - y = 1a08ee1184ba6d32
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = e5f711ee7b4592cd
+x & y = 0
+x | y = 1a08ee1184ba6d32
+x ^ y = 1a08ee1184ba6d32
+x << i = 1a08ee1184ba6d32
+x >>u i = 1a08ee1184ba6d32
+x >>s i = 1a08ee1184ba6d32
+x cmpu y = gt
+x cmps y = gt
+utod x = 43ba08ee1184ba6d
+dtou f = aa9f48f29aaf
+stod x = 43ba08ee1184ba6d
+dtos f = aa9f48f29aaf
+
+x = 1
+y = 0
+-x = ffffffffffffffff
+x + y = 1
+x - y = 1
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = fffffffffffffffe
+x & y = 0
+x | y = 1
+x ^ y = 1
+x << i = 1
+x >>u i = 1
+x >>s i = 1
+x cmpu y = gt
+x cmps y = gt
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 1
+y = 1
+-x = ffffffffffffffff
+x + y = 2
+x - y = 0
+x * y = 1
+x /u y = 1
+x %u y = 0
+x /s y = 1
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = fffffffffffffffe
+x & y = 1
+x | y = 1
+x ^ y = 0
+x << i = 2
+x >>u i = 0
+x >>s i = 0
+x cmpu y = eq
+x cmps y = eq
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 1
+y = ffffffffffffffff
+-x = ffffffffffffffff
+x + y = 0
+x - y = 2
+x * y = ffffffffffffffff
+x /u y = 0
+x %u y = 1
+x /s y = ffffffffffffffff
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 1
+x /s y3 = ffffffffffffffff
+x %s y3 = 0
+~x = fffffffffffffffe
+x & y = 1
+x | y = ffffffffffffffff
+x ^ y = fffffffffffffffe
+x << i = 8000000000000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 1
+y = 7fffffff
+-x = ffffffffffffffff
+x + y = 80000000
+x - y = ffffffff80000002
+x * y = 7fffffff
+x /u y = 0
+x %u y = 1
+x /s y = 0
+x %s y = 1
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = fffffffffffffffe
+x & y = 1
+x | y = 7fffffff
+x ^ y = 7ffffffe
+x << i = 8000000000000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = lt
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 1
+y = 80000000
+-x = ffffffffffffffff
+x + y = 80000001
+x - y = ffffffff80000001
+x * y = 80000000
+x /u y = 0
+x %u y = 1
+x /s y = 0
+x %s y = 1
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = fffffffffffffffe
+x & y = 0
+x | y = 80000001
+x ^ y = 80000001
+x << i = 1
+x >>u i = 1
+x >>s i = 1
+x cmpu y = lt
+x cmps y = lt
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 1
+y = 9af678222e728119
+-x = ffffffffffffffff
+x + y = 9af678222e72811a
+x - y = 650987ddd18d7ee8
+x * y = 9af678222e728119
+x /u y = 0
+x %u y = 1
+x /s y = 0
+x %s y = 1
+x /u y2 = 0
+x %u y2 = 1
+x /s y3 = 0
+x %s y3 = 1
+~x = fffffffffffffffe
+x & y = 1
+x | y = 9af678222e728119
+x ^ y = 9af678222e728118
+x << i = 2000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 3ff0000000000000
+dtou f = 0
+stod x = 3ff0000000000000
+dtos f = 0
+
+x = 66b61ae97f2099b4
+y = 1
+-x = 9949e51680df664c
+x + y = 66b61ae97f2099b5
+x - y = 66b61ae97f2099b3
+x * y = 66b61ae97f2099b4
+x /u y = 66b61ae97f2099b4
+x %u y = 0
+x /s y = 66b61ae97f2099b4
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 9949e51680df664b
+x & y = 0
+x | y = 66b61ae97f2099b5
+x ^ y = 66b61ae97f2099b5
+x << i = cd6c35d2fe413368
+x >>u i = 335b0d74bf904cda
+x >>s i = 335b0d74bf904cda
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d9ad86ba5fc826
+dtou f = 2a1210c1f1b75
+stod x = 43d9ad86ba5fc826
+dtos f = 2a1210c1f1b75
+
+x = ffffffffffffffff
+y = 0
+-x = 1
+x + y = ffffffffffffffff
+x - y = ffffffffffffffff
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 0
+x & y = 0
+x | y = ffffffffffffffff
+x ^ y = ffffffffffffffff
+x << i = ffffffffffffffff
+x >>u i = ffffffffffffffff
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = ffffffffffffffff
+y = 1
+-x = 1
+x + y = 0
+x - y = fffffffffffffffe
+x * y = ffffffffffffffff
+x /u y = ffffffffffffffff
+x %u y = 0
+x /s y = ffffffffffffffff
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 0
+x & y = 1
+x | y = ffffffffffffffff
+x ^ y = fffffffffffffffe
+x << i = fffffffffffffffe
+x >>u i = 7fffffffffffffff
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = ffffffffffffffff
+y = ffffffffffffffff
+-x = 1
+x + y = fffffffffffffffe
+x - y = 0
+x * y = 1
+x /u y = 1
+x %u y = 0
+x /s y = 1
+x %s y = 0
+x /u y2 = 100000001
+x %u y2 = 0
+x /s y3 = 1
+x %s y3 = 0
+~x = 0
+x & y = ffffffffffffffff
+x | y = ffffffffffffffff
+x ^ y = 0
+x << i = 8000000000000000
+x >>u i = 1
+x >>s i = ffffffffffffffff
+x cmpu y = eq
+x cmps y = eq
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = ffffffffffffffff
+y = 7fffffff
+-x = 1
+x + y = 7ffffffe
+x - y = ffffffff80000000
+x * y = ffffffff80000001
+x /u y = 200000004
+x %u y = 3
+x /s y = 0
+x %s y = ffffffffffffffff
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 0
+x & y = 7fffffff
+x | y = ffffffffffffffff
+x ^ y = ffffffff80000000
+x << i = 8000000000000000
+x >>u i = 1
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = ffffffffffffffff
+y = 80000000
+-x = 1
+x + y = 7fffffff
+x - y = ffffffff7fffffff
+x * y = ffffffff80000000
+x /u y = 1ffffffff
+x %u y = 7fffffff
+x /s y = 0
+x %s y = ffffffffffffffff
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 0
+x & y = 80000000
+x | y = ffffffffffffffff
+x ^ y = ffffffff7fffffff
+x << i = ffffffffffffffff
+x >>u i = ffffffffffffffff
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = ffffffffffffffff
+y = 62354cda6226d1f3
+-x = 1
+x + y = 62354cda6226d1f2
+x - y = 9dcab3259dd92e0c
+x * y = 9dcab3259dd92e0d
+x /u y = 2
+x %u y = 3b95664b3bb25c19
+x /s y = 0
+x %s y = ffffffffffffffff
+x /u y2 = 29b51243c
+x %u y2 = 2db954e7
+x /s y3 = 0
+x %s y3 = ffffffffffffffff
+~x = 0
+x & y = 62354cda6226d1f3
+x | y = ffffffffffffffff
+x ^ y = 9dcab3259dd92e0c
+x << i = fff8000000000000
+x >>u i = 1fff
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43f0000000000000
+dtou f = 68db8bac710cb
+stod x = bff0000000000000
+dtos f = 0
+
+x = 8f947f36d0d0f606
+y = ffffffffffffffff
+-x = 706b80c92f2f09fa
+x + y = 8f947f36d0d0f605
+x - y = 8f947f36d0d0f607
+x * y = 706b80c92f2f09fa
+x /u y = 0
+x %u y = 8f947f36d0d0f606
+x /s y = 706b80c92f2f09fa
+x %s y = 0
+x /u y2 = 8f947f37
+x %u y2 = 6065753d
+x /s y3 = 706b80c92f2f09fa
+x %s y3 = 0
+~x = 706b80c92f2f09f9
+x & y = 8f947f36d0d0f606
+x | y = ffffffffffffffff
+x ^ y = 706b80c92f2f09f9
+x << i = 0
+x >>u i = 1
+x >>s i = ffffffffffffffff
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e1f28fe6da1a1f
+dtou f = 3acf760d70f97
+stod x = c3dc1ae0324bcbc2
+dtos f = fffd1f3ea60ffecc
+
+x = 7fffffff
+y = 0
+-x = ffffffff80000001
+x + y = 7fffffff
+x - y = 7fffffff
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff80000000
+x & y = 0
+x | y = 7fffffff
+x ^ y = 7fffffff
+x << i = 7fffffff
+x >>u i = 7fffffff
+x >>s i = 7fffffff
+x cmpu y = gt
+x cmps y = gt
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 7fffffff
+y = 1
+-x = ffffffff80000001
+x + y = 80000000
+x - y = 7ffffffe
+x * y = 7fffffff
+x /u y = 7fffffff
+x %u y = 0
+x /s y = 7fffffff
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff80000000
+x & y = 1
+x | y = 7fffffff
+x ^ y = 7ffffffe
+x << i = fffffffe
+x >>u i = 3fffffff
+x >>s i = 3fffffff
+x cmpu y = gt
+x cmps y = gt
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 7fffffff
+y = ffffffffffffffff
+-x = ffffffff80000001
+x + y = 7ffffffe
+x - y = 80000000
+x * y = ffffffff80000001
+x /u y = 0
+x %u y = 7fffffff
+x /s y = ffffffff80000001
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 7fffffff
+x /s y3 = ffffffff80000001
+x %s y3 = 0
+~x = ffffffff80000000
+x & y = 7fffffff
+x | y = ffffffffffffffff
+x ^ y = ffffffff80000000
+x << i = 8000000000000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 7fffffff
+y = 7fffffff
+-x = ffffffff80000001
+x + y = fffffffe
+x - y = 0
+x * y = 3fffffff00000001
+x /u y = 1
+x %u y = 0
+x /s y = 1
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff80000000
+x & y = 7fffffff
+x | y = 7fffffff
+x ^ y = 0
+x << i = 8000000000000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = eq
+x cmps y = eq
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 7fffffff
+y = 80000000
+-x = ffffffff80000001
+x + y = ffffffff
+x - y = ffffffffffffffff
+x * y = 3fffffff80000000
+x /u y = 0
+x %u y = 7fffffff
+x /s y = 0
+x %s y = 7fffffff
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff80000000
+x & y = 0
+x | y = ffffffff
+x ^ y = ffffffff
+x << i = 7fffffff
+x >>u i = 7fffffff
+x >>s i = 7fffffff
+x cmpu y = lt
+x cmps y = lt
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 7fffffff
+y = 144093704fadba5d
+-x = ffffffff80000001
+x + y = 14409370cfadba5c
+x - y = ebbf6c90305245a2
+x * y = 139649be305245a3
+x /u y = 0
+x %u y = 7fffffff
+x /s y = 0
+x %s y = 7fffffff
+x /u y2 = 6
+x %u y2 = 67c8b5f
+x /s y3 = 6
+x %s y3 = 67c8b5f
+~x = ffffffff80000000
+x & y = 4fadba5d
+x | y = 144093707fffffff
+x ^ y = 14409370305245a2
+x << i = fffffffe0000000
+x >>u i = 3
+x >>s i = 3
+x cmpu y = lt
+x cmps y = lt
+utod x = 41dfffffffc00000
+dtou f = 346dc
+stod x = 41dfffffffc00000
+dtos f = 346dc
+
+x = 5b21778e3c8666a8
+y = 7fffffff
+-x = a4de8871c3799958
+x + y = 5b21778ebc8666a7
+x - y = 5b21778dbc8666a9
+x * y = c321bbc5c3799958
+x /u y = b642ef1d
+x %u y = 72c955c5
+x /s y = b642ef1d
+x %s y = 72c955c5
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = a4de8871c3799957
+x & y = 3c8666a8
+x | y = 5b21778e7fffffff
+x ^ y = 5b21778e43799957
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d6c85de38f219a
+dtou f = 2553bfeb9de93
+stod x = 43d6c85de38f219a
+dtos f = 2553bfeb9de93
+
+x = 80000000
+y = 0
+-x = ffffffff80000000
+x + y = 80000000
+x - y = 80000000
+x * y = 0
+x /u y = 0
+x %u y = 0
+x /s y = 0
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff7fffffff
+x & y = 0
+x | y = 80000000
+x ^ y = 80000000
+x << i = 80000000
+x >>u i = 80000000
+x >>s i = 80000000
+x cmpu y = gt
+x cmps y = gt
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 80000000
+y = 1
+-x = ffffffff80000000
+x + y = 80000001
+x - y = 7fffffff
+x * y = 80000000
+x /u y = 80000000
+x %u y = 0
+x /s y = 80000000
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff7fffffff
+x & y = 0
+x | y = 80000001
+x ^ y = 80000001
+x << i = 100000000
+x >>u i = 40000000
+x >>s i = 40000000
+x cmpu y = gt
+x cmps y = gt
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 80000000
+y = ffffffffffffffff
+-x = ffffffff80000000
+x + y = 7fffffff
+x - y = 80000001
+x * y = ffffffff80000000
+x /u y = 0
+x %u y = 80000000
+x /s y = ffffffff80000000
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 80000000
+x /s y3 = ffffffff80000000
+x %s y3 = 0
+~x = ffffffff7fffffff
+x & y = 80000000
+x | y = ffffffffffffffff
+x ^ y = ffffffff7fffffff
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 80000000
+y = 7fffffff
+-x = ffffffff80000000
+x + y = ffffffff
+x - y = 1
+x * y = 3fffffff80000000
+x /u y = 1
+x %u y = 1
+x /s y = 1
+x %s y = 1
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff7fffffff
+x & y = 0
+x | y = ffffffff
+x ^ y = ffffffff
+x << i = 0
+x >>u i = 0
+x >>s i = 0
+x cmpu y = gt
+x cmps y = gt
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 80000000
+y = 80000000
+-x = ffffffff80000000
+x + y = 100000000
+x - y = 0
+x * y = 4000000000000000
+x /u y = 1
+x %u y = 0
+x /s y = 1
+x %s y = 0
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = ffffffff7fffffff
+x & y = 80000000
+x | y = 80000000
+x ^ y = 0
+x << i = 80000000
+x >>u i = 80000000
+x >>s i = 80000000
+x cmpu y = eq
+x cmps y = eq
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 80000000
+y = 7b985bc1e7bce4d7
+-x = ffffffff80000000
+x + y = 7b985bc267bce4d7
+x - y = 8467a43e98431b29
+x * y = f3de726b80000000
+x /u y = 0
+x %u y = 80000000
+x /s y = 0
+x %s y = 80000000
+x /u y2 = 1
+x %u y2 = 467a43f
+x /s y3 = 1
+x %s y3 = 467a43f
+~x = ffffffff7fffffff
+x & y = 80000000
+x | y = 7b985bc1e7bce4d7
+x ^ y = 7b985bc167bce4d7
+x << i = 40000000000000
+x >>u i = 100
+x >>s i = 100
+x cmpu y = lt
+x cmps y = lt
+utod x = 41e0000000000000
+dtou f = 346dc
+stod x = 41e0000000000000
+dtos f = 346dc
+
+x = 7252e9376e45641a
+y = 80000000
+-x = 8dad16c891ba9be6
+x + y = 7252e937ee45641a
+x - y = 7252e936ee45641a
+x * y = b722b20d00000000
+x /u y = e4a5d26e
+x %u y = 6e45641a
+x /s y = e4a5d26e
+x %s y = 6e45641a
+x /u y2 = 0
+x %u y2 = 0
+x /s y3 = 0
+x %s y3 = 0
+~x = 8dad16c891ba9be5
+x & y = 0
+x | y = 7252e937ee45641a
+x ^ y = 7252e937ee45641a
+x << i = 7252e9376e45641a
+x >>u i = 7252e9376e45641a
+x >>s i = 7252e9376e45641a
+x cmpu y = gt
+x cmps y = gt
+utod x = 43dc94ba4ddb9159
+dtou f = 2ed3ba0c0e099
+stod x = 43dc94ba4ddb9159
+dtos f = 2ed3ba0c0e099
+
+x = a220229ec164ffe1
+y = 5d7d4da4cb0e1adc
+-x = 5ddfdd613e9b001f
+x + y = ff9d70438c731abd
+x - y = 44a2d4f9f656e505
+x * y = 52b323a3de16bf5c
+x /u y = 1
+x %u y = 44a2d4f9f656e505
+x /s y = ffffffffffffffff
+x %s y = ff9d70438c731abd
+x /u y2 = 1bbf1cb77
+x %u y2 = c30dca5
+x /s y3 = fffffffefef21c87
+x %s y3 = ffffffffa2cb1e65
+~x = 5ddfdd613e9b001e
+x & y = 200084c1041ac0
+x | y = ff7d6fbecb6efffd
+x ^ y = ff5d6f3a0a6ae53d
+x << i = ec164ffe10000000
+x >>u i = a220229ec
+x >>s i = fffffffa220229ec
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e4440453d82ca0
+dtou f = 42681802c45c2
+stod x = c3d777f7584fa6c0
+dtos f = fffd98c8c56534f8
+
+x = c73aa0d9a415dfb
+y = 18e9107ab99b8b6e
+-x = f38c55f265bea205
+x + y = 255cba8853dce969
+x - y = f38a9992e0a5d28d
+x * y = 9c3790b61016aada
+x /u y = 0
+x %u y = c73aa0d9a415dfb
+x /s y = 0
+x %s y = c73aa0d9a415dfb
+x /u y2 = 7ff714a4
+x %u y2 = 3f347d3
+x /s y3 = 7ff714a4
+x %s y3 = 3f347d3
+~x = f38c55f265bea204
+x & y = 86100089801096a
+x | y = 1cfbba7fbbdbdfff
+x ^ y = 149aba7723dad695
+x << i = 577ec00000000000
+x >>u i = 31ce
+x >>s i = 31ce
+x cmpu y = lt
+x cmps y = lt
+utod x = 43a8e7541b3482bc
+dtou f = 519aad330d8d
+stod x = 43a8e7541b3482bc
+dtos f = 519aad330d8d
+
+x = e9bcd26890f095a5
+y = 329cb23ce0f7aa50
+-x = 16432d976f0f6a5b
+x + y = 1c5984a571e83ff5
+x - y = b720202baff8eb55
+x * y = 9b6d58a9d0c15590
+x /u y = 4
+x %u y = 1f4a09750d11ec65
+x /s y = 0
+x %s y = e9bcd26890f095a5
+x /u y2 = 49e436778
+x %u y2 = 1e12e585
+x /s y3 = ffffffff8f651a9c
+x %s y3 = fffffffff9ade115
+~x = 16432d976f0f6a5a
+x & y = 209c922880f08000
+x | y = fbbcf27cf0f7bff5
+x ^ y = db20605470073ff5
+x << i = d26890f095a50000
+x >>u i = e9bcd26890f0
+x >>s i = ffffe9bcd26890f0
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ed379a4d121e13
+dtou f = 5fbd298972a9d
+stod x = c3b6432d976f0f6a
+dtos f = ffff6e19ddd019d2
+
+x = 8362aa9340fe215f
+y = f986342416ec8002
+-x = 7c9d556cbf01dea1
+x + y = 7ce8deb757eaa161
+x - y = 89dc766f2a11a15d
+x * y = e4a2b426803fc2be
+x /u y = 0
+x %u y = 8362aa9340fe215f
+x /s y = 13
+x %s y = fe6ccbe58d70a139
+x /u y2 = 86cb918b
+x %u y2 = 910b6dd3
+x /s y3 = 133e437097
+x %s y3 = fffffffffe99a023
+~x = 7c9d556cbf01dea0
+x & y = 8102200000ec0002
+x | y = fbe6beb756fea15f
+x ^ y = 7ae49eb75612a15d
+x << i = d8aaa4d03f8857c
+x >>u i = 20d8aaa4d03f8857
+x >>s i = e0d8aaa4d03f8857
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e06c5552681fc4
+dtou f = 35d0c262d14d7
+stod x = c3df27555b2fc078
+dtos f = fffccf536b66040d
+
+x = 368083376ba4ffa9
+y = 6912b247b79a4904
+-x = c97f7cc8945b0057
+x + y = 9f93357f233f48ad
+x - y = cd6dd0efb40ab6a5
+x * y = ec1ef87256252fa4
+x /u y = 0
+x %u y = 368083376ba4ffa9
+x /s y = 0
+x %s y = 368083376ba4ffa9
+x /u y2 = 84c9e8f3
+x %u y2 = 27966e44
+x /s y3 = 84c9e8f3
+x %s y3 = 27966e44
+~x = c97f7cc8945b0056
+x & y = 2000820723804900
+x | y = 7f92b377ffbeffad
+x ^ y = 5f923170dc3eb6ad
+x << i = 68083376ba4ffa90
+x >>u i = 368083376ba4ffa
+x >>s i = 368083376ba4ffa
+x cmpu y = lt
+x cmps y = lt
+utod x = 43cb40419bb5d280
+dtou f = 1652f2fb41ccc
+stod x = 43cb40419bb5d280
+dtos f = 1652f2fb41ccc
+
+x = aefab65d77135303
+y = bfc7666ab0ba95d6
+-x = 510549a288ecacfd
+x + y = 6ec21cc827cde8d9
+x - y = ef334ff2c658bd2d
+x * y = b8e736ca29a62382
+x /u y = 0
+x %u y = aefab65d77135303
+x /s y = 1
+x %s y = ef334ff2c658bd2d
+x /u y2 = e9932394
+x %u y2 = bed9fbb
+x /s y3 = 142f786e7
+x %s y3 = ffffffffe6446d5d
+~x = 510549a288ecacfc
+x & y = aec2264830121102
+x | y = bffff67ff7bbd7d7
+x ^ y = 113dd037c7a9c6d5
+x << i = 975dc4d4c0c00000
+x >>u i = 2bbead975dc
+x >>s i = fffffebbead975dc
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e5df56cbaee26a
+dtou f = 47abea07f9115
+stod x = c3d4415268a23b2b
+dtos f = fffded05e5b8804b
+
+x = dec3f99f561701ed
+y = 307892d5fe586af8
+-x = 213c0660a9e8fe13
+x + y = f3c8c75546f6ce5
+x - y = ae4b66c957be96f5
+x * y = f0bbfc03bc8dff98
+x /u y = 4
+x %u y = 1ce1ae475cb5560d
+x /s y = 0
+x %s y = dec3f99f561701ed
+x /u y2 = 49889cbcc
+x %u y2 = d961931
+x /s y3 = ffffffff5078c8f7
+x %s y3 = fffffffffb32ee6a
+~x = 213c0660a9e8fe12
+x & y = 10409095561000e8
+x | y = fefbfbdffe5f6bfd
+x ^ y = eebb6b4aa84f6b15
+x << i = ed00000000000000
+x >>u i = de
+x >>s i = ffffffffffffffde
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ebd87f33eac2e0
+dtou f = 5b3ea899bcdcc
+stod x = c3c09e033054f47f
+dtos f = ffff2631ced4bd02
+
+x = 7c15eb1a6c5b56e7
+y = 74078c767c0560ea
+-x = 83ea14e593a4a919
+x + y = f01d7790e860b7d1
+x - y = 80e5ea3f055f5fd
+x * y = fa248d23e2970f26
+x /u y = 1
+x %u y = 80e5ea3f055f5fd
+x /s y = 1
+x %s y = 80e5ea3f055f5fd
+x /u y2 = 111c647a7
+x %u y2 = 2a35fbed
+x /s y3 = 111c647a7
+x %s y3 = 2a35fbed
+~x = 83ea14e593a4a918
+x & y = 740588126c0140e2
+x | y = 7c17ef7e7c5f76ef
+x ^ y = 812676c105e360d
+x << i = 6d5b9c0000000000
+x >>u i = 1f057a
+x >>s i = 1f057a
+x cmpu y = gt
+x cmps y = gt
+utod x = 43df057ac69b16d6
+dtou f = 32d351f657ccf
+stod x = 43df057ac69b16d6
+dtos f = 32d351f657ccf
+
+x = 2d2acce24f9fa071
+y = 6f47682e14d3c42c
+-x = d2d5331db0605f8f
+x + y = 9c7235106473649d
+x - y = bde364b43acbdc45
+x * y = bb2c5143f769176c
+x /u y = 0
+x %u y = 2d2acce24f9fa071
+x /s y = 0
+x %s y = 2d2acce24f9fa071
+x /u y2 = 67e883b7
+x %u y2 = 4d949d8f
+x /s y3 = 67e883b7
+x %s y3 = 4d949d8f
+~x = d2d5331db0605f8e
+x & y = 2d02482204938020
+x | y = 6f6fecee5fdfe47d
+x ^ y = 426da4cc5b4c645d
+x << i = fa07100000000000
+x >>u i = 2d2ac
+x >>s i = 2d2ac
+x cmpu y = lt
+x cmps y = lt
+utod x = 43c695667127cfd0
+dtou f = 12801f7ddfe5a
+stod x = 43c695667127cfd0
+dtos f = 12801f7ddfe5a
+
+x = 13621127ec8ed10b
+y = 9a109dfc559db53e
+-x = ec9deed813712ef5
+x + y = ad72af24422c8649
+x - y = 7951732b96f11bcd
+x * y = f06266bf1f2267aa
+x /u y = 0
+x %u y = 13621127ec8ed10b
+x /s y = 0
+x %s y = 13621127ec8ed10b
+x /u y2 = 203527d3
+x %u y2 = 339f3657
+x /s y3 = ffffffffcf52411e
+x %s y3 = 47c75183
+~x = ec9deed813712ef4
+x & y = 12001124448c910a
+x | y = 9b729dfffd9ff53f
+x ^ y = 89728cdbb9136435
+x << i = c000000000000000
+x >>u i = 0
+x >>s i = 0
+x cmpu y = lt
+x cmps y = gt
+utod x = 43b3621127ec8ed1
+dtou f = 7f076703304d
+stod x = 43b3621127ec8ed1
+dtos f = 7f076703304d
+
+x = 4ab009d226201f35
+y = da130a0806148a0
+-x = b54ff62dd9dfe0cb
+x + y = 58513a72a68167d5
+x - y = 3d0ed931a5bed695
+x * y = 27bc30f72fef6920
+x /u y = 5
+x %u y = 68a16afa439b415
+x /s y = 5
+x %s y = 68a16afa439b415
+x /u y2 = 57ad3b593
+x %u y2 = 7501355
+x /s y3 = 57ad3b593
+x %s y3 = 7501355
+~x = b54ff62dd9dfe0ca
+x & y = 8a0008000200820
+x | y = 4fb139f2a6615fb5
+x ^ y = 47113972a6415795
+x << i = 26201f3500000000
+x >>u i = 4ab009d2
+x >>s i = 4ab009d2
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d2ac0274898808
+dtou f = 1e979155aadac
+stod x = 43d2ac0274898808
+dtos f = 1e979155aadac
+
+x = a8f485b490a8a56f
+y = 2dd1b3c84cb9a6d2
+-x = 570b7a4b6f575a91
+x + y = d6c6397cdd624c41
+x - y = 7b22d1ec43eefe9d
+x * y = e3c43aa086d4af0e
+x /u y = 3
+x %u y = 1f7f6a5baa7bb0f9
+x /s y = ffffffffffffffff
+x %s y = d6c6397cdd624c41
+x /u y2 = 3affbc857
+x %u y2 = 2cd84c77
+x /s y3 = fffffffe19aa1e7c
+x %s y3 = ffffffffe134208f
+~x = 570b7a4b6f575a90
+x & y = 28d0818000a8a442
+x | y = adf5b7fcdcb9a7ff
+x ^ y = 8525367cdc1103bd
+x << i = 16d242a295bc0000
+x >>u i = 2a3d216d242a
+x >>s i = ffffea3d216d242a
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e51e90b6921515
+dtou f = 45343bae4fbb7
+stod x = c3d5c2de92dbd5d7
+dtos f = fffdc58b001deaec
+
+x = ac82b442fe060239
+y = ba09c177d0bd2c54
+-x = 537d4bbd01f9fdc7
+x + y = 668c75bacec32e8d
+x - y = f278f2cb2d48d5e5
+x * y = b0321761566f86b4
+x /u y = 0
+x %u y = ac82b442fe060239
+x /s y = 1
+x %s y = f278f2cb2d48d5e5
+x /u y2 = ed62a033
+x %u y2 = 9a9c1784
+x /s y3 = 1317fc5dc
+x %s y3 = ffffffffdaba2cf5
+~x = 537d4bbd01f9fdc6
+x & y = a8008042d0040010
+x | y = be8bf577febf2e7d
+x ^ y = 168b75352ebb2e6d
+x << i = 442fe06023900000
+x >>u i = ac82b442fe0
+x >>s i = fffffac82b442fe0
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e59056885fc0c0
+dtou f = 46a90b2a98617
+stod x = c3d4df52ef407e7f
+dtos f = fffddcd7f7e2754d
+
+x = b18070243e89f813
+y = 8b9a402e6ec889a6
+-x = 4e7f8fdbc17607ed
+x + y = 3d1ab052ad5281b9
+x - y = 25e62ff5cfc16e6d
+x * y = 4bb994c45c110752
+x /u y = 1
+x %u y = 25e62ff5cfc16e6d
+x /s y = 0
+x %s y = b18070243e89f813
+x /u y2 = 1457fa721
+x %u y2 = 62f7b025
+x /s y3 = aca563d9
+x %s y3 = fffffffffc51c715
+~x = 4e7f8fdbc17607ec
+x & y = 818040242e888802
+x | y = bb9a702e7ec9f9b7
+x ^ y = 3a1a300a504171b5
+x << i = a27e04c000000000
+x >>u i = 2c601c0
+x >>s i = fffffffffec601c0
+x cmpu y = gt
+x cmps y = gt
+utod x = 43e6300e0487d13f
+dtou f = 48b46746f5fb1
+stod x = c3d39fe3f6f05d82
+dtos f = fffdfd8db9a84ee6
+
+x = 81dc3a61528f0d7d
+y = 20670ecc67fee348
+-x = 7e23c59ead70f283
+x + y = a243492dba8df0c5
+x - y = 61752b94ea902a35
+x * y = 8c82c58cbe37a228
+x /u y = 4
+x %u y = 3fff2fb293805d
+x /s y = fffffffffffffffd
+x %s y = e31166c68a8bb755
+x /u y2 = 401f99d2e
+x %u y2 = 1b8b48d5
+x /s y3 = fffffffc1b6b5e46
+x %s y3 = ffffffffebae19b5
+~x = 7e23c59ead70f282
+x & y = 440a40428e0148
+x | y = a1ff3eed77ffef7d
+x ^ y = a1bb34ad3571ee35
+x << i = dc3a61528f0d7d00
+x >>u i = 81dc3a61528f0d
+x >>s i = ff81dc3a61528f0d
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e03b874c2a51e2
+dtou f = 3530d5f787ce7
+stod x = c3df88f167ab5c3d
+dtos f = fffcc554a4b16c1d
+
+x = 148943805ade2cf7
+y = b623237a886f1ba
+-x = eb76bc7fa521d309
+x + y = 1feb75b803651eb1
+x - y = 9271148b2573b3d
+x * y = 732a25abcf0b3276
+x /u y = 1
+x %u y = 9271148b2573b3d
+x /s y = 1
+x %s y = 9271148b2573b3d
+x /u y2 = 1cdd42781
+x %u y2 = 8307e40
+x /s y3 = 1cdd42781
+x %s y3 = 8307e40
+~x = eb76bc7fa521d308
+x & y = 200088620b2
+x | y = 1feb73b7fadefdff
+x ^ y = 1feb71b7f258dd4d
+x << i = dc00000000000000
+x >>u i = 5
+x >>s i = 5
+x cmpu y = gt
+x cmps y = gt
+utod x = 43b48943805ade2d
+dtou f = 869600d40a9a
+stod x = 43b48943805ade2d
+dtos f = 869600d40a9a
+
+x = 3596d7e2724d4501
+y = 200951a3d9cd217c
+-x = ca69281d8db2baff
+x + y = 55a029864c1a667d
+x - y = 158d863e98802385
+x * y = 12f0a6c6e1f8d7c
+x /u y = 1
+x %u y = 158d863e98802385
+x /s y = 1
+x %s y = 158d863e98802385
+x /u y2 = 1ac3a0a48
+x %u y2 = f8ff129
+x /s y3 = 1ac3a0a48
+x %s y3 = f8ff129
+~x = ca69281d8db2bafe
+x & y = 200051a2504d0100
+x | y = 359fd7e3fbcd657d
+x ^ y = 159f8641ab80647d
+x << i = 1000000000000000
+x >>u i = 3
+x >>s i = 3
+x cmpu y = gt
+x cmps y = gt
+utod x = 43cacb6bf13926a3
+dtou f = 15f33cfbad626
+stod x = 43cacb6bf13926a3
+dtos f = 15f33cfbad626
+
+x = 8364db7a513ee81b
+y = 39c53d919052b30e
+-x = 7c9b2485aec117e5
+x + y = bd2a190be1919b29
+x - y = 499f9de8c0ec350d
+x * y = 7192d67ff661927a
+x /u y = 2
+x %u y = fda6057309981ff
+x /s y = fffffffffffffffe
+x %s y = f6ef569d71e44e37
+x /u y2 = 2464000e3
+x %u y2 = d195088
+x /s y3 = fffffffdd7d46212
+x %s y3 = fffffffffcbb11e9
+~x = 7c9b2485aec117e4
+x & y = 14419101012a00a
+x | y = bbe5fffbd17efb1f
+x ^ y = baa1e6ebc16c5b15
+x << i = 36de944fba06c000
+x >>u i = 20d936de944fb
+x >>s i = fffe0d936de944fb
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e06c9b6f4a27dd
+dtou f = 35d1a821b799f
+stod x = c3df26c9216bb046
+dtos f = fffccf61c75468d5
+
+x = ca6ee36ebbeaecc5
+y = 7fe0e5d6d5d1daf0
+-x = 35911c914415133b
+x + y = 4a4fc94591bcc7b5
+x - y = 4a8dfd97e61911d5
+x * y = 28f18b4f6fb2bab0
+x /u y = 1
+x %u y = 4a8dfd97e61911d5
+x /s y = 0
+x %s y = ca6ee36ebbeaecc5
+x /u y2 = 195403f42
+x %u y2 = 67e00199
+x /s y3 = ffffffff94c3b859
+x %s y3 = ffffffffd787355f
+~x = 35911c914415133a
+x & y = 4a60e14691c0c8c0
+x | y = ffeee7fefffbfef5
+x ^ y = b58e06b86e3b3635
+x << i = ecc5000000000000
+x >>u i = ca6e
+x >>s i = ffffffffffffca6e
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e94ddc6dd77d5e
+dtou f = 52eaa7b41d752
+stod x = c3cac88e48a20a8a
+dtos f = fffea0f1c07ac687
+
+x = e9872a956980d7f
+y = 5abe9b0d2dbee1a2
+-x = f1678d56a967f281
+x + y = 69570db68456ef21
+x - y = b3d9d79c28d92bdd
+x * y = 374cf7f0c757295e
+x /u y = 0
+x %u y = e9872a956980d7f
+x /s y = 0
+x %s y = e9872a956980d7f
+x /u y2 = 292cea58
+x %u y2 = 301cdf07
+x /s y3 = 292cea58
+x %s y3 = 301cdf07
+~x = f1678d56a967f280
+x & y = a98120904980122
+x | y = 5ebefbad7fbeedff
+x ^ y = 5426e9a47b26ecdd
+x << i = 5a6035fc00000000
+x >>u i = 3a61caa
+x >>s i = 3a61caa
+x cmpu y = lt
+x cmps y = lt
+utod x = 43ad30e552ad301b
+dtou f = 5fa72f57d2bd
+stod x = 43ad30e552ad301b
+dtos f = 5fa72f57d2bd
+
+x = cc90a3111f2e88c9
+y = fdb739ffd16e43a4
+-x = 336f5ceee0d17737
+x + y = ca47dd10f09ccc6d
+x - y = ced969114dc04525
+x * y = cba4570306fa3bc4
+x /u y = 0
+x %u y = cc90a3111f2e88c9
+x /s y = 16
+x %s y = fed1a7151fb4b8b1
+x /u y2 = ce682040
+x %u y2 = 8882909
+x /s y3 = 16845c4311
+x %s y3 = fffffffffe31f1da
+~x = 336f5ceee0d17736
+x & y = cc902111112e0080
+x | y = fdb7bbffdf6ecbed
+x ^ y = 31279aeece40cb6d
+x << i = f2e88c9000000000
+x >>u i = cc90a31
+x >>s i = fffffffffcc90a31
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e992146223e5d1
+dtou f = 53ca3196c85e7
+stod x = c3c9b7ae777068bc
+dtos f = fffeaeea5ea5751c
+
+x = f6d06b7289cbc123
+y = f78231121267d176
+-x = 92f948d76343edd
+x + y = ee529c849c339299
+x - y = ff4e3a607763efad
+x * y = bda1155007ad9922
+x /u y = 0
+x %u y = f6d06b7289cbc123
+x /s y = 1
+x %s y = ff4e3a607763efad
+x /u y2 = ff48210c
+x %u y2 = 6c4e224b
+x /s y3 = 114ef78ac
+x %s y3 = ffffffffff84590b
+~x = 92f948d76343edc
+x & y = f68021120043c122
+x | y = f7d27b729befd177
+x ^ y = 1525a609bac1055
+x << i = 48c0000000000000
+x >>u i = 3db
+x >>s i = ffffffffffffffdb
+x cmpu y = lt
+x cmps y = lt
+utod x = 43eeda0d6e513978
+dtou f = 6518569bde544
+stod x = c3a25f291aec687e
+dtos f = ffffc3ccaef6d47a
+
+x = 1f75e527a63edd0d
+y = cab61a6fe4aecf98
+-x = e08a1ad859c122f3
+x + y = ea2bff978aedaca5
+x - y = 54bfcab7c1900d75
+x * y = f44145345ce6c2b8
+x /u y = 0
+x %u y = 1f75e527a63edd0d
+x /s y = 0
+x %s y = 1f75e527a63edd0d
+x /u y2 = 27bb1964
+x %u y2 = 7672b2b1
+x /s y3 = ffffffff68dce4e4
+x %s y3 = 1d207631
+~x = e08a1ad859c122f2
+x & y = a340027a42ecd08
+x | y = dff7ff6fe6bedf9d
+x ^ y = d5c3ff4842901295
+x << i = 27a63edd0d000000
+x >>u i = 1f75e527a6
+x >>s i = 1f75e527a6
+x cmpu y = lt
+x cmps y = gt
+utod x = 43bf75e527a63edd
+dtou f = ce2e01d58fbd
+stod x = 43bf75e527a63edd
+dtos f = ce2e01d58fbd
+
+x = 67d900b4d6966707
+y = 2953a6185807168a
+-x = 9826ff4b296998f9
+x + y = 912ca6cd2e9d7d91
+x - y = 3e855a9c7e8f507d
+x * y = faecb01bd31f23c6
+x /u y = 2
+x %u y = 1531b484268839f3
+x /s y = 2
+x %s y = 1531b484268839f3
+x /u y2 = 28349b7ce
+x %u y2 = 24b397b7
+x /s y3 = 28349b7ce
+x %s y3 = 24b397b7
+~x = 9826ff4b296998f8
+x & y = 2151001050060602
+x | y = 6fdba6bcde97778f
+x ^ y = 4e8aa6ac8e91718d
+x << i = 6402d35a599c1c00
+x >>u i = 19f6402d35a599
+x >>s i = 19f6402d35a599
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d9f6402d35a59a
+dtou f = 2a893795d8eb4
+stod x = 43d9f6402d35a59a
+dtos f = 2a893795d8eb4
+
+x = 89d196850b26ed91
+y = 756ef4168e7f32cc
+-x = 762e697af4d9126f
+x + y = ff408a9b99a6205d
+x - y = 1462a26e7ca7bac5
+x * y = a3aeacbec65aa18c
+x /u y = 1
+x %u y = 1462a26e7ca7bac5
+x /s y = ffffffffffffffff
+x %s y = ff408a9b99a6205d
+x /u y2 = 12c706881
+x %u y2 = 3974fe7b
+x /s y3 = fffffffefe5ea0d2
+x %s y3 = ffffffffe980f385
+~x = 762e697af4d9126e
+x & y = 14094040a262080
+x | y = fdfff6978f7fffdd
+x ^ y = fcbf62938559df5d
+x << i = 196850b26ed91000
+x >>u i = 89d196850b26e
+x >>s i = fff89d196850b26e
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e13a32d0a164de
+dtou f = 387356a372c01
+stod x = c3dd8b9a5ebd3645
+dtos f = fffcf97caf701b36
+
+x = 25ea5203eb2a32b
+y = d27bb23d57c784de
+-x = fda15adfc14d5cd5
+x + y = d4da575d967a2809
+x - y = 2fe2f2e2e6eb1e4d
+x * y = fe450bd9ee78ab4a
+x /u y = 0
+x %u y = 25ea5203eb2a32b
+x /s y = 0
+x %s y = 25ea5203eb2a32b
+x /u y2 = 2e1d4dc
+x %u y2 = cb2df2bf
+x /s y3 = fffffffff2ac0c93
+x %s y3 = 2a546e24
+~x = fda15adfc14d5cd4
+x & y = 25aa0201682800a
+x | y = d27fb73d7ff7a7ff
+x ^ y = d025171d697527f5
+x << i = faca8cac0000000
+x >>u i = 97a9480
+x >>s i = 97a9480
+x cmpu y = lt
+x cmps y = gt
+utod x = 4382f52901f59519
+dtou f = f87b5758598
+stod x = 4382f52901f59519
+dtos f = f87b5758598
+
+x = 57e7846b9d99fe55
+y = 933550ac541e6140
+-x = a8187b94626601ab
+x + y = eb1cd517f1b85f95
+x - y = c4b233bf497b9d15
+x * y = eb523a71d3ca40
+x /u y = 0
+x %u y = 57e7846b9d99fe55
+x /s y = 0
+x %s y = 57e7846b9d99fe55
+x /u y2 = 98de5aed
+x %u y2 = 81b9d719
+x /s y3 = ffffffff312686c0
+x %s y3 = 67db7555
+~x = a8187b94626601aa
+x & y = 1325002814186040
+x | y = d7f7d4efdd9fff55
+x ^ y = c4d2d4c7c9879f15
+x << i = 57e7846b9d99fe55
+x >>u i = 57e7846b9d99fe55
+x >>s i = 57e7846b9d99fe55
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d5f9e11ae76680
+dtou f = 240170cfeb5b5
+stod x = 43d5f9e11ae76680
+dtos f = 240170cfeb5b5
+
+x = 7f83a526d3d598f
+y = 3562759c2ed93072
+-x = f807c5ad92c2a671
+x + y = 3d5aafee9c168a01
+x - y = d295c4b63e64291d
+x * y = d607fa6cc253b1ae
+x /u y = 0
+x %u y = 7f83a526d3d598f
+x /s y = 0
+x %s y = 7f83a526d3d598f
+x /u y2 = 2637b00b
+x %u y2 = 4a30bdb
+x /s y3 = 2637b00b
+x %s y3 = 4a30bdb
+~x = f807c5ad92c2a670
+x & y = 56030102c191002
+x | y = 37fa7fde6ffd79ff
+x ^ y = 329a4fce43e469fd
+x << i = 663c000000000000
+x >>u i = 1fe
+x >>s i = 1fe
+x cmpu y = lt
+x cmps y = lt
+utod x = 439fe0e949b4f566
+dtou f = 343ad6486db4
+stod x = 439fe0e949b4f566
+dtos f = 343ad6486db4
+
+x = e2e88e05fcf79359
+y = 6d0fe1876fd28ef4
+-x = 1d1771fa03086ca7
+x + y = 4ff86f8d6cca224d
+x - y = 75d8ac7e8d250465
+x * y = e44e78efe5b5ced4
+x /u y = 2
+x %u y = 8c8caf71d527571
+x /s y = 0
+x %s y = e2e88e05fcf79359
+x /u y2 = 2149e9078
+x %u y2 = 3157ec11
+x /s y3 = ffffffffbbb6b39e
+x %s y3 = ffffffff9f7efd07
+~x = 1d1771fa03086ca6
+x & y = 600880056cd28250
+x | y = efefef87fff79ffd
+x ^ y = 8fe76f8293251dad
+x << i = 3590000000000000
+x >>u i = e2e
+x >>s i = fffffffffffffe2e
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ec5d11c0bf9ef2
+dtou f = 5cf112710b749
+stod x = c3bd1771fa03086d
+dtos f = ffff41586c49a67e
+
+x = d3099a8b859ae33
+y = 8fa8587c64456d46
+-x = f2cf665747a651cd
+x + y = 9cd8f2251c9f1b79
+x - y = 7d88412c541440ed
+x * y = 8cfd7b8c777058f2
+x /u y = 0
+x %u y = d3099a8b859ae33
+x /s y = 0
+x %s y = d3099a8b859ae33
+x /u y2 = 178126fd
+x %u y2 = 75bd3a7
+x /s y3 = ffffffffe1f1945e
+x %s y3 = 5ca580ab
+~x = f2cf665747a651cc
+x & y = d20182820412c02
+x | y = 8fb8d9fcfc5def77
+x ^ y = 8298c1d4dc1cc375
+x << i = 4c266a2e166b8cc0
+x >>u i = 34c266a2e166b8
+x >>s i = 34c266a2e166b8
+x cmpu y = lt
+x cmps y = gt
+utod x = 43aa61335170b35c
+dtou f = 5670e3244231
+stod x = 43aa61335170b35c
+dtos f = 5670e3244231
+
+x = b62ea5426a8f709d
+y = 31b8858d02dd2fe8
+-x = 49d15abd95708f63
+x + y = e7e72acf6d6ca085
+x - y = 84761fb567b240b5
+x * y = e22a9ef5933e148
+x /u y = 3
+x %u y = 2105149b61f7e0e5
+x /s y = ffffffffffffffff
+x %s y = e7e72acf6d6ca085
+x /u y2 = 3aa02d06b
+x %u y2 = 8d30eae
+x /s y3 = fffffffe83ee35ed
+x %s y3 = ffffffffdeff9c14
+~x = 49d15abd95708f62
+x & y = 30288500028d2088
+x | y = b7bea5cf6adf7ffd
+x ^ y = 879620cf68525f75
+x << i = 8f709d0000000000
+x >>u i = b62ea5
+x >>s i = ffffffffffb62ea5
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e6c5d4a84d51ee
+dtou f = 4a9f307066a12
+stod x = c3d27456af655c24
+dtos f = fffe1c3a4c3f5948
+
+x = 2e94ca71f5150517
+y = 5f844de64402cf5a
+-x = d16b358e0aeafae9
+x + y = 8e1918583917d471
+x - y = cf107c8bb11235bd
+x * y = 36454e6a4eaf6316
+x /u y = 0
+x %u y = 2e94ca71f5150517
+x /s y = 0
+x %s y = 2e94ca71f5150517
+x /u y2 = 7cd84df1
+x %u y2 = 1c098191
+x /s y3 = 7cd84df1
+x %s y3 = 1c098191
+~x = d16b358e0aeafae8
+x & y = e84486044000512
+x | y = 7f94cff7f517cf5f
+x ^ y = 71108797b117ca4d
+x << i = c7d454145c000000
+x >>u i = ba5329c7d
+x >>s i = ba5329c7d
+x cmpu y = lt
+x cmps y = lt
+utod x = 43c74a6538fa8a83
+dtou f = 131464f1a5831
+stod x = 43c74a6538fa8a83
+dtos f = 131464f1a5831
+
+x = 61bd0eb9b8259a21
+y = 134717f07eaef81c
+-x = 9e42f14647da65df
+x + y = 750426aa36d4923d
+x - y = 4e75f6c93976a205
+x * y = 780fa80f91dad39c
+x /u y = 5
+x %u y = 15997073ebac195
+x /s y = 5
+x %s y = 15997073ebac195
+x /u y2 = 511ed4ac8
+x %u y2 = 27f86a1
+x /s y3 = 511ed4ac8
+x %s y3 = 27f86a1
+~x = 9e42f14647da65de
+x & y = 10506b038249800
+x | y = 73ff1ff9feaffa3d
+x ^ y = 72fa1949c68b623d
+x << i = 9b8259a210000000
+x >>u i = 61bd0eb9b
+x >>s i = 61bd0eb9b
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d86f43ae6e0967
+dtou f = 2808a00a88ddd
+stod x = 43d86f43ae6e0967
+dtos f = 2808a00a88ddd
+
+x = 3b12fa08c18b023b
+y = 812e51fdc3492aae
+-x = c4ed05f73e74fdc5
+x + y = bc414c0684d42ce9
+x - y = b9e4a80afe41d78d
+x * y = 9f875459eeac321a
+x /u y = 0
+x %u y = 3b12fa08c18b023b
+x /s y = 0
+x %s y = 3b12fa08c18b023b
+x /u y2 = 751173e7
+x %u y2 = 4f1d5ff0
+x /s y3 = ffffffff88c0657c
+x %s y3 = 3027aaf
+~x = c4ed05f73e74fdc4
+x & y = 1025008c109022a
+x | y = bb3efbfdc3cb2abf
+x ^ y = ba3cabf502c22895
+x << i = c08ec00000000000
+x >>u i = ec4b
+x >>s i = ec4b
+x cmpu y = lt
+x cmps y = gt
+utod x = 43cd897d0460c581
+dtou f = 18325f0a8cb71
+stod x = 43cd897d0460c581
+dtos f = 18325f0a8cb71
+
+x = 341b83d316b653e5
+y = 5153bc26395bdb90
+-x = cbe47c2ce949ac1b
+x + y = 856f3ff950122f75
+x - y = e2c7c7acdd5a7855
+x * y = a24306a68fbb17d0
+x /u y = 0
+x %u y = 341b83d316b653e5
+x /s y = 0
+x %s y = 341b83d316b653e5
+x /u y2 = a405e4b4
+x %u y2 = 4f86312d
+x /s y3 = a405e4b4
+x %s y3 = 4f86312d
+~x = cbe47c2ce949ac1a
+x & y = 1013800210125380
+x | y = 755bbff73fffdbf5
+x ^ y = 65483ff52fed8875
+x << i = 83d316b653e50000
+x >>u i = 341b83d316b6
+x >>s i = 341b83d316b6
+x cmpu y = lt
+x cmps y = lt
+utod x = 43ca0dc1e98b5b2a
+dtou f = 1557dd8590e16
+stod x = 43ca0dc1e98b5b2a
+dtos f = 1557dd8590e16
+
+x = 605604a12949899f
+y = c5e6d8ea02259342
+-x = 9fa9fb5ed6b67661
+x + y = 263cdd8b2b6f1ce1
+x - y = 9a6f2bb72723f65d
+x * y = f1a33a4c00f6c7fe
+x /u y = 0
+x %u y = 605604a12949899f
+x /s y = ffffffffffffffff
+x %s y = 263cdd8b2b6f1ce1
+x /u y2 = 7c9e1383
+x %u y2 = 89a32be1
+x /s y3 = fffffffe57830a86
+x %s y3 = 83cdb23
+~x = 9fa9fb5ed6b67660
+x & y = 404600a000018102
+x | y = e5f6dceb2b6d9bdf
+x ^ y = a5b0dc4b2b6c1add
+x << i = 81581284a526267c
+x >>u i = 181581284a526267
+x >>s i = 181581284a526267
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d81581284a5262
+dtou f = 27759007077d8
+stod x = 43d81581284a5262
+dtos f = 27759007077d8
+
+x = 94e3e5e2497a21e9
+y = 6f2836d5614f0e44
+-x = 6b1c1a1db685de17
+x + y = 40c1cb7aac9302d
+x - y = 25bbaf0ce82b13a5
+x * y = eaf4c086f232bfe4
+x /u y = 1
+x %u y = 25bbaf0ce82b13a5
+x /s y = 0
+x %s y = 94e3e5e2497a21e9
+x /u y2 = 156e6b4cb
+x %u y2 = caae302
+x /s y3 = ffffffff09523710
+x %s y3 = ffffffffa5f4f199
+~x = 6b1c1a1db685de16
+x & y = 42024c0414a0040
+x | y = ffebf7f7697f2fed
+x ^ y = fbcbd33728352fad
+x << i = 4e3e5e2497a21e90
+x >>u i = 94e3e5e2497a21e
+x >>s i = f94e3e5e2497a21e
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e29c7cbc492f44
+dtou f = 3cfc45959f1ec
+stod x = c3dac706876da178
+dtos f = fffd420b9e92e122
+
+x = 2c62677ac7f4bf43
+y = 58ff1a48be4e5d16
+-x = d39d9885380b40bd
+x + y = 856181c386431c59
+x - y = d3634d3209a6622d
+x * y = dbdcaa8f18edc6c2
+x /u y = 0
+x %u y = 2c62677ac7f4bf43
+x /s y = 0
+x %s y = 2c62677ac7f4bf43
+x /u y2 = 7fac2866
+x %u y2 = 15d50693
+x /s y3 = 7fac2866
+x %s y3 = 15d50693
+~x = d39d9885380b40bc
+x & y = 862024886441d02
+x | y = 7cff7f7afffeff57
+x ^ y = 749d7d3279bae255
+x << i = deb1fd2fd0c00000
+x >>u i = b1899deb1f
+x >>s i = b1899deb1f
+x cmpu y = lt
+x cmps y = lt
+utod x = 43c63133bd63fa60
+dtou f = 122e0a6fbb2b5
+stod x = 43c63133bd63fa60
+dtos f = 122e0a6fbb2b5
+
+x = 54328cce0129c82d
+y = e66196f0c43f0438
+-x = abcd7331fed637d3
+x + y = 3a9423bec568cc65
+x - y = 6dd0f5dd3ceac3f5
+x * y = 6e5b53cf9f577dd8
+x /u y = 0
+x %u y = 54328cce0129c82d
+x /s y = fffffffffffffffd
+x %s y = 75751a04de6d4d5
+x /u y2 = 5d8f7413
+x %u y2 = 2f76d45d
+x /s y3 = fffffffcb6a49899
+x %s y3 = d7812bd
+~x = abcd7331fed637d2
+x & y = 442084c000290028
+x | y = f6739efec53fcc3d
+x ^ y = b2531a3ec516cc15
+x << i = 2d00000000000000
+x >>u i = 54
+x >>s i = 54
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d50ca333804a72
+dtou f = 227cbe624e4ce
+stod x = 43d50ca333804a72
+dtos f = 227cbe624e4ce
+
+x = 764480f2ce2b0727
+y = e847cd7a4b371c2a
+-x = 89bb7f0d31d4f8d9
+x + y = 5e8c4e6d19622351
+x - y = 8dfcb37882f3eafd
+x * y = c4f5404f7e387066
+x /u y = 0
+x %u y = 764480f2ce2b0727
+x /s y = fffffffffffffffc
+x %s y = 1763b6dbfb0777cf
+x /u y2 = 82583705
+x %u y2 = 41aecdc5
+x /s y3 = fffffffb038fcf10
+x %s y3 = 5628987
+~x = 89bb7f0d31d4f8d8
+x & y = 604480724a230422
+x | y = fe47cdfacf3f1f2f
+x ^ y = 9e034d88851c1b0d
+x << i = ac1c9c0000000000
+x >>u i = 1d9120
+x >>s i = 1d9120
+x cmpu y = lt
+x cmps y = gt
+utod x = 43dd91203cb38ac2
+dtou f = 30714183cfbc6
+stod x = 43dd91203cb38ac2
+dtos f = 30714183cfbc6
+
+x = 86e8642063824ab1
+y = 200894ad1d61716c
+-x = 79179bdf9c7db54f
+x + y = a6f0f8cd80e3bc1d
+x - y = 66dfcf734620d945
+x * y = 218ace07d800a3ac
+x /u y = 4
+x %u y = 6c6116bedfc8501
+x /s y = fffffffffffffffd
+x %s y = e7022227bba69ef5
+x /u y2 = 43622075f
+x %u y2 = 748637e
+x /s y3 = fffffffc38469f85
+x %s y3 = ffffffffeb6799d0
+~x = 79179bdf9c7db54e
+x & y = 8042001004020
+x | y = a6e8f4ad7fe37bfd
+x ^ y = a6e0f08d7ee33bdd
+x << i = 24ab100000000000
+x >>u i = 86e86
+x >>s i = fffffffffff86e86
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e0dd0c840c7049
+dtou f = 37421b15de363
+stod x = c3de45e6f7e71f6d
+dtos f = fffce668f696d298
+
+x = f22c66df8ca9054b
+y = 3237edb3e364a47e
+-x = dd399207356fab5
+x + y = 24645493700da9c9
+x - y = bff4792ba94460cd
+x * y = aa00cc4c14e0a6ea
+x /u y = 4
+x %u y = 294cb00fff167353
+x /s y = 0
+x %s y = f22c66df8ca9054b
+x /u y2 = 4d288aa25
+x %u y2 = 9a2cc6c
+x /s y3 = ffffffffb9841949
+x %s y3 = ffffffffd933c240
+~x = dd399207356fab4
+x & y = 322464938020044a
+x | y = f23fefffefeda57f
+x ^ y = c01b8b6c6fcda135
+x << i = c000000000000000
+x >>u i = 3
+x >>s i = ffffffffffffffff
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ee458cdbf19521
+dtou f = 6331b9e80f041
+stod x = c3aba73240e6adf5
+dtos f = ffffa562e3b9df77
+
+x = a952be7c0308ed75
+y = f80f290ededf49e0
+-x = 56ad4183fcf7128b
+x + y = a161e78ae1e83755
+x - y = b143956d2429a395
+x * y = 13c0257882712360
+x /u y = 0
+x %u y = a952be7c0308ed75
+x /s y = a
+x %s y = f8bb23e74e500ab5
+x /u y2 = aebe580f
+x %u y2 = 47a4b5a3
+x /s y3 = aea5798d9
+x %s y3 = fffffffffe0cd097
+~x = 56ad4183fcf7128a
+x & y = a802280c02084960
+x | y = f95fbf7edfdfedf5
+x ^ y = 515d9772ddd7a495
+x << i = 308ed7500000000
+x >>u i = a952be7c
+x >>s i = ffffffffa952be7c
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e52a57cf80611e
+dtou f = 455ad38d511d7
+stod x = c3d5ab5060ff3dc5
+dtos f = fffdc7f47e0e010d
+
+x = e36991f169ad9daf
+y = 240b76fb67010a12
+-x = 1c966e0e96526251
+x + y = 77508ecd0aea7c1
+x - y = bf5e1af602ac939d
+x * y = d70339ce3d0cec4e
+x /u y = 6
+x %u y = b24c80cffa76143
+x /s y = 0
+x %s y = e36991f169ad9daf
+x /u y2 = 64f253db1
+x %u y2 = 1b1f8b24
+x /s y3 = ffffffff34f67dfd
+x %s y3 = ffffffffe00e78a0
+~x = 1c966e0e96526250
+x & y = 200910f161010802
+x | y = e76bf7fb6fad9fbf
+x ^ y = c762e70a0eac97bd
+x << i = 47c5a6b676bc0000
+x >>u i = 38da647c5a6b
+x >>s i = fffff8da647c5a6b
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ec6d323e2d35b4
+dtou f = 5d25eaad6e0cf
+stod x = c3bc966e0e965262
+dtos f = ffff44a5f00fd005
+
+x = 75714d8bcb0f3479
+y = f306b780aa88c194
+-x = 8a8eb27434f0cb87
+x + y = 6878050c7597f60d
+x - y = 826a960b208672e5
+x * y = d405ed5415a18ef4
+x /u y = 0
+x %u y = 75714d8bcb0f3479
+x /s y = fffffffffffffff7
+x %s y = adc111c9de02ad
+x /u y2 = 7bb650b1
+x %u y2 = b51254f9
+x /s y3 = fffffff6f29b761c
+x %s y3 = 33e2279
+~x = 8a8eb27434f0cb86
+x & y = 710005808a080010
+x | y = f777ff8beb8ff5fd
+x ^ y = 8677fa0b6187f5ed
+x << i = d8bcb0f347900000
+x >>u i = 75714d8bcb0
+x >>s i = 75714d8bcb0
+x cmpu y = lt
+x cmps y = gt
+utod x = 43dd5c5362f2c3cd
+dtou f = 301abf81c22cb
+stod x = 43dd5c5362f2c3cd
+dtos f = 301abf81c22cb
+
+x = 941f83cb649df453
+y = ea181038dbafa0e6
+-x = 6be07c349b620bad
+x + y = 7e379404404d9539
+x - y = aa07739288ee536d
+x * y = 856711c4245a6292
+x /u y = 0
+x %u y = 941f83cb649df453
+x /s y = 4
+x %s y = ebbf42e7f5df70bb
+x /u y2 = a1fbf096
+x %u y2 = 8c67f383
+x /s y3 = 4ecae6205
+x %s y3 = fffffffff5e0333b
+~x = 6be07c349b620bac
+x & y = 80180008408da042
+x | y = fe1f93fbffbff4f7
+x ^ y = 7e0793f3bf3254b5
+x << i = 277d14c000000000
+x >>u i = 2507e0f
+x >>s i = fffffffffe507e0f
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e283f0796c93bf
+dtou f = 3cabd55143047
+stod x = c3daf81f0d26d883
+dtos f = fffd3d049a4d1f7d
+
+x = 789d0be4a3f6e3bd
+y = 278ae68eedc94c88
+-x = 8762f41b5c091c43
+x + y = a027f27391c03045
+x - y = 51122555b62d9735
+x * y = 7b6a0a92f2a1868
+x /u y = 3
+x %u y = 1fc5837da9afe25
+x /s y = 3
+x %s y = 1fc5837da9afe25
+x /u y2 = 30cdb0a56
+x %u y2 = ad1e409
+x /s y3 = 30cdb0a56
+x %s y3 = ad1e409
+~x = 8762f41b5c091c42
+x & y = 20880284a1c04088
+x | y = 7f9fefeeefffefbd
+x ^ y = 5f17ed6a4e3faf35
+x << i = 9d0be4a3f6e3bd00
+x >>u i = 789d0be4a3f6e3
+x >>s i = 789d0be4a3f6e3
+x cmpu y = gt
+x cmps y = gt
+utod x = 43de2742f928fdb9
+dtou f = 31673cfc93710
+stod x = 43de2742f928fdb9
+dtos f = 31673cfc93710
+
+x = 2ff5275f8be96d37
+y = f35327a741a0fcfa
+-x = d00ad8a0741692c9
+x + y = 23484f06cd8a6a31
+x - y = 3ca1ffb84a48703d
+x * y = 7926d788a2d6cbb6
+x /u y = 0
+x %u y = 2ff5275f8be96d37
+x /s y = fffffffffffffffd
+x %s y = 9ee9e5550cc6425
+x /u y2 = 3274b0b2
+x %u y2 = 9b290b19
+x /s y3 = fffffffc3766d779
+x %s y3 = 5c46e48
+~x = d00ad8a0741692c8
+x & y = 2351270701a06c32
+x | y = fff727ffcbe9fdff
+x ^ y = dca600f8ca4991cd
+x << i = dc00000000000000
+x >>u i = b
+x >>s i = b
+x cmpu y = lt
+x cmps y = gt
+utod x = 43c7fa93afc5f4b7
+dtou f = 13a4b8e1e9d87
+stod x = 43c7fa93afc5f4b7
+dtos f = 13a4b8e1e9d87
+
+x = cba92b33d3b5ff41
+y = 1f0ddcc454db9ebc
+-x = 3456d4cc2c4a00bf
+x + y = eab707f828919dfd
+x - y = ac9b4e6f7eda6085
+x * y = 43b3d4f07dcc91bc
+x /u y = 6
+x %u y = 1155fe99d69046d9
+x /s y = ffffffffffffffff
+x %s y = eab707f828919dfd
+x /u y2 = 68ee956da
+x %u y2 = 135a2859
+x /s y3 = fffffffe50888709
+x %s y3 = ffffffffe4ade05d
+~x = 3456d4cc2c4a00be
+x & y = b09080050919e00
+x | y = dfadfff7d7fffffd
+x ^ y = d4a4f7f7876e61fd
+x << i = 1000000000000000
+x >>u i = c
+x >>s i = fffffffffffffffc
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e97525667a76c0
+dtou f = 536b62630d660
+stod x = c3ca2b6a66162500
+dtos f = fffea8fd6b69c595
+
+x = 48d35e1a092dac5b
+y = 32d5df5f91e6f24e
+-x = b72ca1e5f6d253a5
+x + y = 7ba93d799b149ea9
+x - y = 15fd7eba7746ba0d
+x * y = a8bfa1095d9a89ba
+x /u y = 1
+x %u y = 15fd7eba7746ba0d
+x /s y = 1
+x %s y = 15fd7eba7746ba0d
+x /u y2 = 16ebd54de
+x %u y2 = b47cbf9
+x /s y3 = 16ebd54de
+x %s y3 = b47cbf9
+~x = b72ca1e5f6d253a4
+x & y = d15e1a0124a04a
+x | y = 7ad7df5f99effe5f
+x ^ y = 7a06814598cb5e15
+x << i = d786824b6b16c000
+x >>u i = 1234d786824b6
+x >>s i = 1234d786824b6
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d234d786824b6b
+dtou f = 1dd452c7e644a
+stod x = 43d234d786824b6b
+dtos f = 1dd452c7e644a
+
+x = be9793bd5e9acb05
+y = 1b8eddf6093dac30
+-x = 41686c42a16534fb
+x + y = da2671b367d87735
+x - y = a308b5c7555d1ed5
+x * y = 1dea52e54a9e6cf0
+x /u y = 6
+x %u y = 193e5ff92728c1e5
+x /s y = fffffffffffffffe
+x %s y = f5b54fa971162365
+x /u y2 = 6ea800f5e
+x %u y2 = a23e0b1
+x /s y3 = fffffffda06520cf
+x %s y3 = ffffffffe848911b
+~x = 41686c42a16534fa
+x & y = 1a8691b408188800
+x | y = bf9fdfff5fbfef35
+x ^ y = a5194e4b57a76735
+x << i = cb05000000000000
+x >>u i = be97
+x >>s i = ffffffffffffbe97
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e7d2f277abd359
+dtou f = 4e1107ad00a84
+stod x = c3d05a1b10a8594d
+dtos f = fffe5357c008f9b9
+
+x = 6a5642c7a79a95bf
+y = 8a9c14bdfa0894e2
+-x = 95a9bd3858656a41
+x + y = f4f25785a1a32aa1
+x - y = dfba2e09ad9200dd
+x * y = d5e40e3b89029e9e
+x /u y = 0
+x %u y = 6a5642c7a79a95bf
+x /s y = 0
+x %s y = 6a5642c7a79a95bf
+x /u y2 = c46523b0
+x %u y2 = 22e57ccf
+x /s y3 = ffffffff181acd99
+x %s y3 = 84d7ca
+~x = 95a9bd3858656a40
+x & y = a140085a20894a2
+x | y = eade56ffff9a95ff
+x ^ y = e0ca567a5d92015d
+x << i = 9e6a56fc00000000
+x >>u i = 1a9590b1
+x >>s i = 1a9590b1
+x cmpu y = lt
+x cmps y = gt
+utod x = 43da9590b1e9e6a5
+dtou f = 2b8e3cf0b40fc
+stod x = 43da9590b1e9e6a5
+dtos f = 2b8e3cf0b40fc
+
+x = 457806d9ec4fcb09
+y = 71e74b55ef64a8e4
+-x = ba87f92613b034f7
+x + y = b75f522fdbb473ed
+x - y = d390bb83fceb2225
+x * y = c93cf7e08ad2bc04
+x /u y = 0
+x %u y = 457806d9ec4fcb09
+x /s y = 0
+x %s y = 457806d9ec4fcb09
+x /u y2 = 9c21e58a
+x %u y2 = 1d492637
+x /s y3 = 9c21e58a
+x %s y3 = 1d492637
+~x = ba87f92613b034f6
+x & y = 41600251ec448800
+x | y = 75ff4fddef6febed
+x ^ y = 349f4d8c032b63ed
+x << i = c4fcb09000000000
+x >>u i = 457806d
+x >>s i = 457806d
+x cmpu y = lt
+x cmps y = lt
+utod x = 43d15e01b67b13f3
+dtou f = 1c74565d5b77e
+stod x = 43d15e01b67b13f3
+dtos f = 1c74565d5b77e
+
+x = 9f2932af8964d63
+y = cfbf03aa8d638b6
+-x = f60d6cd50769b29d
+x + y = 16ee8365a16c8619
+x - y = fcf6a2f04fc014ad
+x * y = 1a5fcfc9448aac62
+x /u y = 0
+x %u y = 9f2932af8964d63
+x /s y = 0
+x %s y = 9f2932af8964d63
+x /u y2 = c4213692
+x %u y2 = cc1104f
+x /s y3 = c4213692
+x %s y3 = cc1104f
+~x = f60d6cd50769b29c
+x & y = 8f2902aa8960822
+x | y = dfbf33af8d67df7
+x ^ y = 5096310504075d5
+x << i = 58c0000000000000
+x >>u i = 27
+x >>s i = 27
+x cmpu y = lt
+x cmps y = lt
+utod x = 43a3e52655f12c9b
+dtou f = 41313bac4077
+stod x = 43a3e52655f12c9b
+dtos f = 41313bac4077
+
+x = f20b1d13f51fc34d
+y = 9ce1509c57b108d8
+-x = df4e2ec0ae03cb3
+x + y = 8eec6db04cd0cc25
+x - y = 5529cc779d6eba75
+x * y = 547381c1042430f8
+x /u y = 1
+x %u y = 5529cc779d6eba75
+x /s y = 0
+x %s y = f20b1d13f51fc34d
+x /u y2 = 18af89756
+x %u y2 = 2bc2aae5
+x /s y3 = 240bce76
+x %s y3 = ffffffffefb31365
+~x = df4e2ec0ae03cb2
+x & y = 9001101055110048
+x | y = feeb5d9ff7bfcbdd
+x ^ y = 6eea4d8fa2aecb95
+x << i = 13f51fc34d000000
+x >>u i = f20b1d13f5
+x >>s i = fffffff20b1d13f5
+x cmpu y = gt
+x cmps y = gt
+utod x = 43ee4163a27ea3f8
+dtou f = 632417610ecbe
+stod x = c3abe9c5d815c079
+dtos f = ffffa488bb49dbf3
+
+x = f68a3d1d7aa13747
+y = 6db1793cc07d71ca
+-x = 975c2e2855ec8b9
+x + y = 643bb65a3b1ea911
+x - y = 88d8c3e0ba23c57d
+x * y = e56c8a352a46f506
+x /u y = 2
+x %u y = 1b274aa3f9a653b3
+x /s y = 0
+x %s y = f68a3d1d7aa13747
+x /u y2 = 23f5eca36
+x %u y2 = 5804c9f
+x /s y3 = ffffffffe9ec23f1
+x %s y3 = ffffffff93aae1cb
+~x = 975c2e2855ec8b8
+x & y = 6480391c40213142
+x | y = ffbb7d3dfafd77cf
+x ^ y = 9b3b4421badc468d
+x << i = 28f475ea84dd1c00
+x >>u i = 3da28f475ea84d
+x >>s i = fffda28f475ea84d
+x cmpu y = gt
+x cmps y = lt
+utod x = 43eed147a3af5427
+dtou f = 64fb979962f8b
+stod x = c3a2eb85c50abd91
+dtos f = ffffc200becf1ec1
+
+x = d849bdf83b79b7d1
+y = 6a1649c9d6a2800c
+-x = 27b64207c486482f
+x + y = 426007c2121c37dd
+x - y = 6e33742e64d737c5
+x * y = 79305427addf1dcc
+x /u y = 2
+x %u y = 41d2a648e34b7b9
+x /s y = 0
+x %s y = d849bdf83b79b7d1
+x /u y2 = 209ed682d
+x %u y2 = 2780177c
+x /s y3 = ffffffffa02bad7e
+x %s y3 = ffffffffefe191e3
+~x = 27b64207c486482e
+x & y = 480009c812208000
+x | y = fa5ffdf9fffbb7dd
+x ^ y = b25ff431eddb37dd
+x << i = 9bdf83b79b7d1000
+x >>u i = d849bdf83b79b
+x >>s i = fffd849bdf83b79b
+x cmpu y = gt
+x cmps y = lt
+utod x = 43eb0937bf076f37
+dtou f = 5897724416b90
+stod x = c3c3db2103e24324
+dtos f = fffefbbe697a5ac6
+
+x = e725b2286679f76b
+y = 6d152baf41dd141e
+-x = 18da4dd799860895
+x + y = 543addd7a8570b89
+x - y = 7a108679249ce34d
+x * y = 7bf192ff4bfe5a8a
+x /u y = 2
+x %u y = cfb5ac9e2bfcf2f
+x /s y = 0
+x %s y = e725b2286679f76b
+x /u y2 = 21e776484
+x %u y2 = 1226152f
+x /s y3 = ffffffffc5acab53
+x %s y3 = ffffffffdfdae8ae
+~x = 18da4dd799860894
+x & y = 650522284059140a
+x | y = ef35bbaf67fdf77f
+x ^ y = 8a30998727a4e375
+x << i = 199e7ddac0000000
+x >>u i = 39c96c8a1
+x >>s i = ffffffff9c96c8a1
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ece4b6450ccf3f
+dtou f = 5ead8bbcfd53f
+stod x = c3b8da4dd7998609
+dtos f = ffff5d200108c475
+
+x = 2e8033e5d5b4ec95
+y = 5ff552a5384c0280
+-x = d17fcc1a2a4b136b
+x + y = 8e75868b0e00ef15
+x - y = ce8ae1409d68ea15
+x * y = 5679fa16188b7480
+x /u y = 0
+x %u y = 2e8033e5d5b4ec95
+x /s y = 0
+x %s y = 2e8033e5d5b4ec95
+x /u y2 = 7c0e5692
+x %u y2 = 41025c7b
+x /s y3 = 7c0e5692
+x %s y3 = 41025c7b
+~x = d17fcc1a2a4b136a
+x & y = e8012a510040080
+x | y = 7ff573e5fdfcee95
+x ^ y = 71756140edf8ee15
+x << i = 2e8033e5d5b4ec95
+x >>u i = 2e8033e5d5b4ec95
+x >>s i = 2e8033e5d5b4ec95
+x cmpu y = lt
+x cmps y = lt
+utod x = 43c74019f2eada76
+dtou f = 130bf620b348e
+stod x = 43c74019f2eada76
+dtos f = 130bf620b348e
+
+x = ef43bef3068171cf
+y = b7c320f5051933b2
+-x = 10bc410cf97e8e31
+x + y = a706dfe80b9aa581
+x - y = 37809dfe01683e1d
+x * y = 52ca243e77e45eee
+x /u y = 1
+x %u y = 37809dfe01683e1d
+x /s y = 0
+x %s y = ef43bef3068171cf
+x /u y2 = 14d521718
+x %u y2 = 4c657d7
+x /s y3 = 3b4ec343
+x %s y3 = ffffffffcaaf32b0
+~x = 10bc410cf97e8e30
+x & y = a74320f104013182
+x | y = ffc3bef7079973ff
+x ^ y = 58809e060398427d
+x << i = c73c000000000000
+x >>u i = 3bd0
+x >>s i = fffffffffffffbd0
+x cmpu y = gt
+x cmps y = gt
+utod x = 43ede877de60d02e
+dtou f = 6200b71208662
+stod x = c3b0bc410cf97e8e
+dtos f = ffff9252b6597598
+
+x = 90d105664c14e599
+y = 457cda70c307c434
+-x = 6f2efa99b3eb1a67
+x + y = d64ddfd70f1ca9cd
+x - y = 4b542af5890d2165
+x * y = c1c276d4636c714
+x /u y = 2
+x %u y = 5d75084c6055d31
+x /s y = ffffffffffffffff
+x %s y = d64ddfd70f1ca9cd
+x /u y2 = 21584e541
+x %u y2 = 263b3f29
+x /s y3 = fffffffe66636700
+x %s y3 = fffffffff6e1d599
+~x = 6f2efa99b3eb1a66
+x & y = 5000604004c410
+x | y = d5fddf76cf17e5bd
+x ^ y = d5addf168f1321ad
+x << i = 5990000000000000
+x >>u i = 90d
+x >>s i = fffffffffffff90d
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e21a20acc9829d
+dtou f = 3b511c0437bd3
+stod x = c3dbcbbea66cfac7
+dtos f = fffd2759057c6b08
+
+x = 7cb0b0fabc5eca73
+y = 24bef482136f2486
+-x = 834f4f0543a1358d
+x + y = a16fa57ccfcdeef9
+x - y = 57f1bc78a8efa5ed
+x * y = e48506423ef32432
+x /u y = 3
+x %u y = e73d37482115ce1
+x /s y = 3
+x %s y = e73d37482115ce1
+x /u y2 = 364afcce3
+x %u y2 = f56632d
+x /s y3 = 364afcce3
+x %s y3 = f56632d
+~x = 834f4f0543a1358c
+x & y = 24b0b082104e0002
+x | y = 7cbef4fabf7feef7
+x ^ y = 580e4478af31eef5
+x << i = 2c2c3eaf17b29cc0
+x >>u i = 1f2c2c3eaf17b29
+x >>s i = 1f2c2c3eaf17b29
+x cmpu y = gt
+x cmps y = gt
+utod x = 43df2c2c3eaf17b3
+dtou f = 3312b71530e4e
+stod x = 43df2c2c3eaf17b3
+dtos f = 3312b71530e4e
+
+x = 2a1c70168f0d66dd
+y = f58c569d3d6b3928
+-x = d5e38fe970f29923
+x + y = 1fa8c6b3cc78a005
+x - y = 3490197951a22db5
+x * y = 208cd905fd5e4788
+x /u y = 0
+x %u y = 2a1c70168f0d66dd
+x /s y = fffffffffffffffc
+x %s y = 4dca8b84ba4b7d
+x /u y2 = 2be74f23
+x %u y2 = 27781c66
+x /s y3 = fffffffbf88ea18f
+x %s y3 = 1a482a
+~x = d5e38fe970f29922
+x & y = 200c50140d092008
+x | y = ff9c769fbf6f7ffd
+x ^ y = df90268bb2665ff5
+x << i = d66dd0000000000
+x >>u i = 2a1c70
+x >>s i = 2a1c70
+x cmpu y = lt
+x cmps y = gt
+utod x = 43c50e380b4786b3
+dtou f = 113faad6dbfa0
+stod x = 43c50e380b4786b3
+dtos f = 113faad6dbfa0
+
+x = c864770318e36557
+y = 6a00ab1df6497a9a
+-x = 379b88fce71c9aa9
+x + y = 326522210f2cdff1
+x - y = 5e63cbe52299eabd
+x * y = 136745cdd6e56c56
+x /u y = 1
+x %u y = 5e63cbe52299eabd
+x /s y = 0
+x %s y = c864770318e36557
+x /u y2 = 1e3f46921
+x %u y2 = 59fa719a
+x /s y3 = ffffffff79b4afc3
+x %s y3 = ffffffffe0043b40
+~x = 379b88fce71c9aa8
+x & y = 4800230110416012
+x | y = ea64ff1ffeeb7fdf
+x ^ y = a264dc1eeeaa1fcd
+x << i = c638d955c000000
+x >>u i = 32191dc0c6
+x >>s i = fffffff2191dc0c6
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e90c8ee0631c6d
+dtou f = 5214aba09a5f9
+stod x = c3cbcdc47e738e4d
+dtos f = fffe9391ff42952f
+
+x = 9714eb2dc9c67461
+y = 466bcdc06b7b155c
+-x = 68eb14d236398b9f
+x + y = dd80b8ee354189bd
+x - y = 50a91d6d5e4b5f05
+x * y = 8fb920c04078c7dc
+x /u y = 2
+x %u y = a3d4facf2d049a9
+x /s y = ffffffffffffffff
+x %s y = dd80b8ee354189bd
+x /u y2 = 225392f08
+x %u y2 = 3be1c661
+x /s y3 = fffffffe8297e39a
+x %s y3 = fffffffff93b6ee1
+~x = 68eb14d236398b9e
+x & y = 600c90049421440
+x | y = d77fefedebff757d
+x ^ y = d17f26eda2bd613d
+x << i = dc9c674610000000
+x >>u i = 9714eb2dc
+x >>s i = fffffff9714eb2dc
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e2e29d65b938cf
+dtou f = 3de210ddea9bd
+stod x = c3da3ac5348d8e63
+dtos f = fffd5068531798f3
+
+x = 680ca5caaa2ee67b
+y = 20cfe3e3cf9409ee
+-x = 97f35a3555d11985
+x + y = 88dc89ae79c2f069
+x - y = 473cc1e6da9adc8d
+x * y = 21c701f191d0995a
+x /u y = 3
+x %u y = 59cfa1f3b72c8b1
+x /s y = 3
+x %s y = 59cfa1f3b72c8b1
+x /u y2 = 32bcb4e0b
+x %u y2 = 13cff1ba
+x /s y3 = 32bcb4e0b
+x %s y3 = 13cff1ba
+~x = 97f35a3555d11984
+x & y = 200ca1c28a04006a
+x | y = 68cfe7ebefbeefff
+x ^ y = 48c3462965baef95
+x << i = b99ec00000000000
+x >>u i = 1a032
+x >>s i = 1a032
+x cmpu y = gt
+x cmps y = gt
+utod x = 43da032972aa8bba
+dtou f = 2a9e5ef11df9d
+stod x = 43da032972aa8bba
+dtos f = 2a9e5ef11df9d
+
+x = caa0e97754e05225
+y = 45366c07f71f4cd0
+-x = 355f1688ab1faddb
+x + y = fd7557f4bff9ef5
+x - y = 856a7d6f5dc10555
+x * y = 11fcaf963420ba10
+x /u y = 2
+x %u y = 4034116766a1b885
+x /s y = 0
+x %s y = caa0e97754e05225
+x /u y2 = 2ed78e4eb
+x %u y2 = 356cebb8
+x /s y3 = ffffffff3a97a9d7
+x %s y3 = fffffffff8b9f944
+~x = 355f1688ab1fadda
+x & y = 4020680754004000
+x | y = cfb6ed77f7ff5ef5
+x ^ y = 8f968570a3ff1ef5
+x << i = e97754e052250000
+x >>u i = caa0e97754e0
+x >>s i = ffffcaa0e97754e0
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e9541d2eea9c0a
+dtou f = 52ff250e0fec7
+stod x = c3caaf8b44558fd7
+dtos f = fffea2399619edfd
+
+x = 8fb54d13641331df
+y = 3896e8ba4f4fe682
+-x = 704ab2ec9becce21
+x + y = c84c35cdb3631861
+x - y = 571e645914c34b5d
+x * y = bdfcb218455ead3e
+x /u y = 2
+x %u y = 1e877b9ec57364db
+x /s y = ffffffffffffffff
+x %s y = c84c35cdb3631861
+x /u y2 = 28a1bbf24
+x %u y2 = 799b1b7
+x /s y3 = fffffffe040371a9
+x %s y3 = ffffffffc98b7515
+~x = 704ab2ec9becce20
+x & y = 894481244032082
+x | y = bfb7edbb6f5ff7df
+x ^ y = b723a5a92b5cd75d
+x << i = 3ed5344d904cc77c
+x >>u i = 23ed5344d904cc77
+x >>s i = e3ed5344d904cc77
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e1f6a9a26c8266
+dtou f = 3adce5d10e5de
+stod x = c3dc12acbb26fb34
+dtos f = fffd2015a249d513
+
+x = 5fde20614d778429
+y = 4cb55308f7d71384
+-x = a021df9eb2887bd7
+x + y = ac93736a454e97ad
+x - y = 1328cd5855a070a5
+x * y = c6f8b7175dde3024
+x /u y = 1
+x %u y = 1328cd5855a070a5
+x /s y = 1
+x %s y = 1328cd5855a070a5
+x /u y2 = 13ff0e2ae
+x %u y2 = 476c04b9
+x /s y3 = 13ff0e2ae
+x %s y3 = 476c04b9
+~x = a021df9eb2887bd6
+x & y = 4c94000045570000
+x | y = 5fff7369fff797ad
+x ^ y = 136b7369baa097ad
+x << i = fde20614d7784290
+x >>u i = 5fde20614d77842
+x >>s i = 5fde20614d77842
+x cmpu y = gt
+x cmps y = gt
+utod x = 43d7f78818535de1
+dtou f = 2744747b69de3
+stod x = 43d7f78818535de1
+dtos f = 2744747b69de3
+
+x = 9e0edf33c6b86b83
+y = 46d59276da676456
+-x = 61f120cc3947947d
+x + y = e4e471aaa11fcfd9
+x - y = 57394cbcec51072d
+x * y = d98e79279ba84a02
+x /u y = 2
+x %u y = 1063ba4611e9a2d7
+x /s y = ffffffffffffffff
+x %s y = e4e471aaa11fcfd9
+x /u y2 = 23b3ba758
+x %u y2 = 279118f3
+x /s y3 = fffffffe9e07f55d
+x %s y3 = ffffffffd0bd48a5
+~x = 61f120cc3947947c
+x & y = 6049232c2206002
+x | y = dedfdf77deff6fd7
+x ^ y = d8db4d451cdf0fd5
+x << i = ccf1ae1ae0c00000
+x >>u i = 2783b7ccf1a
+x >>s i = fffffe783b7ccf1a
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e3c1dbe678d70d
+dtou f = 40bd97a285016
+stod x = c3d87c48330e51e5
+dtos f = fffd7e20bf613f4c
+
+x = 42419bd19468ce6d
+y = f28e83678dacdd78
+-x = bdbe642e6b973193
+x + y = 34d01f392215abe5
+x - y = 4fb3186a06bbf0f5
+x * y = b4153c53c590dc18
+x /u y = 0
+x %u y = 42419bd19468ce6d
+x /s y = fffffffffffffffc
+x %s y = c7ba96fcb1c444d
+x /u y2 = 45edad94
+x %u y2 = a1dd3be1
+x /s y3 = fffffffb12493a09
+x %s y3 = d41d9ce
+~x = bdbe642e6b973192
+x & y = 420083418428cc68
+x | y = f2cf9bf79decdf7d
+x ^ y = b0cf18b619c41315
+x << i = 6d00000000000000
+x >>u i = 42
+x >>s i = 42
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d09066f4651a34
+dtou f = 1b237993b1864
+stod x = 43d09066f4651a34
+dtos f = 1b237993b1864
+
+x = a10909702780f767
+y = 355cb86c76c2176a
+-x = 5ef6f68fd87f0899
+x + y = d665c1dc9e430ed1
+x - y = 6bac5103b0bedffd
+x * y = ef08c535e7aeb1a6
+x /u y = 3
+x %u y = f2e02ac33ab129
+x /s y = ffffffffffffffff
+x %s y = d665c1dc9e430ed1
+x /u y2 = 3048d2c3e
+x %u y2 = 7ddbd3f
+x /s y3 = fffffffe386a7a90
+x %s y3 = fffffffff6bdc2a7
+~x = 5ef6f68fd87f0898
+x & y = 2108086026801762
+x | y = b55db97c77c2f76f
+x ^ y = 9455b11c5142e00d
+x << i = 3dd9c0000000000
+x >>u i = 284242
+x >>s i = ffffffffffe84242
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e421212e04f01f
+dtou f = 41f5c66d044d6
+stod x = c3d7bdbda3f61fc2
+dtos f = fffd91a3ac09340c
+
+x = b62b990739d534f1
+y = ea2aeea1436a5eac
+-x = 49d466f8c62acb0f
+x + y = a05687a87d3f939d
+x - y = cc00aa65f66ad645
+x * y = 387490cb237a0fec
+x /u y = 0
+x %u y = b62b990739d534f1
+x /s y = 3
+x %s y = f7aacd236f9618ed
+x /u y2 = c7279a22
+x %u y2 = cb0da98f
+x /s y3 = 361b5597a
+x %s y3 = fffffffffb948337
+~x = 49d466f8c62acb0e
+x & y = a22a8801014014a0
+x | y = fe2bffa77bff7efd
+x ^ y = 5c0177a67abf6a5d
+x << i = 534f100000000000
+x >>u i = b62b9
+x >>s i = fffffffffffb62b9
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e6c57320e73aa7
+dtou f = 4a9df0db3a812
+stod x = c3d27519be318ab3
+dtos f = fffe1c2652ec9747
+
+x = 9e2dd389c02d798b
+y = ff1135085098d3be
+-x = 61d22c763fd28675
+x + y = 9d3f089210c64d49
+x - y = 9f1c9e816f94a5cd
+x * y = c4066df5b775c62a
+x /u y = 0
+x %u y = 9e2dd389c02d798b
+x /s y = 68
+x %s y = ff3048290217745b
+x /u y2 = 9ec1e9af
+x %u y2 = cf1df113
+x /s y3 = 68deaf7ef9
+x %s y3 = ffffffffffdef4c3
+~x = 61d22c763fd28674
+x & y = 9e0111084008518a
+x | y = ff3df789d0bdfbbf
+x ^ y = 613ce68190b5aa35
+x << i = c000000000000000
+x >>u i = 2
+x >>s i = fffffffffffffffe
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e3c5ba713805af
+dtou f = 40ca45715b69e
+stod x = c3d8748b1d8ff4a2
+dtos f = fffd7eeb9c4ea5d3
+
+x = eceb862698e5fbb5
+y = b6f3d882c0c8b20
+-x = 131479d9671a044b
+x + y = f85ac3aec4f286d5
+x - y = e17c489e6cd97095
+x * y = 5d01450ae4e6bda0
+x /u y = 14
+x %u y = 83ab78327eb1d35
+x /s y = ffffffffffffffff
+x %s y = f85ac3aec4f286d5
+x /u y2 = 14b83ddb43
+x %u y2 = 7bd891d
+x /s y3 = fffffffe54d4c750
+x %s y3 = fffffffff8ae0935
+~x = 131479d9671a044a
+x & y = 86b040008048b20
+x | y = efefbfaebcedfbb5
+x ^ y = e784bbaeb4e97095
+x << i = 98e5fbb500000000
+x >>u i = eceb8626
+x >>s i = ffffffffeceb8626
+x cmpu y = gt
+x cmps y = lt
+utod x = 43ed9d70c4d31cbf
+dtou f = 610add3ee9d70
+stod x = c3b31479d9671a04
+dtos f = ffff82f519278ca6
+
+x = 3b5e2b836840d5ef
+y = 8984a692ed09ad52
+-x = c4a1d47c97bf2a11
+x + y = c4e2d216554a8341
+x - y = b1d984f07b37289d
+x * y = 8ca36a2efdbe098e
+x /u y = 0
+x %u y = 3b5e2b836840d5ef
+x /s y = 0
+x %s y = 3b5e2b836840d5ef
+x /u y2 = 6e847dbc
+x %u y2 = 63938b7
+x /s y3 = ffffffff7fb9c9d5
+x %s y3 = 8979c75
+~x = c4a1d47c97bf2a10
+x & y = 904228268008542
+x | y = bbdeaf93ed49fdff
+x ^ y = b2da8d11854978bd
+x << i = ae0da10357bc0000
+x >>u i = ed78ae0da10
+x >>s i = ed78ae0da10
+x cmpu y = lt
+x cmps y = gt
+utod x = 43cdaf15c1b4206b
+dtou f = 18512ba0bae1a
+stod x = 43cdaf15c1b4206b
+dtos f = 18512ba0bae1a
+
+x = 8bb41c6aa7d0a6b9
+y = e7cba3f3ef7796d4
+-x = 744be395582f5947
+x + y = 737fc05e97483d8d
+x - y = a3e87876b8590fe5
+x * y = 4af6e0e671797734
+x /u y = 0
+x %u y = 8bb41c6aa7d0a6b9
+x /s y = 4
+x %s y = ec858c9ae9f24b69
+x /u y2 = 9a4aab1a
+x %u y2 = 8460af0b
+x /s y3 = 4ce035bf5
+x %s y3 = fffffffff8cc5e2a
+~x = 744be395582f5946
+x & y = 83800062a7508690
+x | y = efffbffbeff7b6fd
+x ^ y = 6c7fbf9948a7306d
+x << i = c6aa7d0a6b900000
+x >>u i = 8bb41c6aa7d
+x >>s i = fffff8bb41c6aa7d
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e176838d54fa15
+dtou f = 3938fad8898cc
+stod x = c3dd12f8e5560bd6
+dtos f = fffd05d6f2c18801
+
+x = 5e14c5d21ca43093
+y = dd468d765debf826
+-x = a1eb3a2de35bcf6d
+x + y = 3b5b53487a9028b9
+x - y = 80ce385bbeb8386d
+x * y = d4a2340f4d5e9dd2
+x /u y = 0
+x %u y = 5e14c5d21ca43093
+x /s y = fffffffffffffffe
+x %s y = 18a1e0bed87c20df
+x /u y2 = 6cd85af3
+x %u y2 = 21606d91
+x /s y3 = fffffffd4a66f1cd
+x %s y3 = 6f4d315
+~x = a1eb3a2de35bcf6c
+x & y = 5c0485521ca03002
+x | y = df56cdf65deff8b7
+x ^ y = 835248a4414fc8b5
+x << i = 290c24c000000000
+x >>u i = 1785317
+x >>s i = 1785317
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d785317487290c
+dtou f = 26891f773d4b0
+stod x = 43d785317487290c
+dtos f = 26891f773d4b0
+
+x = 7265a096401af9fd
+y = b918a7193a6af5c8
+-x = 8d9a5f69bfe50603
+x + y = 2b7e47af7a85efc5
+x - y = b94cf97d05b00435
+x * y = 4b405d3fbb146ea8
+x /u y = 0
+x %u y = 7265a096401af9fd
+x /s y = ffffffffffffffff
+x %s y = 2b7e47af7a85efc5
+x /u y2 = 9e37e46d
+x %u y2 = 276a9058
+x /s y3 = fffffffe62f7568d
+x %s y3 = 3a458b38
+~x = 8d9a5f69bfe50602
+x & y = 3000a010000af1c8
+x | y = fb7da79f7a7afdfd
+x ^ y = cb7d078f7a700c35
+x << i = 65a096401af9fd00
+x >>u i = 7265a096401af9
+x >>s i = 7265a096401af9
+x cmpu y = lt
+x cmps y = gt
+utod x = 43dc9968259006be
+dtou f = 2edb6497a791c
+stod x = 43dc9968259006be
+dtos f = 2edb6497a791c
+
+x = 529ef449b98aed77
+y = 998d65c70ae4483a
+-x = ad610bb646751289
+x + y = ec2c5a10c46f35b1
+x - y = b9118e82aea6a53d
+x * y = d3da4c66403f44f6
+x /u y = 0
+x %u y = 529ef449b98aed77
+x /s y = 0
+x %s y = 529ef449b98aed77
+x /u y2 = 89be8881
+x %u y2 = 3286ec30
+x /s y3 = ffffffff318b3773
+x %s y3 = 41b7412
+~x = ad610bb646751288
+x & y = 108c644108804832
+x | y = db9ff5cfbbeeed7f
+x ^ y = cb13918eb36ea54d
+x << i = dc00000000000000
+x >>u i = 14
+x >>s i = 14
+x cmpu y = lt
+x cmps y = gt
+utod x = 43d4a7bd126e62bb
+dtou f = 21d76e4ce45e9
+stod x = 43d4a7bd126e62bb
+dtos f = 21d76e4ce45e9
+
+x = d4c53464631ef981
+y = d79a311745b55bfc
+-x = 2b3acb9b9ce1067f
+x + y = ac5f657ba8d4557d
+x - y = fd2b034d1d699d85
+x * y = e994cbcac26375fc
+x /u y = 0
+x %u y = d4c53464631ef981
+x /s y = 1
+x %s y = fd2b034d1d699d85
+x /u y2 = fca32bce
+x %u y2 = 19279bff
+x /s y3 = 111f23d93
+x %s y3 = ffffffffe9244e4c
+~x = 2b3acb9b9ce1067e
+x & y = d480300441145980
+x | y = d7df357767bffbfd
+x ^ y = 35f057326aba27d
+x << i = 1000000000000000
+x >>u i = d
+x >>s i = fffffffffffffffd
+x cmpu y = lt
+x cmps y = lt
+utod x = 43ea98a68c8c63df
+dtou f = 57269613000cb
+stod x = c3c59d65cdce7083
+dtos f = fffee4b0a668f000
+
+x = cb016d548a96b09b
+y = 59b7d17de3b8718e
+-x = 34fe92ab75694f65
+x + y = 24b93ed26e4f2229
+x - y = 71499bd6a6de3f0d
+x * y = 9b43f7a8c3f260fa
+x /u y = 2
+x %u y = 1791ca58c325cd7f
+x /s y = 0
+x %s y = cb016d548a96b09b
+x /u y2 = 24340b83f
+x %u y2 = 41884ad8
+x /s y3 = ffffffff68c95c6b
+x %s y3 = ffffffffb854355c
+~x = 34fe92ab75694f64
+x & y = 490141548290308a
+x | y = dbb7fd7debbef19f
+x ^ y = 92b6bc29692ec115
+x << i = 5b5522a5ac26c000
+x >>u i = 32c05b5522a5a
+x >>s i = ffff2c05b5522a5a
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e9602daa9152d6
+dtou f = 5326ad656497d
+stod x = c3ca7f4955bab4a8
+dtos f = fffea4b21b8f38b3
+
+x = e9b85c9ebecee945
+y = eff4c4de68a8bd70
+-x = 1647a361413116bb
+x + y = d9ad217d2777a6b5
+x - y = f9c397c056262bd5
+x * y = 45861cb55a05ff30
+x /u y = 0
+x %u y = e9b85c9ebecee945
+x /s y = 1
+x %s y = f9c397c056262bd5
+x /u y2 = f958dab3
+x %u y2 = ecb4360b
+x /s y3 = 16380abc0
+x %s y3 = fffffffffebaf8c5
+~x = 1647a361413116ba
+x & y = e9b0449e2888a940
+x | y = effcdcdefeeefd75
+x ^ y = 64c9840d6665435
+x << i = e945000000000000
+x >>u i = e9b8
+x >>s i = ffffffffffffe9b8
+x cmpu y = lt
+x cmps y = lt
+utod x = 43ed370b93d7d9dd
+dtou f = 5fbb55dc42afb
+stod x = c3b647a361413117
+dtos f = ffff6dfca2fd1a30
+
+x = f6e37ba6953b5dff
+y = f751e9180fe38822
+-x = 91c84596ac4a201
+x + y = ee3564bea51ee621
+x - y = ff91928e8557d5dd
+x * y = d828a075a5eef3de
+x /u y = 0
+x %u y = f6e37ba6953b5dff
+x /s y = 1
+x %s y = ff91928e8557d5dd
+x /u y2 = ff8db266
+x %u y2 = cc4dce6f
+x /s y3 = 10cb8d59a
+x %s y3 = fffffffffdc42d8f
+~x = 91c84596ac4a200
+x & y = f641690005230822
+x | y = f7f3fbbe9ffbddff
+x ^ y = 1b292be9ad8d5dd
+x << i = 54ed77fc00000000
+x >>u i = 3db8dee9
+x >>s i = fffffffffdb8dee9
+x cmpu y = lt
+x cmps y = lt
+utod x = 43eedc6f74d2a76c
+dtou f = 6520258a4622f
+stod x = c3a23908b2d58944
+dtos f = ffffc4499ddd5165
+
+x = 6b48866df6b94d49
+y = 560a70d9eace4e24
+-x = 94b779920946b2b7
+x + y = c152f747e1879b6d
+x - y = 153e15940beaff25
+x * y = 9ee6c54512591c44
+x /u y = 1
+x %u y = 153e15940beaff25
+x /s y = 1
+x %s y = 153e15940beaff25
+x /u y2 = 13f341cd4
+x %u y2 = 3ea81d95
+x /s y3 = 13f341cd4
+x %s y3 = 3ea81d95
+~x = 94b779920946b2b6
+x & y = 42080049e2884c00
+x | y = 7f4af6fdfeff4f6d
+x ^ y = 3d42f6b41c77036d
+x << i = 6b94d49000000000
+x >>u i = 6b48866
+x >>s i = 6b48866
+x cmpu y = gt
+x cmps y = gt
+utod x = 43dad2219b7dae53
+dtou f = 2bf178305165b
+stod x = 43dad2219b7dae53
+dtos f = 2bf178305165b
+
+x = c48462e3c16319a3
+y = fc0b2696f69dff6
+-x = 3b7b9d1c3e9ce65d
+x + y = d445154d30ccf999
+x - y = b4c3b07a51f939ad
+x * y = 7a588fef596a9fa2
+x /u y = c
+x %u y = 77c05f2886c9a1b
+x /s y = fffffffffffffffd
+x %s y = f3c67a200fa0b985
+x /u y2 = c79a1999e
+x %u y2 = 8cb3bd5
+x /s y3 = fffffffc39559faa
+x %s y3 = fffffffffec068e9
+~x = 3b7b9d1c3e9ce65c
+x & y = 4802261416119a2
+x | y = cfc4f2ebef6bdff7
+x ^ y = cb44d08aae0ac655
+x << i = 68c0000000000000
+x >>u i = 312
+x >>s i = ffffffffffffff12
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e8908c5c782c63
+dtou f = 507e50a560d2f
+stod x = c3cdbdce8e1f4e73
+dtos f = fffe7a2c4f8efc65
+
+x = 81c143a7754ce98d
+y = 2595000288da8218
+-x = 7e3ebc588ab31673
+x + y = a75643a9fe276ba5
+x - y = 5c2c43a4ec726775
+x * y = 1c0ef3efd7e17f38
+x /u y = 3
+x %u y = 1102439fdabd6345
+x /s y = fffffffffffffffd
+x %s y = f28043af0fdc6fd5
+x /u y2 = 373dc3a72
+x %u y2 = f3a74a9
+x /s y3 = fffffffca40c567c
+x %s y3 = ffffffffeb083c95
+~x = 7e3ebc588ab31672
+x & y = 181000200488008
+x | y = a5d543a7fddeeb9d
+x ^ y = a45443a5fd966b95
+x << i = a7754ce98d000000
+x >>u i = 81c143a775
+x >>s i = ffffff81c143a775
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e0382874eea99d
+dtou f = 3525ca9c3ecab
+stod x = c3df8faf1622acc6
+dtos f = fffcc4a3eefcdbe1
+
+x = 185201da44524787
+y = 6207869c80ed0d0a
+-x = e7adfe25bbadb879
+x + y = 7a598876c53f5491
+x - y = b64a7b3dc3653a7d
+x * y = 4ccbcc3290d3a646
+x /u y = 0
+x %u y = 185201da44524787
+x /s y = 0
+x %s y = 185201da44524787
+x /u y2 = 3f82fa73
+x %u y2 = 22447773
+x /s y3 = 3f82fa73
+x %s y3 = 22447773
+~x = e7adfe25bbadb878
+x & y = 2009800400502
+x | y = 7a5787dec4ff4f8f
+x ^ y = 7a558746c4bf4a8d
+x << i = 48076911491e1c00
+x >>u i = 6148076911491
+x >>s i = 6148076911491
+x cmpu y = lt
+x cmps y = lt
+utod x = 43b85201da445248
+dtou f = 9f62c2d2a520
+stod x = 43b85201da445248
+dtos f = 9f62c2d2a520
+
+x = 4c00590c95cc211
+y = 733d576e60e10d4c
+-x = fb3ffa6f36a33def
+x + y = 77fd5cff2a3dcf5d
+x - y = 9182ae22687bb4c5
+x * y = 45e9eed06e557a0c
+x /u y = 0
+x %u y = 4c00590c95cc211
+x /s y = 0
+x %s y = 4c00590c95cc211
+x /u y2 = a8d5772
+x %u y2 = 2bbf7115
+x /s y3 = a8d5772
+x %s y3 = 2bbf7115
+~x = fb3ffa6f36a33dee
+x & y = 50040400000
+x | y = 77fd57fee9fdcf5d
+x ^ y = 77fd52fea9bdcf5d
+x << i = 590c95cc211000
+x >>u i = 4c00590c95cc
+x >>s i = 4c00590c95cc
+x cmpu y = lt
+x cmps y = lt
+utod x = 4393001643257308
+dtou f = 1f2151f0acc4
+stod x = 4393001643257308
+dtos f = 1f2151f0acc4
+
+x = 49769540f1cb8bab
+y = 737fa1db80ffe35e
+-x = b6896abf0e347455
+x + y = bcf6371c72cb6f09
+x - y = d5f6f36570cba84d
+x * y = 3b460a1ee4eae9ca
+x /u y = 0
+x %u y = 49769540f1cb8bab
+x /s y = 0
+x %s y = 49769540f1cb8bab
+x /u y2 = a2d45f9b
+x %u y2 = 7184712
+x /s y3 = a2d45f9b
+x %s y3 = 7184712
+~x = b6896abf0e347454
+x & y = 4176814080cb830a
+x | y = 7b7fb5dbf1ffebff
+x ^ y = 3a09349b713468f5
+x << i = 3c72e2eac0000000
+x >>u i = 125da5503
+x >>s i = 125da5503
+x cmpu y = lt
+x cmps y = lt
+utod x = 43d25da5503c72e3
+dtou f = 1e172d28eff11
+stod x = 43d25da5503c72e3
+dtos f = 1e172d28eff11
+
+x = e43d7008d3e41ad5
+y = df82555639c8e3c0
+-x = 1bc28ff72c1be52b
+x + y = c3bfc55f0dacfe95
+x - y = 4bb1ab29a1b3715
+x * y = 3d32eb3e9246fec0
+x /u y = 1
+x %u y = 4bb1ab29a1b3715
+x /s y = 0
+x %s y = e43d7008d3e41ad5
+x /u y2 = 1056b28b9
+x %u y2 = 986cffaf
+x /s y3 = dab98c69
+x %s y3 = fffffffff99e128f
+~x = 1bc28ff72c1be52a
+x & y = c400500011c002c0
+x | y = ffbf755efbecfbd5
+x ^ y = 3bbf255eea2cf915
+x << i = e43d7008d3e41ad5
+x >>u i = e43d7008d3e41ad5
+x >>s i = e43d7008d3e41ad5
+x cmpu y = gt
+x cmps y = gt
+utod x = 43ec87ae011a7c83
+dtou f = 5d7cb29987887
+stod x = c3bbc28ff72c1be5
+dtos f = ffff4a126ed167bc
+
+x = fbbe909b5773ca0f
+y = f9520e33d6ba76f2
+-x = 4416f64a88c35f1
+x + y = f5109ecf2e2e4101
+x - y = 26c826780b9531d
+x * y = cdb0b52e637dec2e
+x /u y = 1
+x %u y = 26c826780b9531d
+x /s y = 0
+x %s y = fbbe909b5773ca0f
+x /u y2 = 1027d221e
+x %u y2 = e50c5a15
+x /s y3 = a31a1d6d
+x %s y3 = fffffffff9b9f758
+~x = 4416f64a88c35f0
+x & y = f912001356324202
+x | y = fbfe9ebbd7fbfeff
+x ^ y = 2ec9ea881c9bcfd
+x << i = 283c000000000000
+x >>u i = 3eef
+x >>s i = fffffffffffffeef
+x cmpu y = gt
+x cmps y = gt
+utod x = 43ef77d2136aee79
+dtou f = 671d501edc23f
+stod x = c39105bd92a230d8
+dtos f = ffffe41c4726b175
+
+x = 8f2098834a0a77d9
+y = a889851f5a003974
+-x = 70df677cb5f58827
+x + y = 37aa1da2a40ab14d
+x - y = e6971363f00a3e65
+x * y = 376b45632b6d9f54
+x /u y = 0
+x %u y = 8f2098834a0a77d9
+x /s y = 1
+x %s y = e6971363f00a3e65
+x /u y2 = d967540f
+x %u y2 = 73d47f08
+x /s y3 = 14a5fa443
+x %s y3 = ffffffffb843c4bc
+~x = 70df677cb5f58826
+x & y = 880080034a003150
+x | y = afa99d9f5a0a7ffd
+x ^ y = 27a91d9c100a4ead
+x << i = 7d90000000000000
+x >>u i = 8f2
+x >>s i = fffffffffffff8f2
+x cmpu y = lt
+x cmps y = lt
+utod x = 43e1e4131069414f
+dtou f = 3a9ffceeea4ed
+stod x = c3dc37d9df2d7d62
+dtos f = fffd1c4714279423
+
+x = cdb48c3bc67626b3
+y = 7253c92e218e1bc6
+-x = 324b73c43989d94d
+x + y = 40085569e8044279
+x - y = 5b60c30da4e80aed
+x * y = 51d293da7fc0cf72
+x /u y = 1
+x %u y = 5b60c30da4e80aed
+x /s y = 0
+x %s y = cdb48c3bc67626b3
+x /u y2 = 1cc9cbb61
+x %u y2 = ba5245
+x /s y3 = ffffffff8f617990
+x %s y3 = fffffffff0d03ed3
+~x = 324b73c43989d94c
+x & y = 4010882a00060282
+x | y = fff7cd3fe7fe3ff7
+x ^ y = bfe74515e7f83d75
+x << i = 6d230ef19d89acc0
+x >>u i = 336d230ef19d89a
+x >>s i = ff36d230ef19d89a
+x cmpu y = gt
+x cmps y = lt
+utod x = 43e9b6918778cec5
+dtou f = 5441c2a7d80c5
+stod x = c3c925b9e21cc4ed
+dtos f = fffeb6636fb66ffb
+
+x = b9770d034f679d1d
+y = b10aa58461708268
+-x = 4688f2fcb09862e3
+x + y = 6a81b287b0d81f85
+x - y = 86c677eedf71ab5
+x * y = a954ab7b99908dc8
+x /u y = 1
+x %u y = 86c677eedf71ab5
+x /s y = 0
+x %s y = b9770d034f679d1d
+x /u y2 = 10c2e2273
+x %u y2 = 6febbad1
+x /s y3 = e4b07a4a
+x %s y3 = ffffffffb4b2dcf5
+~x = 4688f2fcb09862e2
+x & y = b102050041608008
+x | y = b97fad876f779f7d
+x ^ y = 87da8872e171f75
+x << i = 679d1d0000000000
+x >>u i = b9770d
+x >>s i = ffffffffffb9770d
+x cmpu y = gt
+x cmps y = gt
+utod x = 43e72ee1a069ecf4
+dtou f = 4bf76b520c0b5
+stod x = c3d1a23cbf2c2619
+dtos f = fffe31bdfa59afea
+
+x = 7df56995af680597
+y = 83202d927c5965da
+-x = 820a966a5097fa69
+x + y = 11597282bc16b71
+x - y = fad53c03330e9fbd
+x * y = 95d310a87e485596
+x /u y = 0
+x %u y = 7df56995af680597
+x /s y = ffffffffffffffff
+x %s y = 11597282bc16b71
+x /u y2 = f5e9880c
+x %u y2 = 3dce52bf
+x /s y3 = fffffffefdc6ec2b
+x %s y3 = 7611c611
+~x = 820a966a5097fa68
+x & y = 12029902c480592
+x | y = fff56d97ff7965df
+x ^ y = fed54407d331604d
+x << i = 56bda0165c000000
+x >>u i = 1f7d5a656b
+x >>s i = 1f7d5a656b
+x cmpu y = lt
+x cmps y = gt
+utod x = 43df7d5a656bda01
+dtou f = 3397b88f3b261
+stod x = 43df7d5a656bda01
+dtos f = 3397b88f3b261
+
+x = 553ac3862c878ea1
+y = 596019b6dab2729c
+-x = aac53c79d378715f
+x + y = ae9add3d073a013d
+x - y = fbdaa9cf51d51c05
+x * y = aac46ac3c6109c1c
+x /u y = 0
+x %u y = 553ac3862c878ea1
+x /s y = 0
+x %s y = 553ac3862c878ea1
+x /u y2 = f41ffd27
+x %u y2 = 70c5e7
+x /s y3 = f41ffd27
+x %s y3 = 70c5e7
+~x = aac53c79d378715e
+x & y = 5120018608820280
+x | y = 5d7adbb6feb7febd
+x ^ y = c5ada30f635fc3d
+x << i = 62c878ea10000000
+x >>u i = 553ac3862
+x >>s i = 553ac3862
+x cmpu y = lt
+x cmps y = lt
+utod x = 43d54eb0e18b21e4
+dtou f = 22e8f73417278
+stod x = 43d54eb0e18b21e4
+dtos f = 22e8f73417278
+
+x = 20fcd070f46d0abb
+y = b8bcea21c9bc292e
+-x = df032f8f0b92f545
+x + y = d9b9ba92be2933e9
+x - y = 683fe64f2ab0e18d
+x * y = a4ddf90d16a3e09a
+x /u y = 0
+x %u y = 20fcd070f46d0abb
+x /s y = 0
+x %s y = 20fcd070f46d0abb
+x /u y2 = 2db65f96
+x %u y2 = 5a639c65
+x /s y3 = ffffffff897f0ff8
+x %s y3 = 1c534bc3
+~x = df032f8f0b92f544
+x & y = 20bcc020c02c082a
+x | y = b8fcfa71fdfd2bbf
+x ^ y = 98403a513dd12395
+x << i = 42aec00000000000
+x >>u i = 83f3
+x >>s i = 83f3
+x cmpu y = lt
+x cmps y = gt
+utod x = 43c07e68387a3685
+dtou f = d82fef3b1880
+stod x = 43c07e68387a3685
+dtos f = d82fef3b1880
+
+x = 37d0c25765ae9065
+y = 2c73a7867781fe10
+-x = c82f3da89a516f9b
+x + y = 644469dddd308e75
+x - y = b5d1ad0ee2c9255
+x * y = 7f1db64d44123c50
+x /u y = 1
+x %u y = b5d1ad0ee2c9255
+x /s y = 1
+x %s y = b5d1ad0ee2c9255
+x /u y2 = 14171ae1b
+x %u y2 = 2178d143
+x /s y3 = 14171ae1b
+x %s y3 = 2178d143
+~x = c82f3da89a516f9a
+x & y = 2450820665809000
+x | y = 3ff3e7d777affe75
+x ^ y = 1ba365d1122f6e75
+x << i = c25765ae90650000
+x >>u i = 37d0c25765ae
+x >>s i = 37d0c25765ae
+x cmpu y = gt
+x cmps y = gt
+utod x = 43cbe8612bb2d748
+dtou f = 16dcacfdb480d
+stod x = 43cbe8612bb2d748
+dtos f = 16dcacfdb480d
+
+x = 7c44b251159b1a1f
+y = 6922cff21dab79c2
+-x = 83bb4daeea64e5e1
+x + y = e5678243334693e1
+x - y = 1321e25ef7efa05d
+x * y = f5cf3786a497727e
+x /u y = 1
+x %u y = 1321e25ef7efa05d
+x /s y = 1
+x %s y = 1321e25ef7efa05d
+x /u y2 = 12e961017
+x %u y2 = 22af4b61
+x /s y3 = 12e961017
+x %s y3 = 22af4b61
+~x = 83bb4daeea64e5e0
+x & y = 68008250158b1802
+x | y = 7d66fff31dbb7bdf
+x ^ y = 15667da3083063dd
+x << i = f112c944566c687c
+x >>u i = 1f112c944566c687
+x >>s i = 1f112c944566c687
+x cmpu y = gt
+x cmps y = gt
+utod x = 43df112c944566c7
+dtou f = 32e67b027dfed
+stod x = 43df112c944566c7
+dtos f = 32e67b027dfed
+
diff --git a/test/regression/Results/volatile2 b/test/regression/Results/volatile2
index e6a9903..23a53f0 100644
--- a/test/regression/Results/volatile2
+++ b/test/regression/Results/volatile2
@@ -12,6 +12,8 @@ float 1: OK
float 2: OK
double 1: OK
double 2: OK
+long long 1: OK
+long long 2: OK
global signed char 1: OK
global signed char 2: OK
global unsigned char 1: OK
@@ -26,3 +28,5 @@ global float 1: OK
global float 2: OK
global double 1: OK
global double 2: OK
+global long long 1: OK
+global long long 2: OK
diff --git a/test/regression/int64.c b/test/regression/int64.c
new file mode 100644
index 0000000..55a4f88
--- /dev/null
+++ b/test/regression/int64.c
@@ -0,0 +1,115 @@
+/* Semi-random testing of 64-bit integer operations */
+
+#include <stdio.h>
+
+typedef unsigned long long u64;
+typedef signed long long s64;
+
+static u64 rnd64(void)
+{
+ static u64 seed = 0;
+ seed = seed * 6364136223846793005ULL + 1442695040888963407ULL;
+ return seed;
+}
+
+static inline u64 safe_udiv64(u64 x, u64 y)
+{
+ if (y == 0) return 0; else return x / y;
+}
+
+static inline u64 safe_umod64(u64 x, u64 y)
+{
+ if (y == 0) return 0; else return x % y;
+}
+
+static inline s64 safe_sdiv64(s64 x, s64 y)
+{
+ if (y == 0 || (y == -1 && x == (-1LL << 63))) return 0; else return x / y;
+}
+
+static inline s64 safe_smod64(s64 x, s64 y)
+{
+ if (y == 0 || (y == -1 && x == (-1LL << 63))) return 0; else return x % y;
+}
+
+static void test1(u64 x, u64 y)
+{
+ u64 y2;
+ s64 y3;
+ int i;
+ double f;
+
+ printf("x = %llx\n", x);
+ printf("y = %llx\n", y);
+ printf("-x = %llx\n", -x);
+ printf("x + y = %llx\n", x + y);
+ printf("x - y = %llx\n", x - y);
+ printf("x * y = %llx\n", x * y);
+ printf("x /u y = %llx\n", safe_udiv64(x, y));
+ printf("x %%u y = %llx\n", safe_umod64(x, y));
+ printf("x /s y = %llx\n", safe_sdiv64(x, y));
+ printf("x %%s y = %llx\n", safe_smod64(x, y));
+ y2 = y >> 32;
+ printf("x /u y2 = %llx\n", safe_udiv64(x, y2));
+ printf("x %%u y2 = %llx\n", safe_umod64(x, y2));
+ y3 = ((s64)y) >> 32;
+ printf("x /s y3 = %llx\n", safe_sdiv64(x, y3));
+ printf("x %%s y3 = %llx\n", safe_smod64(x, y3));
+ printf("~x = %llx\n", ~x);
+ printf("x & y = %llx\n", x & y);
+ printf("x | y = %llx\n", x | y);
+ printf("x ^ y = %llx\n", x ^ y);
+ i = y & 63;
+ printf("x << i = %llx\n", x << i);
+ printf("x >>u i = %llx\n", x >> i);
+ printf("x >>s i = %llx\n", (s64) x >> i);
+ printf("x cmpu y = %s\n",
+ x == y ? "eq" : x < y ? "lt" : "gt");
+ printf("x cmps y = %s\n",
+ x == y ? "eq" : (s64)x < (s64)y ? "lt" : "gt");
+ f = (double) x;
+ printf("utod x = %llx\n", *((u64*) &f));
+ f = f * 0.0001;
+ printf("dtou f = %llx\n", (u64) f);
+ f = (double) ((s64) x);
+ printf("stod x = %llx\n", *((u64*) &f));
+ f = f * 0.0001;
+ printf("dtos f = %llx\n", (s64) f);
+ printf("\n");
+}
+
+u64 special_values[] = {
+ 0,
+ 1,
+ -1,
+ 0x7FFFFFFFLLU,
+ 0x80000000LLU,
+ 0x7FFFFFFFFFFFFFFFLLU,
+ 0x8000000000000000LLU
+};
+
+int main()
+{
+ int i, j;
+ u64 x, y;
+
+ for (i = 0; i <= 4; i++) {
+ for (j = 0; j <= 4; j++) {
+ test1(special_values[i], special_values[j]);
+ }
+ test1(special_values[i], rnd64());
+ test1(rnd64(), special_values[i]);
+ }
+ for (i = 0; i < 100; i++) {
+ x = rnd64(); y = rnd64();
+ test1(x, y);
+ }
+ return 0;
+}
+
+
+
+
+
+
+
diff --git a/test/regression/volatile2.c b/test/regression/volatile2.c
index 306eb8c..3bad6ae 100644
--- a/test/regression/volatile2.c
+++ b/test/regression/volatile2.c
@@ -15,6 +15,7 @@ unsigned short gus;
int gi;
float gf;
double gd;
+long long gll;
int main()
{
@@ -25,6 +26,7 @@ int main()
int i;
float f;
double d;
+ long long ll;
TEST("signed char", signed char, sc, 12, 34);
TEST("unsigned char", unsigned char, uc, 56, 78);
@@ -33,6 +35,7 @@ int main()
TEST("int", int, i, 0x123456, 0x7890AB);
TEST("float", float, f, 0.5, 256.0);
TEST("double", double, d, 3.1415, 2.718);
+ TEST("long long", long long, ll, 0x123456789ABCDEFLL, 0x789ABCDEF1234567LL);
TEST("global signed char", signed char, gsc, 12, 34);
TEST("global unsigned char", unsigned char, guc, 56, 78);
TEST("global signed short", signed short, gss, 1234, 5678);
@@ -40,6 +43,7 @@ int main()
TEST("global int", int, gi, 0x123456, 0x7890AB);
TEST("global float", float, gf, 0.5, 256.0);
TEST("global double", double, gd, 3.1415, 2.718);
+ TEST("global long long", long long, gll, 0x123456789ABCDEFLL, 0x789ABCDEF1234567LL);
return 0;
}