Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 8ca26d56422ac125adf3f53367db20fcad77c181)
+++ libcfa/src/concurrency/preemption.cfa	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -215,4 +215,8 @@
 // available.
 
+//-----------------------------------------------------------------------------
+// Some assembly required
+#define __cfaasm_label(label, when) when: asm volatile goto(".global __cfaasm_" #label "_" #when "\n" "__cfaasm_" #label "_" #when ":":::"memory":when)
+
 //----------
 // special case for preemption since used often
@@ -220,5 +224,5 @@
 	// create a assembler label before
 	// marked as clobber all to avoid movement
-	asm volatile("__cfaasm_check_before:":::"memory");
+	__cfaasm_label(check, before);
 
 	// access tls as normal
@@ -227,5 +231,5 @@
 	// create a assembler label after
 	// marked as clobber all to avoid movement
-	asm volatile("__cfaasm_check_after:":::"memory");
+	__cfaasm_label(check, after);
 	return enabled;
 }
@@ -246,9 +250,7 @@
 uintptr_t __cfatls_get( unsigned long int offset ) __attribute__((__noinline__)); //no inline to avoid problems
 uintptr_t __cfatls_get( unsigned long int offset ) {
-	// __cfaasm_get.before = ({ void * value; asm("movq $__cfaasm_get_before, %[v]\n\t" : [v]"=r"(value) ); value; });
-	// __cfaasm_get.after  = ({ void * value; asm("movq $__cfaasm_get_after , %[v]\n\t" : [v]"=r"(value) ); value; });
 	// create a assembler label before
 	// marked as clobber all to avoid movement
-	asm volatile("__cfaasm_get_before:":::"memory");
+	__cfaasm_label(get, before);
 
 	// access tls as normal (except for pointer arithmetic)
@@ -257,5 +259,5 @@
 	// create a assembler label after
 	// marked as clobber all to avoid movement
-	asm volatile("__cfaasm_get_after:":::"memory");
+	__cfaasm_label(get, after);
 	return val;
 }
@@ -266,5 +268,5 @@
 		// create a assembler label before
 		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_dsable_before:":::"memory");
+		__cfaasm_label(dsable, before);
 
 		with( __cfaabi_tls.preemption_state ) {
@@ -288,5 +290,6 @@
 		// create a assembler label after
 		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_dsable_after:":::"memory");
+		__cfaasm_label(dsable, after);
+
 	}
 
@@ -294,9 +297,6 @@
 	// If counter reaches 0, execute any pending __cfactx_switch
 	void enable_interrupts( __cfaabi_dbg_ctx_param ) {
-		// create a assembler label before
-		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_enble_before:":::"memory");
-
-		processor   * proc = __cfaabi_tls.this_processor; // Cache the processor now since interrupts can start happening after the atomic store
+		// Cache the processor now since interrupts can start happening after the atomic store
+		processor   * proc = __cfaabi_tls.this_processor;
 		/* paranoid */ verify( proc );
 
@@ -304,10 +304,12 @@
 			unsigned short prev = disable_count;
 			disable_count -= 1;
-			verify( prev != 0u );                     // If this triggers someone is enabled already enabled interruptsverify( prev != 0u );
+
+			// If this triggers someone is enabled already enabled interruptsverify( prev != 0u );
+			/* paranoid */ verify( prev != 0u );
 
 			// Check if we need to prempt the thread because an interrupt was missed
 			if( prev == 1 ) {
 				#if GCC_VERSION > 50000
-				static_assert(__atomic_always_lock_free(sizeof(enabled), &enabled), "Must be lock-free");
+					static_assert(__atomic_always_lock_free(sizeof(enabled), &enabled), "Must be lock-free");
 				#endif
 
@@ -328,8 +330,4 @@
 		// For debugging purposes : keep track of the last person to enable the interrupts
 		__cfaabi_dbg_debug_do( proc->last_enable = caller; )
-
-		// create a assembler label after
-		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_enble_after:":::"memory");
 	}
 
@@ -337,14 +335,11 @@
 	// Don't execute any pending __cfactx_switch even if counter reaches 0
 	void enable_interrupts_noPoll() {
-		// create a assembler label before
-		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_nopoll_before:":::"memory");
-
 		unsigned short prev = __cfaabi_tls.preemption_state.disable_count;
 		__cfaabi_tls.preemption_state.disable_count -= 1;
-		verifyf( prev != 0u, "Incremented from %u\n", prev );                     // If this triggers someone is enabled already enabled interrupts
+		// If this triggers someone is enabled already enabled interrupts
+		/* paranoid */ verifyf( prev != 0u, "Incremented from %u\n", prev );
 		if( prev == 1 ) {
 			#if GCC_VERSION > 50000
-			static_assert(__atomic_always_lock_free(sizeof(__cfaabi_tls.preemption_state.enabled), &__cfaabi_tls.preemption_state.enabled), "Must be lock-free");
+				static_assert(__atomic_always_lock_free(sizeof(__cfaabi_tls.preemption_state.enabled), &__cfaabi_tls.preemption_state.enabled), "Must be lock-free");
 			#endif
 			// Set enabled flag to true
@@ -356,10 +351,8 @@
 			__atomic_signal_fence(__ATOMIC_RELEASE);
 		}
-
-		// create a assembler label after
-		// marked as clobber all to avoid movement
-		asm volatile("__cfaasm_nopoll_after:":::"memory");
-	}
-}
+	}
+}
+
+#undef __cfaasm_label
 
 // sigprocmask wrapper : unblock a single signal
@@ -446,18 +439,32 @@
 #elif defined( __aarch64__ )
 	#ifdef __PIC__
-		#define RELOC_TAG "@PLT"
-	#else
-		#define RELOC_TAG ""
-	#endif
-	#define __cfaasm_label( label ) \
+		// Note that this works only for gcc
+		#define __cfaasm_label( label ) static struct asm_region label = \
 		({ \
 			struct asm_region region; \
 			asm( \
-				"mov %[vb], __cfaasm_" #label "_before@GOTPCREL(%%rip)"  "\n\t" \
-				"mov %[va], __cfaasm_" #label "_after@GOTPCREL(%%rip)"   "\n\t" \
+				"adrp %[vb], _GLOBAL_OFFSET_TABLE_"                              "\n\t" \
+        			"ldr  %[vb], [%[vb], #:gotpage_lo15:__cfaasm_" #label "_before]" "\n\t" \
+				"adrp %[va], _GLOBAL_OFFSET_TABLE_"                              "\n\t" \
+        			"ldr  %[va], [%[va], #:gotpage_lo15:__cfaasm_" #label "_after]"  "\n\t" \
 				 : [vb]"=r"(region.before), [va]"=r"(region.after) \
 			); \
 			region; \
 		});
+	#else
+		#error this is not the right thing to do
+		// #define __cfaasm_label( label ) static struct asm_region label = \
+		// ({ \
+		// 	struct asm_region region; \
+		// 	asm( \
+		// 		"adrp %[vb], __cfaasm_" #label "_before"              "\n\t" \
+        	// 		"add  %[vb], %[vb], :lo12:__cfaasm_" #label "_before" "\n\t" \
+		// 		"adrp %[va], :got:__cfaasm_" #label "_after"          "\n\t" \
+        	// 		"add  %[va], %[va], :lo12:__cfaasm_" #label "_after"  "\n\t" \
+		// 		 : [vb]"=r"(region.before), [va]"=r"(region.after) \
+		// 	); \
+		// 	region; \
+		// });
+	#endif
 #else
 	#error unknown hardware architecture
@@ -473,6 +480,4 @@
 	__cfaasm_label( check  );
 	__cfaasm_label( dsable );
-	__cfaasm_label( enble );
-	__cfaasm_label( nopoll );
 
 	// Check if preemption is safe
@@ -481,6 +486,4 @@
 	if( __cfaasm_in( ip, check  ) ) { ready = false; goto EXIT; };
 	if( __cfaasm_in( ip, dsable ) ) { ready = false; goto EXIT; };
-	if( __cfaasm_in( ip, enble  ) ) { ready = false; goto EXIT; };
-	if( __cfaasm_in( ip, nopoll ) ) { ready = false; goto EXIT; };
 	if( !__cfaabi_tls.preemption_state.enabled) { ready = false; goto EXIT; };
 	if( __cfaabi_tls.preemption_state.in_progress ) { ready = false; goto EXIT; };
Index: src/Common/Stats/ResolveTime.cc
===================================================================
--- src/Common/Stats/ResolveTime.cc	(revision 8ca26d56422ac125adf3f53367db20fcad77c181)
+++ src/Common/Stats/ResolveTime.cc	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -27,7 +27,15 @@
 	namespace ResolveTime {
 		static inline long long rdtscl(void) {
-			unsigned int lo, hi;
-			__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
-			return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+			#if defined( __i386 ) || defined( __x86_64 )
+				unsigned int lo, hi;
+				__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
+				return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+			#elif defined( __aarch64__ )
+				int64_t value;
+				asm volatile("mrs %0, cntvct_el0" : "=r"(value));
+				return value;
+			#else
+				#error unknown hardware architecture
+			#endif
 		}
 
Index: tests/.expect/KRfunctions.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/KRfunctions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,116 @@
+signed int _X2f0Fi_iPKii__1(signed int _X1ai_1, const signed int *_X1bPKi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X10_retval_f0i_1;
+}
+signed int _X2f1Fi_PiiPi__1(signed int *_X1aPi_1, __attribute__ ((unused)) signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+signed int _X2f3Fi_S1SS1SPi__1(struct S _X1aS1S_1, struct S _X1bS1S_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f3i_1;
+    struct S _X1sS1S_2;
+}
+signed int _X2f4Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f4i_1;
+}
+signed int _X2f5Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f5i_1;
+}
+signed int (*_X2f6FFi_i__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(__attribute__ ((unused)) signed int __anonymous_object0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __anonymous_object1);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int _X1ai_1, signed int _X1bi_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int _X1ai_1, signed int _X1bi_1);
+}
+signed int *_X2f8FPi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *_X10_retval_f8Pi_1;
+}
+signed int *const _X2f9FPi_PiiPi__1(signed int *_X1aPi_1, signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *const _X10_retval_f9KPi_1;
+}
+signed int *(*_X3f10FFPi_ii__iPiPid__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1, double _X1yd_1))(signed int _X1xi_1, signed int _X1yi_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int _X1xi_1, signed int _X1yi_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object2, signed int __anonymous_object3);
+    {
+        ((void)(_X11_retval_f10FPi_ii__1=_X1xFPi_ii__2) /* ?{} */);
+    }
+
+    return _X11_retval_f10FPi_ii__1;
+}
+signed int (*_X3f11FPA0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0i_1)[];
+}
+signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int _X3f15Fi_iii__1(signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
+}
+const signed int _X4fredFi___1(){
+    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
+    signed int *(*_X1xFPi_ii__2)(signed int __anonymous_object4, signed int __anonymous_object5);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret4)(signed int _X1xi_1, signed int _X1yi_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
+    }
+
+    const signed int _X2f1Fi_iPiPi__2(signed int _X1ai_2, signed int *_X1bPi_2, signed int *_X1cPi_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f1Ki_2;
+    }
+    const signed int _X2f2Fi_iii__2(signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f2Ki_2;
+    }
+}
Index: tests/.expect/attributes.arm64.txt
===================================================================
--- tests/.expect/attributes.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/attributes.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,810 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __attribute__ ((unused)) __anonymous0 {
+};
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+}
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+    struct __anonymous0 _X4_retS12__anonymous0_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1((&_X4_retS12__anonymous0_1), (*_X4_dstS12__anonymous0_1)));
+    }
+
+    return _X4_retS12__anonymous0_1;
+}
+struct __attribute__ ((unused)) Agn1;
+struct __attribute__ ((unused)) Agn2 {
+};
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+}
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+    struct Agn2 _X4_retS4Agn2_1;
+    {
+        ((void)_X12_constructorFv_S4Agn2S4Agn2_autogen___1((&_X4_retS4Agn2_1), (*_X4_dstS4Agn2_1)));
+    }
+
+    return _X4_retS4Agn2_1;
+}
+enum __attribute__ ((unused)) __anonymous1 {
+    _X2E1KM12__anonymous1_1,
+};
+enum __attribute__ ((unused)) Agn3;
+enum __attribute__ ((packed)) Agn3 {
+    _X2E2KM4Agn3_1,
+};
+struct __attribute__ ((unused)) __anonymous2 {
+};
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+}
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+    struct __anonymous2 _X4_retS12__anonymous2_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1((&_X4_retS12__anonymous2_1), (*_X4_dstS12__anonymous2_1)));
+    }
+
+    return _X4_retS12__anonymous2_1;
+}
+struct __attribute__ ((unused)) Agn4 {
+};
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+}
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+    struct Agn4 _X4_retS4Agn4_1;
+    {
+        ((void)_X12_constructorFv_S4Agn4S4Agn4_autogen___1((&_X4_retS4Agn4_1), (*_X4_dstS4Agn4_1)));
+    }
+
+    return _X4_retS4Agn4_1;
+}
+struct Fdl {
+    __attribute__ ((unused)) signed int _X2f1i_1;
+    __attribute__ ((unused)) signed int _X2f2i_1;
+    __attribute__ ((unused,unused)) signed int _X2f3i_1;
+    __attribute__ ((unused)) signed int _X2f4i_1;
+    __attribute__ ((unused,unused)) signed int _X2f5i_1;
+    __attribute__ ((used,packed)) signed int _X2f6i_1;
+    __attribute__ ((used,unused,unused)) signed int _X2f7i_1;
+    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
+    __attribute__ ((unused,unused)) signed int *_X2f9Pi_1;
+};
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1);
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1);
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1);
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1);
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1);
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ^?{} */);
+    }
+
+}
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    struct Fdl _X4_retS3Fdl_1;
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
+    }
+
+    return _X4_retS3Fdl_1;
+}
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
+    }
+
+}
+__attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
+__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
+__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
+__attribute__ ((used,used,used,used)) const signed int *_X3vd3PKi_1;
+__attribute__ ((used,used,unused,used,unused)) const signed int *_X3vd4PKi_1;
+__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
+__attribute__ ((unused,used)) signed int _X2f1Fi___1();
+__attribute__ ((unused)) signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
+__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
+    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
+__attribute__ ((unused,unused)) signed int (*_X2f3FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f3PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f4FFi_i____1())(signed int __anonymous_object1);
+__attribute__ ((unused,unused)) signed int (*_X2f4FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object2){
+    __attribute__ ((unused)) signed int (*_X10_retval_f4Fi_i__1)(signed int __anonymous_object3);
+}
+signed int _X3vtrFi___1(){
+    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
+    const unsigned long int _array_dim0 = ((const unsigned long int )((unsigned long int )5));
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )_array_dim0)];
+    const unsigned long int _array_dim1 = ((const unsigned long int )((unsigned long int )5));
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )_array_dim1)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t5Fi___2();
+    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
+}
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
+}
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
+}
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
+}
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
+    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+}
+signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
+signed int _X4tpr2Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X3FooPPi_1);
+signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
+signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object4)(__attribute__ ((unused,unused)) signed int __anonymous_object5[((unsigned long int )5)]));
+signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object6)(__attribute__ ((unused)) signed int (*__anonymous_object7)(__attribute__ ((unused,unused)) signed int __anonymous_object8)));
+signed int _X2adFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+    __attribute__ ((used,unused)) signed int _X3ad1i_2;
+    __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
+    const unsigned long int _array_dim2 = ((const unsigned long int )((unsigned long int )5));
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )_array_dim2)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
+    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
+    {
+        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [((unsigned long int )5)]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[((unsigned long int )10)]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
+    }
+
+    struct __attribute__ ((unused)) __anonymous3 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        struct __anonymous3 _X4_retS12__anonymous3_2;
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2((&_X4_retS12__anonymous3_2), (*_X4_dstS12__anonymous3_2)));
+        }
+
+        return _X4_retS12__anonymous3_2;
+    }
+    inline void _X12_constructorFv_S12__anonymous3i_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    {
+        ((void)sizeof(struct __anonymous3 ));
+    }
+
+    enum __attribute__ ((unused)) __anonymous4 {
+        _X1RKM12__anonymous4_2,
+    };
+    inline void _X12_constructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline void _X12_constructorFv_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        enum __anonymous4 _X4_retM12__anonymous4_2;
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        {
+            ((void)(_X4_retM12__anonymous4_2=(*_X4_dstM12__anonymous4_2)) /* ?{} */);
+        }
+
+        return _X4_retM12__anonymous4_2;
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object9, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object10);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object11, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object13, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object14);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __anonymous_object18), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object19)(__attribute__ ((unused)) signed int __anonymous_object20));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)(__attribute__ ((unused)) signed int __anonymous_object24), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object25)(__attribute__ ((unused)) signed int __anonymous_object26));
+struct Vad {
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused,unused)) signed int :6;
+};
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+}
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+    struct Vad _X4_retS3Vad_1;
+    {
+        ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
+    }
+
+    return _X4_retS3Vad_1;
+}
Index: tests/.expect/bitmanip1.arm64.txt
===================================================================
--- tests/.expect/bitmanip1.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/bitmanip1.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,1603 @@
+leading0s
+
+signed char
+0b00000000 8
+0b00000001 7
+0b00000010 6
+0b00000100 5
+0b00001000 4
+0b00010000 3
+0b00100000 2
+0b01000000 1
+0b10000000 0
+
+unsigned char
+0b00000000 8
+0b00000001 7
+0b00000010 6
+0b00000100 5
+0b00001000 4
+0b00010000 3
+0b00100000 2
+0b01000000 1
+0b10000000 0
+
+short int
+0b0000000000000000 16
+0b0000000000000001 15
+0b0000000000000010 14
+0b0000000000000100 13
+0b0000000000001000 12
+0b0000000000010000 11
+0b0000000000100000 10
+0b0000000001000000 9
+0b0000000010000000 8
+0b0000000100000000 7
+0b0000001000000000 6
+0b0000010000000000 5
+0b0000100000000000 4
+0b0001000000000000 3
+0b0010000000000000 2
+0b0100000000000000 1
+0b1000000000000000 0
+
+unsigned short int
+0b0000000000000000 16
+0b0000000000000001 15
+0b0000000000000010 14
+0b0000000000000100 13
+0b0000000000001000 12
+0b0000000000010000 11
+0b0000000000100000 10
+0b0000000001000000 9
+0b0000000010000000 8
+0b0000000100000000 7
+0b0000001000000000 6
+0b0000010000000000 5
+0b0000100000000000 4
+0b0001000000000000 3
+0b0010000000000000 2
+0b0100000000000000 1
+0b1000000000000000 0
+
+int
+0b00000000000000000000000000000000 32
+0b00000000000000000000000000000001 31
+0b00000000000000000000000000000010 30
+0b00000000000000000000000000000100 29
+0b00000000000000000000000000001000 28
+0b00000000000000000000000000010000 27
+0b00000000000000000000000000100000 26
+0b00000000000000000000000001000000 25
+0b00000000000000000000000010000000 24
+0b00000000000000000000000100000000 23
+0b00000000000000000000001000000000 22
+0b00000000000000000000010000000000 21
+0b00000000000000000000100000000000 20
+0b00000000000000000001000000000000 19
+0b00000000000000000010000000000000 18
+0b00000000000000000100000000000000 17
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 15
+0b00000000000000100000000000000000 14
+0b00000000000001000000000000000000 13
+0b00000000000010000000000000000000 12
+0b00000000000100000000000000000000 11
+0b00000000001000000000000000000000 10
+0b00000000010000000000000000000000 9
+0b00000000100000000000000000000000 8
+0b00000001000000000000000000000000 7
+0b00000010000000000000000000000000 6
+0b00000100000000000000000000000000 5
+0b00001000000000000000000000000000 4
+0b00010000000000000000000000000000 3
+0b00100000000000000000000000000000 2
+0b01000000000000000000000000000000 1
+0b10000000000000000000000000000000 0
+
+unsigned int
+0b00000000000000000000000000000000 32
+0b00000000000000000000000000000001 31
+0b00000000000000000000000000000010 30
+0b00000000000000000000000000000100 29
+0b00000000000000000000000000001000 28
+0b00000000000000000000000000010000 27
+0b00000000000000000000000000100000 26
+0b00000000000000000000000001000000 25
+0b00000000000000000000000010000000 24
+0b00000000000000000000000100000000 23
+0b00000000000000000000001000000000 22
+0b00000000000000000000010000000000 21
+0b00000000000000000000100000000000 20
+0b00000000000000000001000000000000 19
+0b00000000000000000010000000000000 18
+0b00000000000000000100000000000000 17
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 15
+0b00000000000000100000000000000000 14
+0b00000000000001000000000000000000 13
+0b00000000000010000000000000000000 12
+0b00000000000100000000000000000000 11
+0b00000000001000000000000000000000 10
+0b00000000010000000000000000000000 9
+0b00000000100000000000000000000000 8
+0b00000001000000000000000000000000 7
+0b00000010000000000000000000000000 6
+0b00000100000000000000000000000000 5
+0b00001000000000000000000000000000 4
+0b00010000000000000000000000000000 3
+0b00100000000000000000000000000000 2
+0b01000000000000000000000000000000 1
+0b10000000000000000000000000000000 0
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000010 62
+0b0000000000000000000000000000000000000000000000000000000000000100 61
+0b0000000000000000000000000000000000000000000000000000000000001000 60
+0b0000000000000000000000000000000000000000000000000000000000010000 59
+0b0000000000000000000000000000000000000000000000000000000000100000 58
+0b0000000000000000000000000000000000000000000000000000000001000000 57
+0b0000000000000000000000000000000000000000000000000000000010000000 56
+0b0000000000000000000000000000000000000000000000000000000100000000 55
+0b0000000000000000000000000000000000000000000000000000001000000000 54
+0b0000000000000000000000000000000000000000000000000000010000000000 53
+0b0000000000000000000000000000000000000000000000000000100000000000 52
+0b0000000000000000000000000000000000000000000000000001000000000000 51
+0b0000000000000000000000000000000000000000000000000010000000000000 50
+0b0000000000000000000000000000000000000000000000000100000000000000 49
+0b0000000000000000000000000000000000000000000000001000000000000000 48
+0b0000000000000000000000000000000000000000000000010000000000000000 47
+0b0000000000000000000000000000000000000000000000100000000000000000 46
+0b0000000000000000000000000000000000000000000001000000000000000000 45
+0b0000000000000000000000000000000000000000000010000000000000000000 44
+0b0000000000000000000000000000000000000000000100000000000000000000 43
+0b0000000000000000000000000000000000000000001000000000000000000000 42
+0b0000000000000000000000000000000000000000010000000000000000000000 41
+0b0000000000000000000000000000000000000000100000000000000000000000 40
+0b0000000000000000000000000000000000000001000000000000000000000000 39
+0b0000000000000000000000000000000000000010000000000000000000000000 38
+0b0000000000000000000000000000000000000100000000000000000000000000 37
+0b0000000000000000000000000000000000001000000000000000000000000000 36
+0b0000000000000000000000000000000000010000000000000000000000000000 35
+0b0000000000000000000000000000000000100000000000000000000000000000 34
+0b0000000000000000000000000000000001000000000000000000000000000000 33
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 31
+0b0000000000000000000000000000001000000000000000000000000000000000 30
+0b0000000000000000000000000000010000000000000000000000000000000000 29
+0b0000000000000000000000000000100000000000000000000000000000000000 28
+0b0000000000000000000000000001000000000000000000000000000000000000 27
+0b0000000000000000000000000010000000000000000000000000000000000000 26
+0b0000000000000000000000000100000000000000000000000000000000000000 25
+0b0000000000000000000000001000000000000000000000000000000000000000 24
+0b0000000000000000000000010000000000000000000000000000000000000000 23
+0b0000000000000000000000100000000000000000000000000000000000000000 22
+0b0000000000000000000001000000000000000000000000000000000000000000 21
+0b0000000000000000000010000000000000000000000000000000000000000000 20
+0b0000000000000000000100000000000000000000000000000000000000000000 19
+0b0000000000000000001000000000000000000000000000000000000000000000 18
+0b0000000000000000010000000000000000000000000000000000000000000000 17
+0b0000000000000000100000000000000000000000000000000000000000000000 16
+0b0000000000000001000000000000000000000000000000000000000000000000 15
+0b0000000000000010000000000000000000000000000000000000000000000000 14
+0b0000000000000100000000000000000000000000000000000000000000000000 13
+0b0000000000001000000000000000000000000000000000000000000000000000 12
+0b0000000000010000000000000000000000000000000000000000000000000000 11
+0b0000000000100000000000000000000000000000000000000000000000000000 10
+0b0000000001000000000000000000000000000000000000000000000000000000 9
+0b0000000010000000000000000000000000000000000000000000000000000000 8
+0b0000000100000000000000000000000000000000000000000000000000000000 7
+0b0000001000000000000000000000000000000000000000000000000000000000 6
+0b0000010000000000000000000000000000000000000000000000000000000000 5
+0b0000100000000000000000000000000000000000000000000000000000000000 4
+0b0001000000000000000000000000000000000000000000000000000000000000 3
+0b0010000000000000000000000000000000000000000000000000000000000000 2
+0b0100000000000000000000000000000000000000000000000000000000000000 1
+0b1000000000000000000000000000000000000000000000000000000000000000 0
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000010 62
+0b0000000000000000000000000000000000000000000000000000000000000100 61
+0b0000000000000000000000000000000000000000000000000000000000001000 60
+0b0000000000000000000000000000000000000000000000000000000000010000 59
+0b0000000000000000000000000000000000000000000000000000000000100000 58
+0b0000000000000000000000000000000000000000000000000000000001000000 57
+0b0000000000000000000000000000000000000000000000000000000010000000 56
+0b0000000000000000000000000000000000000000000000000000000100000000 55
+0b0000000000000000000000000000000000000000000000000000001000000000 54
+0b0000000000000000000000000000000000000000000000000000010000000000 53
+0b0000000000000000000000000000000000000000000000000000100000000000 52
+0b0000000000000000000000000000000000000000000000000001000000000000 51
+0b0000000000000000000000000000000000000000000000000010000000000000 50
+0b0000000000000000000000000000000000000000000000000100000000000000 49
+0b0000000000000000000000000000000000000000000000001000000000000000 48
+0b0000000000000000000000000000000000000000000000010000000000000000 47
+0b0000000000000000000000000000000000000000000000100000000000000000 46
+0b0000000000000000000000000000000000000000000001000000000000000000 45
+0b0000000000000000000000000000000000000000000010000000000000000000 44
+0b0000000000000000000000000000000000000000000100000000000000000000 43
+0b0000000000000000000000000000000000000000001000000000000000000000 42
+0b0000000000000000000000000000000000000000010000000000000000000000 41
+0b0000000000000000000000000000000000000000100000000000000000000000 40
+0b0000000000000000000000000000000000000001000000000000000000000000 39
+0b0000000000000000000000000000000000000010000000000000000000000000 38
+0b0000000000000000000000000000000000000100000000000000000000000000 37
+0b0000000000000000000000000000000000001000000000000000000000000000 36
+0b0000000000000000000000000000000000010000000000000000000000000000 35
+0b0000000000000000000000000000000000100000000000000000000000000000 34
+0b0000000000000000000000000000000001000000000000000000000000000000 33
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 31
+0b0000000000000000000000000000001000000000000000000000000000000000 30
+0b0000000000000000000000000000010000000000000000000000000000000000 29
+0b0000000000000000000000000000100000000000000000000000000000000000 28
+0b0000000000000000000000000001000000000000000000000000000000000000 27
+0b0000000000000000000000000010000000000000000000000000000000000000 26
+0b0000000000000000000000000100000000000000000000000000000000000000 25
+0b0000000000000000000000001000000000000000000000000000000000000000 24
+0b0000000000000000000000010000000000000000000000000000000000000000 23
+0b0000000000000000000000100000000000000000000000000000000000000000 22
+0b0000000000000000000001000000000000000000000000000000000000000000 21
+0b0000000000000000000010000000000000000000000000000000000000000000 20
+0b0000000000000000000100000000000000000000000000000000000000000000 19
+0b0000000000000000001000000000000000000000000000000000000000000000 18
+0b0000000000000000010000000000000000000000000000000000000000000000 17
+0b0000000000000000100000000000000000000000000000000000000000000000 16
+0b0000000000000001000000000000000000000000000000000000000000000000 15
+0b0000000000000010000000000000000000000000000000000000000000000000 14
+0b0000000000000100000000000000000000000000000000000000000000000000 13
+0b0000000000001000000000000000000000000000000000000000000000000000 12
+0b0000000000010000000000000000000000000000000000000000000000000000 11
+0b0000000000100000000000000000000000000000000000000000000000000000 10
+0b0000000001000000000000000000000000000000000000000000000000000000 9
+0b0000000010000000000000000000000000000000000000000000000000000000 8
+0b0000000100000000000000000000000000000000000000000000000000000000 7
+0b0000001000000000000000000000000000000000000000000000000000000000 6
+0b0000010000000000000000000000000000000000000000000000000000000000 5
+0b0000100000000000000000000000000000000000000000000000000000000000 4
+0b0001000000000000000000000000000000000000000000000000000000000000 3
+0b0010000000000000000000000000000000000000000000000000000000000000 2
+0b0100000000000000000000000000000000000000000000000000000000000000 1
+0b1000000000000000000000000000000000000000000000000000000000000000 0
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000010 62
+0b0000000000000000000000000000000000000000000000000000000000000100 61
+0b0000000000000000000000000000000000000000000000000000000000001000 60
+0b0000000000000000000000000000000000000000000000000000000000010000 59
+0b0000000000000000000000000000000000000000000000000000000000100000 58
+0b0000000000000000000000000000000000000000000000000000000001000000 57
+0b0000000000000000000000000000000000000000000000000000000010000000 56
+0b0000000000000000000000000000000000000000000000000000000100000000 55
+0b0000000000000000000000000000000000000000000000000000001000000000 54
+0b0000000000000000000000000000000000000000000000000000010000000000 53
+0b0000000000000000000000000000000000000000000000000000100000000000 52
+0b0000000000000000000000000000000000000000000000000001000000000000 51
+0b0000000000000000000000000000000000000000000000000010000000000000 50
+0b0000000000000000000000000000000000000000000000000100000000000000 49
+0b0000000000000000000000000000000000000000000000001000000000000000 48
+0b0000000000000000000000000000000000000000000000010000000000000000 47
+0b0000000000000000000000000000000000000000000000100000000000000000 46
+0b0000000000000000000000000000000000000000000001000000000000000000 45
+0b0000000000000000000000000000000000000000000010000000000000000000 44
+0b0000000000000000000000000000000000000000000100000000000000000000 43
+0b0000000000000000000000000000000000000000001000000000000000000000 42
+0b0000000000000000000000000000000000000000010000000000000000000000 41
+0b0000000000000000000000000000000000000000100000000000000000000000 40
+0b0000000000000000000000000000000000000001000000000000000000000000 39
+0b0000000000000000000000000000000000000010000000000000000000000000 38
+0b0000000000000000000000000000000000000100000000000000000000000000 37
+0b0000000000000000000000000000000000001000000000000000000000000000 36
+0b0000000000000000000000000000000000010000000000000000000000000000 35
+0b0000000000000000000000000000000000100000000000000000000000000000 34
+0b0000000000000000000000000000000001000000000000000000000000000000 33
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 31
+0b0000000000000000000000000000001000000000000000000000000000000000 30
+0b0000000000000000000000000000010000000000000000000000000000000000 29
+0b0000000000000000000000000000100000000000000000000000000000000000 28
+0b0000000000000000000000000001000000000000000000000000000000000000 27
+0b0000000000000000000000000010000000000000000000000000000000000000 26
+0b0000000000000000000000000100000000000000000000000000000000000000 25
+0b0000000000000000000000001000000000000000000000000000000000000000 24
+0b0000000000000000000000010000000000000000000000000000000000000000 23
+0b0000000000000000000000100000000000000000000000000000000000000000 22
+0b0000000000000000000001000000000000000000000000000000000000000000 21
+0b0000000000000000000010000000000000000000000000000000000000000000 20
+0b0000000000000000000100000000000000000000000000000000000000000000 19
+0b0000000000000000001000000000000000000000000000000000000000000000 18
+0b0000000000000000010000000000000000000000000000000000000000000000 17
+0b0000000000000000100000000000000000000000000000000000000000000000 16
+0b0000000000000001000000000000000000000000000000000000000000000000 15
+0b0000000000000010000000000000000000000000000000000000000000000000 14
+0b0000000000000100000000000000000000000000000000000000000000000000 13
+0b0000000000001000000000000000000000000000000000000000000000000000 12
+0b0000000000010000000000000000000000000000000000000000000000000000 11
+0b0000000000100000000000000000000000000000000000000000000000000000 10
+0b0000000001000000000000000000000000000000000000000000000000000000 9
+0b0000000010000000000000000000000000000000000000000000000000000000 8
+0b0000000100000000000000000000000000000000000000000000000000000000 7
+0b0000001000000000000000000000000000000000000000000000000000000000 6
+0b0000010000000000000000000000000000000000000000000000000000000000 5
+0b0000100000000000000000000000000000000000000000000000000000000000 4
+0b0001000000000000000000000000000000000000000000000000000000000000 3
+0b0010000000000000000000000000000000000000000000000000000000000000 2
+0b0100000000000000000000000000000000000000000000000000000000000000 1
+0b1000000000000000000000000000000000000000000000000000000000000000 0
+
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000010 62
+0b0000000000000000000000000000000000000000000000000000000000000100 61
+0b0000000000000000000000000000000000000000000000000000000000001000 60
+0b0000000000000000000000000000000000000000000000000000000000010000 59
+0b0000000000000000000000000000000000000000000000000000000000100000 58
+0b0000000000000000000000000000000000000000000000000000000001000000 57
+0b0000000000000000000000000000000000000000000000000000000010000000 56
+0b0000000000000000000000000000000000000000000000000000000100000000 55
+0b0000000000000000000000000000000000000000000000000000001000000000 54
+0b0000000000000000000000000000000000000000000000000000010000000000 53
+0b0000000000000000000000000000000000000000000000000000100000000000 52
+0b0000000000000000000000000000000000000000000000000001000000000000 51
+0b0000000000000000000000000000000000000000000000000010000000000000 50
+0b0000000000000000000000000000000000000000000000000100000000000000 49
+0b0000000000000000000000000000000000000000000000001000000000000000 48
+0b0000000000000000000000000000000000000000000000010000000000000000 47
+0b0000000000000000000000000000000000000000000000100000000000000000 46
+0b0000000000000000000000000000000000000000000001000000000000000000 45
+0b0000000000000000000000000000000000000000000010000000000000000000 44
+0b0000000000000000000000000000000000000000000100000000000000000000 43
+0b0000000000000000000000000000000000000000001000000000000000000000 42
+0b0000000000000000000000000000000000000000010000000000000000000000 41
+0b0000000000000000000000000000000000000000100000000000000000000000 40
+0b0000000000000000000000000000000000000001000000000000000000000000 39
+0b0000000000000000000000000000000000000010000000000000000000000000 38
+0b0000000000000000000000000000000000000100000000000000000000000000 37
+0b0000000000000000000000000000000000001000000000000000000000000000 36
+0b0000000000000000000000000000000000010000000000000000000000000000 35
+0b0000000000000000000000000000000000100000000000000000000000000000 34
+0b0000000000000000000000000000000001000000000000000000000000000000 33
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 31
+0b0000000000000000000000000000001000000000000000000000000000000000 30
+0b0000000000000000000000000000010000000000000000000000000000000000 29
+0b0000000000000000000000000000100000000000000000000000000000000000 28
+0b0000000000000000000000000001000000000000000000000000000000000000 27
+0b0000000000000000000000000010000000000000000000000000000000000000 26
+0b0000000000000000000000000100000000000000000000000000000000000000 25
+0b0000000000000000000000001000000000000000000000000000000000000000 24
+0b0000000000000000000000010000000000000000000000000000000000000000 23
+0b0000000000000000000000100000000000000000000000000000000000000000 22
+0b0000000000000000000001000000000000000000000000000000000000000000 21
+0b0000000000000000000010000000000000000000000000000000000000000000 20
+0b0000000000000000000100000000000000000000000000000000000000000000 19
+0b0000000000000000001000000000000000000000000000000000000000000000 18
+0b0000000000000000010000000000000000000000000000000000000000000000 17
+0b0000000000000000100000000000000000000000000000000000000000000000 16
+0b0000000000000001000000000000000000000000000000000000000000000000 15
+0b0000000000000010000000000000000000000000000000000000000000000000 14
+0b0000000000000100000000000000000000000000000000000000000000000000 13
+0b0000000000001000000000000000000000000000000000000000000000000000 12
+0b0000000000010000000000000000000000000000000000000000000000000000 11
+0b0000000000100000000000000000000000000000000000000000000000000000 10
+0b0000000001000000000000000000000000000000000000000000000000000000 9
+0b0000000010000000000000000000000000000000000000000000000000000000 8
+0b0000000100000000000000000000000000000000000000000000000000000000 7
+0b0000001000000000000000000000000000000000000000000000000000000000 6
+0b0000010000000000000000000000000000000000000000000000000000000000 5
+0b0000100000000000000000000000000000000000000000000000000000000000 4
+0b0001000000000000000000000000000000000000000000000000000000000000 3
+0b0010000000000000000000000000000000000000000000000000000000000000 2
+0b0100000000000000000000000000000000000000000000000000000000000000 1
+0b1000000000000000000000000000000000000000000000000000000000000000 0
+
+
+trailing0s
+
+signed char
+0b00000001 0
+0b00000010 1
+0b00000100 2
+0b00001000 3
+0b00010000 4
+0b00100000 5
+0b01000000 6
+0b10000000 7
+0b00000000 8
+
+unsigned char
+0b00000001 0
+0b00000010 1
+0b00000100 2
+0b00001000 3
+0b00010000 4
+0b00100000 5
+0b01000000 6
+0b10000000 7
+0b00000000 8
+
+short int
+0b0000000000000001 0
+0b0000000000000010 1
+0b0000000000000100 2
+0b0000000000001000 3
+0b0000000000010000 4
+0b0000000000100000 5
+0b0000000001000000 6
+0b0000000010000000 7
+0b0000000100000000 8
+0b0000001000000000 9
+0b0000010000000000 10
+0b0000100000000000 11
+0b0001000000000000 12
+0b0010000000000000 13
+0b0100000000000000 14
+0b1000000000000000 15
+0b0000000000000000 16
+
+unsigned short int
+0b0000000000000001 0
+0b0000000000000010 1
+0b0000000000000100 2
+0b0000000000001000 3
+0b0000000000010000 4
+0b0000000000100000 5
+0b0000000001000000 6
+0b0000000010000000 7
+0b0000000100000000 8
+0b0000001000000000 9
+0b0000010000000000 10
+0b0000100000000000 11
+0b0001000000000000 12
+0b0010000000000000 13
+0b0100000000000000 14
+0b1000000000000000 15
+0b0000000000000000 16
+
+int
+0b00000000000000000000000000000001 0
+0b00000000000000000000000000000010 1
+0b00000000000000000000000000000100 2
+0b00000000000000000000000000001000 3
+0b00000000000000000000000000010000 4
+0b00000000000000000000000000100000 5
+0b00000000000000000000000001000000 6
+0b00000000000000000000000010000000 7
+0b00000000000000000000000100000000 8
+0b00000000000000000000001000000000 9
+0b00000000000000000000010000000000 10
+0b00000000000000000000100000000000 11
+0b00000000000000000001000000000000 12
+0b00000000000000000010000000000000 13
+0b00000000000000000100000000000000 14
+0b00000000000000001000000000000000 15
+0b00000000000000010000000000000000 16
+0b00000000000000100000000000000000 17
+0b00000000000001000000000000000000 18
+0b00000000000010000000000000000000 19
+0b00000000000100000000000000000000 20
+0b00000000001000000000000000000000 21
+0b00000000010000000000000000000000 22
+0b00000000100000000000000000000000 23
+0b00000001000000000000000000000000 24
+0b00000010000000000000000000000000 25
+0b00000100000000000000000000000000 26
+0b00001000000000000000000000000000 27
+0b00010000000000000000000000000000 28
+0b00100000000000000000000000000000 29
+0b01000000000000000000000000000000 30
+0b10000000000000000000000000000000 31
+0b00000000000000000000000000000000 32
+
+unsigned int
+0b00000000000000000000000000000001 0
+0b00000000000000000000000000000010 1
+0b00000000000000000000000000000100 2
+0b00000000000000000000000000001000 3
+0b00000000000000000000000000010000 4
+0b00000000000000000000000000100000 5
+0b00000000000000000000000001000000 6
+0b00000000000000000000000010000000 7
+0b00000000000000000000000100000000 8
+0b00000000000000000000001000000000 9
+0b00000000000000000000010000000000 10
+0b00000000000000000000100000000000 11
+0b00000000000000000001000000000000 12
+0b00000000000000000010000000000000 13
+0b00000000000000000100000000000000 14
+0b00000000000000001000000000000000 15
+0b00000000000000010000000000000000 16
+0b00000000000000100000000000000000 17
+0b00000000000001000000000000000000 18
+0b00000000000010000000000000000000 19
+0b00000000000100000000000000000000 20
+0b00000000001000000000000000000000 21
+0b00000000010000000000000000000000 22
+0b00000000100000000000000000000000 23
+0b00000001000000000000000000000000 24
+0b00000010000000000000000000000000 25
+0b00000100000000000000000000000000 26
+0b00001000000000000000000000000000 27
+0b00010000000000000000000000000000 28
+0b00100000000000000000000000000000 29
+0b01000000000000000000000000000000 30
+0b10000000000000000000000000000000 31
+0b00000000000000000000000000000000 32
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000001 0
+0b0000000000000000000000000000000000000000000000000000000000000010 1
+0b0000000000000000000000000000000000000000000000000000000000000100 2
+0b0000000000000000000000000000000000000000000000000000000000001000 3
+0b0000000000000000000000000000000000000000000000000000000000010000 4
+0b0000000000000000000000000000000000000000000000000000000000100000 5
+0b0000000000000000000000000000000000000000000000000000000001000000 6
+0b0000000000000000000000000000000000000000000000000000000010000000 7
+0b0000000000000000000000000000000000000000000000000000000100000000 8
+0b0000000000000000000000000000000000000000000000000000001000000000 9
+0b0000000000000000000000000000000000000000000000000000010000000000 10
+0b0000000000000000000000000000000000000000000000000000100000000000 11
+0b0000000000000000000000000000000000000000000000000001000000000000 12
+0b0000000000000000000000000000000000000000000000000010000000000000 13
+0b0000000000000000000000000000000000000000000000000100000000000000 14
+0b0000000000000000000000000000000000000000000000001000000000000000 15
+0b0000000000000000000000000000000000000000000000010000000000000000 16
+0b0000000000000000000000000000000000000000000000100000000000000000 17
+0b0000000000000000000000000000000000000000000001000000000000000000 18
+0b0000000000000000000000000000000000000000000010000000000000000000 19
+0b0000000000000000000000000000000000000000000100000000000000000000 20
+0b0000000000000000000000000000000000000000001000000000000000000000 21
+0b0000000000000000000000000000000000000000010000000000000000000000 22
+0b0000000000000000000000000000000000000000100000000000000000000000 23
+0b0000000000000000000000000000000000000001000000000000000000000000 24
+0b0000000000000000000000000000000000000010000000000000000000000000 25
+0b0000000000000000000000000000000000000100000000000000000000000000 26
+0b0000000000000000000000000000000000001000000000000000000000000000 27
+0b0000000000000000000000000000000000010000000000000000000000000000 28
+0b0000000000000000000000000000000000100000000000000000000000000000 29
+0b0000000000000000000000000000000001000000000000000000000000000000 30
+0b0000000000000000000000000000000010000000000000000000000000000000 31
+0b0000000000000000000000000000000100000000000000000000000000000000 32
+0b0000000000000000000000000000001000000000000000000000000000000000 33
+0b0000000000000000000000000000010000000000000000000000000000000000 34
+0b0000000000000000000000000000100000000000000000000000000000000000 35
+0b0000000000000000000000000001000000000000000000000000000000000000 36
+0b0000000000000000000000000010000000000000000000000000000000000000 37
+0b0000000000000000000000000100000000000000000000000000000000000000 38
+0b0000000000000000000000001000000000000000000000000000000000000000 39
+0b0000000000000000000000010000000000000000000000000000000000000000 40
+0b0000000000000000000000100000000000000000000000000000000000000000 41
+0b0000000000000000000001000000000000000000000000000000000000000000 42
+0b0000000000000000000010000000000000000000000000000000000000000000 43
+0b0000000000000000000100000000000000000000000000000000000000000000 44
+0b0000000000000000001000000000000000000000000000000000000000000000 45
+0b0000000000000000010000000000000000000000000000000000000000000000 46
+0b0000000000000000100000000000000000000000000000000000000000000000 47
+0b0000000000000001000000000000000000000000000000000000000000000000 48
+0b0000000000000010000000000000000000000000000000000000000000000000 49
+0b0000000000000100000000000000000000000000000000000000000000000000 50
+0b0000000000001000000000000000000000000000000000000000000000000000 51
+0b0000000000010000000000000000000000000000000000000000000000000000 52
+0b0000000000100000000000000000000000000000000000000000000000000000 53
+0b0000000001000000000000000000000000000000000000000000000000000000 54
+0b0000000010000000000000000000000000000000000000000000000000000000 55
+0b0000000100000000000000000000000000000000000000000000000000000000 56
+0b0000001000000000000000000000000000000000000000000000000000000000 57
+0b0000010000000000000000000000000000000000000000000000000000000000 58
+0b0000100000000000000000000000000000000000000000000000000000000000 59
+0b0001000000000000000000000000000000000000000000000000000000000000 60
+0b0010000000000000000000000000000000000000000000000000000000000000 61
+0b0100000000000000000000000000000000000000000000000000000000000000 62
+0b1000000000000000000000000000000000000000000000000000000000000000 63
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000001 0
+0b0000000000000000000000000000000000000000000000000000000000000010 1
+0b0000000000000000000000000000000000000000000000000000000000000100 2
+0b0000000000000000000000000000000000000000000000000000000000001000 3
+0b0000000000000000000000000000000000000000000000000000000000010000 4
+0b0000000000000000000000000000000000000000000000000000000000100000 5
+0b0000000000000000000000000000000000000000000000000000000001000000 6
+0b0000000000000000000000000000000000000000000000000000000010000000 7
+0b0000000000000000000000000000000000000000000000000000000100000000 8
+0b0000000000000000000000000000000000000000000000000000001000000000 9
+0b0000000000000000000000000000000000000000000000000000010000000000 10
+0b0000000000000000000000000000000000000000000000000000100000000000 11
+0b0000000000000000000000000000000000000000000000000001000000000000 12
+0b0000000000000000000000000000000000000000000000000010000000000000 13
+0b0000000000000000000000000000000000000000000000000100000000000000 14
+0b0000000000000000000000000000000000000000000000001000000000000000 15
+0b0000000000000000000000000000000000000000000000010000000000000000 16
+0b0000000000000000000000000000000000000000000000100000000000000000 17
+0b0000000000000000000000000000000000000000000001000000000000000000 18
+0b0000000000000000000000000000000000000000000010000000000000000000 19
+0b0000000000000000000000000000000000000000000100000000000000000000 20
+0b0000000000000000000000000000000000000000001000000000000000000000 21
+0b0000000000000000000000000000000000000000010000000000000000000000 22
+0b0000000000000000000000000000000000000000100000000000000000000000 23
+0b0000000000000000000000000000000000000001000000000000000000000000 24
+0b0000000000000000000000000000000000000010000000000000000000000000 25
+0b0000000000000000000000000000000000000100000000000000000000000000 26
+0b0000000000000000000000000000000000001000000000000000000000000000 27
+0b0000000000000000000000000000000000010000000000000000000000000000 28
+0b0000000000000000000000000000000000100000000000000000000000000000 29
+0b0000000000000000000000000000000001000000000000000000000000000000 30
+0b0000000000000000000000000000000010000000000000000000000000000000 31
+0b0000000000000000000000000000000100000000000000000000000000000000 32
+0b0000000000000000000000000000001000000000000000000000000000000000 33
+0b0000000000000000000000000000010000000000000000000000000000000000 34
+0b0000000000000000000000000000100000000000000000000000000000000000 35
+0b0000000000000000000000000001000000000000000000000000000000000000 36
+0b0000000000000000000000000010000000000000000000000000000000000000 37
+0b0000000000000000000000000100000000000000000000000000000000000000 38
+0b0000000000000000000000001000000000000000000000000000000000000000 39
+0b0000000000000000000000010000000000000000000000000000000000000000 40
+0b0000000000000000000000100000000000000000000000000000000000000000 41
+0b0000000000000000000001000000000000000000000000000000000000000000 42
+0b0000000000000000000010000000000000000000000000000000000000000000 43
+0b0000000000000000000100000000000000000000000000000000000000000000 44
+0b0000000000000000001000000000000000000000000000000000000000000000 45
+0b0000000000000000010000000000000000000000000000000000000000000000 46
+0b0000000000000000100000000000000000000000000000000000000000000000 47
+0b0000000000000001000000000000000000000000000000000000000000000000 48
+0b0000000000000010000000000000000000000000000000000000000000000000 49
+0b0000000000000100000000000000000000000000000000000000000000000000 50
+0b0000000000001000000000000000000000000000000000000000000000000000 51
+0b0000000000010000000000000000000000000000000000000000000000000000 52
+0b0000000000100000000000000000000000000000000000000000000000000000 53
+0b0000000001000000000000000000000000000000000000000000000000000000 54
+0b0000000010000000000000000000000000000000000000000000000000000000 55
+0b0000000100000000000000000000000000000000000000000000000000000000 56
+0b0000001000000000000000000000000000000000000000000000000000000000 57
+0b0000010000000000000000000000000000000000000000000000000000000000 58
+0b0000100000000000000000000000000000000000000000000000000000000000 59
+0b0001000000000000000000000000000000000000000000000000000000000000 60
+0b0010000000000000000000000000000000000000000000000000000000000000 61
+0b0100000000000000000000000000000000000000000000000000000000000000 62
+0b1000000000000000000000000000000000000000000000000000000000000000 63
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000001 0
+0b0000000000000000000000000000000000000000000000000000000000000010 1
+0b0000000000000000000000000000000000000000000000000000000000000100 2
+0b0000000000000000000000000000000000000000000000000000000000001000 3
+0b0000000000000000000000000000000000000000000000000000000000010000 4
+0b0000000000000000000000000000000000000000000000000000000000100000 5
+0b0000000000000000000000000000000000000000000000000000000001000000 6
+0b0000000000000000000000000000000000000000000000000000000010000000 7
+0b0000000000000000000000000000000000000000000000000000000100000000 8
+0b0000000000000000000000000000000000000000000000000000001000000000 9
+0b0000000000000000000000000000000000000000000000000000010000000000 10
+0b0000000000000000000000000000000000000000000000000000100000000000 11
+0b0000000000000000000000000000000000000000000000000001000000000000 12
+0b0000000000000000000000000000000000000000000000000010000000000000 13
+0b0000000000000000000000000000000000000000000000000100000000000000 14
+0b0000000000000000000000000000000000000000000000001000000000000000 15
+0b0000000000000000000000000000000000000000000000010000000000000000 16
+0b0000000000000000000000000000000000000000000000100000000000000000 17
+0b0000000000000000000000000000000000000000000001000000000000000000 18
+0b0000000000000000000000000000000000000000000010000000000000000000 19
+0b0000000000000000000000000000000000000000000100000000000000000000 20
+0b0000000000000000000000000000000000000000001000000000000000000000 21
+0b0000000000000000000000000000000000000000010000000000000000000000 22
+0b0000000000000000000000000000000000000000100000000000000000000000 23
+0b0000000000000000000000000000000000000001000000000000000000000000 24
+0b0000000000000000000000000000000000000010000000000000000000000000 25
+0b0000000000000000000000000000000000000100000000000000000000000000 26
+0b0000000000000000000000000000000000001000000000000000000000000000 27
+0b0000000000000000000000000000000000010000000000000000000000000000 28
+0b0000000000000000000000000000000000100000000000000000000000000000 29
+0b0000000000000000000000000000000001000000000000000000000000000000 30
+0b0000000000000000000000000000000010000000000000000000000000000000 31
+0b0000000000000000000000000000000100000000000000000000000000000000 32
+0b0000000000000000000000000000001000000000000000000000000000000000 33
+0b0000000000000000000000000000010000000000000000000000000000000000 34
+0b0000000000000000000000000000100000000000000000000000000000000000 35
+0b0000000000000000000000000001000000000000000000000000000000000000 36
+0b0000000000000000000000000010000000000000000000000000000000000000 37
+0b0000000000000000000000000100000000000000000000000000000000000000 38
+0b0000000000000000000000001000000000000000000000000000000000000000 39
+0b0000000000000000000000010000000000000000000000000000000000000000 40
+0b0000000000000000000000100000000000000000000000000000000000000000 41
+0b0000000000000000000001000000000000000000000000000000000000000000 42
+0b0000000000000000000010000000000000000000000000000000000000000000 43
+0b0000000000000000000100000000000000000000000000000000000000000000 44
+0b0000000000000000001000000000000000000000000000000000000000000000 45
+0b0000000000000000010000000000000000000000000000000000000000000000 46
+0b0000000000000000100000000000000000000000000000000000000000000000 47
+0b0000000000000001000000000000000000000000000000000000000000000000 48
+0b0000000000000010000000000000000000000000000000000000000000000000 49
+0b0000000000000100000000000000000000000000000000000000000000000000 50
+0b0000000000001000000000000000000000000000000000000000000000000000 51
+0b0000000000010000000000000000000000000000000000000000000000000000 52
+0b0000000000100000000000000000000000000000000000000000000000000000 53
+0b0000000001000000000000000000000000000000000000000000000000000000 54
+0b0000000010000000000000000000000000000000000000000000000000000000 55
+0b0000000100000000000000000000000000000000000000000000000000000000 56
+0b0000001000000000000000000000000000000000000000000000000000000000 57
+0b0000010000000000000000000000000000000000000000000000000000000000 58
+0b0000100000000000000000000000000000000000000000000000000000000000 59
+0b0001000000000000000000000000000000000000000000000000000000000000 60
+0b0010000000000000000000000000000000000000000000000000000000000000 61
+0b0100000000000000000000000000000000000000000000000000000000000000 62
+0b1000000000000000000000000000000000000000000000000000000000000000 63
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000001 0
+0b0000000000000000000000000000000000000000000000000000000000000010 1
+0b0000000000000000000000000000000000000000000000000000000000000100 2
+0b0000000000000000000000000000000000000000000000000000000000001000 3
+0b0000000000000000000000000000000000000000000000000000000000010000 4
+0b0000000000000000000000000000000000000000000000000000000000100000 5
+0b0000000000000000000000000000000000000000000000000000000001000000 6
+0b0000000000000000000000000000000000000000000000000000000010000000 7
+0b0000000000000000000000000000000000000000000000000000000100000000 8
+0b0000000000000000000000000000000000000000000000000000001000000000 9
+0b0000000000000000000000000000000000000000000000000000010000000000 10
+0b0000000000000000000000000000000000000000000000000000100000000000 11
+0b0000000000000000000000000000000000000000000000000001000000000000 12
+0b0000000000000000000000000000000000000000000000000010000000000000 13
+0b0000000000000000000000000000000000000000000000000100000000000000 14
+0b0000000000000000000000000000000000000000000000001000000000000000 15
+0b0000000000000000000000000000000000000000000000010000000000000000 16
+0b0000000000000000000000000000000000000000000000100000000000000000 17
+0b0000000000000000000000000000000000000000000001000000000000000000 18
+0b0000000000000000000000000000000000000000000010000000000000000000 19
+0b0000000000000000000000000000000000000000000100000000000000000000 20
+0b0000000000000000000000000000000000000000001000000000000000000000 21
+0b0000000000000000000000000000000000000000010000000000000000000000 22
+0b0000000000000000000000000000000000000000100000000000000000000000 23
+0b0000000000000000000000000000000000000001000000000000000000000000 24
+0b0000000000000000000000000000000000000010000000000000000000000000 25
+0b0000000000000000000000000000000000000100000000000000000000000000 26
+0b0000000000000000000000000000000000001000000000000000000000000000 27
+0b0000000000000000000000000000000000010000000000000000000000000000 28
+0b0000000000000000000000000000000000100000000000000000000000000000 29
+0b0000000000000000000000000000000001000000000000000000000000000000 30
+0b0000000000000000000000000000000010000000000000000000000000000000 31
+0b0000000000000000000000000000000100000000000000000000000000000000 32
+0b0000000000000000000000000000001000000000000000000000000000000000 33
+0b0000000000000000000000000000010000000000000000000000000000000000 34
+0b0000000000000000000000000000100000000000000000000000000000000000 35
+0b0000000000000000000000000001000000000000000000000000000000000000 36
+0b0000000000000000000000000010000000000000000000000000000000000000 37
+0b0000000000000000000000000100000000000000000000000000000000000000 38
+0b0000000000000000000000001000000000000000000000000000000000000000 39
+0b0000000000000000000000010000000000000000000000000000000000000000 40
+0b0000000000000000000000100000000000000000000000000000000000000000 41
+0b0000000000000000000001000000000000000000000000000000000000000000 42
+0b0000000000000000000010000000000000000000000000000000000000000000 43
+0b0000000000000000000100000000000000000000000000000000000000000000 44
+0b0000000000000000001000000000000000000000000000000000000000000000 45
+0b0000000000000000010000000000000000000000000000000000000000000000 46
+0b0000000000000000100000000000000000000000000000000000000000000000 47
+0b0000000000000001000000000000000000000000000000000000000000000000 48
+0b0000000000000010000000000000000000000000000000000000000000000000 49
+0b0000000000000100000000000000000000000000000000000000000000000000 50
+0b0000000000001000000000000000000000000000000000000000000000000000 51
+0b0000000000010000000000000000000000000000000000000000000000000000 52
+0b0000000000100000000000000000000000000000000000000000000000000000 53
+0b0000000001000000000000000000000000000000000000000000000000000000 54
+0b0000000010000000000000000000000000000000000000000000000000000000 55
+0b0000000100000000000000000000000000000000000000000000000000000000 56
+0b0000001000000000000000000000000000000000000000000000000000000000 57
+0b0000010000000000000000000000000000000000000000000000000000000000 58
+0b0000100000000000000000000000000000000000000000000000000000000000 59
+0b0001000000000000000000000000000000000000000000000000000000000000 60
+0b0010000000000000000000000000000000000000000000000000000000000000 61
+0b0100000000000000000000000000000000000000000000000000000000000000 62
+0b1000000000000000000000000000000000000000000000000000000000000000 63
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+
+
+all0s
+
+signed char
+0b00000000 8
+0b00000001 7
+0b00000011 6
+0b00000111 5
+0b00001111 4
+0b00011111 3
+0b00111111 2
+0b01111111 1
+0b11111111 0
+
+unsigned char
+0b00000000 8
+0b00000001 7
+0b00000011 6
+0b00000111 5
+0b00001111 4
+0b00011111 3
+0b00111111 2
+0b01111111 1
+0b11111111 0
+
+short int
+0b0000000000000000 16
+0b0000000000000001 15
+0b0000000000000011 14
+0b0000000000000111 13
+0b0000000000001111 12
+0b0000000000011111 11
+0b0000000000111111 10
+0b0000000001111111 9
+0b0000000011111111 8
+0b0000000111111111 7
+0b0000001111111111 6
+0b0000011111111111 5
+0b0000111111111111 4
+0b0001111111111111 3
+0b0011111111111111 2
+0b0111111111111111 1
+0b1111111111111111 0
+
+unsigned short int
+0b0000000000000000 16
+0b0000000000000001 15
+0b0000000000000011 14
+0b0000000000000111 13
+0b0000000000001111 12
+0b0000000000011111 11
+0b0000000000111111 10
+0b0000000001111111 9
+0b0000000011111111 8
+0b0000000111111111 7
+0b0000001111111111 6
+0b0000011111111111 5
+0b0000111111111111 4
+0b0001111111111111 3
+0b0011111111111111 2
+0b0111111111111111 1
+0b1111111111111111 0
+
+int
+0b00000000000000000000000000000000 32
+0b00000000000000000000000000000001 31
+0b00000000000000000000000000000011 30
+0b00000000000000000000000000000111 29
+0b00000000000000000000000000001111 28
+0b00000000000000000000000000011111 27
+0b00000000000000000000000000111111 26
+0b00000000000000000000000001111111 25
+0b00000000000000000000000011111111 24
+0b00000000000000000000000111111111 23
+0b00000000000000000000001111111111 22
+0b00000000000000000000011111111111 21
+0b00000000000000000000111111111111 20
+0b00000000000000000001111111111111 19
+0b00000000000000000011111111111111 18
+0b00000000000000000111111111111111 17
+0b00000000000000001111111111111111 16
+0b00000000000000011111111111111111 15
+0b00000000000000111111111111111111 14
+0b00000000000001111111111111111111 13
+0b00000000000011111111111111111111 12
+0b00000000000111111111111111111111 11
+0b00000000001111111111111111111111 10
+0b00000000011111111111111111111111 9
+0b00000000111111111111111111111111 8
+0b00000001111111111111111111111111 7
+0b00000011111111111111111111111111 6
+0b00000111111111111111111111111111 5
+0b00001111111111111111111111111111 4
+0b00011111111111111111111111111111 3
+0b00111111111111111111111111111111 2
+0b01111111111111111111111111111111 1
+0b11111111111111111111111111111111 0
+
+unsigned int
+0b00000000000000000000000000000000 32
+0b00000000000000000000000000000001 31
+0b00000000000000000000000000000011 30
+0b00000000000000000000000000000111 29
+0b00000000000000000000000000001111 28
+0b00000000000000000000000000011111 27
+0b00000000000000000000000000111111 26
+0b00000000000000000000000001111111 25
+0b00000000000000000000000011111111 24
+0b00000000000000000000000111111111 23
+0b00000000000000000000001111111111 22
+0b00000000000000000000011111111111 21
+0b00000000000000000000111111111111 20
+0b00000000000000000001111111111111 19
+0b00000000000000000011111111111111 18
+0b00000000000000000111111111111111 17
+0b00000000000000001111111111111111 16
+0b00000000000000011111111111111111 15
+0b00000000000000111111111111111111 14
+0b00000000000001111111111111111111 13
+0b00000000000011111111111111111111 12
+0b00000000000111111111111111111111 11
+0b00000000001111111111111111111111 10
+0b00000000011111111111111111111111 9
+0b00000000111111111111111111111111 8
+0b00000001111111111111111111111111 7
+0b00000011111111111111111111111111 6
+0b00000111111111111111111111111111 5
+0b00001111111111111111111111111111 4
+0b00011111111111111111111111111111 3
+0b00111111111111111111111111111111 2
+0b01111111111111111111111111111111 1
+0b11111111111111111111111111111111 0
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000011 62
+0b0000000000000000000000000000000000000000000000000000000000000111 61
+0b0000000000000000000000000000000000000000000000000000000000001111 60
+0b0000000000000000000000000000000000000000000000000000000000011111 59
+0b0000000000000000000000000000000000000000000000000000000000111111 58
+0b0000000000000000000000000000000000000000000000000000000001111111 57
+0b0000000000000000000000000000000000000000000000000000000011111111 56
+0b0000000000000000000000000000000000000000000000000000000111111111 55
+0b0000000000000000000000000000000000000000000000000000001111111111 54
+0b0000000000000000000000000000000000000000000000000000011111111111 53
+0b0000000000000000000000000000000000000000000000000000111111111111 52
+0b0000000000000000000000000000000000000000000000000001111111111111 51
+0b0000000000000000000000000000000000000000000000000011111111111111 50
+0b0000000000000000000000000000000000000000000000000111111111111111 49
+0b0000000000000000000000000000000000000000000000001111111111111111 48
+0b0000000000000000000000000000000000000000000000011111111111111111 47
+0b0000000000000000000000000000000000000000000000111111111111111111 46
+0b0000000000000000000000000000000000000000000001111111111111111111 45
+0b0000000000000000000000000000000000000000000011111111111111111111 44
+0b0000000000000000000000000000000000000000000111111111111111111111 43
+0b0000000000000000000000000000000000000000001111111111111111111111 42
+0b0000000000000000000000000000000000000000011111111111111111111111 41
+0b0000000000000000000000000000000000000000111111111111111111111111 40
+0b0000000000000000000000000000000000000001111111111111111111111111 39
+0b0000000000000000000000000000000000000011111111111111111111111111 38
+0b0000000000000000000000000000000000000111111111111111111111111111 37
+0b0000000000000000000000000000000000001111111111111111111111111111 36
+0b0000000000000000000000000000000000011111111111111111111111111111 35
+0b0000000000000000000000000000000000111111111111111111111111111111 34
+0b0000000000000000000000000000000001111111111111111111111111111111 33
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 31
+0b0000000000000000000000000000001111111111111111111111111111111111 30
+0b0000000000000000000000000000011111111111111111111111111111111111 29
+0b0000000000000000000000000000111111111111111111111111111111111111 28
+0b0000000000000000000000000001111111111111111111111111111111111111 27
+0b0000000000000000000000000011111111111111111111111111111111111111 26
+0b0000000000000000000000000111111111111111111111111111111111111111 25
+0b0000000000000000000000001111111111111111111111111111111111111111 24
+0b0000000000000000000000011111111111111111111111111111111111111111 23
+0b0000000000000000000000111111111111111111111111111111111111111111 22
+0b0000000000000000000001111111111111111111111111111111111111111111 21
+0b0000000000000000000011111111111111111111111111111111111111111111 20
+0b0000000000000000000111111111111111111111111111111111111111111111 19
+0b0000000000000000001111111111111111111111111111111111111111111111 18
+0b0000000000000000011111111111111111111111111111111111111111111111 17
+0b0000000000000000111111111111111111111111111111111111111111111111 16
+0b0000000000000001111111111111111111111111111111111111111111111111 15
+0b0000000000000011111111111111111111111111111111111111111111111111 14
+0b0000000000000111111111111111111111111111111111111111111111111111 13
+0b0000000000001111111111111111111111111111111111111111111111111111 12
+0b0000000000011111111111111111111111111111111111111111111111111111 11
+0b0000000000111111111111111111111111111111111111111111111111111111 10
+0b0000000001111111111111111111111111111111111111111111111111111111 9
+0b0000000011111111111111111111111111111111111111111111111111111111 8
+0b0000000111111111111111111111111111111111111111111111111111111111 7
+0b0000001111111111111111111111111111111111111111111111111111111111 6
+0b0000011111111111111111111111111111111111111111111111111111111111 5
+0b0000111111111111111111111111111111111111111111111111111111111111 4
+0b0001111111111111111111111111111111111111111111111111111111111111 3
+0b0011111111111111111111111111111111111111111111111111111111111111 2
+0b0111111111111111111111111111111111111111111111111111111111111111 1
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000011 62
+0b0000000000000000000000000000000000000000000000000000000000000111 61
+0b0000000000000000000000000000000000000000000000000000000000001111 60
+0b0000000000000000000000000000000000000000000000000000000000011111 59
+0b0000000000000000000000000000000000000000000000000000000000111111 58
+0b0000000000000000000000000000000000000000000000000000000001111111 57
+0b0000000000000000000000000000000000000000000000000000000011111111 56
+0b0000000000000000000000000000000000000000000000000000000111111111 55
+0b0000000000000000000000000000000000000000000000000000001111111111 54
+0b0000000000000000000000000000000000000000000000000000011111111111 53
+0b0000000000000000000000000000000000000000000000000000111111111111 52
+0b0000000000000000000000000000000000000000000000000001111111111111 51
+0b0000000000000000000000000000000000000000000000000011111111111111 50
+0b0000000000000000000000000000000000000000000000000111111111111111 49
+0b0000000000000000000000000000000000000000000000001111111111111111 48
+0b0000000000000000000000000000000000000000000000011111111111111111 47
+0b0000000000000000000000000000000000000000000000111111111111111111 46
+0b0000000000000000000000000000000000000000000001111111111111111111 45
+0b0000000000000000000000000000000000000000000011111111111111111111 44
+0b0000000000000000000000000000000000000000000111111111111111111111 43
+0b0000000000000000000000000000000000000000001111111111111111111111 42
+0b0000000000000000000000000000000000000000011111111111111111111111 41
+0b0000000000000000000000000000000000000000111111111111111111111111 40
+0b0000000000000000000000000000000000000001111111111111111111111111 39
+0b0000000000000000000000000000000000000011111111111111111111111111 38
+0b0000000000000000000000000000000000000111111111111111111111111111 37
+0b0000000000000000000000000000000000001111111111111111111111111111 36
+0b0000000000000000000000000000000000011111111111111111111111111111 35
+0b0000000000000000000000000000000000111111111111111111111111111111 34
+0b0000000000000000000000000000000001111111111111111111111111111111 33
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 31
+0b0000000000000000000000000000001111111111111111111111111111111111 30
+0b0000000000000000000000000000011111111111111111111111111111111111 29
+0b0000000000000000000000000000111111111111111111111111111111111111 28
+0b0000000000000000000000000001111111111111111111111111111111111111 27
+0b0000000000000000000000000011111111111111111111111111111111111111 26
+0b0000000000000000000000000111111111111111111111111111111111111111 25
+0b0000000000000000000000001111111111111111111111111111111111111111 24
+0b0000000000000000000000011111111111111111111111111111111111111111 23
+0b0000000000000000000000111111111111111111111111111111111111111111 22
+0b0000000000000000000001111111111111111111111111111111111111111111 21
+0b0000000000000000000011111111111111111111111111111111111111111111 20
+0b0000000000000000000111111111111111111111111111111111111111111111 19
+0b0000000000000000001111111111111111111111111111111111111111111111 18
+0b0000000000000000011111111111111111111111111111111111111111111111 17
+0b0000000000000000111111111111111111111111111111111111111111111111 16
+0b0000000000000001111111111111111111111111111111111111111111111111 15
+0b0000000000000011111111111111111111111111111111111111111111111111 14
+0b0000000000000111111111111111111111111111111111111111111111111111 13
+0b0000000000001111111111111111111111111111111111111111111111111111 12
+0b0000000000011111111111111111111111111111111111111111111111111111 11
+0b0000000000111111111111111111111111111111111111111111111111111111 10
+0b0000000001111111111111111111111111111111111111111111111111111111 9
+0b0000000011111111111111111111111111111111111111111111111111111111 8
+0b0000000111111111111111111111111111111111111111111111111111111111 7
+0b0000001111111111111111111111111111111111111111111111111111111111 6
+0b0000011111111111111111111111111111111111111111111111111111111111 5
+0b0000111111111111111111111111111111111111111111111111111111111111 4
+0b0001111111111111111111111111111111111111111111111111111111111111 3
+0b0011111111111111111111111111111111111111111111111111111111111111 2
+0b0111111111111111111111111111111111111111111111111111111111111111 1
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000011 62
+0b0000000000000000000000000000000000000000000000000000000000000111 61
+0b0000000000000000000000000000000000000000000000000000000000001111 60
+0b0000000000000000000000000000000000000000000000000000000000011111 59
+0b0000000000000000000000000000000000000000000000000000000000111111 58
+0b0000000000000000000000000000000000000000000000000000000001111111 57
+0b0000000000000000000000000000000000000000000000000000000011111111 56
+0b0000000000000000000000000000000000000000000000000000000111111111 55
+0b0000000000000000000000000000000000000000000000000000001111111111 54
+0b0000000000000000000000000000000000000000000000000000011111111111 53
+0b0000000000000000000000000000000000000000000000000000111111111111 52
+0b0000000000000000000000000000000000000000000000000001111111111111 51
+0b0000000000000000000000000000000000000000000000000011111111111111 50
+0b0000000000000000000000000000000000000000000000000111111111111111 49
+0b0000000000000000000000000000000000000000000000001111111111111111 48
+0b0000000000000000000000000000000000000000000000011111111111111111 47
+0b0000000000000000000000000000000000000000000000111111111111111111 46
+0b0000000000000000000000000000000000000000000001111111111111111111 45
+0b0000000000000000000000000000000000000000000011111111111111111111 44
+0b0000000000000000000000000000000000000000000111111111111111111111 43
+0b0000000000000000000000000000000000000000001111111111111111111111 42
+0b0000000000000000000000000000000000000000011111111111111111111111 41
+0b0000000000000000000000000000000000000000111111111111111111111111 40
+0b0000000000000000000000000000000000000001111111111111111111111111 39
+0b0000000000000000000000000000000000000011111111111111111111111111 38
+0b0000000000000000000000000000000000000111111111111111111111111111 37
+0b0000000000000000000000000000000000001111111111111111111111111111 36
+0b0000000000000000000000000000000000011111111111111111111111111111 35
+0b0000000000000000000000000000000000111111111111111111111111111111 34
+0b0000000000000000000000000000000001111111111111111111111111111111 33
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 31
+0b0000000000000000000000000000001111111111111111111111111111111111 30
+0b0000000000000000000000000000011111111111111111111111111111111111 29
+0b0000000000000000000000000000111111111111111111111111111111111111 28
+0b0000000000000000000000000001111111111111111111111111111111111111 27
+0b0000000000000000000000000011111111111111111111111111111111111111 26
+0b0000000000000000000000000111111111111111111111111111111111111111 25
+0b0000000000000000000000001111111111111111111111111111111111111111 24
+0b0000000000000000000000011111111111111111111111111111111111111111 23
+0b0000000000000000000000111111111111111111111111111111111111111111 22
+0b0000000000000000000001111111111111111111111111111111111111111111 21
+0b0000000000000000000011111111111111111111111111111111111111111111 20
+0b0000000000000000000111111111111111111111111111111111111111111111 19
+0b0000000000000000001111111111111111111111111111111111111111111111 18
+0b0000000000000000011111111111111111111111111111111111111111111111 17
+0b0000000000000000111111111111111111111111111111111111111111111111 16
+0b0000000000000001111111111111111111111111111111111111111111111111 15
+0b0000000000000011111111111111111111111111111111111111111111111111 14
+0b0000000000000111111111111111111111111111111111111111111111111111 13
+0b0000000000001111111111111111111111111111111111111111111111111111 12
+0b0000000000011111111111111111111111111111111111111111111111111111 11
+0b0000000000111111111111111111111111111111111111111111111111111111 10
+0b0000000001111111111111111111111111111111111111111111111111111111 9
+0b0000000011111111111111111111111111111111111111111111111111111111 8
+0b0000000111111111111111111111111111111111111111111111111111111111 7
+0b0000001111111111111111111111111111111111111111111111111111111111 6
+0b0000011111111111111111111111111111111111111111111111111111111111 5
+0b0000111111111111111111111111111111111111111111111111111111111111 4
+0b0001111111111111111111111111111111111111111111111111111111111111 3
+0b0011111111111111111111111111111111111111111111111111111111111111 2
+0b0111111111111111111111111111111111111111111111111111111111111111 1
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+0b0000000000000000000000000000000000000000000000000000000000000001 63
+0b0000000000000000000000000000000000000000000000000000000000000011 62
+0b0000000000000000000000000000000000000000000000000000000000000111 61
+0b0000000000000000000000000000000000000000000000000000000000001111 60
+0b0000000000000000000000000000000000000000000000000000000000011111 59
+0b0000000000000000000000000000000000000000000000000000000000111111 58
+0b0000000000000000000000000000000000000000000000000000000001111111 57
+0b0000000000000000000000000000000000000000000000000000000011111111 56
+0b0000000000000000000000000000000000000000000000000000000111111111 55
+0b0000000000000000000000000000000000000000000000000000001111111111 54
+0b0000000000000000000000000000000000000000000000000000011111111111 53
+0b0000000000000000000000000000000000000000000000000000111111111111 52
+0b0000000000000000000000000000000000000000000000000001111111111111 51
+0b0000000000000000000000000000000000000000000000000011111111111111 50
+0b0000000000000000000000000000000000000000000000000111111111111111 49
+0b0000000000000000000000000000000000000000000000001111111111111111 48
+0b0000000000000000000000000000000000000000000000011111111111111111 47
+0b0000000000000000000000000000000000000000000000111111111111111111 46
+0b0000000000000000000000000000000000000000000001111111111111111111 45
+0b0000000000000000000000000000000000000000000011111111111111111111 44
+0b0000000000000000000000000000000000000000000111111111111111111111 43
+0b0000000000000000000000000000000000000000001111111111111111111111 42
+0b0000000000000000000000000000000000000000011111111111111111111111 41
+0b0000000000000000000000000000000000000000111111111111111111111111 40
+0b0000000000000000000000000000000000000001111111111111111111111111 39
+0b0000000000000000000000000000000000000011111111111111111111111111 38
+0b0000000000000000000000000000000000000111111111111111111111111111 37
+0b0000000000000000000000000000000000001111111111111111111111111111 36
+0b0000000000000000000000000000000000011111111111111111111111111111 35
+0b0000000000000000000000000000000000111111111111111111111111111111 34
+0b0000000000000000000000000000000001111111111111111111111111111111 33
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 31
+0b0000000000000000000000000000001111111111111111111111111111111111 30
+0b0000000000000000000000000000011111111111111111111111111111111111 29
+0b0000000000000000000000000000111111111111111111111111111111111111 28
+0b0000000000000000000000000001111111111111111111111111111111111111 27
+0b0000000000000000000000000011111111111111111111111111111111111111 26
+0b0000000000000000000000000111111111111111111111111111111111111111 25
+0b0000000000000000000000001111111111111111111111111111111111111111 24
+0b0000000000000000000000011111111111111111111111111111111111111111 23
+0b0000000000000000000000111111111111111111111111111111111111111111 22
+0b0000000000000000000001111111111111111111111111111111111111111111 21
+0b0000000000000000000011111111111111111111111111111111111111111111 20
+0b0000000000000000000111111111111111111111111111111111111111111111 19
+0b0000000000000000001111111111111111111111111111111111111111111111 18
+0b0000000000000000011111111111111111111111111111111111111111111111 17
+0b0000000000000000111111111111111111111111111111111111111111111111 16
+0b0000000000000001111111111111111111111111111111111111111111111111 15
+0b0000000000000011111111111111111111111111111111111111111111111111 14
+0b0000000000000111111111111111111111111111111111111111111111111111 13
+0b0000000000001111111111111111111111111111111111111111111111111111 12
+0b0000000000011111111111111111111111111111111111111111111111111111 11
+0b0000000000111111111111111111111111111111111111111111111111111111 10
+0b0000000001111111111111111111111111111111111111111111111111111111 9
+0b0000000011111111111111111111111111111111111111111111111111111111 8
+0b0000000111111111111111111111111111111111111111111111111111111111 7
+0b0000001111111111111111111111111111111111111111111111111111111111 6
+0b0000011111111111111111111111111111111111111111111111111111111111 5
+0b0000111111111111111111111111111111111111111111111111111111111111 4
+0b0001111111111111111111111111111111111111111111111111111111111111 3
+0b0011111111111111111111111111111111111111111111111111111111111111 2
+0b0111111111111111111111111111111111111111111111111111111111111111 1
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+
+
+all1s
+
+signed char
+0b00000000 0
+0b00000001 1
+0b00000011 2
+0b00000111 3
+0b00001111 4
+0b00011111 5
+0b00111111 6
+0b01111111 7
+0b11111111 8
+
+unsigned char
+0b00000000 0
+0b00000001 1
+0b00000011 2
+0b00000111 3
+0b00001111 4
+0b00011111 5
+0b00111111 6
+0b01111111 7
+0b11111111 8
+
+short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000011 2
+0b0000000000000111 3
+0b0000000000001111 4
+0b0000000000011111 5
+0b0000000000111111 6
+0b0000000001111111 7
+0b0000000011111111 8
+0b0000000111111111 9
+0b0000001111111111 10
+0b0000011111111111 11
+0b0000111111111111 12
+0b0001111111111111 13
+0b0011111111111111 14
+0b0111111111111111 15
+0b1111111111111111 16
+
+unsigned short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000011 2
+0b0000000000000111 3
+0b0000000000001111 4
+0b0000000000011111 5
+0b0000000000111111 6
+0b0000000001111111 7
+0b0000000011111111 8
+0b0000000111111111 9
+0b0000001111111111 10
+0b0000011111111111 11
+0b0000111111111111 12
+0b0001111111111111 13
+0b0011111111111111 14
+0b0111111111111111 15
+0b1111111111111111 16
+
+int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000011 2
+0b00000000000000000000000000000111 3
+0b00000000000000000000000000001111 4
+0b00000000000000000000000000011111 5
+0b00000000000000000000000000111111 6
+0b00000000000000000000000001111111 7
+0b00000000000000000000000011111111 8
+0b00000000000000000000000111111111 9
+0b00000000000000000000001111111111 10
+0b00000000000000000000011111111111 11
+0b00000000000000000000111111111111 12
+0b00000000000000000001111111111111 13
+0b00000000000000000011111111111111 14
+0b00000000000000000111111111111111 15
+0b00000000000000001111111111111111 16
+0b00000000000000011111111111111111 17
+0b00000000000000111111111111111111 18
+0b00000000000001111111111111111111 19
+0b00000000000011111111111111111111 20
+0b00000000000111111111111111111111 21
+0b00000000001111111111111111111111 22
+0b00000000011111111111111111111111 23
+0b00000000111111111111111111111111 24
+0b00000001111111111111111111111111 25
+0b00000011111111111111111111111111 26
+0b00000111111111111111111111111111 27
+0b00001111111111111111111111111111 28
+0b00011111111111111111111111111111 29
+0b00111111111111111111111111111111 30
+0b01111111111111111111111111111111 31
+0b11111111111111111111111111111111 32
+
+unsigned int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000011 2
+0b00000000000000000000000000000111 3
+0b00000000000000000000000000001111 4
+0b00000000000000000000000000011111 5
+0b00000000000000000000000000111111 6
+0b00000000000000000000000001111111 7
+0b00000000000000000000000011111111 8
+0b00000000000000000000000111111111 9
+0b00000000000000000000001111111111 10
+0b00000000000000000000011111111111 11
+0b00000000000000000000111111111111 12
+0b00000000000000000001111111111111 13
+0b00000000000000000011111111111111 14
+0b00000000000000000111111111111111 15
+0b00000000000000001111111111111111 16
+0b00000000000000011111111111111111 17
+0b00000000000000111111111111111111 18
+0b00000000000001111111111111111111 19
+0b00000000000011111111111111111111 20
+0b00000000000111111111111111111111 21
+0b00000000001111111111111111111111 22
+0b00000000011111111111111111111111 23
+0b00000000111111111111111111111111 24
+0b00000001111111111111111111111111 25
+0b00000011111111111111111111111111 26
+0b00000111111111111111111111111111 27
+0b00001111111111111111111111111111 28
+0b00011111111111111111111111111111 29
+0b00111111111111111111111111111111 30
+0b01111111111111111111111111111111 31
+0b11111111111111111111111111111111 32
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000011 2
+0b0000000000000000000000000000000000000000000000000000000000000111 3
+0b0000000000000000000000000000000000000000000000000000000000001111 4
+0b0000000000000000000000000000000000000000000000000000000000011111 5
+0b0000000000000000000000000000000000000000000000000000000000111111 6
+0b0000000000000000000000000000000000000000000000000000000001111111 7
+0b0000000000000000000000000000000000000000000000000000000011111111 8
+0b0000000000000000000000000000000000000000000000000000000111111111 9
+0b0000000000000000000000000000000000000000000000000000001111111111 10
+0b0000000000000000000000000000000000000000000000000000011111111111 11
+0b0000000000000000000000000000000000000000000000000000111111111111 12
+0b0000000000000000000000000000000000000000000000000001111111111111 13
+0b0000000000000000000000000000000000000000000000000011111111111111 14
+0b0000000000000000000000000000000000000000000000000111111111111111 15
+0b0000000000000000000000000000000000000000000000001111111111111111 16
+0b0000000000000000000000000000000000000000000000011111111111111111 17
+0b0000000000000000000000000000000000000000000000111111111111111111 18
+0b0000000000000000000000000000000000000000000001111111111111111111 19
+0b0000000000000000000000000000000000000000000011111111111111111111 20
+0b0000000000000000000000000000000000000000000111111111111111111111 21
+0b0000000000000000000000000000000000000000001111111111111111111111 22
+0b0000000000000000000000000000000000000000011111111111111111111111 23
+0b0000000000000000000000000000000000000000111111111111111111111111 24
+0b0000000000000000000000000000000000000001111111111111111111111111 25
+0b0000000000000000000000000000000000000011111111111111111111111111 26
+0b0000000000000000000000000000000000000111111111111111111111111111 27
+0b0000000000000000000000000000000000001111111111111111111111111111 28
+0b0000000000000000000000000000000000011111111111111111111111111111 29
+0b0000000000000000000000000000000000111111111111111111111111111111 30
+0b0000000000000000000000000000000001111111111111111111111111111111 31
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 33
+0b0000000000000000000000000000001111111111111111111111111111111111 34
+0b0000000000000000000000000000011111111111111111111111111111111111 35
+0b0000000000000000000000000000111111111111111111111111111111111111 36
+0b0000000000000000000000000001111111111111111111111111111111111111 37
+0b0000000000000000000000000011111111111111111111111111111111111111 38
+0b0000000000000000000000000111111111111111111111111111111111111111 39
+0b0000000000000000000000001111111111111111111111111111111111111111 40
+0b0000000000000000000000011111111111111111111111111111111111111111 41
+0b0000000000000000000000111111111111111111111111111111111111111111 42
+0b0000000000000000000001111111111111111111111111111111111111111111 43
+0b0000000000000000000011111111111111111111111111111111111111111111 44
+0b0000000000000000000111111111111111111111111111111111111111111111 45
+0b0000000000000000001111111111111111111111111111111111111111111111 46
+0b0000000000000000011111111111111111111111111111111111111111111111 47
+0b0000000000000000111111111111111111111111111111111111111111111111 48
+0b0000000000000001111111111111111111111111111111111111111111111111 49
+0b0000000000000011111111111111111111111111111111111111111111111111 50
+0b0000000000000111111111111111111111111111111111111111111111111111 51
+0b0000000000001111111111111111111111111111111111111111111111111111 52
+0b0000000000011111111111111111111111111111111111111111111111111111 53
+0b0000000000111111111111111111111111111111111111111111111111111111 54
+0b0000000001111111111111111111111111111111111111111111111111111111 55
+0b0000000011111111111111111111111111111111111111111111111111111111 56
+0b0000000111111111111111111111111111111111111111111111111111111111 57
+0b0000001111111111111111111111111111111111111111111111111111111111 58
+0b0000011111111111111111111111111111111111111111111111111111111111 59
+0b0000111111111111111111111111111111111111111111111111111111111111 60
+0b0001111111111111111111111111111111111111111111111111111111111111 61
+0b0011111111111111111111111111111111111111111111111111111111111111 62
+0b0111111111111111111111111111111111111111111111111111111111111111 63
+0b1111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000011 2
+0b0000000000000000000000000000000000000000000000000000000000000111 3
+0b0000000000000000000000000000000000000000000000000000000000001111 4
+0b0000000000000000000000000000000000000000000000000000000000011111 5
+0b0000000000000000000000000000000000000000000000000000000000111111 6
+0b0000000000000000000000000000000000000000000000000000000001111111 7
+0b0000000000000000000000000000000000000000000000000000000011111111 8
+0b0000000000000000000000000000000000000000000000000000000111111111 9
+0b0000000000000000000000000000000000000000000000000000001111111111 10
+0b0000000000000000000000000000000000000000000000000000011111111111 11
+0b0000000000000000000000000000000000000000000000000000111111111111 12
+0b0000000000000000000000000000000000000000000000000001111111111111 13
+0b0000000000000000000000000000000000000000000000000011111111111111 14
+0b0000000000000000000000000000000000000000000000000111111111111111 15
+0b0000000000000000000000000000000000000000000000001111111111111111 16
+0b0000000000000000000000000000000000000000000000011111111111111111 17
+0b0000000000000000000000000000000000000000000000111111111111111111 18
+0b0000000000000000000000000000000000000000000001111111111111111111 19
+0b0000000000000000000000000000000000000000000011111111111111111111 20
+0b0000000000000000000000000000000000000000000111111111111111111111 21
+0b0000000000000000000000000000000000000000001111111111111111111111 22
+0b0000000000000000000000000000000000000000011111111111111111111111 23
+0b0000000000000000000000000000000000000000111111111111111111111111 24
+0b0000000000000000000000000000000000000001111111111111111111111111 25
+0b0000000000000000000000000000000000000011111111111111111111111111 26
+0b0000000000000000000000000000000000000111111111111111111111111111 27
+0b0000000000000000000000000000000000001111111111111111111111111111 28
+0b0000000000000000000000000000000000011111111111111111111111111111 29
+0b0000000000000000000000000000000000111111111111111111111111111111 30
+0b0000000000000000000000000000000001111111111111111111111111111111 31
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 33
+0b0000000000000000000000000000001111111111111111111111111111111111 34
+0b0000000000000000000000000000011111111111111111111111111111111111 35
+0b0000000000000000000000000000111111111111111111111111111111111111 36
+0b0000000000000000000000000001111111111111111111111111111111111111 37
+0b0000000000000000000000000011111111111111111111111111111111111111 38
+0b0000000000000000000000000111111111111111111111111111111111111111 39
+0b0000000000000000000000001111111111111111111111111111111111111111 40
+0b0000000000000000000000011111111111111111111111111111111111111111 41
+0b0000000000000000000000111111111111111111111111111111111111111111 42
+0b0000000000000000000001111111111111111111111111111111111111111111 43
+0b0000000000000000000011111111111111111111111111111111111111111111 44
+0b0000000000000000000111111111111111111111111111111111111111111111 45
+0b0000000000000000001111111111111111111111111111111111111111111111 46
+0b0000000000000000011111111111111111111111111111111111111111111111 47
+0b0000000000000000111111111111111111111111111111111111111111111111 48
+0b0000000000000001111111111111111111111111111111111111111111111111 49
+0b0000000000000011111111111111111111111111111111111111111111111111 50
+0b0000000000000111111111111111111111111111111111111111111111111111 51
+0b0000000000001111111111111111111111111111111111111111111111111111 52
+0b0000000000011111111111111111111111111111111111111111111111111111 53
+0b0000000000111111111111111111111111111111111111111111111111111111 54
+0b0000000001111111111111111111111111111111111111111111111111111111 55
+0b0000000011111111111111111111111111111111111111111111111111111111 56
+0b0000000111111111111111111111111111111111111111111111111111111111 57
+0b0000001111111111111111111111111111111111111111111111111111111111 58
+0b0000011111111111111111111111111111111111111111111111111111111111 59
+0b0000111111111111111111111111111111111111111111111111111111111111 60
+0b0001111111111111111111111111111111111111111111111111111111111111 61
+0b0011111111111111111111111111111111111111111111111111111111111111 62
+0b0111111111111111111111111111111111111111111111111111111111111111 63
+0b1111111111111111111111111111111111111111111111111111111111111111 64
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000011 2
+0b0000000000000000000000000000000000000000000000000000000000000111 3
+0b0000000000000000000000000000000000000000000000000000000000001111 4
+0b0000000000000000000000000000000000000000000000000000000000011111 5
+0b0000000000000000000000000000000000000000000000000000000000111111 6
+0b0000000000000000000000000000000000000000000000000000000001111111 7
+0b0000000000000000000000000000000000000000000000000000000011111111 8
+0b0000000000000000000000000000000000000000000000000000000111111111 9
+0b0000000000000000000000000000000000000000000000000000001111111111 10
+0b0000000000000000000000000000000000000000000000000000011111111111 11
+0b0000000000000000000000000000000000000000000000000000111111111111 12
+0b0000000000000000000000000000000000000000000000000001111111111111 13
+0b0000000000000000000000000000000000000000000000000011111111111111 14
+0b0000000000000000000000000000000000000000000000000111111111111111 15
+0b0000000000000000000000000000000000000000000000001111111111111111 16
+0b0000000000000000000000000000000000000000000000011111111111111111 17
+0b0000000000000000000000000000000000000000000000111111111111111111 18
+0b0000000000000000000000000000000000000000000001111111111111111111 19
+0b0000000000000000000000000000000000000000000011111111111111111111 20
+0b0000000000000000000000000000000000000000000111111111111111111111 21
+0b0000000000000000000000000000000000000000001111111111111111111111 22
+0b0000000000000000000000000000000000000000011111111111111111111111 23
+0b0000000000000000000000000000000000000000111111111111111111111111 24
+0b0000000000000000000000000000000000000001111111111111111111111111 25
+0b0000000000000000000000000000000000000011111111111111111111111111 26
+0b0000000000000000000000000000000000000111111111111111111111111111 27
+0b0000000000000000000000000000000000001111111111111111111111111111 28
+0b0000000000000000000000000000000000011111111111111111111111111111 29
+0b0000000000000000000000000000000000111111111111111111111111111111 30
+0b0000000000000000000000000000000001111111111111111111111111111111 31
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 33
+0b0000000000000000000000000000001111111111111111111111111111111111 34
+0b0000000000000000000000000000011111111111111111111111111111111111 35
+0b0000000000000000000000000000111111111111111111111111111111111111 36
+0b0000000000000000000000000001111111111111111111111111111111111111 37
+0b0000000000000000000000000011111111111111111111111111111111111111 38
+0b0000000000000000000000000111111111111111111111111111111111111111 39
+0b0000000000000000000000001111111111111111111111111111111111111111 40
+0b0000000000000000000000011111111111111111111111111111111111111111 41
+0b0000000000000000000000111111111111111111111111111111111111111111 42
+0b0000000000000000000001111111111111111111111111111111111111111111 43
+0b0000000000000000000011111111111111111111111111111111111111111111 44
+0b0000000000000000000111111111111111111111111111111111111111111111 45
+0b0000000000000000001111111111111111111111111111111111111111111111 46
+0b0000000000000000011111111111111111111111111111111111111111111111 47
+0b0000000000000000111111111111111111111111111111111111111111111111 48
+0b0000000000000001111111111111111111111111111111111111111111111111 49
+0b0000000000000011111111111111111111111111111111111111111111111111 50
+0b0000000000000111111111111111111111111111111111111111111111111111 51
+0b0000000000001111111111111111111111111111111111111111111111111111 52
+0b0000000000011111111111111111111111111111111111111111111111111111 53
+0b0000000000111111111111111111111111111111111111111111111111111111 54
+0b0000000001111111111111111111111111111111111111111111111111111111 55
+0b0000000011111111111111111111111111111111111111111111111111111111 56
+0b0000000111111111111111111111111111111111111111111111111111111111 57
+0b0000001111111111111111111111111111111111111111111111111111111111 58
+0b0000011111111111111111111111111111111111111111111111111111111111 59
+0b0000111111111111111111111111111111111111111111111111111111111111 60
+0b0001111111111111111111111111111111111111111111111111111111111111 61
+0b0011111111111111111111111111111111111111111111111111111111111111 62
+0b0111111111111111111111111111111111111111111111111111111111111111 63
+0b1111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000011 2
+0b0000000000000000000000000000000000000000000000000000000000000111 3
+0b0000000000000000000000000000000000000000000000000000000000001111 4
+0b0000000000000000000000000000000000000000000000000000000000011111 5
+0b0000000000000000000000000000000000000000000000000000000000111111 6
+0b0000000000000000000000000000000000000000000000000000000001111111 7
+0b0000000000000000000000000000000000000000000000000000000011111111 8
+0b0000000000000000000000000000000000000000000000000000000111111111 9
+0b0000000000000000000000000000000000000000000000000000001111111111 10
+0b0000000000000000000000000000000000000000000000000000011111111111 11
+0b0000000000000000000000000000000000000000000000000000111111111111 12
+0b0000000000000000000000000000000000000000000000000001111111111111 13
+0b0000000000000000000000000000000000000000000000000011111111111111 14
+0b0000000000000000000000000000000000000000000000000111111111111111 15
+0b0000000000000000000000000000000000000000000000001111111111111111 16
+0b0000000000000000000000000000000000000000000000011111111111111111 17
+0b0000000000000000000000000000000000000000000000111111111111111111 18
+0b0000000000000000000000000000000000000000000001111111111111111111 19
+0b0000000000000000000000000000000000000000000011111111111111111111 20
+0b0000000000000000000000000000000000000000000111111111111111111111 21
+0b0000000000000000000000000000000000000000001111111111111111111111 22
+0b0000000000000000000000000000000000000000011111111111111111111111 23
+0b0000000000000000000000000000000000000000111111111111111111111111 24
+0b0000000000000000000000000000000000000001111111111111111111111111 25
+0b0000000000000000000000000000000000000011111111111111111111111111 26
+0b0000000000000000000000000000000000000111111111111111111111111111 27
+0b0000000000000000000000000000000000001111111111111111111111111111 28
+0b0000000000000000000000000000000000011111111111111111111111111111 29
+0b0000000000000000000000000000000000111111111111111111111111111111 30
+0b0000000000000000000000000000000001111111111111111111111111111111 31
+0b0000000000000000000000000000000011111111111111111111111111111111 32
+0b0000000000000000000000000000000111111111111111111111111111111111 33
+0b0000000000000000000000000000001111111111111111111111111111111111 34
+0b0000000000000000000000000000011111111111111111111111111111111111 35
+0b0000000000000000000000000000111111111111111111111111111111111111 36
+0b0000000000000000000000000001111111111111111111111111111111111111 37
+0b0000000000000000000000000011111111111111111111111111111111111111 38
+0b0000000000000000000000000111111111111111111111111111111111111111 39
+0b0000000000000000000000001111111111111111111111111111111111111111 40
+0b0000000000000000000000011111111111111111111111111111111111111111 41
+0b0000000000000000000000111111111111111111111111111111111111111111 42
+0b0000000000000000000001111111111111111111111111111111111111111111 43
+0b0000000000000000000011111111111111111111111111111111111111111111 44
+0b0000000000000000000111111111111111111111111111111111111111111111 45
+0b0000000000000000001111111111111111111111111111111111111111111111 46
+0b0000000000000000011111111111111111111111111111111111111111111111 47
+0b0000000000000000111111111111111111111111111111111111111111111111 48
+0b0000000000000001111111111111111111111111111111111111111111111111 49
+0b0000000000000011111111111111111111111111111111111111111111111111 50
+0b0000000000000111111111111111111111111111111111111111111111111111 51
+0b0000000000001111111111111111111111111111111111111111111111111111 52
+0b0000000000011111111111111111111111111111111111111111111111111111 53
+0b0000000000111111111111111111111111111111111111111111111111111111 54
+0b0000000001111111111111111111111111111111111111111111111111111111 55
+0b0000000011111111111111111111111111111111111111111111111111111111 56
+0b0000000111111111111111111111111111111111111111111111111111111111 57
+0b0000001111111111111111111111111111111111111111111111111111111111 58
+0b0000011111111111111111111111111111111111111111111111111111111111 59
+0b0000111111111111111111111111111111111111111111111111111111111111 60
+0b0001111111111111111111111111111111111111111111111111111111111111 61
+0b0011111111111111111111111111111111111111111111111111111111111111 62
+0b0111111111111111111111111111111111111111111111111111111111111111 63
+0b1111111111111111111111111111111111111111111111111111111111111111 64
+
Index: tests/.expect/bitmanip2.arm64.txt
===================================================================
--- tests/.expect/bitmanip2.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/bitmanip2.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,1604 @@
+
+low0
+
+signed char
+0b11111111 0
+0b11111110 1
+0b11111101 2
+0b11111011 3
+0b11110111 4
+0b11101111 5
+0b11011111 6
+0b10111111 7
+0b01111111 8
+
+unsigned char
+0b11111111 0
+0b11111110 1
+0b11111101 2
+0b11111011 3
+0b11110111 4
+0b11101111 5
+0b11011111 6
+0b10111111 7
+0b01111111 8
+
+short int
+0b1111111111111111 0
+0b1111111111111110 1
+0b1111111111111101 2
+0b1111111111111011 3
+0b1111111111110111 4
+0b1111111111101111 5
+0b1111111111011111 6
+0b1111111110111111 7
+0b1111111101111111 8
+0b1111111011111111 9
+0b1111110111111111 10
+0b1111101111111111 11
+0b1111011111111111 12
+0b1110111111111111 13
+0b1101111111111111 14
+0b1011111111111111 15
+0b0111111111111111 16
+
+unsigned short int
+0b1111111111111111 0
+0b1111111111111110 1
+0b1111111111111101 2
+0b1111111111111011 3
+0b1111111111110111 4
+0b1111111111101111 5
+0b1111111111011111 6
+0b1111111110111111 7
+0b1111111101111111 8
+0b1111111011111111 9
+0b1111110111111111 10
+0b1111101111111111 11
+0b1111011111111111 12
+0b1110111111111111 13
+0b1101111111111111 14
+0b1011111111111111 15
+0b0111111111111111 16
+
+int
+0b11111111111111111111111111111111 0
+0b11111111111111111111111111111110 1
+0b11111111111111111111111111111101 2
+0b11111111111111111111111111111011 3
+0b11111111111111111111111111110111 4
+0b11111111111111111111111111101111 5
+0b11111111111111111111111111011111 6
+0b11111111111111111111111110111111 7
+0b11111111111111111111111101111111 8
+0b11111111111111111111111011111111 9
+0b11111111111111111111110111111111 10
+0b11111111111111111111101111111111 11
+0b11111111111111111111011111111111 12
+0b11111111111111111110111111111111 13
+0b11111111111111111101111111111111 14
+0b11111111111111111011111111111111 15
+0b11111111111111110111111111111111 16
+0b11111111111111101111111111111111 17
+0b11111111111111011111111111111111 18
+0b11111111111110111111111111111111 19
+0b11111111111101111111111111111111 20
+0b11111111111011111111111111111111 21
+0b11111111110111111111111111111111 22
+0b11111111101111111111111111111111 23
+0b11111111011111111111111111111111 24
+0b11111110111111111111111111111111 25
+0b11111101111111111111111111111111 26
+0b11111011111111111111111111111111 27
+0b11110111111111111111111111111111 28
+0b11101111111111111111111111111111 29
+0b11011111111111111111111111111111 30
+0b10111111111111111111111111111111 31
+0b01111111111111111111111111111111 32
+
+unsigned int
+0b11111111111111111111111111111111 0
+0b11111111111111111111111111111110 1
+0b11111111111111111111111111111101 2
+0b11111111111111111111111111111011 3
+0b11111111111111111111111111110111 4
+0b11111111111111111111111111101111 5
+0b11111111111111111111111111011111 6
+0b11111111111111111111111110111111 7
+0b11111111111111111111111101111111 8
+0b11111111111111111111111011111111 9
+0b11111111111111111111110111111111 10
+0b11111111111111111111101111111111 11
+0b11111111111111111111011111111111 12
+0b11111111111111111110111111111111 13
+0b11111111111111111101111111111111 14
+0b11111111111111111011111111111111 15
+0b11111111111111110111111111111111 16
+0b11111111111111101111111111111111 17
+0b11111111111111011111111111111111 18
+0b11111111111110111111111111111111 19
+0b11111111111101111111111111111111 20
+0b11111111111011111111111111111111 21
+0b11111111110111111111111111111111 22
+0b11111111101111111111111111111111 23
+0b11111111011111111111111111111111 24
+0b11111110111111111111111111111111 25
+0b11111101111111111111111111111111 26
+0b11111011111111111111111111111111 27
+0b11110111111111111111111111111111 28
+0b11101111111111111111111111111111 29
+0b11011111111111111111111111111111 30
+0b10111111111111111111111111111111 31
+0b01111111111111111111111111111111 32
+
+long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+long long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+
+low1
+
+signed char
+0b00000000 0
+0b00000001 1
+0b00000010 2
+0b00000100 3
+0b00001000 4
+0b00010000 5
+0b00100000 6
+0b01000000 7
+0b10000000 8
+
+unsigned char
+0b00000000 0
+0b00000001 1
+0b00000010 2
+0b00000100 3
+0b00001000 4
+0b00010000 5
+0b00100000 6
+0b01000000 7
+0b10000000 8
+
+short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000010 2
+0b0000000000000100 3
+0b0000000000001000 4
+0b0000000000010000 5
+0b0000000000100000 6
+0b0000000001000000 7
+0b0000000010000000 8
+0b0000000100000000 9
+0b0000001000000000 10
+0b0000010000000000 11
+0b0000100000000000 12
+0b0001000000000000 13
+0b0010000000000000 14
+0b0100000000000000 15
+0b1000000000000000 16
+
+unsigned short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000010 2
+0b0000000000000100 3
+0b0000000000001000 4
+0b0000000000010000 5
+0b0000000000100000 6
+0b0000000001000000 7
+0b0000000010000000 8
+0b0000000100000000 9
+0b0000001000000000 10
+0b0000010000000000 11
+0b0000100000000000 12
+0b0001000000000000 13
+0b0010000000000000 14
+0b0100000000000000 15
+0b1000000000000000 16
+
+int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000010 2
+0b00000000000000000000000000000100 3
+0b00000000000000000000000000001000 4
+0b00000000000000000000000000010000 5
+0b00000000000000000000000000100000 6
+0b00000000000000000000000001000000 7
+0b00000000000000000000000010000000 8
+0b00000000000000000000000100000000 9
+0b00000000000000000000001000000000 10
+0b00000000000000000000010000000000 11
+0b00000000000000000000100000000000 12
+0b00000000000000000001000000000000 13
+0b00000000000000000010000000000000 14
+0b00000000000000000100000000000000 15
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 17
+0b00000000000000100000000000000000 18
+0b00000000000001000000000000000000 19
+0b00000000000010000000000000000000 20
+0b00000000000100000000000000000000 21
+0b00000000001000000000000000000000 22
+0b00000000010000000000000000000000 23
+0b00000000100000000000000000000000 24
+0b00000001000000000000000000000000 25
+0b00000010000000000000000000000000 26
+0b00000100000000000000000000000000 27
+0b00001000000000000000000000000000 28
+0b00010000000000000000000000000000 29
+0b00100000000000000000000000000000 30
+0b01000000000000000000000000000000 31
+0b10000000000000000000000000000000 32
+
+unsigned int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000010 2
+0b00000000000000000000000000000100 3
+0b00000000000000000000000000001000 4
+0b00000000000000000000000000010000 5
+0b00000000000000000000000000100000 6
+0b00000000000000000000000001000000 7
+0b00000000000000000000000010000000 8
+0b00000000000000000000000100000000 9
+0b00000000000000000000001000000000 10
+0b00000000000000000000010000000000 11
+0b00000000000000000000100000000000 12
+0b00000000000000000001000000000000 13
+0b00000000000000000010000000000000 14
+0b00000000000000000100000000000000 15
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 17
+0b00000000000000100000000000000000 18
+0b00000000000001000000000000000000 19
+0b00000000000010000000000000000000 20
+0b00000000000100000000000000000000 21
+0b00000000001000000000000000000000 22
+0b00000000010000000000000000000000 23
+0b00000000100000000000000000000000 24
+0b00000001000000000000000000000000 25
+0b00000010000000000000000000000000 26
+0b00000100000000000000000000000000 27
+0b00001000000000000000000000000000 28
+0b00010000000000000000000000000000 29
+0b00100000000000000000000000000000 30
+0b01000000000000000000000000000000 31
+0b10000000000000000000000000000000 32
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000000 1
+0b0000000000000000000000000000000000000000000000000000000000000000 2
+0b0000000000000000000000000000000000000000000000000000000000000000 3
+0b0000000000000000000000000000000000000000000000000000000000000000 4
+0b0000000000000000000000000000000000000000000000000000000000000000 5
+0b0000000000000000000000000000000000000000000000000000000000000000 6
+0b0000000000000000000000000000000000000000000000000000000000000000 7
+0b0000000000000000000000000000000000000000000000000000000000000000 8
+0b0000000000000000000000000000000000000000000000000000000000000000 9
+0b0000000000000000000000000000000000000000000000000000000000000000 10
+0b0000000000000000000000000000000000000000000000000000000000000000 11
+0b0000000000000000000000000000000000000000000000000000000000000000 12
+0b0000000000000000000000000000000000000000000000000000000000000000 13
+0b0000000000000000000000000000000000000000000000000000000000000000 14
+0b0000000000000000000000000000000000000000000000000000000000000000 15
+0b0000000000000000000000000000000000000000000000000000000000000000 16
+0b0000000000000000000000000000000000000000000000000000000000000000 17
+0b0000000000000000000000000000000000000000000000000000000000000000 18
+0b0000000000000000000000000000000000000000000000000000000000000000 19
+0b0000000000000000000000000000000000000000000000000000000000000000 20
+0b0000000000000000000000000000000000000000000000000000000000000000 21
+0b0000000000000000000000000000000000000000000000000000000000000000 22
+0b0000000000000000000000000000000000000000000000000000000000000000 23
+0b0000000000000000000000000000000000000000000000000000000000000000 24
+0b0000000000000000000000000000000000000000000000000000000000000000 25
+0b0000000000000000000000000000000000000000000000000000000000000000 26
+0b0000000000000000000000000000000000000000000000000000000000000000 27
+0b0000000000000000000000000000000000000000000000000000000000000000 28
+0b0000000000000000000000000000000000000000000000000000000000000000 29
+0b0000000000000000000000000000000000000000000000000000000000000000 30
+0b0000000000000000000000000000000000000000000000000000000000000000 31
+0b0000000000000000000000000000000000000000000000000000000000000000 32
+0b0000000000000000000000000000000000000000000000000000000000000000 33
+0b0000000000000000000000000000000000000000000000000000000000000000 34
+0b0000000000000000000000000000000000000000000000000000000000000000 35
+0b0000000000000000000000000000000000000000000000000000000000000000 36
+0b0000000000000000000000000000000000000000000000000000000000000000 37
+0b0000000000000000000000000000000000000000000000000000000000000000 38
+0b0000000000000000000000000000000000000000000000000000000000000000 39
+0b0000000000000000000000000000000000000000000000000000000000000000 40
+0b0000000000000000000000000000000000000000000000000000000000000000 41
+0b0000000000000000000000000000000000000000000000000000000000000000 42
+0b0000000000000000000000000000000000000000000000000000000000000000 43
+0b0000000000000000000000000000000000000000000000000000000000000000 44
+0b0000000000000000000000000000000000000000000000000000000000000000 45
+0b0000000000000000000000000000000000000000000000000000000000000000 46
+0b0000000000000000000000000000000000000000000000000000000000000000 47
+0b0000000000000000000000000000000000000000000000000000000000000000 48
+0b0000000000000000000000000000000000000000000000000000000000000000 49
+0b0000000000000000000000000000000000000000000000000000000000000000 50
+0b0000000000000000000000000000000000000000000000000000000000000000 51
+0b0000000000000000000000000000000000000000000000000000000000000000 52
+0b0000000000000000000000000000000000000000000000000000000000000000 53
+0b0000000000000000000000000000000000000000000000000000000000000000 54
+0b0000000000000000000000000000000000000000000000000000000000000000 55
+0b0000000000000000000000000000000000000000000000000000000000000000 56
+0b0000000000000000000000000000000000000000000000000000000000000000 57
+0b0000000000000000000000000000000000000000000000000000000000000000 58
+0b0000000000000000000000000000000000000000000000000000000000000000 59
+0b0000000000000000000000000000000000000000000000000000000000000000 60
+0b0000000000000000000000000000000000000000000000000000000000000000 61
+0b0000000000000000000000000000000000000000000000000000000000000000 62
+0b0000000000000000000000000000000000000000000000000000000000000000 63
+0b0000000000000000000000000000000000000000000000000000000000000000 64
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+
+high0
+
+signed char
+0b11111111 0
+0b11111110 1
+0b11111101 2
+0b11111011 3
+0b11110111 4
+0b11101111 5
+0b11011111 6
+0b10111111 7
+0b01111111 8
+
+unsigned char
+0b11111111 0
+0b11111110 1
+0b11111101 2
+0b11111011 3
+0b11110111 4
+0b11101111 5
+0b11011111 6
+0b10111111 7
+0b01111111 8
+
+short int
+0b1111111111111111 0
+0b1111111111111110 1
+0b1111111111111101 2
+0b1111111111111011 3
+0b1111111111110111 4
+0b1111111111101111 5
+0b1111111111011111 6
+0b1111111110111111 7
+0b1111111101111111 8
+0b1111111011111111 9
+0b1111110111111111 10
+0b1111101111111111 11
+0b1111011111111111 12
+0b1110111111111111 13
+0b1101111111111111 14
+0b1011111111111111 15
+0b0111111111111111 16
+
+unsigned short int
+0b1111111111111111 0
+0b1111111111111110 1
+0b1111111111111101 2
+0b1111111111111011 3
+0b1111111111110111 4
+0b1111111111101111 5
+0b1111111111011111 6
+0b1111111110111111 7
+0b1111111101111111 8
+0b1111111011111111 9
+0b1111110111111111 10
+0b1111101111111111 11
+0b1111011111111111 12
+0b1110111111111111 13
+0b1101111111111111 14
+0b1011111111111111 15
+0b0111111111111111 16
+
+int
+0b11111111111111111111111111111111 0
+0b11111111111111111111111111111110 1
+0b11111111111111111111111111111101 2
+0b11111111111111111111111111111011 3
+0b11111111111111111111111111110111 4
+0b11111111111111111111111111101111 5
+0b11111111111111111111111111011111 6
+0b11111111111111111111111110111111 7
+0b11111111111111111111111101111111 8
+0b11111111111111111111111011111111 9
+0b11111111111111111111110111111111 10
+0b11111111111111111111101111111111 11
+0b11111111111111111111011111111111 12
+0b11111111111111111110111111111111 13
+0b11111111111111111101111111111111 14
+0b11111111111111111011111111111111 15
+0b11111111111111110111111111111111 16
+0b11111111111111101111111111111111 17
+0b11111111111111011111111111111111 18
+0b11111111111110111111111111111111 19
+0b11111111111101111111111111111111 20
+0b11111111111011111111111111111111 21
+0b11111111110111111111111111111111 22
+0b11111111101111111111111111111111 23
+0b11111111011111111111111111111111 24
+0b11111110111111111111111111111111 25
+0b11111101111111111111111111111111 26
+0b11111011111111111111111111111111 27
+0b11110111111111111111111111111111 28
+0b11101111111111111111111111111111 29
+0b11011111111111111111111111111111 30
+0b10111111111111111111111111111111 31
+0b01111111111111111111111111111111 32
+
+unsigned int
+0b11111111111111111111111111111111 0
+0b11111111111111111111111111111110 0
+0b11111111111111111111111111111101 0
+0b11111111111111111111111111111011 0
+0b11111111111111111111111111110111 0
+0b11111111111111111111111111101111 0
+0b11111111111111111111111111011111 0
+0b11111111111111111111111110111111 0
+0b11111111111111111111111101111111 0
+0b11111111111111111111111011111111 0
+0b11111111111111111111110111111111 0
+0b11111111111111111111101111111111 0
+0b11111111111111111111011111111111 0
+0b11111111111111111110111111111111 0
+0b11111111111111111101111111111111 0
+0b11111111111111111011111111111111 0
+0b11111111111111110111111111111111 0
+0b11111111111111101111111111111111 0
+0b11111111111111011111111111111111 0
+0b11111111111110111111111111111111 0
+0b11111111111101111111111111111111 0
+0b11111111111011111111111111111111 0
+0b11111111110111111111111111111111 0
+0b11111111101111111111111111111111 0
+0b11111111011111111111111111111111 0
+0b11111110111111111111111111111111 0
+0b11111101111111111111111111111111 0
+0b11111011111111111111111111111111 0
+0b11110111111111111111111111111111 0
+0b11101111111111111111111111111111 0
+0b11011111111111111111111111111111 0
+0b10111111111111111111111111111111 0
+0b01111111111111111111111111111111 0
+
+long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+long long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+unsigned long long int
+0b1111111111111111111111111111111111111111111111111111111111111111 0
+0b1111111111111111111111111111111111111111111111111111111111111110 1
+0b1111111111111111111111111111111111111111111111111111111111111101 2
+0b1111111111111111111111111111111111111111111111111111111111111011 3
+0b1111111111111111111111111111111111111111111111111111111111110111 4
+0b1111111111111111111111111111111111111111111111111111111111101111 5
+0b1111111111111111111111111111111111111111111111111111111111011111 6
+0b1111111111111111111111111111111111111111111111111111111110111111 7
+0b1111111111111111111111111111111111111111111111111111111101111111 8
+0b1111111111111111111111111111111111111111111111111111111011111111 9
+0b1111111111111111111111111111111111111111111111111111110111111111 10
+0b1111111111111111111111111111111111111111111111111111101111111111 11
+0b1111111111111111111111111111111111111111111111111111011111111111 12
+0b1111111111111111111111111111111111111111111111111110111111111111 13
+0b1111111111111111111111111111111111111111111111111101111111111111 14
+0b1111111111111111111111111111111111111111111111111011111111111111 15
+0b1111111111111111111111111111111111111111111111110111111111111111 16
+0b1111111111111111111111111111111111111111111111101111111111111111 17
+0b1111111111111111111111111111111111111111111111011111111111111111 18
+0b1111111111111111111111111111111111111111111110111111111111111111 19
+0b1111111111111111111111111111111111111111111101111111111111111111 20
+0b1111111111111111111111111111111111111111111011111111111111111111 21
+0b1111111111111111111111111111111111111111110111111111111111111111 22
+0b1111111111111111111111111111111111111111101111111111111111111111 23
+0b1111111111111111111111111111111111111111011111111111111111111111 24
+0b1111111111111111111111111111111111111110111111111111111111111111 25
+0b1111111111111111111111111111111111111101111111111111111111111111 26
+0b1111111111111111111111111111111111111011111111111111111111111111 27
+0b1111111111111111111111111111111111110111111111111111111111111111 28
+0b1111111111111111111111111111111111101111111111111111111111111111 29
+0b1111111111111111111111111111111111011111111111111111111111111111 30
+0b1111111111111111111111111111111110111111111111111111111111111111 31
+0b1111111111111111111111111111111101111111111111111111111111111111 32
+0b1111111111111111111111111111111011111111111111111111111111111111 33
+0b1111111111111111111111111111110111111111111111111111111111111111 34
+0b1111111111111111111111111111101111111111111111111111111111111111 35
+0b1111111111111111111111111111011111111111111111111111111111111111 36
+0b1111111111111111111111111110111111111111111111111111111111111111 37
+0b1111111111111111111111111101111111111111111111111111111111111111 38
+0b1111111111111111111111111011111111111111111111111111111111111111 39
+0b1111111111111111111111110111111111111111111111111111111111111111 40
+0b1111111111111111111111101111111111111111111111111111111111111111 41
+0b1111111111111111111111011111111111111111111111111111111111111111 42
+0b1111111111111111111110111111111111111111111111111111111111111111 43
+0b1111111111111111111101111111111111111111111111111111111111111111 44
+0b1111111111111111111011111111111111111111111111111111111111111111 45
+0b1111111111111111110111111111111111111111111111111111111111111111 46
+0b1111111111111111101111111111111111111111111111111111111111111111 47
+0b1111111111111111011111111111111111111111111111111111111111111111 48
+0b1111111111111110111111111111111111111111111111111111111111111111 49
+0b1111111111111101111111111111111111111111111111111111111111111111 50
+0b1111111111111011111111111111111111111111111111111111111111111111 51
+0b1111111111110111111111111111111111111111111111111111111111111111 52
+0b1111111111101111111111111111111111111111111111111111111111111111 53
+0b1111111111011111111111111111111111111111111111111111111111111111 54
+0b1111111110111111111111111111111111111111111111111111111111111111 55
+0b1111111101111111111111111111111111111111111111111111111111111111 56
+0b1111111011111111111111111111111111111111111111111111111111111111 57
+0b1111110111111111111111111111111111111111111111111111111111111111 58
+0b1111101111111111111111111111111111111111111111111111111111111111 59
+0b1111011111111111111111111111111111111111111111111111111111111111 60
+0b1110111111111111111111111111111111111111111111111111111111111111 61
+0b1101111111111111111111111111111111111111111111111111111111111111 62
+0b1011111111111111111111111111111111111111111111111111111111111111 63
+0b0111111111111111111111111111111111111111111111111111111111111111 64
+
+
+high1
+
+signed char
+0b00000000 0
+0b00000001 1
+0b00000010 2
+0b00000100 3
+0b00001000 4
+0b00010000 5
+0b00100000 6
+0b01000000 7
+0b10000000 8
+
+unsigned char
+0b00000000 0
+0b00000001 1
+0b00000010 2
+0b00000100 3
+0b00001000 4
+0b00010000 5
+0b00100000 6
+0b01000000 7
+0b10000000 8
+
+short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000010 2
+0b0000000000000100 3
+0b0000000000001000 4
+0b0000000000010000 5
+0b0000000000100000 6
+0b0000000001000000 7
+0b0000000010000000 8
+0b0000000100000000 9
+0b0000001000000000 10
+0b0000010000000000 11
+0b0000100000000000 12
+0b0001000000000000 13
+0b0010000000000000 14
+0b0100000000000000 15
+0b1000000000000000 16
+
+unsigned short int
+0b0000000000000000 0
+0b0000000000000001 1
+0b0000000000000010 2
+0b0000000000000100 3
+0b0000000000001000 4
+0b0000000000010000 5
+0b0000000000100000 6
+0b0000000001000000 7
+0b0000000010000000 8
+0b0000000100000000 9
+0b0000001000000000 10
+0b0000010000000000 11
+0b0000100000000000 12
+0b0001000000000000 13
+0b0010000000000000 14
+0b0100000000000000 15
+0b1000000000000000 16
+
+int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000010 2
+0b00000000000000000000000000000100 3
+0b00000000000000000000000000001000 4
+0b00000000000000000000000000010000 5
+0b00000000000000000000000000100000 6
+0b00000000000000000000000001000000 7
+0b00000000000000000000000010000000 8
+0b00000000000000000000000100000000 9
+0b00000000000000000000001000000000 10
+0b00000000000000000000010000000000 11
+0b00000000000000000000100000000000 12
+0b00000000000000000001000000000000 13
+0b00000000000000000010000000000000 14
+0b00000000000000000100000000000000 15
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 17
+0b00000000000000100000000000000000 18
+0b00000000000001000000000000000000 19
+0b00000000000010000000000000000000 20
+0b00000000000100000000000000000000 21
+0b00000000001000000000000000000000 22
+0b00000000010000000000000000000000 23
+0b00000000100000000000000000000000 24
+0b00000001000000000000000000000000 25
+0b00000010000000000000000000000000 26
+0b00000100000000000000000000000000 27
+0b00001000000000000000000000000000 28
+0b00010000000000000000000000000000 29
+0b00100000000000000000000000000000 30
+0b01000000000000000000000000000000 31
+0b10000000000000000000000000000000 32
+
+unsigned int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000001 1
+0b00000000000000000000000000000010 2
+0b00000000000000000000000000000100 3
+0b00000000000000000000000000001000 4
+0b00000000000000000000000000010000 5
+0b00000000000000000000000000100000 6
+0b00000000000000000000000001000000 7
+0b00000000000000000000000010000000 8
+0b00000000000000000000000100000000 9
+0b00000000000000000000001000000000 10
+0b00000000000000000000010000000000 11
+0b00000000000000000000100000000000 12
+0b00000000000000000001000000000000 13
+0b00000000000000000010000000000000 14
+0b00000000000000000100000000000000 15
+0b00000000000000001000000000000000 16
+0b00000000000000010000000000000000 17
+0b00000000000000100000000000000000 18
+0b00000000000001000000000000000000 19
+0b00000000000010000000000000000000 20
+0b00000000000100000000000000000000 21
+0b00000000001000000000000000000000 22
+0b00000000010000000000000000000000 23
+0b00000000100000000000000000000000 24
+0b00000001000000000000000000000000 25
+0b00000010000000000000000000000000 26
+0b00000100000000000000000000000000 27
+0b00001000000000000000000000000000 28
+0b00010000000000000000000000000000 29
+0b00100000000000000000000000000000 30
+0b01000000000000000000000000000000 31
+0b10000000000000000000000000000000 32
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 0
+0b0000000000000000000000000000000000000000000000000000000000000001 1
+0b0000000000000000000000000000000000000000000000000000000000000010 2
+0b0000000000000000000000000000000000000000000000000000000000000100 3
+0b0000000000000000000000000000000000000000000000000000000000001000 4
+0b0000000000000000000000000000000000000000000000000000000000010000 5
+0b0000000000000000000000000000000000000000000000000000000000100000 6
+0b0000000000000000000000000000000000000000000000000000000001000000 7
+0b0000000000000000000000000000000000000000000000000000000010000000 8
+0b0000000000000000000000000000000000000000000000000000000100000000 9
+0b0000000000000000000000000000000000000000000000000000001000000000 10
+0b0000000000000000000000000000000000000000000000000000010000000000 11
+0b0000000000000000000000000000000000000000000000000000100000000000 12
+0b0000000000000000000000000000000000000000000000000001000000000000 13
+0b0000000000000000000000000000000000000000000000000010000000000000 14
+0b0000000000000000000000000000000000000000000000000100000000000000 15
+0b0000000000000000000000000000000000000000000000001000000000000000 16
+0b0000000000000000000000000000000000000000000000010000000000000000 17
+0b0000000000000000000000000000000000000000000000100000000000000000 18
+0b0000000000000000000000000000000000000000000001000000000000000000 19
+0b0000000000000000000000000000000000000000000010000000000000000000 20
+0b0000000000000000000000000000000000000000000100000000000000000000 21
+0b0000000000000000000000000000000000000000001000000000000000000000 22
+0b0000000000000000000000000000000000000000010000000000000000000000 23
+0b0000000000000000000000000000000000000000100000000000000000000000 24
+0b0000000000000000000000000000000000000001000000000000000000000000 25
+0b0000000000000000000000000000000000000010000000000000000000000000 26
+0b0000000000000000000000000000000000000100000000000000000000000000 27
+0b0000000000000000000000000000000000001000000000000000000000000000 28
+0b0000000000000000000000000000000000010000000000000000000000000000 29
+0b0000000000000000000000000000000000100000000000000000000000000000 30
+0b0000000000000000000000000000000001000000000000000000000000000000 31
+0b0000000000000000000000000000000010000000000000000000000000000000 32
+0b0000000000000000000000000000000100000000000000000000000000000000 33
+0b0000000000000000000000000000001000000000000000000000000000000000 34
+0b0000000000000000000000000000010000000000000000000000000000000000 35
+0b0000000000000000000000000000100000000000000000000000000000000000 36
+0b0000000000000000000000000001000000000000000000000000000000000000 37
+0b0000000000000000000000000010000000000000000000000000000000000000 38
+0b0000000000000000000000000100000000000000000000000000000000000000 39
+0b0000000000000000000000001000000000000000000000000000000000000000 40
+0b0000000000000000000000010000000000000000000000000000000000000000 41
+0b0000000000000000000000100000000000000000000000000000000000000000 42
+0b0000000000000000000001000000000000000000000000000000000000000000 43
+0b0000000000000000000010000000000000000000000000000000000000000000 44
+0b0000000000000000000100000000000000000000000000000000000000000000 45
+0b0000000000000000001000000000000000000000000000000000000000000000 46
+0b0000000000000000010000000000000000000000000000000000000000000000 47
+0b0000000000000000100000000000000000000000000000000000000000000000 48
+0b0000000000000001000000000000000000000000000000000000000000000000 49
+0b0000000000000010000000000000000000000000000000000000000000000000 50
+0b0000000000000100000000000000000000000000000000000000000000000000 51
+0b0000000000001000000000000000000000000000000000000000000000000000 52
+0b0000000000010000000000000000000000000000000000000000000000000000 53
+0b0000000000100000000000000000000000000000000000000000000000000000 54
+0b0000000001000000000000000000000000000000000000000000000000000000 55
+0b0000000010000000000000000000000000000000000000000000000000000000 56
+0b0000000100000000000000000000000000000000000000000000000000000000 57
+0b0000001000000000000000000000000000000000000000000000000000000000 58
+0b0000010000000000000000000000000000000000000000000000000000000000 59
+0b0000100000000000000000000000000000000000000000000000000000000000 60
+0b0001000000000000000000000000000000000000000000000000000000000000 61
+0b0010000000000000000000000000000000000000000000000000000000000000 62
+0b0100000000000000000000000000000000000000000000000000000000000000 63
+0b1000000000000000000000000000000000000000000000000000000000000000 64
+
Index: tests/.expect/bitmanip3.arm64.txt
===================================================================
--- tests/.expect/bitmanip3.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/bitmanip3.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,1183 @@
+
+is_pow2
+
+signed char
+0b00000000 false 0b00001101 false
+0b00000001 true 0b00001110 false
+0b00000010 true 0b00001111 false
+0b00000100 true 0b00010001 false
+0b00001000 true 0b00010101 false
+0b00010000 true 0b00011101 false
+0b00100000 true 0b00101101 false
+0b01000000 true 0b01001101 false
+0b10000000 true 0b10001101 false
+
+unsigned char
+0b00000000 false 0b00001101 false
+0b00000001 true 0b00001110 false
+0b00000010 true 0b00001111 false
+0b00000100 true 0b00010001 false
+0b00001000 true 0b00010101 false
+0b00010000 true 0b00011101 false
+0b00100000 true 0b00101101 false
+0b01000000 true 0b01001101 false
+0b10000000 true 0b10001101 false
+
+short int
+0b0000000000000000 false 0b0000000000001101 false
+0b0000000000000001 true 0b0000000000001110 false
+0b0000000000000010 true 0b0000000000001111 false
+0b0000000000000100 true 0b0000000000010001 false
+0b0000000000001000 true 0b0000000000010101 false
+0b0000000000010000 true 0b0000000000011101 false
+0b0000000000100000 true 0b0000000000101101 false
+0b0000000001000000 true 0b0000000001001101 false
+0b0000000010000000 true 0b0000000010001101 false
+0b0000000100000000 true 0b0000000100001101 false
+0b0000001000000000 true 0b0000001000001101 false
+0b0000010000000000 true 0b0000010000001101 false
+0b0000100000000000 true 0b0000100000001101 false
+0b0001000000000000 true 0b0001000000001101 false
+0b0010000000000000 true 0b0010000000001101 false
+0b0100000000000000 true 0b0100000000001101 false
+0b1000000000000000 true 0b1000000000001101 false
+
+unsigned short int
+0b0000000000000000 false 0b0000000000001101 false
+0b0000000000000001 true 0b0000000000001110 false
+0b0000000000000010 true 0b0000000000001111 false
+0b0000000000000100 true 0b0000000000010001 false
+0b0000000000001000 true 0b0000000000010101 false
+0b0000000000010000 true 0b0000000000011101 false
+0b0000000000100000 true 0b0000000000101101 false
+0b0000000001000000 true 0b0000000001001101 false
+0b0000000010000000 true 0b0000000010001101 false
+0b0000000100000000 true 0b0000000100001101 false
+0b0000001000000000 true 0b0000001000001101 false
+0b0000010000000000 true 0b0000010000001101 false
+0b0000100000000000 true 0b0000100000001101 false
+0b0001000000000000 true 0b0001000000001101 false
+0b0010000000000000 true 0b0010000000001101 false
+0b0100000000000000 true 0b0100000000001101 false
+0b1000000000000000 true 0b1000000000001101 false
+
+int
+0b00000000000000000000000000000000 false 0b00000000000000000000000000001101 false
+0b00000000000000000000000000000001 true 0b00000000000000000000000000001110 false
+0b00000000000000000000000000000010 true 0b00000000000000000000000000001111 false
+0b00000000000000000000000000000100 true 0b00000000000000000000000000010001 false
+0b00000000000000000000000000001000 true 0b00000000000000000000000000010101 false
+0b00000000000000000000000000010000 true 0b00000000000000000000000000011101 false
+0b00000000000000000000000000100000 true 0b00000000000000000000000000101101 false
+0b00000000000000000000000001000000 true 0b00000000000000000000000001001101 false
+0b00000000000000000000000010000000 true 0b00000000000000000000000010001101 false
+0b00000000000000000000000100000000 true 0b00000000000000000000000100001101 false
+0b00000000000000000000001000000000 true 0b00000000000000000000001000001101 false
+0b00000000000000000000010000000000 true 0b00000000000000000000010000001101 false
+0b00000000000000000000100000000000 true 0b00000000000000000000100000001101 false
+0b00000000000000000001000000000000 true 0b00000000000000000001000000001101 false
+0b00000000000000000010000000000000 true 0b00000000000000000010000000001101 false
+0b00000000000000000100000000000000 true 0b00000000000000000100000000001101 false
+0b00000000000000001000000000000000 true 0b00000000000000001000000000001101 false
+0b00000000000000010000000000000000 true 0b00000000000000010000000000001101 false
+0b00000000000000100000000000000000 true 0b00000000000000100000000000001101 false
+0b00000000000001000000000000000000 true 0b00000000000001000000000000001101 false
+0b00000000000010000000000000000000 true 0b00000000000010000000000000001101 false
+0b00000000000100000000000000000000 true 0b00000000000100000000000000001101 false
+0b00000000001000000000000000000000 true 0b00000000001000000000000000001101 false
+0b00000000010000000000000000000000 true 0b00000000010000000000000000001101 false
+0b00000000100000000000000000000000 true 0b00000000100000000000000000001101 false
+0b00000001000000000000000000000000 true 0b00000001000000000000000000001101 false
+0b00000010000000000000000000000000 true 0b00000010000000000000000000001101 false
+0b00000100000000000000000000000000 true 0b00000100000000000000000000001101 false
+0b00001000000000000000000000000000 true 0b00001000000000000000000000001101 false
+0b00010000000000000000000000000000 true 0b00010000000000000000000000001101 false
+0b00100000000000000000000000000000 true 0b00100000000000000000000000001101 false
+0b01000000000000000000000000000000 true 0b01000000000000000000000000001101 false
+0b10000000000000000000000000000000 true 0b10000000000000000000000000001101 false
+
+unsigned int
+0b00000000000000000000000000000000 false 0b00000000000000000000000000001101 false
+0b00000000000000000000000000000001 true 0b00000000000000000000000000001110 false
+0b00000000000000000000000000000010 true 0b00000000000000000000000000001111 false
+0b00000000000000000000000000000100 true 0b00000000000000000000000000010001 false
+0b00000000000000000000000000001000 true 0b00000000000000000000000000010101 false
+0b00000000000000000000000000010000 true 0b00000000000000000000000000011101 false
+0b00000000000000000000000000100000 true 0b00000000000000000000000000101101 false
+0b00000000000000000000000001000000 true 0b00000000000000000000000001001101 false
+0b00000000000000000000000010000000 true 0b00000000000000000000000010001101 false
+0b00000000000000000000000100000000 true 0b00000000000000000000000100001101 false
+0b00000000000000000000001000000000 true 0b00000000000000000000001000001101 false
+0b00000000000000000000010000000000 true 0b00000000000000000000010000001101 false
+0b00000000000000000000100000000000 true 0b00000000000000000000100000001101 false
+0b00000000000000000001000000000000 true 0b00000000000000000001000000001101 false
+0b00000000000000000010000000000000 true 0b00000000000000000010000000001101 false
+0b00000000000000000100000000000000 true 0b00000000000000000100000000001101 false
+0b00000000000000001000000000000000 true 0b00000000000000001000000000001101 false
+0b00000000000000010000000000000000 true 0b00000000000000010000000000001101 false
+0b00000000000000100000000000000000 true 0b00000000000000100000000000001101 false
+0b00000000000001000000000000000000 true 0b00000000000001000000000000001101 false
+0b00000000000010000000000000000000 true 0b00000000000010000000000000001101 false
+0b00000000000100000000000000000000 true 0b00000000000100000000000000001101 false
+0b00000000001000000000000000000000 true 0b00000000001000000000000000001101 false
+0b00000000010000000000000000000000 true 0b00000000010000000000000000001101 false
+0b00000000100000000000000000000000 true 0b00000000100000000000000000001101 false
+0b00000001000000000000000000000000 true 0b00000001000000000000000000001101 false
+0b00000010000000000000000000000000 true 0b00000010000000000000000000001101 false
+0b00000100000000000000000000000000 true 0b00000100000000000000000000001101 false
+0b00001000000000000000000000000000 true 0b00001000000000000000000000001101 false
+0b00010000000000000000000000000000 true 0b00010000000000000000000000001101 false
+0b00100000000000000000000000000000 true 0b00100000000000000000000000001101 false
+0b01000000000000000000000000000000 true 0b01000000000000000000000000001101 false
+0b10000000000000000000000000000000 true 0b10000000000000000000000000001101 false
+
+long int
+0b0000000000000000000000000000000000000000000000000000000000000000 false 0b0000000000000000000000000000000000000000000000000000000000001101 false
+0b0000000000000000000000000000000000000000000000000000000000000001 true 0b0000000000000000000000000000000000000000000000000000000000001110 false
+0b0000000000000000000000000000000000000000000000000000000000000010 true 0b0000000000000000000000000000000000000000000000000000000000001111 false
+0b0000000000000000000000000000000000000000000000000000000000000100 true 0b0000000000000000000000000000000000000000000000000000000000010001 false
+0b0000000000000000000000000000000000000000000000000000000000001000 true 0b0000000000000000000000000000000000000000000000000000000000010101 false
+0b0000000000000000000000000000000000000000000000000000000000010000 true 0b0000000000000000000000000000000000000000000000000000000000011101 false
+0b0000000000000000000000000000000000000000000000000000000000100000 true 0b0000000000000000000000000000000000000000000000000000000000101101 false
+0b0000000000000000000000000000000000000000000000000000000001000000 true 0b0000000000000000000000000000000000000000000000000000000001001101 false
+0b0000000000000000000000000000000000000000000000000000000010000000 true 0b0000000000000000000000000000000000000000000000000000000010001101 false
+0b0000000000000000000000000000000000000000000000000000000100000000 true 0b0000000000000000000000000000000000000000000000000000000100001101 false
+0b0000000000000000000000000000000000000000000000000000001000000000 true 0b0000000000000000000000000000000000000000000000000000001000001101 false
+0b0000000000000000000000000000000000000000000000000000010000000000 true 0b0000000000000000000000000000000000000000000000000000010000001101 false
+0b0000000000000000000000000000000000000000000000000000100000000000 true 0b0000000000000000000000000000000000000000000000000000100000001101 false
+0b0000000000000000000000000000000000000000000000000001000000000000 true 0b0000000000000000000000000000000000000000000000000001000000001101 false
+0b0000000000000000000000000000000000000000000000000010000000000000 true 0b0000000000000000000000000000000000000000000000000010000000001101 false
+0b0000000000000000000000000000000000000000000000000100000000000000 true 0b0000000000000000000000000000000000000000000000000100000000001101 false
+0b0000000000000000000000000000000000000000000000001000000000000000 true 0b0000000000000000000000000000000000000000000000001000000000001101 false
+0b0000000000000000000000000000000000000000000000010000000000000000 true 0b0000000000000000000000000000000000000000000000010000000000001101 false
+0b0000000000000000000000000000000000000000000000100000000000000000 true 0b0000000000000000000000000000000000000000000000100000000000001101 false
+0b0000000000000000000000000000000000000000000001000000000000000000 true 0b0000000000000000000000000000000000000000000001000000000000001101 false
+0b0000000000000000000000000000000000000000000010000000000000000000 true 0b0000000000000000000000000000000000000000000010000000000000001101 false
+0b0000000000000000000000000000000000000000000100000000000000000000 true 0b0000000000000000000000000000000000000000000100000000000000001101 false
+0b0000000000000000000000000000000000000000001000000000000000000000 true 0b0000000000000000000000000000000000000000001000000000000000001101 false
+0b0000000000000000000000000000000000000000010000000000000000000000 true 0b0000000000000000000000000000000000000000010000000000000000001101 false
+0b0000000000000000000000000000000000000000100000000000000000000000 true 0b0000000000000000000000000000000000000000100000000000000000001101 false
+0b0000000000000000000000000000000000000001000000000000000000000000 true 0b0000000000000000000000000000000000000001000000000000000000001101 false
+0b0000000000000000000000000000000000000010000000000000000000000000 true 0b0000000000000000000000000000000000000010000000000000000000001101 false
+0b0000000000000000000000000000000000000100000000000000000000000000 true 0b0000000000000000000000000000000000000100000000000000000000001101 false
+0b0000000000000000000000000000000000001000000000000000000000000000 true 0b0000000000000000000000000000000000001000000000000000000000001101 false
+0b0000000000000000000000000000000000010000000000000000000000000000 true 0b0000000000000000000000000000000000010000000000000000000000001101 false
+0b0000000000000000000000000000000000100000000000000000000000000000 true 0b0000000000000000000000000000000000100000000000000000000000001101 false
+0b0000000000000000000000000000000001000000000000000000000000000000 true 0b0000000000000000000000000000000001000000000000000000000000001101 false
+0b0000000000000000000000000000000010000000000000000000000000000000 true 0b0000000000000000000000000000000010000000000000000000000000001101 false
+0b0000000000000000000000000000000100000000000000000000000000000000 true 0b0000000000000000000000000000000100000000000000000000000000001101 false
+0b0000000000000000000000000000001000000000000000000000000000000000 true 0b0000000000000000000000000000001000000000000000000000000000001101 false
+0b0000000000000000000000000000010000000000000000000000000000000000 true 0b0000000000000000000000000000010000000000000000000000000000001101 false
+0b0000000000000000000000000000100000000000000000000000000000000000 true 0b0000000000000000000000000000100000000000000000000000000000001101 false
+0b0000000000000000000000000001000000000000000000000000000000000000 true 0b0000000000000000000000000001000000000000000000000000000000001101 false
+0b0000000000000000000000000010000000000000000000000000000000000000 true 0b0000000000000000000000000010000000000000000000000000000000001101 false
+0b0000000000000000000000000100000000000000000000000000000000000000 true 0b0000000000000000000000000100000000000000000000000000000000001101 false
+0b0000000000000000000000001000000000000000000000000000000000000000 true 0b0000000000000000000000001000000000000000000000000000000000001101 false
+0b0000000000000000000000010000000000000000000000000000000000000000 true 0b0000000000000000000000010000000000000000000000000000000000001101 false
+0b0000000000000000000000100000000000000000000000000000000000000000 true 0b0000000000000000000000100000000000000000000000000000000000001101 false
+0b0000000000000000000001000000000000000000000000000000000000000000 true 0b0000000000000000000001000000000000000000000000000000000000001101 false
+0b0000000000000000000010000000000000000000000000000000000000000000 true 0b0000000000000000000010000000000000000000000000000000000000001101 false
+0b0000000000000000000100000000000000000000000000000000000000000000 true 0b0000000000000000000100000000000000000000000000000000000000001101 false
+0b0000000000000000001000000000000000000000000000000000000000000000 true 0b0000000000000000001000000000000000000000000000000000000000001101 false
+0b0000000000000000010000000000000000000000000000000000000000000000 true 0b0000000000000000010000000000000000000000000000000000000000001101 false
+0b0000000000000000100000000000000000000000000000000000000000000000 true 0b0000000000000000100000000000000000000000000000000000000000001101 false
+0b0000000000000001000000000000000000000000000000000000000000000000 true 0b0000000000000001000000000000000000000000000000000000000000001101 false
+0b0000000000000010000000000000000000000000000000000000000000000000 true 0b0000000000000010000000000000000000000000000000000000000000001101 false
+0b0000000000000100000000000000000000000000000000000000000000000000 true 0b0000000000000100000000000000000000000000000000000000000000001101 false
+0b0000000000001000000000000000000000000000000000000000000000000000 true 0b0000000000001000000000000000000000000000000000000000000000001101 false
+0b0000000000010000000000000000000000000000000000000000000000000000 true 0b0000000000010000000000000000000000000000000000000000000000001101 false
+0b0000000000100000000000000000000000000000000000000000000000000000 true 0b0000000000100000000000000000000000000000000000000000000000001101 false
+0b0000000001000000000000000000000000000000000000000000000000000000 true 0b0000000001000000000000000000000000000000000000000000000000001101 false
+0b0000000010000000000000000000000000000000000000000000000000000000 true 0b0000000010000000000000000000000000000000000000000000000000001101 false
+0b0000000100000000000000000000000000000000000000000000000000000000 true 0b0000000100000000000000000000000000000000000000000000000000001101 false
+0b0000001000000000000000000000000000000000000000000000000000000000 true 0b0000001000000000000000000000000000000000000000000000000000001101 false
+0b0000010000000000000000000000000000000000000000000000000000000000 true 0b0000010000000000000000000000000000000000000000000000000000001101 false
+0b0000100000000000000000000000000000000000000000000000000000000000 true 0b0000100000000000000000000000000000000000000000000000000000001101 false
+0b0001000000000000000000000000000000000000000000000000000000000000 true 0b0001000000000000000000000000000000000000000000000000000000001101 false
+0b0010000000000000000000000000000000000000000000000000000000000000 true 0b0010000000000000000000000000000000000000000000000000000000001101 false
+0b0100000000000000000000000000000000000000000000000000000000000000 true 0b0100000000000000000000000000000000000000000000000000000000001101 false
+0b1000000000000000000000000000000000000000000000000000000000000000 true 0b1000000000000000000000000000000000000000000000000000000000001101 false
+
+unsigned long int
+0b0000000000000000000000000000000000000000000000000000000000000000 false 0b0000000000000000000000000000000000000000000000000000000000001101 false
+0b0000000000000000000000000000000000000000000000000000000000000001 true 0b0000000000000000000000000000000000000000000000000000000000001110 false
+0b0000000000000000000000000000000000000000000000000000000000000010 true 0b0000000000000000000000000000000000000000000000000000000000001111 false
+0b0000000000000000000000000000000000000000000000000000000000000100 true 0b0000000000000000000000000000000000000000000000000000000000010001 false
+0b0000000000000000000000000000000000000000000000000000000000001000 true 0b0000000000000000000000000000000000000000000000000000000000010101 false
+0b0000000000000000000000000000000000000000000000000000000000010000 true 0b0000000000000000000000000000000000000000000000000000000000011101 false
+0b0000000000000000000000000000000000000000000000000000000000100000 true 0b0000000000000000000000000000000000000000000000000000000000101101 false
+0b0000000000000000000000000000000000000000000000000000000001000000 true 0b0000000000000000000000000000000000000000000000000000000001001101 false
+0b0000000000000000000000000000000000000000000000000000000010000000 true 0b0000000000000000000000000000000000000000000000000000000010001101 false
+0b0000000000000000000000000000000000000000000000000000000100000000 true 0b0000000000000000000000000000000000000000000000000000000100001101 false
+0b0000000000000000000000000000000000000000000000000000001000000000 true 0b0000000000000000000000000000000000000000000000000000001000001101 false
+0b0000000000000000000000000000000000000000000000000000010000000000 true 0b0000000000000000000000000000000000000000000000000000010000001101 false
+0b0000000000000000000000000000000000000000000000000000100000000000 true 0b0000000000000000000000000000000000000000000000000000100000001101 false
+0b0000000000000000000000000000000000000000000000000001000000000000 true 0b0000000000000000000000000000000000000000000000000001000000001101 false
+0b0000000000000000000000000000000000000000000000000010000000000000 true 0b0000000000000000000000000000000000000000000000000010000000001101 false
+0b0000000000000000000000000000000000000000000000000100000000000000 true 0b0000000000000000000000000000000000000000000000000100000000001101 false
+0b0000000000000000000000000000000000000000000000001000000000000000 true 0b0000000000000000000000000000000000000000000000001000000000001101 false
+0b0000000000000000000000000000000000000000000000010000000000000000 true 0b0000000000000000000000000000000000000000000000010000000000001101 false
+0b0000000000000000000000000000000000000000000000100000000000000000 true 0b0000000000000000000000000000000000000000000000100000000000001101 false
+0b0000000000000000000000000000000000000000000001000000000000000000 true 0b0000000000000000000000000000000000000000000001000000000000001101 false
+0b0000000000000000000000000000000000000000000010000000000000000000 true 0b0000000000000000000000000000000000000000000010000000000000001101 false
+0b0000000000000000000000000000000000000000000100000000000000000000 true 0b0000000000000000000000000000000000000000000100000000000000001101 false
+0b0000000000000000000000000000000000000000001000000000000000000000 true 0b0000000000000000000000000000000000000000001000000000000000001101 false
+0b0000000000000000000000000000000000000000010000000000000000000000 true 0b0000000000000000000000000000000000000000010000000000000000001101 false
+0b0000000000000000000000000000000000000000100000000000000000000000 true 0b0000000000000000000000000000000000000000100000000000000000001101 false
+0b0000000000000000000000000000000000000001000000000000000000000000 true 0b0000000000000000000000000000000000000001000000000000000000001101 false
+0b0000000000000000000000000000000000000010000000000000000000000000 true 0b0000000000000000000000000000000000000010000000000000000000001101 false
+0b0000000000000000000000000000000000000100000000000000000000000000 true 0b0000000000000000000000000000000000000100000000000000000000001101 false
+0b0000000000000000000000000000000000001000000000000000000000000000 true 0b0000000000000000000000000000000000001000000000000000000000001101 false
+0b0000000000000000000000000000000000010000000000000000000000000000 true 0b0000000000000000000000000000000000010000000000000000000000001101 false
+0b0000000000000000000000000000000000100000000000000000000000000000 true 0b0000000000000000000000000000000000100000000000000000000000001101 false
+0b0000000000000000000000000000000001000000000000000000000000000000 true 0b0000000000000000000000000000000001000000000000000000000000001101 false
+0b0000000000000000000000000000000010000000000000000000000000000000 true 0b0000000000000000000000000000000010000000000000000000000000001101 false
+0b0000000000000000000000000000000100000000000000000000000000000000 true 0b0000000000000000000000000000000100000000000000000000000000001101 false
+0b0000000000000000000000000000001000000000000000000000000000000000 true 0b0000000000000000000000000000001000000000000000000000000000001101 false
+0b0000000000000000000000000000010000000000000000000000000000000000 true 0b0000000000000000000000000000010000000000000000000000000000001101 false
+0b0000000000000000000000000000100000000000000000000000000000000000 true 0b0000000000000000000000000000100000000000000000000000000000001101 false
+0b0000000000000000000000000001000000000000000000000000000000000000 true 0b0000000000000000000000000001000000000000000000000000000000001101 false
+0b0000000000000000000000000010000000000000000000000000000000000000 true 0b0000000000000000000000000010000000000000000000000000000000001101 false
+0b0000000000000000000000000100000000000000000000000000000000000000 true 0b0000000000000000000000000100000000000000000000000000000000001101 false
+0b0000000000000000000000001000000000000000000000000000000000000000 true 0b0000000000000000000000001000000000000000000000000000000000001101 false
+0b0000000000000000000000010000000000000000000000000000000000000000 true 0b0000000000000000000000010000000000000000000000000000000000001101 false
+0b0000000000000000000000100000000000000000000000000000000000000000 true 0b0000000000000000000000100000000000000000000000000000000000001101 false
+0b0000000000000000000001000000000000000000000000000000000000000000 true 0b0000000000000000000001000000000000000000000000000000000000001101 false
+0b0000000000000000000010000000000000000000000000000000000000000000 true 0b0000000000000000000010000000000000000000000000000000000000001101 false
+0b0000000000000000000100000000000000000000000000000000000000000000 true 0b0000000000000000000100000000000000000000000000000000000000001101 false
+0b0000000000000000001000000000000000000000000000000000000000000000 true 0b0000000000000000001000000000000000000000000000000000000000001101 false
+0b0000000000000000010000000000000000000000000000000000000000000000 true 0b0000000000000000010000000000000000000000000000000000000000001101 false
+0b0000000000000000100000000000000000000000000000000000000000000000 true 0b0000000000000000100000000000000000000000000000000000000000001101 false
+0b0000000000000001000000000000000000000000000000000000000000000000 true 0b0000000000000001000000000000000000000000000000000000000000001101 false
+0b0000000000000010000000000000000000000000000000000000000000000000 true 0b0000000000000010000000000000000000000000000000000000000000001101 false
+0b0000000000000100000000000000000000000000000000000000000000000000 true 0b0000000000000100000000000000000000000000000000000000000000001101 false
+0b0000000000001000000000000000000000000000000000000000000000000000 true 0b0000000000001000000000000000000000000000000000000000000000001101 false
+0b0000000000010000000000000000000000000000000000000000000000000000 true 0b0000000000010000000000000000000000000000000000000000000000001101 false
+0b0000000000100000000000000000000000000000000000000000000000000000 true 0b0000000000100000000000000000000000000000000000000000000000001101 false
+0b0000000001000000000000000000000000000000000000000000000000000000 true 0b0000000001000000000000000000000000000000000000000000000000001101 false
+0b0000000010000000000000000000000000000000000000000000000000000000 true 0b0000000010000000000000000000000000000000000000000000000000001101 false
+0b0000000100000000000000000000000000000000000000000000000000000000 true 0b0000000100000000000000000000000000000000000000000000000000001101 false
+0b0000001000000000000000000000000000000000000000000000000000000000 true 0b0000001000000000000000000000000000000000000000000000000000001101 false
+0b0000010000000000000000000000000000000000000000000000000000000000 true 0b0000010000000000000000000000000000000000000000000000000000001101 false
+0b0000100000000000000000000000000000000000000000000000000000000000 true 0b0000100000000000000000000000000000000000000000000000000000001101 false
+0b0001000000000000000000000000000000000000000000000000000000000000 true 0b0001000000000000000000000000000000000000000000000000000000001101 false
+0b0010000000000000000000000000000000000000000000000000000000000000 true 0b0010000000000000000000000000000000000000000000000000000000001101 false
+0b0100000000000000000000000000000000000000000000000000000000000000 true 0b0100000000000000000000000000000000000000000000000000000000001101 false
+0b1000000000000000000000000000000000000000000000000000000000000000 true 0b1000000000000000000000000000000000000000000000000000000000001101 false
+
+long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 false 0b0000000000000000000000000000000000000000000000000000000000001101 false
+0b0000000000000000000000000000000000000000000000000000000000000001 true 0b0000000000000000000000000000000000000000000000000000000000001110 false
+0b0000000000000000000000000000000000000000000000000000000000000010 true 0b0000000000000000000000000000000000000000000000000000000000001111 false
+0b0000000000000000000000000000000000000000000000000000000000000100 true 0b0000000000000000000000000000000000000000000000000000000000010001 false
+0b0000000000000000000000000000000000000000000000000000000000001000 true 0b0000000000000000000000000000000000000000000000000000000000010101 false
+0b0000000000000000000000000000000000000000000000000000000000010000 true 0b0000000000000000000000000000000000000000000000000000000000011101 false
+0b0000000000000000000000000000000000000000000000000000000000100000 true 0b0000000000000000000000000000000000000000000000000000000000101101 false
+0b0000000000000000000000000000000000000000000000000000000001000000 true 0b0000000000000000000000000000000000000000000000000000000001001101 false
+0b0000000000000000000000000000000000000000000000000000000010000000 true 0b0000000000000000000000000000000000000000000000000000000010001101 false
+0b0000000000000000000000000000000000000000000000000000000100000000 true 0b0000000000000000000000000000000000000000000000000000000100001101 false
+0b0000000000000000000000000000000000000000000000000000001000000000 true 0b0000000000000000000000000000000000000000000000000000001000001101 false
+0b0000000000000000000000000000000000000000000000000000010000000000 true 0b0000000000000000000000000000000000000000000000000000010000001101 false
+0b0000000000000000000000000000000000000000000000000000100000000000 true 0b0000000000000000000000000000000000000000000000000000100000001101 false
+0b0000000000000000000000000000000000000000000000000001000000000000 true 0b0000000000000000000000000000000000000000000000000001000000001101 false
+0b0000000000000000000000000000000000000000000000000010000000000000 true 0b0000000000000000000000000000000000000000000000000010000000001101 false
+0b0000000000000000000000000000000000000000000000000100000000000000 true 0b0000000000000000000000000000000000000000000000000100000000001101 false
+0b0000000000000000000000000000000000000000000000001000000000000000 true 0b0000000000000000000000000000000000000000000000001000000000001101 false
+0b0000000000000000000000000000000000000000000000010000000000000000 true 0b0000000000000000000000000000000000000000000000010000000000001101 false
+0b0000000000000000000000000000000000000000000000100000000000000000 true 0b0000000000000000000000000000000000000000000000100000000000001101 false
+0b0000000000000000000000000000000000000000000001000000000000000000 true 0b0000000000000000000000000000000000000000000001000000000000001101 false
+0b0000000000000000000000000000000000000000000010000000000000000000 true 0b0000000000000000000000000000000000000000000010000000000000001101 false
+0b0000000000000000000000000000000000000000000100000000000000000000 true 0b0000000000000000000000000000000000000000000100000000000000001101 false
+0b0000000000000000000000000000000000000000001000000000000000000000 true 0b0000000000000000000000000000000000000000001000000000000000001101 false
+0b0000000000000000000000000000000000000000010000000000000000000000 true 0b0000000000000000000000000000000000000000010000000000000000001101 false
+0b0000000000000000000000000000000000000000100000000000000000000000 true 0b0000000000000000000000000000000000000000100000000000000000001101 false
+0b0000000000000000000000000000000000000001000000000000000000000000 true 0b0000000000000000000000000000000000000001000000000000000000001101 false
+0b0000000000000000000000000000000000000010000000000000000000000000 true 0b0000000000000000000000000000000000000010000000000000000000001101 false
+0b0000000000000000000000000000000000000100000000000000000000000000 true 0b0000000000000000000000000000000000000100000000000000000000001101 false
+0b0000000000000000000000000000000000001000000000000000000000000000 true 0b0000000000000000000000000000000000001000000000000000000000001101 false
+0b0000000000000000000000000000000000010000000000000000000000000000 true 0b0000000000000000000000000000000000010000000000000000000000001101 false
+0b0000000000000000000000000000000000100000000000000000000000000000 true 0b0000000000000000000000000000000000100000000000000000000000001101 false
+0b0000000000000000000000000000000001000000000000000000000000000000 true 0b0000000000000000000000000000000001000000000000000000000000001101 false
+0b0000000000000000000000000000000010000000000000000000000000000000 true 0b0000000000000000000000000000000010000000000000000000000000001101 false
+0b0000000000000000000000000000000100000000000000000000000000000000 true 0b0000000000000000000000000000000100000000000000000000000000001101 false
+0b0000000000000000000000000000001000000000000000000000000000000000 true 0b0000000000000000000000000000001000000000000000000000000000001101 false
+0b0000000000000000000000000000010000000000000000000000000000000000 true 0b0000000000000000000000000000010000000000000000000000000000001101 false
+0b0000000000000000000000000000100000000000000000000000000000000000 true 0b0000000000000000000000000000100000000000000000000000000000001101 false
+0b0000000000000000000000000001000000000000000000000000000000000000 true 0b0000000000000000000000000001000000000000000000000000000000001101 false
+0b0000000000000000000000000010000000000000000000000000000000000000 true 0b0000000000000000000000000010000000000000000000000000000000001101 false
+0b0000000000000000000000000100000000000000000000000000000000000000 true 0b0000000000000000000000000100000000000000000000000000000000001101 false
+0b0000000000000000000000001000000000000000000000000000000000000000 true 0b0000000000000000000000001000000000000000000000000000000000001101 false
+0b0000000000000000000000010000000000000000000000000000000000000000 true 0b0000000000000000000000010000000000000000000000000000000000001101 false
+0b0000000000000000000000100000000000000000000000000000000000000000 true 0b0000000000000000000000100000000000000000000000000000000000001101 false
+0b0000000000000000000001000000000000000000000000000000000000000000 true 0b0000000000000000000001000000000000000000000000000000000000001101 false
+0b0000000000000000000010000000000000000000000000000000000000000000 true 0b0000000000000000000010000000000000000000000000000000000000001101 false
+0b0000000000000000000100000000000000000000000000000000000000000000 true 0b0000000000000000000100000000000000000000000000000000000000001101 false
+0b0000000000000000001000000000000000000000000000000000000000000000 true 0b0000000000000000001000000000000000000000000000000000000000001101 false
+0b0000000000000000010000000000000000000000000000000000000000000000 true 0b0000000000000000010000000000000000000000000000000000000000001101 false
+0b0000000000000000100000000000000000000000000000000000000000000000 true 0b0000000000000000100000000000000000000000000000000000000000001101 false
+0b0000000000000001000000000000000000000000000000000000000000000000 true 0b0000000000000001000000000000000000000000000000000000000000001101 false
+0b0000000000000010000000000000000000000000000000000000000000000000 true 0b0000000000000010000000000000000000000000000000000000000000001101 false
+0b0000000000000100000000000000000000000000000000000000000000000000 true 0b0000000000000100000000000000000000000000000000000000000000001101 false
+0b0000000000001000000000000000000000000000000000000000000000000000 true 0b0000000000001000000000000000000000000000000000000000000000001101 false
+0b0000000000010000000000000000000000000000000000000000000000000000 true 0b0000000000010000000000000000000000000000000000000000000000001101 false
+0b0000000000100000000000000000000000000000000000000000000000000000 true 0b0000000000100000000000000000000000000000000000000000000000001101 false
+0b0000000001000000000000000000000000000000000000000000000000000000 true 0b0000000001000000000000000000000000000000000000000000000000001101 false
+0b0000000010000000000000000000000000000000000000000000000000000000 true 0b0000000010000000000000000000000000000000000000000000000000001101 false
+0b0000000100000000000000000000000000000000000000000000000000000000 true 0b0000000100000000000000000000000000000000000000000000000000001101 false
+0b0000001000000000000000000000000000000000000000000000000000000000 true 0b0000001000000000000000000000000000000000000000000000000000001101 false
+0b0000010000000000000000000000000000000000000000000000000000000000 true 0b0000010000000000000000000000000000000000000000000000000000001101 false
+0b0000100000000000000000000000000000000000000000000000000000000000 true 0b0000100000000000000000000000000000000000000000000000000000001101 false
+0b0001000000000000000000000000000000000000000000000000000000000000 true 0b0001000000000000000000000000000000000000000000000000000000001101 false
+0b0010000000000000000000000000000000000000000000000000000000000000 true 0b0010000000000000000000000000000000000000000000000000000000001101 false
+0b0100000000000000000000000000000000000000000000000000000000000000 true 0b0100000000000000000000000000000000000000000000000000000000001101 false
+0b1000000000000000000000000000000000000000000000000000000000000000 true 0b1000000000000000000000000000000000000000000000000000000000001101 false
+
+unsigned long long int
+0b0000000000000000000000000000000000000000000000000000000000000000 false 0b0000000000000000000000000000000000000000000000000000000000001101 false
+0b0000000000000000000000000000000000000000000000000000000000000001 true 0b0000000000000000000000000000000000000000000000000000000000001110 false
+0b0000000000000000000000000000000000000000000000000000000000000010 true 0b0000000000000000000000000000000000000000000000000000000000001111 false
+0b0000000000000000000000000000000000000000000000000000000000000100 true 0b0000000000000000000000000000000000000000000000000000000000010001 false
+0b0000000000000000000000000000000000000000000000000000000000001000 true 0b0000000000000000000000000000000000000000000000000000000000010101 false
+0b0000000000000000000000000000000000000000000000000000000000010000 true 0b0000000000000000000000000000000000000000000000000000000000011101 false
+0b0000000000000000000000000000000000000000000000000000000000100000 true 0b0000000000000000000000000000000000000000000000000000000000101101 false
+0b0000000000000000000000000000000000000000000000000000000001000000 true 0b0000000000000000000000000000000000000000000000000000000001001101 false
+0b0000000000000000000000000000000000000000000000000000000010000000 true 0b0000000000000000000000000000000000000000000000000000000010001101 false
+0b0000000000000000000000000000000000000000000000000000000100000000 true 0b0000000000000000000000000000000000000000000000000000000100001101 false
+0b0000000000000000000000000000000000000000000000000000001000000000 true 0b0000000000000000000000000000000000000000000000000000001000001101 false
+0b0000000000000000000000000000000000000000000000000000010000000000 true 0b0000000000000000000000000000000000000000000000000000010000001101 false
+0b0000000000000000000000000000000000000000000000000000100000000000 true 0b0000000000000000000000000000000000000000000000000000100000001101 false
+0b0000000000000000000000000000000000000000000000000001000000000000 true 0b0000000000000000000000000000000000000000000000000001000000001101 false
+0b0000000000000000000000000000000000000000000000000010000000000000 true 0b0000000000000000000000000000000000000000000000000010000000001101 false
+0b0000000000000000000000000000000000000000000000000100000000000000 true 0b0000000000000000000000000000000000000000000000000100000000001101 false
+0b0000000000000000000000000000000000000000000000001000000000000000 true 0b0000000000000000000000000000000000000000000000001000000000001101 false
+0b0000000000000000000000000000000000000000000000010000000000000000 true 0b0000000000000000000000000000000000000000000000010000000000001101 false
+0b0000000000000000000000000000000000000000000000100000000000000000 true 0b0000000000000000000000000000000000000000000000100000000000001101 false
+0b0000000000000000000000000000000000000000000001000000000000000000 true 0b0000000000000000000000000000000000000000000001000000000000001101 false
+0b0000000000000000000000000000000000000000000010000000000000000000 true 0b0000000000000000000000000000000000000000000010000000000000001101 false
+0b0000000000000000000000000000000000000000000100000000000000000000 true 0b0000000000000000000000000000000000000000000100000000000000001101 false
+0b0000000000000000000000000000000000000000001000000000000000000000 true 0b0000000000000000000000000000000000000000001000000000000000001101 false
+0b0000000000000000000000000000000000000000010000000000000000000000 true 0b0000000000000000000000000000000000000000010000000000000000001101 false
+0b0000000000000000000000000000000000000000100000000000000000000000 true 0b0000000000000000000000000000000000000000100000000000000000001101 false
+0b0000000000000000000000000000000000000001000000000000000000000000 true 0b0000000000000000000000000000000000000001000000000000000000001101 false
+0b0000000000000000000000000000000000000010000000000000000000000000 true 0b0000000000000000000000000000000000000010000000000000000000001101 false
+0b0000000000000000000000000000000000000100000000000000000000000000 true 0b0000000000000000000000000000000000000100000000000000000000001101 false
+0b0000000000000000000000000000000000001000000000000000000000000000 true 0b0000000000000000000000000000000000001000000000000000000000001101 false
+0b0000000000000000000000000000000000010000000000000000000000000000 true 0b0000000000000000000000000000000000010000000000000000000000001101 false
+0b0000000000000000000000000000000000100000000000000000000000000000 true 0b0000000000000000000000000000000000100000000000000000000000001101 false
+0b0000000000000000000000000000000001000000000000000000000000000000 true 0b0000000000000000000000000000000001000000000000000000000000001101 false
+0b0000000000000000000000000000000010000000000000000000000000000000 true 0b0000000000000000000000000000000010000000000000000000000000001101 false
+0b0000000000000000000000000000000100000000000000000000000000000000 true 0b0000000000000000000000000000000100000000000000000000000000001101 false
+0b0000000000000000000000000000001000000000000000000000000000000000 true 0b0000000000000000000000000000001000000000000000000000000000001101 false
+0b0000000000000000000000000000010000000000000000000000000000000000 true 0b0000000000000000000000000000010000000000000000000000000000001101 false
+0b0000000000000000000000000000100000000000000000000000000000000000 true 0b0000000000000000000000000000100000000000000000000000000000001101 false
+0b0000000000000000000000000001000000000000000000000000000000000000 true 0b0000000000000000000000000001000000000000000000000000000000001101 false
+0b0000000000000000000000000010000000000000000000000000000000000000 true 0b0000000000000000000000000010000000000000000000000000000000001101 false
+0b0000000000000000000000000100000000000000000000000000000000000000 true 0b0000000000000000000000000100000000000000000000000000000000001101 false
+0b0000000000000000000000001000000000000000000000000000000000000000 true 0b0000000000000000000000001000000000000000000000000000000000001101 false
+0b0000000000000000000000010000000000000000000000000000000000000000 true 0b0000000000000000000000010000000000000000000000000000000000001101 false
+0b0000000000000000000000100000000000000000000000000000000000000000 true 0b0000000000000000000000100000000000000000000000000000000000001101 false
+0b0000000000000000000001000000000000000000000000000000000000000000 true 0b0000000000000000000001000000000000000000000000000000000000001101 false
+0b0000000000000000000010000000000000000000000000000000000000000000 true 0b0000000000000000000010000000000000000000000000000000000000001101 false
+0b0000000000000000000100000000000000000000000000000000000000000000 true 0b0000000000000000000100000000000000000000000000000000000000001101 false
+0b0000000000000000001000000000000000000000000000000000000000000000 true 0b0000000000000000001000000000000000000000000000000000000000001101 false
+0b0000000000000000010000000000000000000000000000000000000000000000 true 0b0000000000000000010000000000000000000000000000000000000000001101 false
+0b0000000000000000100000000000000000000000000000000000000000000000 true 0b0000000000000000100000000000000000000000000000000000000000001101 false
+0b0000000000000001000000000000000000000000000000000000000000000000 true 0b0000000000000001000000000000000000000000000000000000000000001101 false
+0b0000000000000010000000000000000000000000000000000000000000000000 true 0b0000000000000010000000000000000000000000000000000000000000001101 false
+0b0000000000000100000000000000000000000000000000000000000000000000 true 0b0000000000000100000000000000000000000000000000000000000000001101 false
+0b0000000000001000000000000000000000000000000000000000000000000000 true 0b0000000000001000000000000000000000000000000000000000000000001101 false
+0b0000000000010000000000000000000000000000000000000000000000000000 true 0b0000000000010000000000000000000000000000000000000000000000001101 false
+0b0000000000100000000000000000000000000000000000000000000000000000 true 0b0000000000100000000000000000000000000000000000000000000000001101 false
+0b0000000001000000000000000000000000000000000000000000000000000000 true 0b0000000001000000000000000000000000000000000000000000000000001101 false
+0b0000000010000000000000000000000000000000000000000000000000000000 true 0b0000000010000000000000000000000000000000000000000000000000001101 false
+0b0000000100000000000000000000000000000000000000000000000000000000 true 0b0000000100000000000000000000000000000000000000000000000000001101 false
+0b0000001000000000000000000000000000000000000000000000000000000000 true 0b0000001000000000000000000000000000000000000000000000000000001101 false
+0b0000010000000000000000000000000000000000000000000000000000000000 true 0b0000010000000000000000000000000000000000000000000000000000001101 false
+0b0000100000000000000000000000000000000000000000000000000000000000 true 0b0000100000000000000000000000000000000000000000000000000000001101 false
+0b0001000000000000000000000000000000000000000000000000000000000000 true 0b0001000000000000000000000000000000000000000000000000000000001101 false
+0b0010000000000000000000000000000000000000000000000000000000000000 true 0b0010000000000000000000000000000000000000000000000000000000001101 false
+0b0100000000000000000000000000000000000000000000000000000000000000 true 0b0100000000000000000000000000000000000000000000000000000000001101 false
+0b1000000000000000000000000000000000000000000000000000000000000000 true 0b1000000000000000000000000000000000000000000000000000000000001101 false
+
+
+floor2
+
+signed char
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(-6, 4) = -8
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(-10, 8) = -16
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(-18, 16) = -32
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(-34, 32) = -64
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(-66, 64) = -128
+floor2(-128, -128) = -128, floor2(-126, -128) = -128, floor2(126, -128) = 0
+
+unsigned char
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(253, 1) = 253
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(252, 2) = 252
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(250, 4) = 248
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(246, 8) = 240
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(238, 16) = 224
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(222, 32) = 192
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(190, 64) = 128
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(126, 128) = 0
+
+short int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(-6, 4) = -8
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(-10, 8) = -16
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(-18, 16) = -32
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(-34, 32) = -64
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(-66, 64) = -128
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(-130, 128) = -256
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(-258, 256) = -512
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(-514, 512) = -1024
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(-1026, 1024) = -2048
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(-2050, 2048) = -4096
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(-4098, 4096) = -8192
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(-8194, 8192) = -16384
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(-16386, 16384) = -32768
+floor2(-32768, -32768) = -32768, floor2(-32766, -32768) = -32768, floor2(32766, -32768) = 0
+
+unsigned short int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(65533, 1) = 65533
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(65532, 2) = 65532
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(65530, 4) = 65528
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(65526, 8) = 65520
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(65518, 16) = 65504
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(65502, 32) = 65472
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(65470, 64) = 65408
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(65406, 128) = 65280
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(65278, 256) = 65024
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(65022, 512) = 64512
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(64510, 1024) = 63488
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(63486, 2048) = 61440
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(61438, 4096) = 57344
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(57342, 8192) = 49152
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(49150, 16384) = 32768
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(32766, 32768) = 0
+
+int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(-6, 4) = -8
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(-10, 8) = -16
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(-18, 16) = -32
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(-34, 32) = -64
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(-66, 64) = -128
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(-130, 128) = -256
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(-258, 256) = -512
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(-514, 512) = -1024
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(-1026, 1024) = -2048
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(-2050, 2048) = -4096
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(-4098, 4096) = -8192
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(-8194, 8192) = -16384
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(-16386, 16384) = -32768
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(-32770, 32768) = -65536
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(-65538, 65536) = -131072
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(-131074, 131072) = -262144
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(-262146, 262144) = -524288
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(-524290, 524288) = -1048576
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(-1048578, 1048576) = -2097152
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(-2097154, 2097152) = -4194304
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(-4194306, 4194304) = -8388608
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(-8388610, 8388608) = -16777216
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(-16777218, 16777216) = -33554432
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(-33554434, 33554432) = -67108864
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(-67108866, 67108864) = -134217728
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(-134217730, 134217728) = -268435456
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(-268435458, 268435456) = -536870912
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(-536870914, 536870912) = -1073741824
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(-1073741826, 1073741824) = -2147483648
+floor2(-2147483648, -2147483648) = -2147483648, floor2(-2147483646, -2147483648) = -2147483648, floor2(2147483646, -2147483648) = 0
+
+unsigned int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(4294967293, 1) = 4294967293
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(4294967292, 2) = 4294967292
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(4294967290, 4) = 4294967288
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(4294967286, 8) = 4294967280
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(4294967278, 16) = 4294967264
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(4294967262, 32) = 4294967232
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(4294967230, 64) = 4294967168
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(4294967166, 128) = 4294967040
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(4294967038, 256) = 4294966784
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(4294966782, 512) = 4294966272
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(4294966270, 1024) = 4294965248
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(4294965246, 2048) = 4294963200
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(4294963198, 4096) = 4294959104
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(4294959102, 8192) = 4294950912
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(4294950910, 16384) = 4294934528
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(4294934526, 32768) = 4294901760
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(4294901758, 65536) = 4294836224
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(4294836222, 131072) = 4294705152
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(4294705150, 262144) = 4294443008
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(4294443006, 524288) = 4293918720
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(4293918718, 1048576) = 4292870144
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(4292870142, 2097152) = 4290772992
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(4290772990, 4194304) = 4286578688
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(4286578686, 8388608) = 4278190080
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(4278190078, 16777216) = 4261412864
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(4261412862, 33554432) = 4227858432
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(4227858430, 67108864) = 4160749568
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(4160749566, 134217728) = 4026531840
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(4026531838, 268435456) = 3758096384
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(3758096382, 536870912) = 3221225472
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(3221225470, 1073741824) = 2147483648
+floor2(2147483648, 2147483648) = 2147483648, floor2(2147483650, 2147483648) = 2147483648, floor2(2147483646, 2147483648) = 0
+
+long int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(-6, 4) = -8
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(-10, 8) = -16
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(-18, 16) = -32
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(-34, 32) = -64
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(-66, 64) = -128
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(-130, 128) = -256
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(-258, 256) = -512
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(-514, 512) = -1024
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(-1026, 1024) = -2048
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(-2050, 2048) = -4096
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(-4098, 4096) = -8192
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(-8194, 8192) = -16384
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(-16386, 16384) = -32768
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(-32770, 32768) = -65536
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(-65538, 65536) = -131072
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(-131074, 131072) = -262144
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(-262146, 262144) = -524288
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(-524290, 524288) = -1048576
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(-1048578, 1048576) = -2097152
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(-2097154, 2097152) = -4194304
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(-4194306, 4194304) = -8388608
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(-8388610, 8388608) = -16777216
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(-16777218, 16777216) = -33554432
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(-33554434, 33554432) = -67108864
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(-67108866, 67108864) = -134217728
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(-134217730, 134217728) = -268435456
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(-268435458, 268435456) = -536870912
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(-536870914, 536870912) = -1073741824
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(-1073741826, 1073741824) = -2147483648
+floor2(2147483648, 2147483648) = 2147483648, floor2(2147483650, 2147483648) = 2147483648, floor2(-2147483650, 2147483648) = -4294967296
+floor2(4294967296, 4294967296) = 4294967296, floor2(4294967298, 4294967296) = 4294967296, floor2(-4294967298, 4294967296) = -8589934592
+floor2(8589934592, 8589934592) = 8589934592, floor2(8589934594, 8589934592) = 8589934592, floor2(-8589934594, 8589934592) = -17179869184
+floor2(17179869184, 17179869184) = 17179869184, floor2(17179869186, 17179869184) = 17179869184, floor2(-17179869186, 17179869184) = -34359738368
+floor2(34359738368, 34359738368) = 34359738368, floor2(34359738370, 34359738368) = 34359738368, floor2(-34359738370, 34359738368) = -68719476736
+floor2(68719476736, 68719476736) = 68719476736, floor2(68719476738, 68719476736) = 68719476736, floor2(-68719476738, 68719476736) = -137438953472
+floor2(137438953472, 137438953472) = 137438953472, floor2(137438953474, 137438953472) = 137438953472, floor2(-137438953474, 137438953472) = -274877906944
+floor2(274877906944, 274877906944) = 274877906944, floor2(274877906946, 274877906944) = 274877906944, floor2(-274877906946, 274877906944) = -549755813888
+floor2(549755813888, 549755813888) = 549755813888, floor2(549755813890, 549755813888) = 549755813888, floor2(-549755813890, 549755813888) = -1099511627776
+floor2(1099511627776, 1099511627776) = 1099511627776, floor2(1099511627778, 1099511627776) = 1099511627776, floor2(-1099511627778, 1099511627776) = -2199023255552
+floor2(2199023255552, 2199023255552) = 2199023255552, floor2(2199023255554, 2199023255552) = 2199023255552, floor2(-2199023255554, 2199023255552) = -4398046511104
+floor2(4398046511104, 4398046511104) = 4398046511104, floor2(4398046511106, 4398046511104) = 4398046511104, floor2(-4398046511106, 4398046511104) = -8796093022208
+floor2(8796093022208, 8796093022208) = 8796093022208, floor2(8796093022210, 8796093022208) = 8796093022208, floor2(-8796093022210, 8796093022208) = -17592186044416
+floor2(17592186044416, 17592186044416) = 17592186044416, floor2(17592186044418, 17592186044416) = 17592186044416, floor2(-17592186044418, 17592186044416) = -35184372088832
+floor2(35184372088832, 35184372088832) = 35184372088832, floor2(35184372088834, 35184372088832) = 35184372088832, floor2(-35184372088834, 35184372088832) = -70368744177664
+floor2(70368744177664, 70368744177664) = 70368744177664, floor2(70368744177666, 70368744177664) = 70368744177664, floor2(-70368744177666, 70368744177664) = -140737488355328
+floor2(140737488355328, 140737488355328) = 140737488355328, floor2(140737488355330, 140737488355328) = 140737488355328, floor2(-140737488355330, 140737488355328) = -281474976710656
+floor2(281474976710656, 281474976710656) = 281474976710656, floor2(281474976710658, 281474976710656) = 281474976710656, floor2(-281474976710658, 281474976710656) = -562949953421312
+floor2(562949953421312, 562949953421312) = 562949953421312, floor2(562949953421314, 562949953421312) = 562949953421312, floor2(-562949953421314, 562949953421312) = -1125899906842624
+floor2(1125899906842624, 1125899906842624) = 1125899906842624, floor2(1125899906842626, 1125899906842624) = 1125899906842624, floor2(-1125899906842626, 1125899906842624) = -2251799813685248
+floor2(2251799813685248, 2251799813685248) = 2251799813685248, floor2(2251799813685250, 2251799813685248) = 2251799813685248, floor2(-2251799813685250, 2251799813685248) = -4503599627370496
+floor2(4503599627370496, 4503599627370496) = 4503599627370496, floor2(4503599627370498, 4503599627370496) = 4503599627370496, floor2(-4503599627370498, 4503599627370496) = -9007199254740992
+floor2(9007199254740992, 9007199254740992) = 9007199254740992, floor2(9007199254740994, 9007199254740992) = 9007199254740992, floor2(-9007199254740994, 9007199254740992) = -18014398509481984
+floor2(18014398509481984, 18014398509481984) = 18014398509481984, floor2(18014398509481986, 18014398509481984) = 18014398509481984, floor2(-18014398509481986, 18014398509481984) = -36028797018963968
+floor2(36028797018963968, 36028797018963968) = 36028797018963968, floor2(36028797018963970, 36028797018963968) = 36028797018963968, floor2(-36028797018963970, 36028797018963968) = -72057594037927936
+floor2(72057594037927936, 72057594037927936) = 72057594037927936, floor2(72057594037927938, 72057594037927936) = 72057594037927936, floor2(-72057594037927938, 72057594037927936) = -144115188075855872
+floor2(144115188075855872, 144115188075855872) = 144115188075855872, floor2(144115188075855874, 144115188075855872) = 144115188075855872, floor2(-144115188075855874, 144115188075855872) = -288230376151711744
+floor2(288230376151711744, 288230376151711744) = 288230376151711744, floor2(288230376151711746, 288230376151711744) = 288230376151711744, floor2(-288230376151711746, 288230376151711744) = -576460752303423488
+floor2(576460752303423488, 576460752303423488) = 576460752303423488, floor2(576460752303423490, 576460752303423488) = 576460752303423488, floor2(-576460752303423490, 576460752303423488) = -1152921504606846976
+floor2(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor2(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor2(-1152921504606846978, 1152921504606846976) = -2305843009213693952
+floor2(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor2(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor2(-2305843009213693954, 2305843009213693952) = -4611686018427387904
+floor2(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor2(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor2(-4611686018427387906, 4611686018427387904) = -9223372036854775808
+floor2(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor2(-9223372036854775806, -9223372036854775808) = -9223372036854775808, floor2(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(18446744073709551613, 1) = 18446744073709551613
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(18446744073709551612, 2) = 18446744073709551612
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(18446744073709551610, 4) = 18446744073709551608
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(18446744073709551606, 8) = 18446744073709551600
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(18446744073709551598, 16) = 18446744073709551584
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(18446744073709551582, 32) = 18446744073709551552
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(18446744073709551550, 64) = 18446744073709551488
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(18446744073709551486, 128) = 18446744073709551360
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(18446744073709551358, 256) = 18446744073709551104
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(18446744073709551102, 512) = 18446744073709550592
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(18446744073709550590, 1024) = 18446744073709549568
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(18446744073709549566, 2048) = 18446744073709547520
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(18446744073709547518, 4096) = 18446744073709543424
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(18446744073709543422, 8192) = 18446744073709535232
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(18446744073709535230, 16384) = 18446744073709518848
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(18446744073709518846, 32768) = 18446744073709486080
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(18446744073709486078, 65536) = 18446744073709420544
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(18446744073709420542, 131072) = 18446744073709289472
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(18446744073709289470, 262144) = 18446744073709027328
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(18446744073709027326, 524288) = 18446744073708503040
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(18446744073708503038, 1048576) = 18446744073707454464
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(18446744073707454462, 2097152) = 18446744073705357312
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(18446744073705357310, 4194304) = 18446744073701163008
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(18446744073701163006, 8388608) = 18446744073692774400
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(18446744073692774398, 16777216) = 18446744073675997184
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(18446744073675997182, 33554432) = 18446744073642442752
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(18446744073642442750, 67108864) = 18446744073575333888
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(18446744073575333886, 134217728) = 18446744073441116160
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(18446744073441116158, 268435456) = 18446744073172680704
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(18446744073172680702, 536870912) = 18446744072635809792
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(18446744072635809790, 1073741824) = 18446744071562067968
+floor2(2147483648, 2147483648) = 2147483648, floor2(2147483650, 2147483648) = 2147483648, floor2(18446744071562067966, 2147483648) = 18446744069414584320
+floor2(4294967296, 4294967296) = 4294967296, floor2(4294967298, 4294967296) = 4294967296, floor2(18446744069414584318, 4294967296) = 18446744065119617024
+floor2(8589934592, 8589934592) = 8589934592, floor2(8589934594, 8589934592) = 8589934592, floor2(18446744065119617022, 8589934592) = 18446744056529682432
+floor2(17179869184, 17179869184) = 17179869184, floor2(17179869186, 17179869184) = 17179869184, floor2(18446744056529682430, 17179869184) = 18446744039349813248
+floor2(34359738368, 34359738368) = 34359738368, floor2(34359738370, 34359738368) = 34359738368, floor2(18446744039349813246, 34359738368) = 18446744004990074880
+floor2(68719476736, 68719476736) = 68719476736, floor2(68719476738, 68719476736) = 68719476736, floor2(18446744004990074878, 68719476736) = 18446743936270598144
+floor2(137438953472, 137438953472) = 137438953472, floor2(137438953474, 137438953472) = 137438953472, floor2(18446743936270598142, 137438953472) = 18446743798831644672
+floor2(274877906944, 274877906944) = 274877906944, floor2(274877906946, 274877906944) = 274877906944, floor2(18446743798831644670, 274877906944) = 18446743523953737728
+floor2(549755813888, 549755813888) = 549755813888, floor2(549755813890, 549755813888) = 549755813888, floor2(18446743523953737726, 549755813888) = 18446742974197923840
+floor2(1099511627776, 1099511627776) = 1099511627776, floor2(1099511627778, 1099511627776) = 1099511627776, floor2(18446742974197923838, 1099511627776) = 18446741874686296064
+floor2(2199023255552, 2199023255552) = 2199023255552, floor2(2199023255554, 2199023255552) = 2199023255552, floor2(18446741874686296062, 2199023255552) = 18446739675663040512
+floor2(4398046511104, 4398046511104) = 4398046511104, floor2(4398046511106, 4398046511104) = 4398046511104, floor2(18446739675663040510, 4398046511104) = 18446735277616529408
+floor2(8796093022208, 8796093022208) = 8796093022208, floor2(8796093022210, 8796093022208) = 8796093022208, floor2(18446735277616529406, 8796093022208) = 18446726481523507200
+floor2(17592186044416, 17592186044416) = 17592186044416, floor2(17592186044418, 17592186044416) = 17592186044416, floor2(18446726481523507198, 17592186044416) = 18446708889337462784
+floor2(35184372088832, 35184372088832) = 35184372088832, floor2(35184372088834, 35184372088832) = 35184372088832, floor2(18446708889337462782, 35184372088832) = 18446673704965373952
+floor2(70368744177664, 70368744177664) = 70368744177664, floor2(70368744177666, 70368744177664) = 70368744177664, floor2(18446673704965373950, 70368744177664) = 18446603336221196288
+floor2(140737488355328, 140737488355328) = 140737488355328, floor2(140737488355330, 140737488355328) = 140737488355328, floor2(18446603336221196286, 140737488355328) = 18446462598732840960
+floor2(281474976710656, 281474976710656) = 281474976710656, floor2(281474976710658, 281474976710656) = 281474976710656, floor2(18446462598732840958, 281474976710656) = 18446181123756130304
+floor2(562949953421312, 562949953421312) = 562949953421312, floor2(562949953421314, 562949953421312) = 562949953421312, floor2(18446181123756130302, 562949953421312) = 18445618173802708992
+floor2(1125899906842624, 1125899906842624) = 1125899906842624, floor2(1125899906842626, 1125899906842624) = 1125899906842624, floor2(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor2(2251799813685248, 2251799813685248) = 2251799813685248, floor2(2251799813685250, 2251799813685248) = 2251799813685248, floor2(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor2(4503599627370496, 4503599627370496) = 4503599627370496, floor2(4503599627370498, 4503599627370496) = 4503599627370496, floor2(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor2(9007199254740992, 9007199254740992) = 9007199254740992, floor2(9007199254740994, 9007199254740992) = 9007199254740992, floor2(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor2(18014398509481984, 18014398509481984) = 18014398509481984, floor2(18014398509481986, 18014398509481984) = 18014398509481984, floor2(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor2(36028797018963968, 36028797018963968) = 36028797018963968, floor2(36028797018963970, 36028797018963968) = 36028797018963968, floor2(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor2(72057594037927936, 72057594037927936) = 72057594037927936, floor2(72057594037927938, 72057594037927936) = 72057594037927936, floor2(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor2(144115188075855872, 144115188075855872) = 144115188075855872, floor2(144115188075855874, 144115188075855872) = 144115188075855872, floor2(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor2(288230376151711744, 288230376151711744) = 288230376151711744, floor2(288230376151711746, 288230376151711744) = 288230376151711744, floor2(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor2(576460752303423488, 576460752303423488) = 576460752303423488, floor2(576460752303423490, 576460752303423488) = 576460752303423488, floor2(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor2(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor2(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor2(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor2(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor2(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor2(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor2(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor2(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor2(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor2(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor2(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor2(9223372036854775806, 9223372036854775808) = 0
+
+long long int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(-6, 4) = -8
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(-10, 8) = -16
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(-18, 16) = -32
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(-34, 32) = -64
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(-66, 64) = -128
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(-130, 128) = -256
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(-258, 256) = -512
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(-514, 512) = -1024
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(-1026, 1024) = -2048
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(-2050, 2048) = -4096
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(-4098, 4096) = -8192
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(-8194, 8192) = -16384
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(-16386, 16384) = -32768
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(-32770, 32768) = -65536
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(-65538, 65536) = -131072
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(-131074, 131072) = -262144
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(-262146, 262144) = -524288
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(-524290, 524288) = -1048576
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(-1048578, 1048576) = -2097152
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(-2097154, 2097152) = -4194304
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(-4194306, 4194304) = -8388608
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(-8388610, 8388608) = -16777216
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(-16777218, 16777216) = -33554432
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(-33554434, 33554432) = -67108864
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(-67108866, 67108864) = -134217728
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(-134217730, 134217728) = -268435456
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(-268435458, 268435456) = -536870912
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(-536870914, 536870912) = -1073741824
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(-1073741826, 1073741824) = -2147483648
+floor2(2147483648, 2147483648) = 2147483648, floor2(2147483650, 2147483648) = 2147483648, floor2(-2147483650, 2147483648) = -4294967296
+floor2(4294967296, 4294967296) = 4294967296, floor2(4294967298, 4294967296) = 4294967296, floor2(-4294967298, 4294967296) = -8589934592
+floor2(8589934592, 8589934592) = 8589934592, floor2(8589934594, 8589934592) = 8589934592, floor2(-8589934594, 8589934592) = -17179869184
+floor2(17179869184, 17179869184) = 17179869184, floor2(17179869186, 17179869184) = 17179869184, floor2(-17179869186, 17179869184) = -34359738368
+floor2(34359738368, 34359738368) = 34359738368, floor2(34359738370, 34359738368) = 34359738368, floor2(-34359738370, 34359738368) = -68719476736
+floor2(68719476736, 68719476736) = 68719476736, floor2(68719476738, 68719476736) = 68719476736, floor2(-68719476738, 68719476736) = -137438953472
+floor2(137438953472, 137438953472) = 137438953472, floor2(137438953474, 137438953472) = 137438953472, floor2(-137438953474, 137438953472) = -274877906944
+floor2(274877906944, 274877906944) = 274877906944, floor2(274877906946, 274877906944) = 274877906944, floor2(-274877906946, 274877906944) = -549755813888
+floor2(549755813888, 549755813888) = 549755813888, floor2(549755813890, 549755813888) = 549755813888, floor2(-549755813890, 549755813888) = -1099511627776
+floor2(1099511627776, 1099511627776) = 1099511627776, floor2(1099511627778, 1099511627776) = 1099511627776, floor2(-1099511627778, 1099511627776) = -2199023255552
+floor2(2199023255552, 2199023255552) = 2199023255552, floor2(2199023255554, 2199023255552) = 2199023255552, floor2(-2199023255554, 2199023255552) = -4398046511104
+floor2(4398046511104, 4398046511104) = 4398046511104, floor2(4398046511106, 4398046511104) = 4398046511104, floor2(-4398046511106, 4398046511104) = -8796093022208
+floor2(8796093022208, 8796093022208) = 8796093022208, floor2(8796093022210, 8796093022208) = 8796093022208, floor2(-8796093022210, 8796093022208) = -17592186044416
+floor2(17592186044416, 17592186044416) = 17592186044416, floor2(17592186044418, 17592186044416) = 17592186044416, floor2(-17592186044418, 17592186044416) = -35184372088832
+floor2(35184372088832, 35184372088832) = 35184372088832, floor2(35184372088834, 35184372088832) = 35184372088832, floor2(-35184372088834, 35184372088832) = -70368744177664
+floor2(70368744177664, 70368744177664) = 70368744177664, floor2(70368744177666, 70368744177664) = 70368744177664, floor2(-70368744177666, 70368744177664) = -140737488355328
+floor2(140737488355328, 140737488355328) = 140737488355328, floor2(140737488355330, 140737488355328) = 140737488355328, floor2(-140737488355330, 140737488355328) = -281474976710656
+floor2(281474976710656, 281474976710656) = 281474976710656, floor2(281474976710658, 281474976710656) = 281474976710656, floor2(-281474976710658, 281474976710656) = -562949953421312
+floor2(562949953421312, 562949953421312) = 562949953421312, floor2(562949953421314, 562949953421312) = 562949953421312, floor2(-562949953421314, 562949953421312) = -1125899906842624
+floor2(1125899906842624, 1125899906842624) = 1125899906842624, floor2(1125899906842626, 1125899906842624) = 1125899906842624, floor2(-1125899906842626, 1125899906842624) = -2251799813685248
+floor2(2251799813685248, 2251799813685248) = 2251799813685248, floor2(2251799813685250, 2251799813685248) = 2251799813685248, floor2(-2251799813685250, 2251799813685248) = -4503599627370496
+floor2(4503599627370496, 4503599627370496) = 4503599627370496, floor2(4503599627370498, 4503599627370496) = 4503599627370496, floor2(-4503599627370498, 4503599627370496) = -9007199254740992
+floor2(9007199254740992, 9007199254740992) = 9007199254740992, floor2(9007199254740994, 9007199254740992) = 9007199254740992, floor2(-9007199254740994, 9007199254740992) = -18014398509481984
+floor2(18014398509481984, 18014398509481984) = 18014398509481984, floor2(18014398509481986, 18014398509481984) = 18014398509481984, floor2(-18014398509481986, 18014398509481984) = -36028797018963968
+floor2(36028797018963968, 36028797018963968) = 36028797018963968, floor2(36028797018963970, 36028797018963968) = 36028797018963968, floor2(-36028797018963970, 36028797018963968) = -72057594037927936
+floor2(72057594037927936, 72057594037927936) = 72057594037927936, floor2(72057594037927938, 72057594037927936) = 72057594037927936, floor2(-72057594037927938, 72057594037927936) = -144115188075855872
+floor2(144115188075855872, 144115188075855872) = 144115188075855872, floor2(144115188075855874, 144115188075855872) = 144115188075855872, floor2(-144115188075855874, 144115188075855872) = -288230376151711744
+floor2(288230376151711744, 288230376151711744) = 288230376151711744, floor2(288230376151711746, 288230376151711744) = 288230376151711744, floor2(-288230376151711746, 288230376151711744) = -576460752303423488
+floor2(576460752303423488, 576460752303423488) = 576460752303423488, floor2(576460752303423490, 576460752303423488) = 576460752303423488, floor2(-576460752303423490, 576460752303423488) = -1152921504606846976
+floor2(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor2(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor2(-1152921504606846978, 1152921504606846976) = -2305843009213693952
+floor2(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor2(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor2(-2305843009213693954, 2305843009213693952) = -4611686018427387904
+floor2(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor2(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor2(-4611686018427387906, 4611686018427387904) = -9223372036854775808
+floor2(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor2(-9223372036854775806, -9223372036854775808) = -9223372036854775808, floor2(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(18446744073709551613, 1) = 18446744073709551613
+floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(18446744073709551612, 2) = 18446744073709551612
+floor2(4, 4) = 4, floor2(6, 4) = 4, floor2(18446744073709551610, 4) = 18446744073709551608
+floor2(8, 8) = 8, floor2(10, 8) = 8, floor2(18446744073709551606, 8) = 18446744073709551600
+floor2(16, 16) = 16, floor2(18, 16) = 16, floor2(18446744073709551598, 16) = 18446744073709551584
+floor2(32, 32) = 32, floor2(34, 32) = 32, floor2(18446744073709551582, 32) = 18446744073709551552
+floor2(64, 64) = 64, floor2(66, 64) = 64, floor2(18446744073709551550, 64) = 18446744073709551488
+floor2(128, 128) = 128, floor2(130, 128) = 128, floor2(18446744073709551486, 128) = 18446744073709551360
+floor2(256, 256) = 256, floor2(258, 256) = 256, floor2(18446744073709551358, 256) = 18446744073709551104
+floor2(512, 512) = 512, floor2(514, 512) = 512, floor2(18446744073709551102, 512) = 18446744073709550592
+floor2(1024, 1024) = 1024, floor2(1026, 1024) = 1024, floor2(18446744073709550590, 1024) = 18446744073709549568
+floor2(2048, 2048) = 2048, floor2(2050, 2048) = 2048, floor2(18446744073709549566, 2048) = 18446744073709547520
+floor2(4096, 4096) = 4096, floor2(4098, 4096) = 4096, floor2(18446744073709547518, 4096) = 18446744073709543424
+floor2(8192, 8192) = 8192, floor2(8194, 8192) = 8192, floor2(18446744073709543422, 8192) = 18446744073709535232
+floor2(16384, 16384) = 16384, floor2(16386, 16384) = 16384, floor2(18446744073709535230, 16384) = 18446744073709518848
+floor2(32768, 32768) = 32768, floor2(32770, 32768) = 32768, floor2(18446744073709518846, 32768) = 18446744073709486080
+floor2(65536, 65536) = 65536, floor2(65538, 65536) = 65536, floor2(18446744073709486078, 65536) = 18446744073709420544
+floor2(131072, 131072) = 131072, floor2(131074, 131072) = 131072, floor2(18446744073709420542, 131072) = 18446744073709289472
+floor2(262144, 262144) = 262144, floor2(262146, 262144) = 262144, floor2(18446744073709289470, 262144) = 18446744073709027328
+floor2(524288, 524288) = 524288, floor2(524290, 524288) = 524288, floor2(18446744073709027326, 524288) = 18446744073708503040
+floor2(1048576, 1048576) = 1048576, floor2(1048578, 1048576) = 1048576, floor2(18446744073708503038, 1048576) = 18446744073707454464
+floor2(2097152, 2097152) = 2097152, floor2(2097154, 2097152) = 2097152, floor2(18446744073707454462, 2097152) = 18446744073705357312
+floor2(4194304, 4194304) = 4194304, floor2(4194306, 4194304) = 4194304, floor2(18446744073705357310, 4194304) = 18446744073701163008
+floor2(8388608, 8388608) = 8388608, floor2(8388610, 8388608) = 8388608, floor2(18446744073701163006, 8388608) = 18446744073692774400
+floor2(16777216, 16777216) = 16777216, floor2(16777218, 16777216) = 16777216, floor2(18446744073692774398, 16777216) = 18446744073675997184
+floor2(33554432, 33554432) = 33554432, floor2(33554434, 33554432) = 33554432, floor2(18446744073675997182, 33554432) = 18446744073642442752
+floor2(67108864, 67108864) = 67108864, floor2(67108866, 67108864) = 67108864, floor2(18446744073642442750, 67108864) = 18446744073575333888
+floor2(134217728, 134217728) = 134217728, floor2(134217730, 134217728) = 134217728, floor2(18446744073575333886, 134217728) = 18446744073441116160
+floor2(268435456, 268435456) = 268435456, floor2(268435458, 268435456) = 268435456, floor2(18446744073441116158, 268435456) = 18446744073172680704
+floor2(536870912, 536870912) = 536870912, floor2(536870914, 536870912) = 536870912, floor2(18446744073172680702, 536870912) = 18446744072635809792
+floor2(1073741824, 1073741824) = 1073741824, floor2(1073741826, 1073741824) = 1073741824, floor2(18446744072635809790, 1073741824) = 18446744071562067968
+floor2(2147483648, 2147483648) = 2147483648, floor2(2147483650, 2147483648) = 2147483648, floor2(18446744071562067966, 2147483648) = 18446744069414584320
+floor2(4294967296, 4294967296) = 4294967296, floor2(4294967298, 4294967296) = 4294967296, floor2(18446744069414584318, 4294967296) = 18446744065119617024
+floor2(8589934592, 8589934592) = 8589934592, floor2(8589934594, 8589934592) = 8589934592, floor2(18446744065119617022, 8589934592) = 18446744056529682432
+floor2(17179869184, 17179869184) = 17179869184, floor2(17179869186, 17179869184) = 17179869184, floor2(18446744056529682430, 17179869184) = 18446744039349813248
+floor2(34359738368, 34359738368) = 34359738368, floor2(34359738370, 34359738368) = 34359738368, floor2(18446744039349813246, 34359738368) = 18446744004990074880
+floor2(68719476736, 68719476736) = 68719476736, floor2(68719476738, 68719476736) = 68719476736, floor2(18446744004990074878, 68719476736) = 18446743936270598144
+floor2(137438953472, 137438953472) = 137438953472, floor2(137438953474, 137438953472) = 137438953472, floor2(18446743936270598142, 137438953472) = 18446743798831644672
+floor2(274877906944, 274877906944) = 274877906944, floor2(274877906946, 274877906944) = 274877906944, floor2(18446743798831644670, 274877906944) = 18446743523953737728
+floor2(549755813888, 549755813888) = 549755813888, floor2(549755813890, 549755813888) = 549755813888, floor2(18446743523953737726, 549755813888) = 18446742974197923840
+floor2(1099511627776, 1099511627776) = 1099511627776, floor2(1099511627778, 1099511627776) = 1099511627776, floor2(18446742974197923838, 1099511627776) = 18446741874686296064
+floor2(2199023255552, 2199023255552) = 2199023255552, floor2(2199023255554, 2199023255552) = 2199023255552, floor2(18446741874686296062, 2199023255552) = 18446739675663040512
+floor2(4398046511104, 4398046511104) = 4398046511104, floor2(4398046511106, 4398046511104) = 4398046511104, floor2(18446739675663040510, 4398046511104) = 18446735277616529408
+floor2(8796093022208, 8796093022208) = 8796093022208, floor2(8796093022210, 8796093022208) = 8796093022208, floor2(18446735277616529406, 8796093022208) = 18446726481523507200
+floor2(17592186044416, 17592186044416) = 17592186044416, floor2(17592186044418, 17592186044416) = 17592186044416, floor2(18446726481523507198, 17592186044416) = 18446708889337462784
+floor2(35184372088832, 35184372088832) = 35184372088832, floor2(35184372088834, 35184372088832) = 35184372088832, floor2(18446708889337462782, 35184372088832) = 18446673704965373952
+floor2(70368744177664, 70368744177664) = 70368744177664, floor2(70368744177666, 70368744177664) = 70368744177664, floor2(18446673704965373950, 70368744177664) = 18446603336221196288
+floor2(140737488355328, 140737488355328) = 140737488355328, floor2(140737488355330, 140737488355328) = 140737488355328, floor2(18446603336221196286, 140737488355328) = 18446462598732840960
+floor2(281474976710656, 281474976710656) = 281474976710656, floor2(281474976710658, 281474976710656) = 281474976710656, floor2(18446462598732840958, 281474976710656) = 18446181123756130304
+floor2(562949953421312, 562949953421312) = 562949953421312, floor2(562949953421314, 562949953421312) = 562949953421312, floor2(18446181123756130302, 562949953421312) = 18445618173802708992
+floor2(1125899906842624, 1125899906842624) = 1125899906842624, floor2(1125899906842626, 1125899906842624) = 1125899906842624, floor2(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor2(2251799813685248, 2251799813685248) = 2251799813685248, floor2(2251799813685250, 2251799813685248) = 2251799813685248, floor2(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor2(4503599627370496, 4503599627370496) = 4503599627370496, floor2(4503599627370498, 4503599627370496) = 4503599627370496, floor2(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor2(9007199254740992, 9007199254740992) = 9007199254740992, floor2(9007199254740994, 9007199254740992) = 9007199254740992, floor2(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor2(18014398509481984, 18014398509481984) = 18014398509481984, floor2(18014398509481986, 18014398509481984) = 18014398509481984, floor2(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor2(36028797018963968, 36028797018963968) = 36028797018963968, floor2(36028797018963970, 36028797018963968) = 36028797018963968, floor2(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor2(72057594037927936, 72057594037927936) = 72057594037927936, floor2(72057594037927938, 72057594037927936) = 72057594037927936, floor2(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor2(144115188075855872, 144115188075855872) = 144115188075855872, floor2(144115188075855874, 144115188075855872) = 144115188075855872, floor2(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor2(288230376151711744, 288230376151711744) = 288230376151711744, floor2(288230376151711746, 288230376151711744) = 288230376151711744, floor2(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor2(576460752303423488, 576460752303423488) = 576460752303423488, floor2(576460752303423490, 576460752303423488) = 576460752303423488, floor2(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor2(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor2(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor2(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor2(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor2(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor2(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor2(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor2(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor2(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor2(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor2(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor2(9223372036854775806, 9223372036854775808) = 0
+
+
+ceiling2
+
+signed char
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(-6, 4) = -4
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(-10, 8) = -8
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(-18, 16) = -16
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(-34, 32) = -32
+ceiling2(64, 64) = 64, ceiling2(66, 64) = -128, ceiling2(-66, 64) = -64
+ceiling2(-128, -128) = -128, ceiling2(-126, -128) = 0, ceiling2(126, -128) = -128
+
+unsigned char
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(253, 1) = 253
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(252, 2) = 252
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(250, 4) = 252
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(246, 8) = 248
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(238, 16) = 240
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(222, 32) = 224
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(190, 64) = 192
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 0, ceiling2(126, 128) = 128
+
+short int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(-6, 4) = -4
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(-10, 8) = -8
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(-18, 16) = -16
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(-34, 32) = -32
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(-66, 64) = -64
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(-130, 128) = -128
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(-258, 256) = -256
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(-514, 512) = -512
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(-1026, 1024) = -1024
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(-2050, 2048) = -2048
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(-4098, 4096) = -4096
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(-8194, 8192) = -8192
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = -32768, ceiling2(-16386, 16384) = -16384
+ceiling2(-32768, -32768) = -32768, ceiling2(-32766, -32768) = 0, ceiling2(32766, -32768) = -32768
+
+unsigned short int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(65533, 1) = 65533
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(65532, 2) = 65532
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(65530, 4) = 65532
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(65526, 8) = 65528
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(65518, 16) = 65520
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(65502, 32) = 65504
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(65470, 64) = 65472
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(65406, 128) = 65408
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(65278, 256) = 65280
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(65022, 512) = 65024
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(64510, 1024) = 64512
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(63486, 2048) = 63488
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(61438, 4096) = 61440
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(57342, 8192) = 57344
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(49150, 16384) = 49152
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 0, ceiling2(32766, 32768) = 32768
+
+int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(-6, 4) = -4
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(-10, 8) = -8
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(-18, 16) = -16
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(-34, 32) = -32
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(-66, 64) = -64
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(-130, 128) = -128
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(-258, 256) = -256
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(-514, 512) = -512
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(-1026, 1024) = -1024
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(-2050, 2048) = -2048
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(-4098, 4096) = -4096
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(-8194, 8192) = -8192
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(-16386, 16384) = -16384
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(-32770, 32768) = -32768
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(-65538, 65536) = -65536
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(-131074, 131072) = -131072
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(-262146, 262144) = -262144
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(-524290, 524288) = -524288
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(-1048578, 1048576) = -1048576
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(-2097154, 2097152) = -2097152
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(-4194306, 4194304) = -4194304
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(-8388610, 8388608) = -8388608
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(-16777218, 16777216) = -16777216
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(-33554434, 33554432) = -33554432
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(-67108866, 67108864) = -67108864
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(-134217730, 134217728) = -134217728
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(-268435458, 268435456) = -268435456
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(-536870914, 536870912) = -536870912
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = -2147483648, ceiling2(-1073741826, 1073741824) = -1073741824
+ceiling2(-2147483648, -2147483648) = -2147483648, ceiling2(-2147483646, -2147483648) = 0, ceiling2(2147483646, -2147483648) = -2147483648
+
+unsigned int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(4294967293, 1) = 4294967293
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(4294967292, 2) = 4294967292
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(4294967290, 4) = 4294967292
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(4294967286, 8) = 4294967288
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(4294967278, 16) = 4294967280
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(4294967262, 32) = 4294967264
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(4294967230, 64) = 4294967232
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(4294967166, 128) = 4294967168
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(4294967038, 256) = 4294967040
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(4294966782, 512) = 4294966784
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(4294966270, 1024) = 4294966272
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(4294965246, 2048) = 4294965248
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(4294963198, 4096) = 4294963200
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(4294959102, 8192) = 4294959104
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(4294950910, 16384) = 4294950912
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(4294934526, 32768) = 4294934528
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(4294901758, 65536) = 4294901760
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(4294836222, 131072) = 4294836224
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(4294705150, 262144) = 4294705152
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(4294443006, 524288) = 4294443008
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(4293918718, 1048576) = 4293918720
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(4292870142, 2097152) = 4292870144
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(4290772990, 4194304) = 4290772992
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(4286578686, 8388608) = 4286578688
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(4278190078, 16777216) = 4278190080
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(4261412862, 33554432) = 4261412864
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(4227858430, 67108864) = 4227858432
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(4160749566, 134217728) = 4160749568
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(4026531838, 268435456) = 4026531840
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(3758096382, 536870912) = 3758096384
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = 2147483648, ceiling2(3221225470, 1073741824) = 3221225472
+ceiling2(2147483648, 2147483648) = 2147483648, ceiling2(2147483650, 2147483648) = 0, ceiling2(2147483646, 2147483648) = 2147483648
+
+long int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(-6, 4) = -4
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(-10, 8) = -8
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(-18, 16) = -16
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(-34, 32) = -32
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(-66, 64) = -64
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(-130, 128) = -128
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(-258, 256) = -256
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(-514, 512) = -512
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(-1026, 1024) = -1024
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(-2050, 2048) = -2048
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(-4098, 4096) = -4096
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(-8194, 8192) = -8192
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(-16386, 16384) = -16384
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(-32770, 32768) = -32768
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(-65538, 65536) = -65536
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(-131074, 131072) = -131072
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(-262146, 262144) = -262144
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(-524290, 524288) = -524288
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(-1048578, 1048576) = -1048576
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(-2097154, 2097152) = -2097152
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(-4194306, 4194304) = -4194304
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(-8388610, 8388608) = -8388608
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(-16777218, 16777216) = -16777216
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(-33554434, 33554432) = -33554432
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(-67108866, 67108864) = -67108864
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(-134217730, 134217728) = -134217728
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(-268435458, 268435456) = -268435456
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(-536870914, 536870912) = -536870912
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = 2147483648, ceiling2(-1073741826, 1073741824) = -1073741824
+ceiling2(2147483648, 2147483648) = 2147483648, ceiling2(2147483650, 2147483648) = 4294967296, ceiling2(-2147483650, 2147483648) = -2147483648
+ceiling2(4294967296, 4294967296) = 4294967296, ceiling2(4294967298, 4294967296) = 8589934592, ceiling2(-4294967298, 4294967296) = -4294967296
+ceiling2(8589934592, 8589934592) = 8589934592, ceiling2(8589934594, 8589934592) = 17179869184, ceiling2(-8589934594, 8589934592) = -8589934592
+ceiling2(17179869184, 17179869184) = 17179869184, ceiling2(17179869186, 17179869184) = 34359738368, ceiling2(-17179869186, 17179869184) = -17179869184
+ceiling2(34359738368, 34359738368) = 34359738368, ceiling2(34359738370, 34359738368) = 68719476736, ceiling2(-34359738370, 34359738368) = -34359738368
+ceiling2(68719476736, 68719476736) = 68719476736, ceiling2(68719476738, 68719476736) = 137438953472, ceiling2(-68719476738, 68719476736) = -68719476736
+ceiling2(137438953472, 137438953472) = 137438953472, ceiling2(137438953474, 137438953472) = 274877906944, ceiling2(-137438953474, 137438953472) = -137438953472
+ceiling2(274877906944, 274877906944) = 274877906944, ceiling2(274877906946, 274877906944) = 549755813888, ceiling2(-274877906946, 274877906944) = -274877906944
+ceiling2(549755813888, 549755813888) = 549755813888, ceiling2(549755813890, 549755813888) = 1099511627776, ceiling2(-549755813890, 549755813888) = -549755813888
+ceiling2(1099511627776, 1099511627776) = 1099511627776, ceiling2(1099511627778, 1099511627776) = 2199023255552, ceiling2(-1099511627778, 1099511627776) = -1099511627776
+ceiling2(2199023255552, 2199023255552) = 2199023255552, ceiling2(2199023255554, 2199023255552) = 4398046511104, ceiling2(-2199023255554, 2199023255552) = -2199023255552
+ceiling2(4398046511104, 4398046511104) = 4398046511104, ceiling2(4398046511106, 4398046511104) = 8796093022208, ceiling2(-4398046511106, 4398046511104) = -4398046511104
+ceiling2(8796093022208, 8796093022208) = 8796093022208, ceiling2(8796093022210, 8796093022208) = 17592186044416, ceiling2(-8796093022210, 8796093022208) = -8796093022208
+ceiling2(17592186044416, 17592186044416) = 17592186044416, ceiling2(17592186044418, 17592186044416) = 35184372088832, ceiling2(-17592186044418, 17592186044416) = -17592186044416
+ceiling2(35184372088832, 35184372088832) = 35184372088832, ceiling2(35184372088834, 35184372088832) = 70368744177664, ceiling2(-35184372088834, 35184372088832) = -35184372088832
+ceiling2(70368744177664, 70368744177664) = 70368744177664, ceiling2(70368744177666, 70368744177664) = 140737488355328, ceiling2(-70368744177666, 70368744177664) = -70368744177664
+ceiling2(140737488355328, 140737488355328) = 140737488355328, ceiling2(140737488355330, 140737488355328) = 281474976710656, ceiling2(-140737488355330, 140737488355328) = -140737488355328
+ceiling2(281474976710656, 281474976710656) = 281474976710656, ceiling2(281474976710658, 281474976710656) = 562949953421312, ceiling2(-281474976710658, 281474976710656) = -281474976710656
+ceiling2(562949953421312, 562949953421312) = 562949953421312, ceiling2(562949953421314, 562949953421312) = 1125899906842624, ceiling2(-562949953421314, 562949953421312) = -562949953421312
+ceiling2(1125899906842624, 1125899906842624) = 1125899906842624, ceiling2(1125899906842626, 1125899906842624) = 2251799813685248, ceiling2(-1125899906842626, 1125899906842624) = -1125899906842624
+ceiling2(2251799813685248, 2251799813685248) = 2251799813685248, ceiling2(2251799813685250, 2251799813685248) = 4503599627370496, ceiling2(-2251799813685250, 2251799813685248) = -2251799813685248
+ceiling2(4503599627370496, 4503599627370496) = 4503599627370496, ceiling2(4503599627370498, 4503599627370496) = 9007199254740992, ceiling2(-4503599627370498, 4503599627370496) = -4503599627370496
+ceiling2(9007199254740992, 9007199254740992) = 9007199254740992, ceiling2(9007199254740994, 9007199254740992) = 18014398509481984, ceiling2(-9007199254740994, 9007199254740992) = -9007199254740992
+ceiling2(18014398509481984, 18014398509481984) = 18014398509481984, ceiling2(18014398509481986, 18014398509481984) = 36028797018963968, ceiling2(-18014398509481986, 18014398509481984) = -18014398509481984
+ceiling2(36028797018963968, 36028797018963968) = 36028797018963968, ceiling2(36028797018963970, 36028797018963968) = 72057594037927936, ceiling2(-36028797018963970, 36028797018963968) = -36028797018963968
+ceiling2(72057594037927936, 72057594037927936) = 72057594037927936, ceiling2(72057594037927938, 72057594037927936) = 144115188075855872, ceiling2(-72057594037927938, 72057594037927936) = -72057594037927936
+ceiling2(144115188075855872, 144115188075855872) = 144115188075855872, ceiling2(144115188075855874, 144115188075855872) = 288230376151711744, ceiling2(-144115188075855874, 144115188075855872) = -144115188075855872
+ceiling2(288230376151711744, 288230376151711744) = 288230376151711744, ceiling2(288230376151711746, 288230376151711744) = 576460752303423488, ceiling2(-288230376151711746, 288230376151711744) = -288230376151711744
+ceiling2(576460752303423488, 576460752303423488) = 576460752303423488, ceiling2(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling2(-576460752303423490, 576460752303423488) = -576460752303423488
+ceiling2(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling2(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling2(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+ceiling2(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling2(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling2(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+ceiling2(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling2(4611686018427387906, 4611686018427387904) = -9223372036854775808, ceiling2(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+ceiling2(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling2(-9223372036854775806, -9223372036854775808) = 0, ceiling2(9223372036854775806, -9223372036854775808) = -9223372036854775808
+
+unsigned long int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(18446744073709551613, 1) = 18446744073709551613
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(18446744073709551612, 2) = 18446744073709551612
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(18446744073709551610, 4) = 18446744073709551612
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(18446744073709551606, 8) = 18446744073709551608
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(18446744073709551598, 16) = 18446744073709551600
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(18446744073709551582, 32) = 18446744073709551584
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(18446744073709551550, 64) = 18446744073709551552
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(18446744073709551486, 128) = 18446744073709551488
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(18446744073709551358, 256) = 18446744073709551360
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(18446744073709551102, 512) = 18446744073709551104
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(18446744073709550590, 1024) = 18446744073709550592
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(18446744073709549566, 2048) = 18446744073709549568
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(18446744073709547518, 4096) = 18446744073709547520
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(18446744073709543422, 8192) = 18446744073709543424
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(18446744073709535230, 16384) = 18446744073709535232
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(18446744073709518846, 32768) = 18446744073709518848
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(18446744073709486078, 65536) = 18446744073709486080
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(18446744073709420542, 131072) = 18446744073709420544
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(18446744073709289470, 262144) = 18446744073709289472
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(18446744073709027326, 524288) = 18446744073709027328
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(18446744073708503038, 1048576) = 18446744073708503040
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(18446744073707454462, 2097152) = 18446744073707454464
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(18446744073705357310, 4194304) = 18446744073705357312
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(18446744073701163006, 8388608) = 18446744073701163008
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(18446744073692774398, 16777216) = 18446744073692774400
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(18446744073675997182, 33554432) = 18446744073675997184
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(18446744073642442750, 67108864) = 18446744073642442752
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(18446744073575333886, 134217728) = 18446744073575333888
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(18446744073441116158, 268435456) = 18446744073441116160
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(18446744073172680702, 536870912) = 18446744073172680704
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = 2147483648, ceiling2(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling2(2147483648, 2147483648) = 2147483648, ceiling2(2147483650, 2147483648) = 4294967296, ceiling2(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling2(4294967296, 4294967296) = 4294967296, ceiling2(4294967298, 4294967296) = 8589934592, ceiling2(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling2(8589934592, 8589934592) = 8589934592, ceiling2(8589934594, 8589934592) = 17179869184, ceiling2(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling2(17179869184, 17179869184) = 17179869184, ceiling2(17179869186, 17179869184) = 34359738368, ceiling2(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling2(34359738368, 34359738368) = 34359738368, ceiling2(34359738370, 34359738368) = 68719476736, ceiling2(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling2(68719476736, 68719476736) = 68719476736, ceiling2(68719476738, 68719476736) = 137438953472, ceiling2(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling2(137438953472, 137438953472) = 137438953472, ceiling2(137438953474, 137438953472) = 274877906944, ceiling2(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling2(274877906944, 274877906944) = 274877906944, ceiling2(274877906946, 274877906944) = 549755813888, ceiling2(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling2(549755813888, 549755813888) = 549755813888, ceiling2(549755813890, 549755813888) = 1099511627776, ceiling2(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling2(1099511627776, 1099511627776) = 1099511627776, ceiling2(1099511627778, 1099511627776) = 2199023255552, ceiling2(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling2(2199023255552, 2199023255552) = 2199023255552, ceiling2(2199023255554, 2199023255552) = 4398046511104, ceiling2(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling2(4398046511104, 4398046511104) = 4398046511104, ceiling2(4398046511106, 4398046511104) = 8796093022208, ceiling2(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling2(8796093022208, 8796093022208) = 8796093022208, ceiling2(8796093022210, 8796093022208) = 17592186044416, ceiling2(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling2(17592186044416, 17592186044416) = 17592186044416, ceiling2(17592186044418, 17592186044416) = 35184372088832, ceiling2(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling2(35184372088832, 35184372088832) = 35184372088832, ceiling2(35184372088834, 35184372088832) = 70368744177664, ceiling2(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling2(70368744177664, 70368744177664) = 70368744177664, ceiling2(70368744177666, 70368744177664) = 140737488355328, ceiling2(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling2(140737488355328, 140737488355328) = 140737488355328, ceiling2(140737488355330, 140737488355328) = 281474976710656, ceiling2(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling2(281474976710656, 281474976710656) = 281474976710656, ceiling2(281474976710658, 281474976710656) = 562949953421312, ceiling2(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling2(562949953421312, 562949953421312) = 562949953421312, ceiling2(562949953421314, 562949953421312) = 1125899906842624, ceiling2(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling2(1125899906842624, 1125899906842624) = 1125899906842624, ceiling2(1125899906842626, 1125899906842624) = 2251799813685248, ceiling2(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling2(2251799813685248, 2251799813685248) = 2251799813685248, ceiling2(2251799813685250, 2251799813685248) = 4503599627370496, ceiling2(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling2(4503599627370496, 4503599627370496) = 4503599627370496, ceiling2(4503599627370498, 4503599627370496) = 9007199254740992, ceiling2(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling2(9007199254740992, 9007199254740992) = 9007199254740992, ceiling2(9007199254740994, 9007199254740992) = 18014398509481984, ceiling2(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling2(18014398509481984, 18014398509481984) = 18014398509481984, ceiling2(18014398509481986, 18014398509481984) = 36028797018963968, ceiling2(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling2(36028797018963968, 36028797018963968) = 36028797018963968, ceiling2(36028797018963970, 36028797018963968) = 72057594037927936, ceiling2(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling2(72057594037927936, 72057594037927936) = 72057594037927936, ceiling2(72057594037927938, 72057594037927936) = 144115188075855872, ceiling2(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling2(144115188075855872, 144115188075855872) = 144115188075855872, ceiling2(144115188075855874, 144115188075855872) = 288230376151711744, ceiling2(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling2(288230376151711744, 288230376151711744) = 288230376151711744, ceiling2(288230376151711746, 288230376151711744) = 576460752303423488, ceiling2(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling2(576460752303423488, 576460752303423488) = 576460752303423488, ceiling2(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling2(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling2(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling2(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling2(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling2(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling2(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling2(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling2(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling2(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling2(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling2(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling2(9223372036854775810, 9223372036854775808) = 0, ceiling2(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+long long int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(-6, 4) = -4
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(-10, 8) = -8
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(-18, 16) = -16
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(-34, 32) = -32
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(-66, 64) = -64
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(-130, 128) = -128
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(-258, 256) = -256
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(-514, 512) = -512
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(-1026, 1024) = -1024
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(-2050, 2048) = -2048
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(-4098, 4096) = -4096
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(-8194, 8192) = -8192
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(-16386, 16384) = -16384
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(-32770, 32768) = -32768
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(-65538, 65536) = -65536
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(-131074, 131072) = -131072
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(-262146, 262144) = -262144
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(-524290, 524288) = -524288
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(-1048578, 1048576) = -1048576
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(-2097154, 2097152) = -2097152
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(-4194306, 4194304) = -4194304
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(-8388610, 8388608) = -8388608
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(-16777218, 16777216) = -16777216
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(-33554434, 33554432) = -33554432
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(-67108866, 67108864) = -67108864
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(-134217730, 134217728) = -134217728
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(-268435458, 268435456) = -268435456
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(-536870914, 536870912) = -536870912
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = 2147483648, ceiling2(-1073741826, 1073741824) = -1073741824
+ceiling2(2147483648, 2147483648) = 2147483648, ceiling2(2147483650, 2147483648) = 4294967296, ceiling2(-2147483650, 2147483648) = -2147483648
+ceiling2(4294967296, 4294967296) = 4294967296, ceiling2(4294967298, 4294967296) = 8589934592, ceiling2(-4294967298, 4294967296) = -4294967296
+ceiling2(8589934592, 8589934592) = 8589934592, ceiling2(8589934594, 8589934592) = 17179869184, ceiling2(-8589934594, 8589934592) = -8589934592
+ceiling2(17179869184, 17179869184) = 17179869184, ceiling2(17179869186, 17179869184) = 34359738368, ceiling2(-17179869186, 17179869184) = -17179869184
+ceiling2(34359738368, 34359738368) = 34359738368, ceiling2(34359738370, 34359738368) = 68719476736, ceiling2(-34359738370, 34359738368) = -34359738368
+ceiling2(68719476736, 68719476736) = 68719476736, ceiling2(68719476738, 68719476736) = 137438953472, ceiling2(-68719476738, 68719476736) = -68719476736
+ceiling2(137438953472, 137438953472) = 137438953472, ceiling2(137438953474, 137438953472) = 274877906944, ceiling2(-137438953474, 137438953472) = -137438953472
+ceiling2(274877906944, 274877906944) = 274877906944, ceiling2(274877906946, 274877906944) = 549755813888, ceiling2(-274877906946, 274877906944) = -274877906944
+ceiling2(549755813888, 549755813888) = 549755813888, ceiling2(549755813890, 549755813888) = 1099511627776, ceiling2(-549755813890, 549755813888) = -549755813888
+ceiling2(1099511627776, 1099511627776) = 1099511627776, ceiling2(1099511627778, 1099511627776) = 2199023255552, ceiling2(-1099511627778, 1099511627776) = -1099511627776
+ceiling2(2199023255552, 2199023255552) = 2199023255552, ceiling2(2199023255554, 2199023255552) = 4398046511104, ceiling2(-2199023255554, 2199023255552) = -2199023255552
+ceiling2(4398046511104, 4398046511104) = 4398046511104, ceiling2(4398046511106, 4398046511104) = 8796093022208, ceiling2(-4398046511106, 4398046511104) = -4398046511104
+ceiling2(8796093022208, 8796093022208) = 8796093022208, ceiling2(8796093022210, 8796093022208) = 17592186044416, ceiling2(-8796093022210, 8796093022208) = -8796093022208
+ceiling2(17592186044416, 17592186044416) = 17592186044416, ceiling2(17592186044418, 17592186044416) = 35184372088832, ceiling2(-17592186044418, 17592186044416) = -17592186044416
+ceiling2(35184372088832, 35184372088832) = 35184372088832, ceiling2(35184372088834, 35184372088832) = 70368744177664, ceiling2(-35184372088834, 35184372088832) = -35184372088832
+ceiling2(70368744177664, 70368744177664) = 70368744177664, ceiling2(70368744177666, 70368744177664) = 140737488355328, ceiling2(-70368744177666, 70368744177664) = -70368744177664
+ceiling2(140737488355328, 140737488355328) = 140737488355328, ceiling2(140737488355330, 140737488355328) = 281474976710656, ceiling2(-140737488355330, 140737488355328) = -140737488355328
+ceiling2(281474976710656, 281474976710656) = 281474976710656, ceiling2(281474976710658, 281474976710656) = 562949953421312, ceiling2(-281474976710658, 281474976710656) = -281474976710656
+ceiling2(562949953421312, 562949953421312) = 562949953421312, ceiling2(562949953421314, 562949953421312) = 1125899906842624, ceiling2(-562949953421314, 562949953421312) = -562949953421312
+ceiling2(1125899906842624, 1125899906842624) = 1125899906842624, ceiling2(1125899906842626, 1125899906842624) = 2251799813685248, ceiling2(-1125899906842626, 1125899906842624) = -1125899906842624
+ceiling2(2251799813685248, 2251799813685248) = 2251799813685248, ceiling2(2251799813685250, 2251799813685248) = 4503599627370496, ceiling2(-2251799813685250, 2251799813685248) = -2251799813685248
+ceiling2(4503599627370496, 4503599627370496) = 4503599627370496, ceiling2(4503599627370498, 4503599627370496) = 9007199254740992, ceiling2(-4503599627370498, 4503599627370496) = -4503599627370496
+ceiling2(9007199254740992, 9007199254740992) = 9007199254740992, ceiling2(9007199254740994, 9007199254740992) = 18014398509481984, ceiling2(-9007199254740994, 9007199254740992) = -9007199254740992
+ceiling2(18014398509481984, 18014398509481984) = 18014398509481984, ceiling2(18014398509481986, 18014398509481984) = 36028797018963968, ceiling2(-18014398509481986, 18014398509481984) = -18014398509481984
+ceiling2(36028797018963968, 36028797018963968) = 36028797018963968, ceiling2(36028797018963970, 36028797018963968) = 72057594037927936, ceiling2(-36028797018963970, 36028797018963968) = -36028797018963968
+ceiling2(72057594037927936, 72057594037927936) = 72057594037927936, ceiling2(72057594037927938, 72057594037927936) = 144115188075855872, ceiling2(-72057594037927938, 72057594037927936) = -72057594037927936
+ceiling2(144115188075855872, 144115188075855872) = 144115188075855872, ceiling2(144115188075855874, 144115188075855872) = 288230376151711744, ceiling2(-144115188075855874, 144115188075855872) = -144115188075855872
+ceiling2(288230376151711744, 288230376151711744) = 288230376151711744, ceiling2(288230376151711746, 288230376151711744) = 576460752303423488, ceiling2(-288230376151711746, 288230376151711744) = -288230376151711744
+ceiling2(576460752303423488, 576460752303423488) = 576460752303423488, ceiling2(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling2(-576460752303423490, 576460752303423488) = -576460752303423488
+ceiling2(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling2(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling2(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+ceiling2(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling2(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling2(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+ceiling2(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling2(4611686018427387906, 4611686018427387904) = -9223372036854775808, ceiling2(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+ceiling2(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling2(-9223372036854775806, -9223372036854775808) = 0, ceiling2(9223372036854775806, -9223372036854775808) = -9223372036854775808
+
+unsigned long long int
+ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(18446744073709551613, 1) = 18446744073709551613
+ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(18446744073709551612, 2) = 18446744073709551612
+ceiling2(4, 4) = 4, ceiling2(6, 4) = 8, ceiling2(18446744073709551610, 4) = 18446744073709551612
+ceiling2(8, 8) = 8, ceiling2(10, 8) = 16, ceiling2(18446744073709551606, 8) = 18446744073709551608
+ceiling2(16, 16) = 16, ceiling2(18, 16) = 32, ceiling2(18446744073709551598, 16) = 18446744073709551600
+ceiling2(32, 32) = 32, ceiling2(34, 32) = 64, ceiling2(18446744073709551582, 32) = 18446744073709551584
+ceiling2(64, 64) = 64, ceiling2(66, 64) = 128, ceiling2(18446744073709551550, 64) = 18446744073709551552
+ceiling2(128, 128) = 128, ceiling2(130, 128) = 256, ceiling2(18446744073709551486, 128) = 18446744073709551488
+ceiling2(256, 256) = 256, ceiling2(258, 256) = 512, ceiling2(18446744073709551358, 256) = 18446744073709551360
+ceiling2(512, 512) = 512, ceiling2(514, 512) = 1024, ceiling2(18446744073709551102, 512) = 18446744073709551104
+ceiling2(1024, 1024) = 1024, ceiling2(1026, 1024) = 2048, ceiling2(18446744073709550590, 1024) = 18446744073709550592
+ceiling2(2048, 2048) = 2048, ceiling2(2050, 2048) = 4096, ceiling2(18446744073709549566, 2048) = 18446744073709549568
+ceiling2(4096, 4096) = 4096, ceiling2(4098, 4096) = 8192, ceiling2(18446744073709547518, 4096) = 18446744073709547520
+ceiling2(8192, 8192) = 8192, ceiling2(8194, 8192) = 16384, ceiling2(18446744073709543422, 8192) = 18446744073709543424
+ceiling2(16384, 16384) = 16384, ceiling2(16386, 16384) = 32768, ceiling2(18446744073709535230, 16384) = 18446744073709535232
+ceiling2(32768, 32768) = 32768, ceiling2(32770, 32768) = 65536, ceiling2(18446744073709518846, 32768) = 18446744073709518848
+ceiling2(65536, 65536) = 65536, ceiling2(65538, 65536) = 131072, ceiling2(18446744073709486078, 65536) = 18446744073709486080
+ceiling2(131072, 131072) = 131072, ceiling2(131074, 131072) = 262144, ceiling2(18446744073709420542, 131072) = 18446744073709420544
+ceiling2(262144, 262144) = 262144, ceiling2(262146, 262144) = 524288, ceiling2(18446744073709289470, 262144) = 18446744073709289472
+ceiling2(524288, 524288) = 524288, ceiling2(524290, 524288) = 1048576, ceiling2(18446744073709027326, 524288) = 18446744073709027328
+ceiling2(1048576, 1048576) = 1048576, ceiling2(1048578, 1048576) = 2097152, ceiling2(18446744073708503038, 1048576) = 18446744073708503040
+ceiling2(2097152, 2097152) = 2097152, ceiling2(2097154, 2097152) = 4194304, ceiling2(18446744073707454462, 2097152) = 18446744073707454464
+ceiling2(4194304, 4194304) = 4194304, ceiling2(4194306, 4194304) = 8388608, ceiling2(18446744073705357310, 4194304) = 18446744073705357312
+ceiling2(8388608, 8388608) = 8388608, ceiling2(8388610, 8388608) = 16777216, ceiling2(18446744073701163006, 8388608) = 18446744073701163008
+ceiling2(16777216, 16777216) = 16777216, ceiling2(16777218, 16777216) = 33554432, ceiling2(18446744073692774398, 16777216) = 18446744073692774400
+ceiling2(33554432, 33554432) = 33554432, ceiling2(33554434, 33554432) = 67108864, ceiling2(18446744073675997182, 33554432) = 18446744073675997184
+ceiling2(67108864, 67108864) = 67108864, ceiling2(67108866, 67108864) = 134217728, ceiling2(18446744073642442750, 67108864) = 18446744073642442752
+ceiling2(134217728, 134217728) = 134217728, ceiling2(134217730, 134217728) = 268435456, ceiling2(18446744073575333886, 134217728) = 18446744073575333888
+ceiling2(268435456, 268435456) = 268435456, ceiling2(268435458, 268435456) = 536870912, ceiling2(18446744073441116158, 268435456) = 18446744073441116160
+ceiling2(536870912, 536870912) = 536870912, ceiling2(536870914, 536870912) = 1073741824, ceiling2(18446744073172680702, 536870912) = 18446744073172680704
+ceiling2(1073741824, 1073741824) = 1073741824, ceiling2(1073741826, 1073741824) = 2147483648, ceiling2(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling2(2147483648, 2147483648) = 2147483648, ceiling2(2147483650, 2147483648) = 4294967296, ceiling2(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling2(4294967296, 4294967296) = 4294967296, ceiling2(4294967298, 4294967296) = 8589934592, ceiling2(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling2(8589934592, 8589934592) = 8589934592, ceiling2(8589934594, 8589934592) = 17179869184, ceiling2(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling2(17179869184, 17179869184) = 17179869184, ceiling2(17179869186, 17179869184) = 34359738368, ceiling2(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling2(34359738368, 34359738368) = 34359738368, ceiling2(34359738370, 34359738368) = 68719476736, ceiling2(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling2(68719476736, 68719476736) = 68719476736, ceiling2(68719476738, 68719476736) = 137438953472, ceiling2(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling2(137438953472, 137438953472) = 137438953472, ceiling2(137438953474, 137438953472) = 274877906944, ceiling2(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling2(274877906944, 274877906944) = 274877906944, ceiling2(274877906946, 274877906944) = 549755813888, ceiling2(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling2(549755813888, 549755813888) = 549755813888, ceiling2(549755813890, 549755813888) = 1099511627776, ceiling2(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling2(1099511627776, 1099511627776) = 1099511627776, ceiling2(1099511627778, 1099511627776) = 2199023255552, ceiling2(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling2(2199023255552, 2199023255552) = 2199023255552, ceiling2(2199023255554, 2199023255552) = 4398046511104, ceiling2(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling2(4398046511104, 4398046511104) = 4398046511104, ceiling2(4398046511106, 4398046511104) = 8796093022208, ceiling2(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling2(8796093022208, 8796093022208) = 8796093022208, ceiling2(8796093022210, 8796093022208) = 17592186044416, ceiling2(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling2(17592186044416, 17592186044416) = 17592186044416, ceiling2(17592186044418, 17592186044416) = 35184372088832, ceiling2(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling2(35184372088832, 35184372088832) = 35184372088832, ceiling2(35184372088834, 35184372088832) = 70368744177664, ceiling2(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling2(70368744177664, 70368744177664) = 70368744177664, ceiling2(70368744177666, 70368744177664) = 140737488355328, ceiling2(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling2(140737488355328, 140737488355328) = 140737488355328, ceiling2(140737488355330, 140737488355328) = 281474976710656, ceiling2(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling2(281474976710656, 281474976710656) = 281474976710656, ceiling2(281474976710658, 281474976710656) = 562949953421312, ceiling2(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling2(562949953421312, 562949953421312) = 562949953421312, ceiling2(562949953421314, 562949953421312) = 1125899906842624, ceiling2(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling2(1125899906842624, 1125899906842624) = 1125899906842624, ceiling2(1125899906842626, 1125899906842624) = 2251799813685248, ceiling2(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling2(2251799813685248, 2251799813685248) = 2251799813685248, ceiling2(2251799813685250, 2251799813685248) = 4503599627370496, ceiling2(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling2(4503599627370496, 4503599627370496) = 4503599627370496, ceiling2(4503599627370498, 4503599627370496) = 9007199254740992, ceiling2(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling2(9007199254740992, 9007199254740992) = 9007199254740992, ceiling2(9007199254740994, 9007199254740992) = 18014398509481984, ceiling2(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling2(18014398509481984, 18014398509481984) = 18014398509481984, ceiling2(18014398509481986, 18014398509481984) = 36028797018963968, ceiling2(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling2(36028797018963968, 36028797018963968) = 36028797018963968, ceiling2(36028797018963970, 36028797018963968) = 72057594037927936, ceiling2(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling2(72057594037927936, 72057594037927936) = 72057594037927936, ceiling2(72057594037927938, 72057594037927936) = 144115188075855872, ceiling2(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling2(144115188075855872, 144115188075855872) = 144115188075855872, ceiling2(144115188075855874, 144115188075855872) = 288230376151711744, ceiling2(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling2(288230376151711744, 288230376151711744) = 288230376151711744, ceiling2(288230376151711746, 288230376151711744) = 576460752303423488, ceiling2(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling2(576460752303423488, 576460752303423488) = 576460752303423488, ceiling2(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling2(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling2(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling2(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling2(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling2(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling2(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling2(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling2(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling2(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling2(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling2(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling2(9223372036854775810, 9223372036854775808) = 0, ceiling2(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
Index: tests/.expect/declarationSpecifier.arm64.txt
===================================================================
--- tests/.expect/declarationSpecifier.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/declarationSpecifier.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,1154 @@
+volatile const signed short int _X2x1KVs_1;
+static volatile const signed short int _X2x2KVs_1;
+static volatile const signed short int _X2x3KVs_1;
+static volatile const signed short int _X2x4KVs_1;
+static volatile const signed short int _X2x5KVs_1;
+static volatile const signed short int _X2x6KVs_1;
+static volatile const signed short int _X2x7KVs_1;
+static volatile const signed short int _X2x8KVs_1;
+struct __anonymous0 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0i_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+    {
+        ((void)((*_X4_dstS12__anonymous0_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+    {
+        ((void)((*_X4_dstS12__anonymous0_1)._X1ii_1=_X4_srcS12__anonymous0_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+    {
+        ((void)((*_X4_dstS12__anonymous0_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+    struct __anonymous0 _X4_retS12__anonymous0_1;
+    {
+        ((void)((*_X4_dstS12__anonymous0_1)._X1ii_1=_X4_srcS12__anonymous0_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1((&_X4_retS12__anonymous0_1), (*_X4_dstS12__anonymous0_1)));
+    }
+
+    return _X4_retS12__anonymous0_1;
+}
+static inline void _X12_constructorFv_S12__anonymous0i_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous0_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;
+struct __anonymous1 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1);
+static inline void _X12_constructorFv_S12__anonymous1S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, struct __anonymous1 _X4_srcS12__anonymous1_1);
+static inline void _X11_destructorFv_S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1);
+static inline struct __anonymous1 _X16_operator_assignFS12__anonymous1_S12__anonymous1S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, struct __anonymous1 _X4_srcS12__anonymous1_1);
+static inline void _X12_constructorFv_S12__anonymous1i_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1){
+    {
+        ((void)((*_X4_dstS12__anonymous1_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous1S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, struct __anonymous1 _X4_srcS12__anonymous1_1){
+    {
+        ((void)((*_X4_dstS12__anonymous1_1)._X1ii_1=_X4_srcS12__anonymous1_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1){
+    {
+        ((void)((*_X4_dstS12__anonymous1_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous1 _X16_operator_assignFS12__anonymous1_S12__anonymous1S12__anonymous1_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, struct __anonymous1 _X4_srcS12__anonymous1_1){
+    struct __anonymous1 _X4_retS12__anonymous1_1;
+    {
+        ((void)((*_X4_dstS12__anonymous1_1)._X1ii_1=_X4_srcS12__anonymous1_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous1S12__anonymous1_autogen___1((&_X4_retS12__anonymous1_1), (*_X4_dstS12__anonymous1_1)));
+    }
+
+    return _X4_retS12__anonymous1_1;
+}
+static inline void _X12_constructorFv_S12__anonymous1i_autogen___1(struct __anonymous1 *_X4_dstS12__anonymous1_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous1_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;
+struct __anonymous2 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2i_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+    {
+        ((void)((*_X4_dstS12__anonymous2_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+    {
+        ((void)((*_X4_dstS12__anonymous2_1)._X1ii_1=_X4_srcS12__anonymous2_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+    {
+        ((void)((*_X4_dstS12__anonymous2_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+    struct __anonymous2 _X4_retS12__anonymous2_1;
+    {
+        ((void)((*_X4_dstS12__anonymous2_1)._X1ii_1=_X4_srcS12__anonymous2_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1((&_X4_retS12__anonymous2_1), (*_X4_dstS12__anonymous2_1)));
+    }
+
+    return _X4_retS12__anonymous2_1;
+}
+static inline void _X12_constructorFv_S12__anonymous2i_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous2_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;
+struct __anonymous3 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1);
+static inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, struct __anonymous3 _X4_srcS12__anonymous3_1);
+static inline void _X11_destructorFv_S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1);
+static inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, struct __anonymous3 _X4_srcS12__anonymous3_1);
+static inline void _X12_constructorFv_S12__anonymous3i_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1){
+    {
+        ((void)((*_X4_dstS12__anonymous3_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, struct __anonymous3 _X4_srcS12__anonymous3_1){
+    {
+        ((void)((*_X4_dstS12__anonymous3_1)._X1ii_1=_X4_srcS12__anonymous3_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1){
+    {
+        ((void)((*_X4_dstS12__anonymous3_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, struct __anonymous3 _X4_srcS12__anonymous3_1){
+    struct __anonymous3 _X4_retS12__anonymous3_1;
+    {
+        ((void)((*_X4_dstS12__anonymous3_1)._X1ii_1=_X4_srcS12__anonymous3_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___1((&_X4_retS12__anonymous3_1), (*_X4_dstS12__anonymous3_1)));
+    }
+
+    return _X4_retS12__anonymous3_1;
+}
+static inline void _X12_constructorFv_S12__anonymous3i_autogen___1(struct __anonymous3 *_X4_dstS12__anonymous3_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous3_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous3 _X3x13KVS12__anonymous3_1;
+struct __anonymous4 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1);
+static inline void _X12_constructorFv_S12__anonymous4S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, struct __anonymous4 _X4_srcS12__anonymous4_1);
+static inline void _X11_destructorFv_S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1);
+static inline struct __anonymous4 _X16_operator_assignFS12__anonymous4_S12__anonymous4S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, struct __anonymous4 _X4_srcS12__anonymous4_1);
+static inline void _X12_constructorFv_S12__anonymous4i_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1){
+    {
+        ((void)((*_X4_dstS12__anonymous4_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous4S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, struct __anonymous4 _X4_srcS12__anonymous4_1){
+    {
+        ((void)((*_X4_dstS12__anonymous4_1)._X1ii_1=_X4_srcS12__anonymous4_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1){
+    {
+        ((void)((*_X4_dstS12__anonymous4_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous4 _X16_operator_assignFS12__anonymous4_S12__anonymous4S12__anonymous4_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, struct __anonymous4 _X4_srcS12__anonymous4_1){
+    struct __anonymous4 _X4_retS12__anonymous4_1;
+    {
+        ((void)((*_X4_dstS12__anonymous4_1)._X1ii_1=_X4_srcS12__anonymous4_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous4S12__anonymous4_autogen___1((&_X4_retS12__anonymous4_1), (*_X4_dstS12__anonymous4_1)));
+    }
+
+    return _X4_retS12__anonymous4_1;
+}
+static inline void _X12_constructorFv_S12__anonymous4i_autogen___1(struct __anonymous4 *_X4_dstS12__anonymous4_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous4_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous4 _X3x14KVS12__anonymous4_1;
+struct __anonymous5 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1);
+static inline void _X12_constructorFv_S12__anonymous5S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, struct __anonymous5 _X4_srcS12__anonymous5_1);
+static inline void _X11_destructorFv_S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1);
+static inline struct __anonymous5 _X16_operator_assignFS12__anonymous5_S12__anonymous5S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, struct __anonymous5 _X4_srcS12__anonymous5_1);
+static inline void _X12_constructorFv_S12__anonymous5i_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1){
+    {
+        ((void)((*_X4_dstS12__anonymous5_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous5S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, struct __anonymous5 _X4_srcS12__anonymous5_1){
+    {
+        ((void)((*_X4_dstS12__anonymous5_1)._X1ii_1=_X4_srcS12__anonymous5_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1){
+    {
+        ((void)((*_X4_dstS12__anonymous5_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous5 _X16_operator_assignFS12__anonymous5_S12__anonymous5S12__anonymous5_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, struct __anonymous5 _X4_srcS12__anonymous5_1){
+    struct __anonymous5 _X4_retS12__anonymous5_1;
+    {
+        ((void)((*_X4_dstS12__anonymous5_1)._X1ii_1=_X4_srcS12__anonymous5_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous5S12__anonymous5_autogen___1((&_X4_retS12__anonymous5_1), (*_X4_dstS12__anonymous5_1)));
+    }
+
+    return _X4_retS12__anonymous5_1;
+}
+static inline void _X12_constructorFv_S12__anonymous5i_autogen___1(struct __anonymous5 *_X4_dstS12__anonymous5_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous5_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous5 _X3x15KVS12__anonymous5_1;
+struct __anonymous6 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1);
+static inline void _X12_constructorFv_S12__anonymous6S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, struct __anonymous6 _X4_srcS12__anonymous6_1);
+static inline void _X11_destructorFv_S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1);
+static inline struct __anonymous6 _X16_operator_assignFS12__anonymous6_S12__anonymous6S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, struct __anonymous6 _X4_srcS12__anonymous6_1);
+static inline void _X12_constructorFv_S12__anonymous6i_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1){
+    {
+        ((void)((*_X4_dstS12__anonymous6_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous6S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, struct __anonymous6 _X4_srcS12__anonymous6_1){
+    {
+        ((void)((*_X4_dstS12__anonymous6_1)._X1ii_1=_X4_srcS12__anonymous6_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1){
+    {
+        ((void)((*_X4_dstS12__anonymous6_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous6 _X16_operator_assignFS12__anonymous6_S12__anonymous6S12__anonymous6_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, struct __anonymous6 _X4_srcS12__anonymous6_1){
+    struct __anonymous6 _X4_retS12__anonymous6_1;
+    {
+        ((void)((*_X4_dstS12__anonymous6_1)._X1ii_1=_X4_srcS12__anonymous6_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous6S12__anonymous6_autogen___1((&_X4_retS12__anonymous6_1), (*_X4_dstS12__anonymous6_1)));
+    }
+
+    return _X4_retS12__anonymous6_1;
+}
+static inline void _X12_constructorFv_S12__anonymous6i_autogen___1(struct __anonymous6 *_X4_dstS12__anonymous6_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous6_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous6 _X3x16KVS12__anonymous6_1;
+struct __anonymous7 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);
+static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){
+    struct __anonymous7 _X4_retS12__anonymous7_1;
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));
+    }
+
+    return _X4_retS12__anonymous7_1;
+}
+static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous7 _X3x17KVS12__anonymous7_1;
+volatile const signed short int _X3x20KVs_1;
+static volatile const signed short int _X3x21KVs_1;
+static volatile const signed short int _X3x22KVs_1;
+static volatile const signed short int _X3x23KVs_1;
+static volatile const signed short int _X3x24KVs_1;
+static volatile const signed short int _X3x25KVs_1;
+static volatile const signed short int _X3x26KVs_1;
+static volatile const signed short int _X3x27KVs_1;
+struct __anonymous8 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1);
+static inline void _X12_constructorFv_S12__anonymous8S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, struct __anonymous8 _X4_srcS12__anonymous8_1);
+static inline void _X11_destructorFv_S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1);
+static inline struct __anonymous8 _X16_operator_assignFS12__anonymous8_S12__anonymous8S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, struct __anonymous8 _X4_srcS12__anonymous8_1);
+static inline void _X12_constructorFv_S12__anonymous8s_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1){
+    {
+        ((void)((*_X4_dstS12__anonymous8_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous8S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, struct __anonymous8 _X4_srcS12__anonymous8_1){
+    {
+        ((void)((*_X4_dstS12__anonymous8_1)._X1is_1=_X4_srcS12__anonymous8_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1){
+    {
+        ((void)((*_X4_dstS12__anonymous8_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous8 _X16_operator_assignFS12__anonymous8_S12__anonymous8S12__anonymous8_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, struct __anonymous8 _X4_srcS12__anonymous8_1){
+    struct __anonymous8 _X4_retS12__anonymous8_1;
+    {
+        ((void)((*_X4_dstS12__anonymous8_1)._X1is_1=_X4_srcS12__anonymous8_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous8S12__anonymous8_autogen___1((&_X4_retS12__anonymous8_1), (*_X4_dstS12__anonymous8_1)));
+    }
+
+    return _X4_retS12__anonymous8_1;
+}
+static inline void _X12_constructorFv_S12__anonymous8s_autogen___1(struct __anonymous8 *_X4_dstS12__anonymous8_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS12__anonymous8_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous8 _X3x29KVS12__anonymous8_1;
+struct __anonymous9 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1);
+static inline void _X12_constructorFv_S12__anonymous9S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, struct __anonymous9 _X4_srcS12__anonymous9_1);
+static inline void _X11_destructorFv_S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1);
+static inline struct __anonymous9 _X16_operator_assignFS12__anonymous9_S12__anonymous9S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, struct __anonymous9 _X4_srcS12__anonymous9_1);
+static inline void _X12_constructorFv_S12__anonymous9s_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1){
+    {
+        ((void)((*_X4_dstS12__anonymous9_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S12__anonymous9S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, struct __anonymous9 _X4_srcS12__anonymous9_1){
+    {
+        ((void)((*_X4_dstS12__anonymous9_1)._X1is_1=_X4_srcS12__anonymous9_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1){
+    {
+        ((void)((*_X4_dstS12__anonymous9_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous9 _X16_operator_assignFS12__anonymous9_S12__anonymous9S12__anonymous9_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, struct __anonymous9 _X4_srcS12__anonymous9_1){
+    struct __anonymous9 _X4_retS12__anonymous9_1;
+    {
+        ((void)((*_X4_dstS12__anonymous9_1)._X1is_1=_X4_srcS12__anonymous9_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S12__anonymous9S12__anonymous9_autogen___1((&_X4_retS12__anonymous9_1), (*_X4_dstS12__anonymous9_1)));
+    }
+
+    return _X4_retS12__anonymous9_1;
+}
+static inline void _X12_constructorFv_S12__anonymous9s_autogen___1(struct __anonymous9 *_X4_dstS12__anonymous9_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS12__anonymous9_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous9 _X3x30KVS12__anonymous9_1;
+struct __anonymous10 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1);
+static inline void _X12_constructorFv_S13__anonymous10S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, struct __anonymous10 _X4_srcS13__anonymous10_1);
+static inline void _X11_destructorFv_S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1);
+static inline struct __anonymous10 _X16_operator_assignFS13__anonymous10_S13__anonymous10S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, struct __anonymous10 _X4_srcS13__anonymous10_1);
+static inline void _X12_constructorFv_S13__anonymous10s_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1){
+    {
+        ((void)((*_X4_dstS13__anonymous10_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous10S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, struct __anonymous10 _X4_srcS13__anonymous10_1){
+    {
+        ((void)((*_X4_dstS13__anonymous10_1)._X1is_1=_X4_srcS13__anonymous10_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1){
+    {
+        ((void)((*_X4_dstS13__anonymous10_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous10 _X16_operator_assignFS13__anonymous10_S13__anonymous10S13__anonymous10_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, struct __anonymous10 _X4_srcS13__anonymous10_1){
+    struct __anonymous10 _X4_retS13__anonymous10_1;
+    {
+        ((void)((*_X4_dstS13__anonymous10_1)._X1is_1=_X4_srcS13__anonymous10_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous10S13__anonymous10_autogen___1((&_X4_retS13__anonymous10_1), (*_X4_dstS13__anonymous10_1)));
+    }
+
+    return _X4_retS13__anonymous10_1;
+}
+static inline void _X12_constructorFv_S13__anonymous10s_autogen___1(struct __anonymous10 *_X4_dstS13__anonymous10_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous10_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+volatile const struct __anonymous10 _X3x31KVS13__anonymous10_1;
+struct __anonymous11 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1);
+static inline void _X12_constructorFv_S13__anonymous11S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, struct __anonymous11 _X4_srcS13__anonymous11_1);
+static inline void _X11_destructorFv_S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1);
+static inline struct __anonymous11 _X16_operator_assignFS13__anonymous11_S13__anonymous11S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, struct __anonymous11 _X4_srcS13__anonymous11_1);
+static inline void _X12_constructorFv_S13__anonymous11s_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1){
+    {
+        ((void)((*_X4_dstS13__anonymous11_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous11S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, struct __anonymous11 _X4_srcS13__anonymous11_1){
+    {
+        ((void)((*_X4_dstS13__anonymous11_1)._X1is_1=_X4_srcS13__anonymous11_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1){
+    {
+        ((void)((*_X4_dstS13__anonymous11_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous11 _X16_operator_assignFS13__anonymous11_S13__anonymous11S13__anonymous11_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, struct __anonymous11 _X4_srcS13__anonymous11_1){
+    struct __anonymous11 _X4_retS13__anonymous11_1;
+    {
+        ((void)((*_X4_dstS13__anonymous11_1)._X1is_1=_X4_srcS13__anonymous11_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous11S13__anonymous11_autogen___1((&_X4_retS13__anonymous11_1), (*_X4_dstS13__anonymous11_1)));
+    }
+
+    return _X4_retS13__anonymous11_1;
+}
+static inline void _X12_constructorFv_S13__anonymous11s_autogen___1(struct __anonymous11 *_X4_dstS13__anonymous11_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous11_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous11 _X3x32KVS13__anonymous11_1;
+struct __anonymous12 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1);
+static inline void _X12_constructorFv_S13__anonymous12S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, struct __anonymous12 _X4_srcS13__anonymous12_1);
+static inline void _X11_destructorFv_S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1);
+static inline struct __anonymous12 _X16_operator_assignFS13__anonymous12_S13__anonymous12S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, struct __anonymous12 _X4_srcS13__anonymous12_1);
+static inline void _X12_constructorFv_S13__anonymous12s_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1){
+    {
+        ((void)((*_X4_dstS13__anonymous12_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous12S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, struct __anonymous12 _X4_srcS13__anonymous12_1){
+    {
+        ((void)((*_X4_dstS13__anonymous12_1)._X1is_1=_X4_srcS13__anonymous12_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1){
+    {
+        ((void)((*_X4_dstS13__anonymous12_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous12 _X16_operator_assignFS13__anonymous12_S13__anonymous12S13__anonymous12_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, struct __anonymous12 _X4_srcS13__anonymous12_1){
+    struct __anonymous12 _X4_retS13__anonymous12_1;
+    {
+        ((void)((*_X4_dstS13__anonymous12_1)._X1is_1=_X4_srcS13__anonymous12_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous12S13__anonymous12_autogen___1((&_X4_retS13__anonymous12_1), (*_X4_dstS13__anonymous12_1)));
+    }
+
+    return _X4_retS13__anonymous12_1;
+}
+static inline void _X12_constructorFv_S13__anonymous12s_autogen___1(struct __anonymous12 *_X4_dstS13__anonymous12_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous12_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous12 _X3x33KVS13__anonymous12_1;
+struct __anonymous13 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1);
+static inline void _X12_constructorFv_S13__anonymous13S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, struct __anonymous13 _X4_srcS13__anonymous13_1);
+static inline void _X11_destructorFv_S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1);
+static inline struct __anonymous13 _X16_operator_assignFS13__anonymous13_S13__anonymous13S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, struct __anonymous13 _X4_srcS13__anonymous13_1);
+static inline void _X12_constructorFv_S13__anonymous13s_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1){
+    {
+        ((void)((*_X4_dstS13__anonymous13_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous13S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, struct __anonymous13 _X4_srcS13__anonymous13_1){
+    {
+        ((void)((*_X4_dstS13__anonymous13_1)._X1is_1=_X4_srcS13__anonymous13_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1){
+    {
+        ((void)((*_X4_dstS13__anonymous13_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous13 _X16_operator_assignFS13__anonymous13_S13__anonymous13S13__anonymous13_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, struct __anonymous13 _X4_srcS13__anonymous13_1){
+    struct __anonymous13 _X4_retS13__anonymous13_1;
+    {
+        ((void)((*_X4_dstS13__anonymous13_1)._X1is_1=_X4_srcS13__anonymous13_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous13S13__anonymous13_autogen___1((&_X4_retS13__anonymous13_1), (*_X4_dstS13__anonymous13_1)));
+    }
+
+    return _X4_retS13__anonymous13_1;
+}
+static inline void _X12_constructorFv_S13__anonymous13s_autogen___1(struct __anonymous13 *_X4_dstS13__anonymous13_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous13_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous13 _X3x34KVS13__anonymous13_1;
+struct __anonymous14 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);
+static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){
+    struct __anonymous14 _X4_retS13__anonymous14_1;
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));
+    }
+
+    return _X4_retS13__anonymous14_1;
+}
+static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous14 _X3x35KVS13__anonymous14_1;
+struct __anonymous15 {
+    signed short int _X1is_1;
+};
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);
+static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1);
+static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){
+    struct __anonymous15 _X4_retS13__anonymous15_1;
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));
+    }
+
+    return _X4_retS13__anonymous15_1;
+}
+static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1){
+    {
+        ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X1is_1) /* ?{} */);
+    }
+
+}
+static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+static inline volatile const signed int _X3f11Fi___1();
+static inline volatile const signed int _X3f12Fi___1();
+static inline volatile const signed int _X3f13Fi___1();
+static inline volatile const signed int _X3f14Fi___1();
+static inline volatile const signed int _X3f15Fi___1();
+static inline volatile const signed int _X3f16Fi___1();
+static inline volatile const signed int _X3f17Fi___1();
+static inline volatile const signed int _X3f18Fi___1();
+static inline volatile const signed short int _X3f21Fs___1();
+static inline volatile const signed short int _X3f22Fs___1();
+static inline volatile const signed short int _X3f23Fs___1();
+static inline volatile const signed short int _X3f24Fs___1();
+static inline volatile const signed short int _X3f25Fs___1();
+static inline volatile const signed short int _X3f26Fs___1();
+static inline volatile const signed short int _X3f27Fs___1();
+static inline volatile const signed short int _X3f28Fs___1();
+struct __anonymous16 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1);
+static inline void _X12_constructorFv_S13__anonymous16S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, struct __anonymous16 _X4_srcS13__anonymous16_1);
+static inline void _X11_destructorFv_S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1);
+static inline struct __anonymous16 _X16_operator_assignFS13__anonymous16_S13__anonymous16S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, struct __anonymous16 _X4_srcS13__anonymous16_1);
+static inline void _X12_constructorFv_S13__anonymous16i_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1){
+    {
+        ((void)((*_X4_dstS13__anonymous16_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous16S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, struct __anonymous16 _X4_srcS13__anonymous16_1){
+    {
+        ((void)((*_X4_dstS13__anonymous16_1)._X1ii_1=_X4_srcS13__anonymous16_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1){
+    {
+        ((void)((*_X4_dstS13__anonymous16_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous16 _X16_operator_assignFS13__anonymous16_S13__anonymous16S13__anonymous16_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, struct __anonymous16 _X4_srcS13__anonymous16_1){
+    struct __anonymous16 _X4_retS13__anonymous16_1;
+    {
+        ((void)((*_X4_dstS13__anonymous16_1)._X1ii_1=_X4_srcS13__anonymous16_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous16S13__anonymous16_autogen___1((&_X4_retS13__anonymous16_1), (*_X4_dstS13__anonymous16_1)));
+    }
+
+    return _X4_retS13__anonymous16_1;
+}
+static inline void _X12_constructorFv_S13__anonymous16i_autogen___1(struct __anonymous16 *_X4_dstS13__anonymous16_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous16_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous16 _X3f31FS13__anonymous16___1();
+struct __anonymous17 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1);
+static inline void _X12_constructorFv_S13__anonymous17S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, struct __anonymous17 _X4_srcS13__anonymous17_1);
+static inline void _X11_destructorFv_S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1);
+static inline struct __anonymous17 _X16_operator_assignFS13__anonymous17_S13__anonymous17S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, struct __anonymous17 _X4_srcS13__anonymous17_1);
+static inline void _X12_constructorFv_S13__anonymous17i_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1){
+    {
+        ((void)((*_X4_dstS13__anonymous17_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous17S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, struct __anonymous17 _X4_srcS13__anonymous17_1){
+    {
+        ((void)((*_X4_dstS13__anonymous17_1)._X1ii_1=_X4_srcS13__anonymous17_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1){
+    {
+        ((void)((*_X4_dstS13__anonymous17_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous17 _X16_operator_assignFS13__anonymous17_S13__anonymous17S13__anonymous17_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, struct __anonymous17 _X4_srcS13__anonymous17_1){
+    struct __anonymous17 _X4_retS13__anonymous17_1;
+    {
+        ((void)((*_X4_dstS13__anonymous17_1)._X1ii_1=_X4_srcS13__anonymous17_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous17S13__anonymous17_autogen___1((&_X4_retS13__anonymous17_1), (*_X4_dstS13__anonymous17_1)));
+    }
+
+    return _X4_retS13__anonymous17_1;
+}
+static inline void _X12_constructorFv_S13__anonymous17i_autogen___1(struct __anonymous17 *_X4_dstS13__anonymous17_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous17_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous17 _X3f32FS13__anonymous17___1();
+struct __anonymous18 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1);
+static inline void _X12_constructorFv_S13__anonymous18S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, struct __anonymous18 _X4_srcS13__anonymous18_1);
+static inline void _X11_destructorFv_S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1);
+static inline struct __anonymous18 _X16_operator_assignFS13__anonymous18_S13__anonymous18S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, struct __anonymous18 _X4_srcS13__anonymous18_1);
+static inline void _X12_constructorFv_S13__anonymous18i_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1){
+    {
+        ((void)((*_X4_dstS13__anonymous18_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous18S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, struct __anonymous18 _X4_srcS13__anonymous18_1){
+    {
+        ((void)((*_X4_dstS13__anonymous18_1)._X1ii_1=_X4_srcS13__anonymous18_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1){
+    {
+        ((void)((*_X4_dstS13__anonymous18_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous18 _X16_operator_assignFS13__anonymous18_S13__anonymous18S13__anonymous18_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, struct __anonymous18 _X4_srcS13__anonymous18_1){
+    struct __anonymous18 _X4_retS13__anonymous18_1;
+    {
+        ((void)((*_X4_dstS13__anonymous18_1)._X1ii_1=_X4_srcS13__anonymous18_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous18S13__anonymous18_autogen___1((&_X4_retS13__anonymous18_1), (*_X4_dstS13__anonymous18_1)));
+    }
+
+    return _X4_retS13__anonymous18_1;
+}
+static inline void _X12_constructorFv_S13__anonymous18i_autogen___1(struct __anonymous18 *_X4_dstS13__anonymous18_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous18_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous18 _X3f33FS13__anonymous18___1();
+struct __anonymous19 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1);
+static inline void _X12_constructorFv_S13__anonymous19S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, struct __anonymous19 _X4_srcS13__anonymous19_1);
+static inline void _X11_destructorFv_S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1);
+static inline struct __anonymous19 _X16_operator_assignFS13__anonymous19_S13__anonymous19S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, struct __anonymous19 _X4_srcS13__anonymous19_1);
+static inline void _X12_constructorFv_S13__anonymous19i_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1){
+    {
+        ((void)((*_X4_dstS13__anonymous19_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous19S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, struct __anonymous19 _X4_srcS13__anonymous19_1){
+    {
+        ((void)((*_X4_dstS13__anonymous19_1)._X1ii_1=_X4_srcS13__anonymous19_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1){
+    {
+        ((void)((*_X4_dstS13__anonymous19_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous19 _X16_operator_assignFS13__anonymous19_S13__anonymous19S13__anonymous19_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, struct __anonymous19 _X4_srcS13__anonymous19_1){
+    struct __anonymous19 _X4_retS13__anonymous19_1;
+    {
+        ((void)((*_X4_dstS13__anonymous19_1)._X1ii_1=_X4_srcS13__anonymous19_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous19S13__anonymous19_autogen___1((&_X4_retS13__anonymous19_1), (*_X4_dstS13__anonymous19_1)));
+    }
+
+    return _X4_retS13__anonymous19_1;
+}
+static inline void _X12_constructorFv_S13__anonymous19i_autogen___1(struct __anonymous19 *_X4_dstS13__anonymous19_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous19_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous19 _X3f34FS13__anonymous19___1();
+struct __anonymous20 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1);
+static inline void _X12_constructorFv_S13__anonymous20S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, struct __anonymous20 _X4_srcS13__anonymous20_1);
+static inline void _X11_destructorFv_S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1);
+static inline struct __anonymous20 _X16_operator_assignFS13__anonymous20_S13__anonymous20S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, struct __anonymous20 _X4_srcS13__anonymous20_1);
+static inline void _X12_constructorFv_S13__anonymous20i_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1){
+    {
+        ((void)((*_X4_dstS13__anonymous20_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous20S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, struct __anonymous20 _X4_srcS13__anonymous20_1){
+    {
+        ((void)((*_X4_dstS13__anonymous20_1)._X1ii_1=_X4_srcS13__anonymous20_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1){
+    {
+        ((void)((*_X4_dstS13__anonymous20_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous20 _X16_operator_assignFS13__anonymous20_S13__anonymous20S13__anonymous20_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, struct __anonymous20 _X4_srcS13__anonymous20_1){
+    struct __anonymous20 _X4_retS13__anonymous20_1;
+    {
+        ((void)((*_X4_dstS13__anonymous20_1)._X1ii_1=_X4_srcS13__anonymous20_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous20S13__anonymous20_autogen___1((&_X4_retS13__anonymous20_1), (*_X4_dstS13__anonymous20_1)));
+    }
+
+    return _X4_retS13__anonymous20_1;
+}
+static inline void _X12_constructorFv_S13__anonymous20i_autogen___1(struct __anonymous20 *_X4_dstS13__anonymous20_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous20_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous20 _X3f35FS13__anonymous20___1();
+struct __anonymous21 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1);
+static inline void _X12_constructorFv_S13__anonymous21S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, struct __anonymous21 _X4_srcS13__anonymous21_1);
+static inline void _X11_destructorFv_S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1);
+static inline struct __anonymous21 _X16_operator_assignFS13__anonymous21_S13__anonymous21S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, struct __anonymous21 _X4_srcS13__anonymous21_1);
+static inline void _X12_constructorFv_S13__anonymous21i_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1){
+    {
+        ((void)((*_X4_dstS13__anonymous21_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous21S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, struct __anonymous21 _X4_srcS13__anonymous21_1){
+    {
+        ((void)((*_X4_dstS13__anonymous21_1)._X1ii_1=_X4_srcS13__anonymous21_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1){
+    {
+        ((void)((*_X4_dstS13__anonymous21_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous21 _X16_operator_assignFS13__anonymous21_S13__anonymous21S13__anonymous21_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, struct __anonymous21 _X4_srcS13__anonymous21_1){
+    struct __anonymous21 _X4_retS13__anonymous21_1;
+    {
+        ((void)((*_X4_dstS13__anonymous21_1)._X1ii_1=_X4_srcS13__anonymous21_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous21S13__anonymous21_autogen___1((&_X4_retS13__anonymous21_1), (*_X4_dstS13__anonymous21_1)));
+    }
+
+    return _X4_retS13__anonymous21_1;
+}
+static inline void _X12_constructorFv_S13__anonymous21i_autogen___1(struct __anonymous21 *_X4_dstS13__anonymous21_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous21_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous21 _X3f36FS13__anonymous21___1();
+struct __anonymous22 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
+static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
+static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1);
+static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1);
+static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
+    {
+        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
+    {
+        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){
+    {
+        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){
+    struct __anonymous22 _X4_retS13__anonymous22_1;
+    {
+        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1((&_X4_retS13__anonymous22_1), (*_X4_dstS13__anonymous22_1)));
+    }
+
+    return _X4_retS13__anonymous22_1;
+}
+static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous22 _X3f37FS13__anonymous22___1();
+struct __anonymous23 {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
+static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
+static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1);
+static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1);
+static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
+    {
+        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
+    {
+        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){
+    {
+        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){
+    struct __anonymous23 _X4_retS13__anonymous23_1;
+    {
+        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1((&_X4_retS13__anonymous23_1), (*_X4_dstS13__anonymous23_1)));
+    }
+
+    return _X4_retS13__anonymous23_1;
+}
+static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+static inline volatile const struct __anonymous23 _X3f38FS13__anonymous23___1();
+static inline volatile const signed short int _X3f41Fs___1();
+static inline volatile const signed short int _X3f42Fs___1();
+static inline volatile const signed short int _X3f43Fs___1();
+static inline volatile const signed short int _X3f44Fs___1();
+static inline volatile const signed short int _X3f45Fs___1();
+static inline volatile const signed short int _X3f46Fs___1();
+static inline volatile const signed short int _X3f47Fs___1();
+static inline volatile const signed short int _X3f48Fs___1();
+signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){
+    __attribute__ ((unused)) signed int _X12_retval_maini_1;
+    {
+        ((void)(_X12_retval_maini_1=0) /* ?{} */);
+    }
+
+    return _X12_retval_maini_1;
+}
+static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); }
+static inline signed int invoke_main(signed int argc, char **argv, char **envp);
+signed int _X13cfa_args_argci_1;
+char **_X13cfa_args_argvPPc_1;
+char **_X13cfa_args_envpPPc_1;
+signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){
+    __attribute__ ((unused)) signed int _X12_retval_maini_1;
+    {
+        ((void)(_X13cfa_args_argci_1=_X4argci_1));
+    }
+
+    {
+        ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1));
+    }
+
+    {
+        ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1));
+    }
+
+    {
+        signed int _tmp_cp_ret4;
+        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+    }
+
+    return _X12_retval_maini_1;
+}
Index: tests/.expect/extension.arm64.txt
===================================================================
--- tests/.expect/extension.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/extension.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,494 @@
+__extension__ signed int _X1ai_1;
+__extension__ signed int _X1bi_1;
+__extension__ signed int _X1ci_1;
+__extension__ struct S {
+    __extension__ signed int _X1ai_1;
+    __extension__ signed int _X1bi_1;
+    __extension__ signed int _X1ci_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1);
+static inline void _X12_constructorFv_S1Sii_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1, signed int _X1bi_1);
+static inline void _X12_constructorFv_S1Siii_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1=_X4_srcS1S_1._X1ai_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1=_X4_srcS1S_1._X1bi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1=_X4_srcS1S_1._X1ci_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1=_X4_srcS1S_1._X1ai_1));
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1=_X4_srcS1S_1._X1bi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1=_X4_srcS1S_1._X1ci_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1=_X1ai_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1Sii_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1, signed int _X1bi_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1=_X1ai_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1=_X1bi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1Siii_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ai_1=_X1ai_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1bi_1=_X1bi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS1S_1)._X1ci_1=_X1ci_1) /* ?{} */);
+    }
+
+}
+__extension__ union U {
+    __extension__ signed int _X1ai_1;
+    __extension__ signed int _X1bi_1;
+    __extension__ signed int _X1ci_1;
+};
+static inline void _X12_constructorFv_U1U_autogen___1(__attribute__ ((unused)) union U *_X4_dstU1U_1);
+static inline void _X12_constructorFv_U1UU1U_autogen___1(union U *_X4_dstU1U_1, union U _X4_srcU1U_1);
+static inline void _X11_destructorFv_U1U_autogen___1(__attribute__ ((unused)) union U *_X4_dstU1U_1);
+static inline union U _X16_operator_assignFU1U_U1UU1U_autogen___1(union U *_X4_dstU1U_1, union U _X4_srcU1U_1);
+static inline void _X12_constructorFv_U1Ui_autogen___1(union U *_X4_dstU1U_1, signed int _X1ai_1);
+static inline void _X12_constructorFv_U1U_autogen___1(__attribute__ ((unused)) union U *_X4_dstU1U_1){
+}
+static inline void _X12_constructorFv_U1UU1U_autogen___1(union U *_X4_dstU1U_1, union U _X4_srcU1U_1){
+    {
+        ((void)__builtin_memcpy(((void *)_X4_dstU1U_1), ((const void *)(&_X4_srcU1U_1)), sizeof(union U )));
+    }
+
+}
+static inline void _X11_destructorFv_U1U_autogen___1(__attribute__ ((unused)) union U *_X4_dstU1U_1){
+}
+static inline union U _X16_operator_assignFU1U_U1UU1U_autogen___1(union U *_X4_dstU1U_1, union U _X4_srcU1U_1){
+    union U _X4_retU1U_1;
+    {
+        ((void)__builtin_memcpy(((void *)_X4_dstU1U_1), ((const void *)(&_X4_srcU1U_1)), sizeof(union U )));
+    }
+
+    {
+        ((void)_X12_constructorFv_U1UU1U_autogen___1((&_X4_retU1U_1), (*_X4_dstU1U_1)));
+    }
+
+    return _X4_retU1U_1;
+}
+static inline void _X12_constructorFv_U1Ui_autogen___1(union U *_X4_dstU1U_1, signed int _X1ai_1){
+    {
+        ((void)__builtin_memcpy(((void *)_X4_dstU1U_1), ((const void *)(&_X1ai_1)), sizeof(signed int )));
+    }
+
+}
+__extension__ enum E {
+    _X1RKM1E_1,
+    _X1GKM1E_1,
+    _X1BKM1E_1,
+};
+__extension__ signed int _X1fFi___1();
+__extension__ signed int i;
+__extension__ signed int j;
+__extension__ signed int _X4fredFi_i__1(signed int _X1pi_1){
+    __attribute__ ((unused)) signed int _X12_retval_fredi_1;
+    __extension__ struct S {
+        __extension__ signed int _X1ai_2;
+        __extension__ signed int _X1bi_2;
+        __extension__ signed int _X1ci_2;
+        __extension__ signed int *_X1xPi_2;
+        __extension__ signed int *_X1yPi_2;
+        __extension__ signed int *_X1zPi_2;
+    };
+    inline void _X12_constructorFv_S1S_autogen___2(struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SS1S_autogen___2(struct S *_X4_dstS1S_2, struct S _X4_srcS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X4_srcS1S_2._X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X4_srcS1S_2._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X4_srcS1S_2._X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2=_X4_srcS1S_2._X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2=_X4_srcS1S_2._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2=_X4_srcS1S_2._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S1S_autogen___2(struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2) /* ^?{} */);
+        }
+
+    }
+    inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___2(struct S *_X4_dstS1S_2, struct S _X4_srcS1S_2){
+        struct S _X4_retS1S_2;
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X4_srcS1S_2._X1ai_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X4_srcS1S_2._X1bi_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X4_srcS1S_2._X1ci_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2=_X4_srcS1S_2._X1xPi_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2=_X4_srcS1S_2._X1yPi_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2=_X4_srcS1S_2._X1zPi_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S1SS1S_autogen___2((&_X4_retS1S_2), (*_X4_dstS1S_2)));
+        }
+
+        return _X4_retS1S_2;
+    }
+    inline void _X12_constructorFv_S1Si_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1Sii_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1Siii_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SiiiPi_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2, signed int *_X1xPi_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2=_X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SiiiPiPi_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2, signed int *_X1xPi_2, signed int *_X1yPi_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2=_X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2=_X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SiiiPiPiPi_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2, signed int *_X1xPi_2, signed int *_X1yPi_2, signed int *_X1zPi_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X1ci_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1xPi_2=_X1xPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1yPi_2=_X1yPi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1zPi_2=_X1zPi_2) /* ?{} */);
+        }
+
+    }
+    signed int _X1ii_2 = (__extension__ _X1ai_1+__extension__ 3);
+    {
+        ((void)__extension__ 3);
+    }
+
+    {
+        ((void)__extension__ _X1ai_1);
+    }
+
+    __extension__ signed int _X1ai_2;
+    __extension__ signed int _X1bi_2;
+    __extension__ signed int _X1ci_2;
+    {
+        ((void)(__extension__ _X1ai_2=(__extension__ _X1bi_2+__extension__ _X1ci_2)));
+    }
+
+    {
+        signed int _tmp_cp_ret4;
+        ((void)(((void)(_tmp_cp_ret4=__extension__ _X4fredFi_i__1(3))) , _tmp_cp_ret4));
+    }
+
+    __extension__ signed int _X4maryFi_i__2(signed int _X1pi_2){
+        __attribute__ ((unused)) signed int _X12_retval_maryi_2;
+    }
+    {
+        ((void)__extension__ sizeof(3));
+    }
+
+    {
+        ((void)__extension__ ((3!=((signed int )0)) || (4!=((signed int )0))));
+    }
+
+    {
+        ((void)__extension__ __alignof__(__extension__ _X1ai_2));
+    }
+
+    {
+        ((void)((__extension__ _X1ai_2!=((signed int )0)) || (((__extension__ _X1bi_2!=((signed int )0)) && (__extension__ _X1ci_2!=((signed int )0)))!=((signed int )0))));
+    }
+
+    {
+        ((void)(((__extension__ _X1ai_2>__extension__ _X1bi_2)!=((signed int )0)) ? __extension__ _X1ci_2 : __extension__ _X1ci_2));
+    }
+
+    {
+        ((void)(__extension__ _X1ai_2=__extension__ (__extension__ _X1bi_2+__extension__ _X1ci_2)));
+    }
+
+    {
+        ((void)(((void)(((void)__extension__ _X1ai_2) , __extension__ _X1bi_2)) , __extension__ _X1ci_2));
+    }
+
+}
Index: tests/.expect/functions.arm64.txt
===================================================================
--- tests/.expect/functions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/functions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,283 @@
+void _X1hFv___1(void){
+}
+signed int _X1fFi_Fi__Fi_i_Fi__Fi_i_Fv____1(__attribute__ ((unused)) signed int (*__anonymous_object0)(void), __attribute__ ((unused)) signed int (*__anonymous_object1)(signed int __anonymous_object2), __attribute__ ((unused)) signed int (*__anonymous_object3)(void), __attribute__ ((unused)) signed int (*__anonymous_object4)(signed int __anonymous_object5), void (*_X1gFv___1)(void)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    {
+        ((void)(*_X1gFv___1)());
+    }
+
+    {
+        ((void)_X1gFv___1());
+    }
+
+    {
+        ((void)(_X1gFv___1=_X1hFv___1));
+    }
+
+}
+signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+signed int (*_X2f3FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
+}
+signed int *_X2f4FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
+}
+signed int (*_X2f5FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
+}
+signed int *_X2f6FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
+}
+signed int *_X2f7FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
+}
+signed int **_X2f8FPPi___1(){
+    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
+}
+signed int *const *_X2f9FPKPi___1(){
+    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
+}
+signed int (*_X3f10FPA0i___1())[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
+}
+signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int _X4fII1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII1i_1;
+}
+const signed int _X4fII2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII2Ki_1;
+}
+extern signed int _X4fII3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII3i_1;
+}
+extern const signed int _X4fII4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
+}
+signed int *_X4fII5FPi___1(){
+    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
+}
+signed int *const _X4fII6FPi___1(){
+    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
+}
+const signed long int *_X4fII7FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
+}
+static const signed long int *_X4fII8FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
+}
+static const signed long int *_X4fII9FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
+}
+signed int _X3fO1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO1i_1;
+}
+signed int _X3fO2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO2i_1;
+}
+const signed int _X3fO3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO3Ki_1;
+}
+extern signed int _X3fO4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO4i_1;
+}
+extern const signed int _X3fO5Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO5Ki_1;
+}
+signed int _X1fFi___1(void);
+signed int _X1fFi_i__1(signed int __anonymous_object6);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object7){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi___1(void);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_Y15tuple_param_2_0, unsigned long int _alignof_Y15tuple_param_2_0, unsigned long int _sizeof_Y15tuple_param_2_1, unsigned long int _alignof_Y15tuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_Y15tuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0;
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 _X1fFT2ii___1(void);
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(signed int __anonymous_object8, signed int _X1xi_1);
+struct _conc__tuple2_0 _X1fFT2ii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(__attribute__ ((unused)) signed int __anonymous_object9, signed int _X1xi_1){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _tuple3_ {
+};
+static inline void _layoutof__tuple3_(unsigned long int *_sizeof__tuple3_, unsigned long int *_alignof__tuple3_, unsigned long int *_offsetof__tuple3_, unsigned long int _sizeof_Y15tuple_param_3_0, unsigned long int _alignof_Y15tuple_param_3_0, unsigned long int _sizeof_Y15tuple_param_3_1, unsigned long int _alignof_Y15tuple_param_3_1, unsigned long int _sizeof_Y15tuple_param_3_2, unsigned long int _alignof_Y15tuple_param_3_2){
+    ((void)((*_sizeof__tuple3_)=0));
+    ((void)((*_alignof__tuple3_)=1));
+    ((void)(_offsetof__tuple3_[0]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_0));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_0) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_0));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_1-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)))));
+
+    ((void)(_offsetof__tuple3_[1]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_1));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_1) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_1));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_2-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)))));
+
+    ((void)(_offsetof__tuple3_[2]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_2));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_2) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_2));
+
+    if ( ((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)) ) ((void)((*_sizeof__tuple3_)+=((*_alignof__tuple3_)-((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)))));
+
+}
+struct _conc__tuple3_1;
+struct _conc__tuple3_1 {
+    signed int field_0;
+    signed int field_1;
+    signed int field_2;
+};
+struct _conc__tuple3_1 _X1fFT3iii___1(void);
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(signed int __anonymous_object10, signed int _X1xi_1, signed int __anonymous_object11);
+struct _conc__tuple3_1 _X1fFT3iii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(__attribute__ ((unused)) signed int __anonymous_object12, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object13){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_2;
+struct _conc__tuple3_2 {
+    signed int field_0;
+    signed int field_1;
+    signed int *field_2;
+};
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void);
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(signed int __anonymous_object14, signed int _X1xi_1, signed int *_X1yPi_1);
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(__attribute__ ((unused)) signed int __anonymous_object15, signed int _X1xi_1, signed int *_X1yPi_1){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+signed int _X3f11Fi_i__1(signed int __anonymous_object16);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object17);
+const double _X4bar3Fd_d__1(double __anonymous_object18);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object19);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object20){
+    __attribute__ ((unused)) const double _X11_retval_fooKd_1;
+    {
+        ((void)((*((double *)(&_X11_retval_fooKd_1)))=3.0) /* ?{} */);
+    }
+
+    return _X11_retval_fooKd_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+struct S _X3rtnFS1S_i__1(__attribute__ ((unused)) signed int __anonymous_object21){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object22)(signed int __anonymous_object23, signed int _X1pi_1), __attribute__ ((unused)) signed int (*__anonymous_object24)(signed int __anonymous_object25)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __anonymous_object26);
+}
+static const signed int *_X2f1FPKi___1(){
+    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
+}
+static const signed int *_X2f2FPKi___1(void){
+    __attribute__ ((unused)) const signed int *_X10_retval_f2PKi_1;
+}
+static inline signed int *const _X2f3FPi___1(void){
+    __attribute__ ((unused)) signed int *const _X10_retval_f3KPi_1;
+}
+struct _conc__tuple2_3;
+struct _conc__tuple2_3 {
+    signed int *field_0;
+    signed int field_1;
+};
+static inline const struct _conc__tuple2_3 _X2f4FT2Pii___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f4KT2Pii_1;
+}
+static const struct _conc__tuple2_3 _X2f5FT2PiKi___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
+}
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object27)(), signed int *(*__anonymous_object28)(), signed int **(*__anonymous_object29)(), signed int *const *(*__anonymous_object30)(), signed int *const *const (*__anonymous_object31)(), signed int *__anonymous_object32, signed int __anonymous_object33[((unsigned long int )10)], signed int **__anonymous_object34, signed int *__anonymous_object35[((unsigned long int )10)], signed int ***__anonymous_object36, signed int **__anonymous_object37[((unsigned long int )10)], signed int *const **__anonymous_object38, signed int *const *__anonymous_object39[((unsigned long int )10)], signed int *const *const *__anonymous_object40, signed int *const *const __anonymous_object41[((unsigned long int )10)]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object42)(), __attribute__ ((unused)) signed int *(*__anonymous_object43)(), __attribute__ ((unused)) signed int **(*__anonymous_object44)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object45)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object46)(), __attribute__ ((unused)) signed int *__anonymous_object47, __attribute__ ((unused)) signed int __anonymous_object48[((unsigned long int )10)], __attribute__ ((unused)) signed int **__anonymous_object49, __attribute__ ((unused)) signed int *__anonymous_object50[((unsigned long int )10)], __attribute__ ((unused)) signed int ***__anonymous_object51, __attribute__ ((unused)) signed int **__anonymous_object52[((unsigned long int )10)], __attribute__ ((unused)) signed int *const **__anonymous_object53, __attribute__ ((unused)) signed int *const *__anonymous_object54[((unsigned long int )10)], __attribute__ ((unused)) signed int *const *const *__anonymous_object55, __attribute__ ((unused)) signed int *const *const __anonymous_object56[((unsigned long int )10)]){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_Pii__1(signed int *_X1fPi_1, signed int _X1ti_1){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int _X1Ti_2;
+}
Index: tests/.expect/gccExtensions.arm64.txt
===================================================================
--- tests/.expect/gccExtensions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/gccExtensions.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,351 @@
+extern signed int _X1xi_1 asm ( "xx" );
+signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){
+    __attribute__ ((unused)) signed int _X12_retval_maini_1;
+    asm ( "nop" :  :  :  );
+    asm ( "nop" :  :  :  );
+    asm ( "nop" :  :  :  );
+    static signed int _X1yi_2 asm ( "yy" );
+    static signed int *_X1zPi_2 asm ( "zz" );
+    signed int _X3srci_2;
+    signed int _X3dsti_2;
+    asm volatile ( "mov %1, %0\n\t" "add $1, %0" :  :  :  );
+    asm volatile ( "mov %1, %0\n\t" "add $1, %0" : "=" "r" ( _X3dsti_2 ) :  :  );
+    asm volatile ( "mov %1, %0\n\t" "add $1, %0" : "=r" ( _X3dsti_2 ) : "r" ( _X3srci_2 ) :  );
+    asm ( "mov %1, %0\n\t" "add $1, %0" : "=r" ( _X3dsti_2 ), "=r" ( _X3srci_2 ) : [ src ] "r" ( _X3dsti_2 ) : "r0" );
+    L2: L1: asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5" :  : "r" ( _X3srci_2 ), "r" ( (&_X3dsti_2) ) : "r5", "memory" : L1, L2 );
+    double _Complex _X2c1Cd_2;
+    double _Complex _X2c2Cd_2;
+    const signed int _X2i1Ki_2;
+    const signed int _X2i2Ki_2;
+    const signed int _X2i3Ki_2;
+    inline signed int _X2f1Fi___2(){
+        __attribute__ ((unused)) signed int _X10_retval_f1i_2;
+    }
+    inline signed int _X2f2Fi___2(){
+        __attribute__ ((unused)) signed int _X10_retval_f2i_2;
+    }
+    signed int _X2s1i_2;
+    signed int _X2s2i_2;
+    volatile signed int _X2v1Vi_2;
+    volatile signed int _X2v2Vi_2;
+    signed int _X2t1i_2;
+    signed int _X2t2i_2;
+    __extension__ const signed int _X2exKi_2;
+    struct S {
+        __extension__ signed int _X1ai_2;
+        __extension__ signed int _X1bi_2;
+        __extension__ signed int _X1ci_2;
+    };
+    inline void _X12_constructorFv_S1S_autogen___2(struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1SS1S_autogen___2(struct S *_X4_dstS1S_2, struct S _X4_srcS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X4_srcS1S_2._X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X4_srcS1S_2._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X4_srcS1S_2._X1ci_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S1S_autogen___2(struct S *_X4_dstS1S_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ^?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2) /* ^?{} */);
+        }
+
+    }
+    inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___2(struct S *_X4_dstS1S_2, struct S _X4_srcS1S_2){
+        struct S _X4_retS1S_2;
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X4_srcS1S_2._X1ai_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X4_srcS1S_2._X1bi_2));
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X4_srcS1S_2._X1ci_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S1SS1S_autogen___2((&_X4_retS1S_2), (*_X4_dstS1S_2)));
+        }
+
+        return _X4_retS1S_2;
+    }
+    inline void _X12_constructorFv_S1Si_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1Sii_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S1Siii_autogen___2(struct S *_X4_dstS1S_2, signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
+        {
+            ((void)((*_X4_dstS1S_2)._X1ai_2=_X1ai_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1bi_2=_X1bi_2) /* ?{} */);
+        }
+
+        {
+            ((void)((*_X4_dstS1S_2)._X1ci_2=_X1ci_2) /* ?{} */);
+        }
+
+    }
+    signed int _X1ii_2 = __extension__ 3;
+    __extension__ signed int _X1ai_2;
+    __extension__ signed int _X1bi_2;
+    __extension__ signed int _X1ci_2;
+    {
+        ((void)(((void)(((void)__extension__ _X1ai_2) , __extension__ _X1bi_2)) , __extension__ _X1ci_2));
+    }
+
+    {
+        ((void)(__extension__ _X1ai_2=(__extension__ _X1bi_2+__extension__ _X1ci_2)));
+    }
+
+    {
+        ((void)(__extension__ _X1ai_2=__extension__ (__extension__ _X1bi_2+__extension__ _X1ci_2)));
+    }
+
+    signed int _X2a1i_2;
+    const signed int _X2a2Ki_2;
+    static const signed int _X2a3Ki_2;
+    static const signed int _X2a4Ki_2;
+    static const signed int _X2a5Ki_2;
+    static const signed int _X2a6Ki_2;
+    static const signed int _X2a7Ki_2;
+    signed int *_X2p1Pi_2;
+    signed int *_X2p2Pi_2;
+    struct s1;
+    struct s2 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S2s2_autogen___2(struct s2 *_X4_dstS2s2_2){
+        {
+            ((void)((*_X4_dstS2s2_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S2s2S2s2_autogen___2(struct s2 *_X4_dstS2s2_2, struct s2 _X4_srcS2s2_2){
+        {
+            ((void)((*_X4_dstS2s2_2)._X1ii_2=_X4_srcS2s2_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S2s2_autogen___2(struct s2 *_X4_dstS2s2_2){
+        {
+            ((void)((*_X4_dstS2s2_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct s2 _X16_operator_assignFS2s2_S2s2S2s2_autogen___2(struct s2 *_X4_dstS2s2_2, struct s2 _X4_srcS2s2_2){
+        struct s2 _X4_retS2s2_2;
+        {
+            ((void)((*_X4_dstS2s2_2)._X1ii_2=_X4_srcS2s2_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S2s2S2s2_autogen___2((&_X4_retS2s2_2), (*_X4_dstS2s2_2)));
+        }
+
+        return _X4_retS2s2_2;
+    }
+    inline void _X12_constructorFv_S2s2i_autogen___2(struct s2 *_X4_dstS2s2_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS2s2_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    struct s3 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S2s3_autogen___2(struct s3 *_X4_dstS2s3_2){
+        {
+            ((void)((*_X4_dstS2s3_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S2s3S2s3_autogen___2(struct s3 *_X4_dstS2s3_2, struct s3 _X4_srcS2s3_2){
+        {
+            ((void)((*_X4_dstS2s3_2)._X1ii_2=_X4_srcS2s3_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S2s3_autogen___2(struct s3 *_X4_dstS2s3_2){
+        {
+            ((void)((*_X4_dstS2s3_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct s3 _X16_operator_assignFS2s3_S2s3S2s3_autogen___2(struct s3 *_X4_dstS2s3_2, struct s3 _X4_srcS2s3_2){
+        struct s3 _X4_retS2s3_2;
+        {
+            ((void)((*_X4_dstS2s3_2)._X1ii_2=_X4_srcS2s3_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S2s3S2s3_autogen___2((&_X4_retS2s3_2), (*_X4_dstS2s3_2)));
+        }
+
+        return _X4_retS2s3_2;
+    }
+    inline void _X12_constructorFv_S2s3i_autogen___2(struct s3 *_X4_dstS2s3_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS2s3_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    struct s3 _X2x1S2s3_2;
+    struct s3 _X2y1S2s3_2;
+    struct s4 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S2s4_autogen___2(struct s4 *_X4_dstS2s4_2){
+        {
+            ((void)((*_X4_dstS2s4_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S2s4S2s4_autogen___2(struct s4 *_X4_dstS2s4_2, struct s4 _X4_srcS2s4_2){
+        {
+            ((void)((*_X4_dstS2s4_2)._X1ii_2=_X4_srcS2s4_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S2s4_autogen___2(struct s4 *_X4_dstS2s4_2){
+        {
+            ((void)((*_X4_dstS2s4_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct s4 _X16_operator_assignFS2s4_S2s4S2s4_autogen___2(struct s4 *_X4_dstS2s4_2, struct s4 _X4_srcS2s4_2){
+        struct s4 _X4_retS2s4_2;
+        {
+            ((void)((*_X4_dstS2s4_2)._X1ii_2=_X4_srcS2s4_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S2s4S2s4_autogen___2((&_X4_retS2s4_2), (*_X4_dstS2s4_2)));
+        }
+
+        return _X4_retS2s4_2;
+    }
+    inline void _X12_constructorFv_S2s4i_autogen___2(struct s4 *_X4_dstS2s4_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS2s4_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    struct s4 _X2x2S2s4_2;
+    struct s4 _X2y2S2s4_2;
+    const unsigned long int _array_dim0 = ((const unsigned long int )((unsigned long int )10));
+    signed int _X2m1A0i_2[((unsigned long int )_array_dim0)];
+    const unsigned long int _array_dim1 = ((const unsigned long int )((unsigned long int )10));
+    const unsigned long int _array_dim2 = ((const unsigned long int )((unsigned long int )10));
+    signed int _X2m2A0A0i_2[((unsigned long int )_array_dim1)][((unsigned long int )_array_dim2)];
+    const unsigned long int _array_dim3 = ((const unsigned long int )((unsigned long int )10));
+    const unsigned long int _array_dim4 = ((const unsigned long int )((unsigned long int )10));
+    signed int _X2m3A0A0i_2[((unsigned long int )_array_dim3)][((unsigned long int )_array_dim4)];
+    void _X4f128Fv_n__2(__int128 _X1in_2);
+    void _X4f128Fv_o__2(unsigned __int128 __anonymous_object0);
+    __int128 _X6i128_0n_2;
+    {
+        ((void)_X4f128Fv_n__2(_X6i128_0n_2));
+    }
+
+    unsigned __int128 _X6i128_1o_2;
+    {
+        ((void)_X4f128Fv_o__2(_X6i128_1o_2));
+    }
+
+    __int128 _X6i128_2n_2;
+    {
+        ((void)_X4f128Fv_n__2(_X6i128_2n_2));
+    }
+
+    unsigned __int128 _X6i128_3o_2;
+    {
+        ((void)_X4f128Fv_o__2(_X6i128_3o_2));
+    }
+
+    {
+        ((void)(_X12_retval_maini_1=0) /* ?{} */);
+    }
+
+    return _X12_retval_maini_1;
+}
+static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); }
+static inline signed int invoke_main(signed int argc, char **argv, char **envp);
+signed int _X13cfa_args_argci_1;
+char **_X13cfa_args_argvPPc_1;
+char **_X13cfa_args_envpPPc_1;
+signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){
+    __attribute__ ((unused)) signed int _X12_retval_maini_1;
+    {
+        ((void)(_X13cfa_args_argci_1=_X4argci_1));
+    }
+
+    {
+        ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1));
+    }
+
+    {
+        ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1));
+    }
+
+    {
+        signed int _tmp_cp_ret4;
+        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+    }
+
+    return _X12_retval_maini_1;
+}
Index: tests/.expect/manipulatorsInput.arm64.txt
===================================================================
--- tests/.expect/manipulatorsInput.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/manipulatorsInput.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,107 @@
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+a
+a
+-1
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+25
+-25
+42798
+1402432282
+1505850196993244515
+394749758663249135511342
+12935154696204706112391834394
+423859149128410414395372834994551
+13889016598639747063234935497057631587
+170141183460469231731687303715884105727
+-1
+1
+-1
+1234567890123456789
+-1234567890123456789
Index: tests/.expect/manipulatorsOutput3.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput3.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/manipulatorsOutput3.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,437 @@
+-1208907372870555465220095
+-1208907372870555465220095
++1208907372870555465220095
+
+base 2
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0X0000000000FFFF000000000000FFFF
+
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+
+base 8
+0000000123
+0000000123
+0377776000000000000000177777
+377776000000000000000177777
+                                         0123
+     0000000000000000000000000000000000000123
+000000000000000000000000000000000000000000123
+                 0377776000000000000000177777
+     0000000000000377776000000000000000177777
+000000000000000000377776000000000000000177777
+0123                                         X
+0377776000000000000000177777                 X
+05000000000000000000123                      X
+0000000000000000000000000000000000000123     X
+0000000000000377776000000000000000177777     X
+0000000000000000005000000000000000000123     X
+000000000000000000000000000000000000000000123X
+000000000000000000377776000000000000000177777X
+000000000000000000000005000000000000000000123X
+0000000123X
+0000000123X
+0000000123                              X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+0000000000000000000000000000000000000000001234567X
+03777777777777777777777777777777777776543211Y
+03777777777777777777777777777777777776543211Y
+
+0113166530623714330436400000
+          0113166530623714330436400000
+            0113166530623714330436400000
+  00000000000113166530623714330436400000
+          000113166530623714330436400000
+  00000000000113166530623714330436400000
+
+base 10
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+              355272055279601493606400
+               355272055279601493606400
+                355272055279601493606400
+          000000355272055279601493606400
+  00000000000000355272055279601493606400
+0000000000000000355272055279601493606400
+0000000000000000355272055279601493606400
++000000000000000355272055279601493606400
+
+base 16
+0xffff000000000000ffff
+0XFFFF000000000000FFFF
+ffff000000000000ffff
+                       0XFFFF000000000000FFFF
+   0X00000000000000000000FFFF000000000000FFFF
+0X00000000000000000000000000000FFFF000000000000FFFF
+0XFFFF000000000000FFFF                       X
+0X00000000000000000000FFFF000000000000FFFF   X
+0X00000000000000000000000000000FFFF000000000000FFFFX
+
+0X4B3B56327CC6C47A0000
+                0X4B3B56327CC6C47A0000
+                  0X4B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+        0X00000000004B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+
+extras
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0113166530623714330436400000
+0x4b3b56327cc6c47a0000
+0X4B3B56327CC6C47A0000
+1001011001110110101011000110010011111001100011011000100011110100000000000000000 113166530623714330436400000 4b3b56327cc6c47a0000
++355272055279601493606400
+-355272055279601493606400
+-355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400                X
++355272055279601493606400               X
++0000000000000000355272055279601493606400X
++0000000000000000000000000000000123456789X
+-1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
+-999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
+-998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
+-997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
+-996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
+-995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
+-994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
+-993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
+-992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
+-991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
+
+
+-990                                                                                                                                                            
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                            
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                                                                                                                                                            
+0xfffffffffffffffffffffffffffffc22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+-990                                                                                                                                                            
+0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+22763282186957586699822X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+         000000000004644000000000000000013056X
+000000000004644000000000000000013056         X
+0000000000000000000004644000000000000000013056X
+0000000000000000000004644000000000000000013056X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+0004644000000000000000013056                 X
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0000003777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0123                                         X
+04644000000000000000013056                   X
+0000000000000000000000000000000000000123     X
+0000000000000004644000000000000000013056     X
+000000000000000000000000000000000000000000123X
+000000000000000000004644000000000000000013056X
+0000000123                              X
+04644000000000000000013056              X
+03777777777777777773133777777777777777764722X
+0000000000000000000000000000000000000123X
+0000000000000004644000000000000000013056X
+03777777777777777773133777777777777777764722X
+1777777777777777777777
+2777777777777777777777
+3777777777777777777777
+4777777777777777777777
+5777777777777777777777
+6777777777777777777777
+7777777777777777777777
+10777777777777777777777
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
+0B011111111111111110000000000000000000000000000000000000000000000001111111111111111            
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
+0B0000000000000000000000000000000000000000000000001111111111111111  
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0X000000000000000000000FFFF
+   0X000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+05000000000000000000123
+                      05000000000000000000123
+05000000000000000000123                      X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+-10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
+-9                   0xfffffffffffffffffffffffffffffff7 03777777777777777777777777777777777777777767
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110111
+-8                   0xfffffffffffffffffffffffffffffff8 03777777777777777777777777777777777777777770
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000
+-7                   0xfffffffffffffffffffffffffffffff9 03777777777777777777777777777777777777777771
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001
+-6                   0xfffffffffffffffffffffffffffffffa 03777777777777777777777777777777777777777772
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+-5                   0xfffffffffffffffffffffffffffffffb 03777777777777777777777777777777777777777773
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+-4                   0xfffffffffffffffffffffffffffffffc 03777777777777777777777777777777777777777774
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+-3                   0xfffffffffffffffffffffffffffffffd 03777777777777777777777777777777777777777775
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+-2                   0xfffffffffffffffffffffffffffffffe 03777777777777777777777777777777777777777776
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+-1                   0xffffffffffffffffffffffffffffffff 03777777777777777777777777777777777777777777
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
++0                   0                    0                   
+0b0                 
++1                   0x1                  01                  
+0b1                 
++2                   0x2                  02                  
+0b10                
++3                   0x3                  03                  
+0b11                
++4                   0x4                  04                  
+0b100               
++5                   0x5                  05                  
+0b101               
++6                   0x6                  06                  
+0b110               
++7                   0x7                  07                  
+0b111               
++8                   0x8                  010                 
+0b1000              
++9                   0x9                  011                 
+0b1001              
++10                  0xa                  012                 
+0b1010              
++11                  0xb                  013                 
+0b1011              
++12                  0xc                  014                 
+0b1100              
++13                  0xd                  015                 
+0b1101              
++14                  0xe                  016                 
+0b1110              
+
+170141183460469231731687303715884105722
++170141183460469231731687303715884105722       0x7ffffffffffffffffffffffffffffffa            01777777777777777777777777777777777777777772 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+170141183460469231731687303715884105723
++170141183460469231731687303715884105723       0x7ffffffffffffffffffffffffffffffb            01777777777777777777777777777777777777777773 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+170141183460469231731687303715884105724
++170141183460469231731687303715884105724       0x7ffffffffffffffffffffffffffffffc            01777777777777777777777777777777777777777774 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+170141183460469231731687303715884105725
++170141183460469231731687303715884105725       0x7ffffffffffffffffffffffffffffffd            01777777777777777777777777777777777777777775 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+170141183460469231731687303715884105726
++170141183460469231731687303715884105726       0x7ffffffffffffffffffffffffffffffe            01777777777777777777777777777777777777777776 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+170141183460469231731687303715884105727
++170141183460469231731687303715884105727       0x7fffffffffffffffffffffffffffffff            01777777777777777777777777777777777777777777 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728       0x80000000000000000000000000000000            02000000000000000000000000000000000000000000 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727       0x80000000000000000000000000000001            02000000000000000000000000000000000000000001 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+-170141183460469231731687303715884105726
+-170141183460469231731687303715884105726       0x80000000000000000000000000000002            02000000000000000000000000000000000000000002 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
+-170141183460469231731687303715884105725
+-170141183460469231731687303715884105725       0x80000000000000000000000000000003            02000000000000000000000000000000000000000003 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
+-170141183460469231731687303715884105724
+-170141183460469231731687303715884105724       0x80000000000000000000000000000004            02000000000000000000000000000000000000000004 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
+-170141183460469231731687303715884105723
+-170141183460469231731687303715884105723       0x80000000000000000000000000000005            02000000000000000000000000000000000000000005 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101
+-170141183460469231731687303715884105722
+-170141183460469231731687303715884105722       0x80000000000000000000000000000006            02000000000000000000000000000000000000000006 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110
+-170141183460469231731687303715884105721
+-170141183460469231731687303715884105721       0x80000000000000000000000000000007            02000000000000000000000000000000000000000007 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111
+-170141183460469231731687303715884105720
+-170141183460469231731687303715884105720       0x80000000000000000000000000000008            02000000000000000000000000000000000000000010 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000
+-170141183460469231731687303715884105719
+-170141183460469231731687303715884105719       0x80000000000000000000000000000009            02000000000000000000000000000000000000000011 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001
+-170141183460469231731687303715884105718
+-170141183460469231731687303715884105718       0x8000000000000000000000000000000a            02000000000000000000000000000000000000000012 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010
+-170141183460469231731687303715884105717
+-170141183460469231731687303715884105717       0x8000000000000000000000000000000b            02000000000000000000000000000000000000000013 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011
+-170141183460469231731687303715884105716
+-170141183460469231731687303715884105716       0x8000000000000000000000000000000c            02000000000000000000000000000000000000000014 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100
+-170141183460469231731687303715884105715
+-170141183460469231731687303715884105715       0x8000000000000000000000000000000d            02000000000000000000000000000000000000000015 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101
+
+170141183460469231731687303715884105722
+170141183460469231731687303715884105723
+170141183460469231731687303715884105724
+170141183460469231731687303715884105725
+170141183460469231731687303715884105726
+170141183460469231731687303715884105727
+170141183460469231731687303715884105728
+170141183460469231731687303715884105729
+170141183460469231731687303715884105730
+170141183460469231731687303715884105731
+170141183460469231731687303715884105732
+170141183460469231731687303715884105733
+170141183460469231731687303715884105734
+170141183460469231731687303715884105735
+170141183460469231731687303715884105736
+170141183460469231731687303715884105737
+170141183460469231731687303715884105738
+170141183460469231731687303715884105739
+170141183460469231731687303715884105740
+170141183460469231731687303715884105741
+
+340282366920938463463374607431768211450
+340282366920938463463374607431768211451
+340282366920938463463374607431768211452
+340282366920938463463374607431768211453
+340282366920938463463374607431768211454
+340282366920938463463374607431768211455
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+0xfffffffffffffffffffe
+0xfffffffffffffffffffe
+
+binary
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111110
+0b11111111111111111111111111111111
+0b1111111111111111111111111111111111111111111111111111111111111111
+0b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0xa2345678
+0xa2345678a7654321
+0xa2345678a7654321c2345678
+0xa2345678a7654321c2345678d7554321
+
+octal
+0377777777777777777777777776
+0123456
+012345665432
+01234566543234567
+0123456654323456776543
+012345665432345677654323456
+01234566543234567765432345665432
+0123456654323456776543234566543234567
+012345665432345677654323456654323456776543
+01111111111111111111
+011111111111111111111
+0111111111111111111111
+
+decimal
+1208925819614629174706174
+42798 0123456
+1402432282 012345665432
+45954901031287 01234566543234567
+1505850196993244515 0123456654323456776543
+394749758663249135511342 0123456665432345677654323456
+12935154696204706112391834394 012345665432234567765432345665432
+423859149128410414395372834994551 01234566543234567776543234566543234567
+13889016598639747063234935497057631587 0123456654323456776543323456654323456776543
+1234567890123456789
+1234567890123456789
+170141183460469231731687303715884105727
+340282366920938463463374607431768211455
+9223372036854775808
+340282366920938463463374607431768211455
+170141183460469231731687303715884105727
+
+hexadecimal
+0xfffffffffffffffffffe
+0xffffffff
+0xffffffffffffffff
+0xffffffffffffffffffffffff
+0xffffffffffffffffffffffffffffffff
+0xa2345678
+0xa2345678b7654321
+0xa2345678b7654321c2345678
+0xa2345678b7654321c2345678d7654321
+
Index: tests/.expect/math4.arm64.txt
===================================================================
--- tests/.expect/math4.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/.expect/math4.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,1196 @@
+
+floor
+
+signed char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(-128, -128) = -128, floor(-126, -128) = 0, floor(126, -128) = 0
+
+unsigned char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(253, 1) = 253
+floor(2, 2) = 2, floor(4, 2) = 4, floor(252, 2) = 252
+floor(4, 4) = 4, floor(6, 4) = 4, floor(250, 4) = 248
+floor(8, 8) = 8, floor(10, 8) = 8, floor(246, 8) = 240
+floor(16, 16) = 16, floor(18, 16) = 16, floor(238, 16) = 224
+floor(32, 32) = 32, floor(34, 32) = 32, floor(222, 32) = 192
+floor(64, 64) = 64, floor(66, 64) = 64, floor(190, 64) = 128
+floor(128, 128) = 128, floor(130, 128) = 128, floor(126, 128) = 0
+
+short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(-32768, -32768) = -32768, floor(-32766, -32768) = 0, floor(32766, -32768) = 0
+
+unsigned short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(65533, 1) = 65533
+floor(2, 2) = 2, floor(4, 2) = 4, floor(65532, 2) = 65532
+floor(4, 4) = 4, floor(6, 4) = 4, floor(65530, 4) = 65528
+floor(8, 8) = 8, floor(10, 8) = 8, floor(65526, 8) = 65520
+floor(16, 16) = 16, floor(18, 16) = 16, floor(65518, 16) = 65504
+floor(32, 32) = 32, floor(34, 32) = 32, floor(65502, 32) = 65472
+floor(64, 64) = 64, floor(66, 64) = 64, floor(65470, 64) = 65408
+floor(128, 128) = 128, floor(130, 128) = 128, floor(65406, 128) = 65280
+floor(256, 256) = 256, floor(258, 256) = 256, floor(65278, 256) = 65024
+floor(512, 512) = 512, floor(514, 512) = 512, floor(65022, 512) = 64512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(64510, 1024) = 63488
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(63486, 2048) = 61440
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(61438, 4096) = 57344
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(57342, 8192) = 49152
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(49150, 16384) = 32768
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(32766, 32768) = 0
+
+int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
+
+unsigned int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
+floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
+floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
+floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
+floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
+floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
+floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
+floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
+floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
+floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
+
+long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
+floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
+floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
+floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
+floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
+floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
+floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
+floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
+floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
+floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
+
+long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
+floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
+floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
+floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
+floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
+floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
+floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
+floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
+floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
+floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
+
+
+ceiling_div
+
+signed char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 0
+
+unsigned char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 253
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 126
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 63
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 31
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 15
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 7
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 3
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 1
+
+short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 0
+
+unsigned short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 65533
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 32766
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 16383
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 8191
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 4095
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 2047
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 1023
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 511
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 255
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 127
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 63
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 31
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 15
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 7
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 3
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 1
+
+int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
+
+long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
+ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
+ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
+
+long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
+ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
+ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
+
+
+ceiling
+
+signed char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 0
+ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 0
+
+unsigned char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 252
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 252
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 248
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(238, 16) = 240
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 224
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 192
+ceiling(128, 128) = 128, ceiling(130, 128) = 0, ceiling(126, 128) = 128
+
+short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 0
+ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 0
+
+unsigned short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 65532
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 65532
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 65528
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(65518, 16) = 65520
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 65504
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 65472
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(65406, 128) = 65408
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 65280
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 65024
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 64512
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 63488
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 61440
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 57344
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 49152
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 32768
+
+int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
+ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
+
+long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
+ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
+ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+floor:1. 1. 1.
+ceil:2. 2. 2.
+trunc:3. 3. 3.
+rint:2. 2. 2.
+rint:2 2 2
+rint:2 2 2
+lrint:2 2 2
+llrint:2 2 2
+nearbyint:4. 4. 4.
+round:2. 2. 2.
+round:2 2 2
+round:2 2 2
+lround:2 2 2
+llround:2 2 2
+copysign:-1. -1. -1.
+frexp:0.5 3 0.5 3 0.5 3
+ldexp:8. 8. 8.
+modf:2. 0.3 2. 0.3 2. 0.3
+modf:2., 0.3 2., 0.3 2., 0.3
+nextafter:2. 2. 2.
+nexttoward:2. 2. 2.
+scalbn:16. 16. 16.
+scalbln:16. 16. 16.
Index: tests/errors/.expect/completeType.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
+++ tests/errors/.expect/completeType.arm64.txt	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -0,0 +1,141 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          intrinsic pointer to instance of type DT (not function type)
+        ... returning
+          _retval__operator_deref: reference to instance of type DT (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
+      ... to arguments
+        Variable Expression: x: pointer to instance of struct A with body 0
+
+    ... to: nothing
+  (types:
+    void 
+  )
+  Environment: -> instance of struct A with body 0 (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          intrinsic pointer to instance of type DT (not function type)
+        ... returning
+          _retval__operator_deref: reference to instance of type DT (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
+      ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body 1
+
+    ... to: nothing
+  (types:
+    void 
+  )
+  Environment: -> instance of struct B with body 1 (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: quux
+...to:
+  Name: y
+
+errors/completeType.cfa:72:1 error: No alternatives with satisfiable assertions for Applying untyped:
+  Name: baz
+...to:
+  Name: z
+
+      Unsatisfiable alternative:
+Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of
+            Variable Expression: baz: forall
+              T: sized data type
+              ... with assertions
+                ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  _retval__operator_assign: instance of type T (not function type)
+                  ... with attributes:
+                    Attribute with name: unused
+
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+
+              function
+            ... with parameters
+              pointer to instance of type T (not function type)
+            ... returning nothing
+
+          ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+
+        (types:
+          void 
+        )
+        Environment: -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+?=?: pointer to function
+        ... with parameters
+          reference to instance of type _110_0_T (not function type)
+          instance of type _110_0_T (not function type)
+        ... returning
+          _retval__operator_assign: instance of type _110_0_T (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 8ca26d56422ac125adf3f53367db20fcad77c181)
+++ tests/pybin/tools.py	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -73,5 +73,5 @@
 					)
 
-					return proc.returncode, out.decode("utf-8") if out else None
+					return proc.returncode, out.decode("latin-1") if out else None
 				except subprocess.TimeoutExpired:
 					if settings.timeout2gdb:
Index: tests/test.py
===================================================================
--- tests/test.py	(revision 8ca26d56422ac125adf3f53367db20fcad77c181)
+++ tests/test.py	(revision 9d264e18fc76fe0f9f57293b506d3984d46e5d7d)
@@ -99,10 +99,12 @@
 
 					# print a warning if it users didn't ask for a specific architecture
-					if not options.arch:
+					found_arch = [f.arch for f in found if f.arch]
+					if found_arch and not options.arch:
 						print('WARNING: "%s", test has architecture specific expected files but --arch was not specified, regenerating only for current host' % testname, file=sys.stderr)
 
 
 					# print a warning if it users didn't ask for a specific ast version
-					if not options.ast:
+					found_astv = [f.astv for f in found if f.astv]
+					if found_astv and not options.ast:
 						print('WARNING: "%s", test has ast version specific expected files but --ast was not specified, regenerating only for current ast' % testname, file=sys.stderr)
 
