Index: Jenkins/FullBuild
===================================================================
--- Jenkins/FullBuild	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ Jenkins/FullBuild	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -18,7 +18,6 @@
 
 				parallel (
-					// gcc_08_x86_new: { trigger_build( 'gcc-8',   'x86' ) },
-					// gcc_07_x86_new: { trigger_build( 'gcc-7',   'x86' ) },
-					// gcc_06_x86_new: { trigger_build( 'gcc-6',   'x86' ) },
+					gcc_08_x86_new: { trigger_build( 'gcc-10',  'x86' ) },
+					gcc_07_x86_new: { trigger_build( 'gcc-9',   'x86' ) },
 					gcc_10_x64_new: { trigger_build( 'gcc-10',  'x64' ) },
 					gcc_09_x64_new: { trigger_build( 'gcc-9',   'x64' ) },
Index: Jenkinsfile
===================================================================
--- Jenkinsfile	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ Jenkinsfile	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -150,20 +150,17 @@
 		sh 'ulimit -a'
 
-		Tools.BuildStage('Test: short', !Settings.RunAllTests) {
+		jopt = '-j $(nproc)'
+
+		Tools.BuildStage('Test: Debug', true) {
 			dir (BuildDir) {
 				//Run the tests from the tests directory
-				sh "make --no-print-directory -C tests archiveerrors=${BuildDir}/tests/crashes/short"
+				sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""
 			}
 		}
 
-		Tools.BuildStage('Test: full', Settings.RunAllTests) {
+		Tools.BuildStage('Test: Release', Settings.RunAllTests) {
 			dir (BuildDir) {
-					jopt = '-j $(nproc)'
-					if( Settings.Architecture.node == 'x86' ) {
-						jopt = '-j2'
-					}
-					//Run the tests from the tests directory
-					sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""
-					sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no  archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""
+				//Run the tests from the tests directory
+				sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no  archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""
 			}
 		}
@@ -384,5 +381,5 @@
 				],												\
 				[$class: 'BooleanParameterDefinition',  						\
-					description: 'If false, only the quick test suite is ran', 		\
+					description: 'If false, the test suite is only ran in debug', 	\
 					name: 'RunAllTests', 								\
 					defaultValue: false,  								\
Index: benchmark/basic/tls_fetch_add.c
===================================================================
--- benchmark/basic/tls_fetch_add.c	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ benchmark/basic/tls_fetch_add.c	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -7,7 +7,5 @@
 // thread_local Boolean. This means the entire protocol is just to "mov" instructions making it extremely cheap.
 
-#define thread_local _Thread_local
-
-thread_local volatile bool value;
+__thread volatile bool value;
 
 void __attribute__((noinline)) do_call() {
Index: benchmark/io/http/worker.cfa
===================================================================
--- benchmark/io/http/worker.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ benchmark/io/http/worker.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -145,8 +145,8 @@
 		if( options.log ) mutex(sout) sout | "=== Accepting connection ===";
 		int fd = cfa_accept4( this.sockfd, this.[addr, addrlen, flags], CFA_IO_LAZY );
-		if(fd < 0) {
+		if(fd <= 0) {
 			if( errno == ECONNABORTED ) break;
 			if( this.done && (errno == EINVAL || errno == EBADF) ) break;
-			abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) );
+			abort( "accept error %d: (%d) %s\n", fd, (int)errno, strerror(errno) );
 		}
 		if(this.done) break;
Index: configure.ac
===================================================================
--- configure.ac	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ configure.ac	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -24,18 +24,4 @@
 #Trasforming cc1 will break compilation
 M4CFA_PROGRAM_NAME
-
-#==============================================================================
-# New AST toggling support
-AH_TEMPLATE([CFA_USE_NEW_AST],[Sets whether or not to use the new-ast, this is adefault value and can be overrided by --old-ast and --new-ast])
-DEFAULT_NEW_AST="True"
-AC_ARG_ENABLE(new-ast,
-	[  --enable-new-ast     whether or not to use new ast as the default AST algorithm],
-	[case "${enableval}" in
-		yes) newast=true ; DEFAULT_NEW_AST="True"  ;;
-		no)  newast=false; DEFAULT_NEW_AST="False" ;;
-		*) AC_MSG_ERROR([bad value ${enableval} for --enable-new-ast]) ;;
-	esac],[newast=true])
-AC_DEFINE_UNQUOTED([CFA_USE_NEW_AST], $newast)
-AC_SUBST(DEFAULT_NEW_AST)
 
 #==============================================================================
@@ -139,8 +125,4 @@
 		\'--enable-gprofiler=*) ;;
 		\'--disable-gprofiler) ;;
-
-		# skip the target hosts
-		\'--enable-new-ast=*) ;;
-		\'--disable-new-ast) ;;
 
 		# skip this, it only causes problems
Index: doc/LaTeXmacros/lstlang.sty
===================================================================
--- doc/LaTeXmacros/lstlang.sty	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/LaTeXmacros/lstlang.sty	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -118,5 +118,5 @@
 		inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or,
 		otype, restrict, __restrict, __restrict__, recover, report, __signed, __signed__, _Static_assert, suspend,
-		thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
+		thread, __thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
 		virtual, __volatile, __volatile__, waitfor, when, with, zero_t,
     },
Index: doc/bibliography/pl.bib
===================================================================
--- doc/bibliography/pl.bib	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/bibliography/pl.bib	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -3757,4 +3757,15 @@
     series	= {Innovative Technology},
     year	= 1991,
+}
+
+@mastersthesis{Zulfiqar22,
+    keywords	= {Cforall, memory allocation, threading},
+    contributer	= {pabuhr@plg},
+    author	= {Mubeen Zulfiqar},
+    title	= {High-Performance Concurrent Memory Allocation},
+    school	= {School of Computer Science, University of Waterloo},
+    year	= 2022,
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    note	= {\href{https://uwspace.uwaterloo.ca/handle/10012/18329}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/18329}},
 }
 
Index: doc/proposals/iterators.md
===================================================================
--- doc/proposals/iterators.md	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/proposals/iterators.md	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -58,4 +58,8 @@
 returns a range object, which can be used as any other type.
 
+It might not cover every single case with the same syntax (the `@` syntax may
+not translate to operators very well), but should be able to maintain every
+option with some library range.
+
 Library Enhancements
 --------------------
@@ -82,12 +86,23 @@
 ------------
 Python has a robust iterator tool set. It also has a `range` built-in which
-does many of the same things as the special for loops.
+does many of the same things as the special for loops (the finite and
+half-open ranges).
+
+In addition, it has many dedicated iterator constructors and transformers,
+and many containers can both produce and be constructed from iterators.
 
 +   https://docs.python.org/3/reference/datamodel.html#object.__iter__
 +   https://docs.python.org/3/library/functions.html#func-range
 
-C++ has many iterator tools at well, except for the fact it's `iterators` are
+C++ has many iterator tools at well, except for the fact it's "iterators" are
 not what are usually called iterators (as above) but rather an abstraction of
-pointers.
+pointers. The notable missing feature is that a single iterator has no
+concept of being empty or not, instead it must be compared to the end
+iterator.
+
+However, C++ ranges have an interface much more similar to iterators.
+They do appear to be a wrapper around the "pointer" iterators.
+
++   https://en.cppreference.com/w/cpp/ranges
 
 Rust also has a imperative implementation of a functional style of iterators,
Index: doc/theses/thierry_delisle_PhD/.gitignore
===================================================================
--- doc/theses/thierry_delisle_PhD/.gitignore	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/.gitignore	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -20,4 +20,5 @@
 thesis/fig/*.fig.bak
 thesis/thesis.pdf
+thesis/thesis.tty
 thesis/thesis.ps
 
Index: doc/theses/thierry_delisle_PhD/thesis/Makefile
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/Makefile	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/Makefile	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -11,4 +11,5 @@
 LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
+DeTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && detex -r
 
 MAKEFLAGS = --no-print-directory # --silent
@@ -144,4 +145,7 @@
 	${LaTeX} $<
 
+%.tty: build/%.dvi
+	dvi2tty -w132 $< > $@
+
 ## Define the default recipes.
 
@@ -190,11 +194,21 @@
 churn_jax_ops_FLAGS = --MaxY=50000000
 churn_low_jax_ops_FLAGS = --MaxY=50000000
-churn_jax_ns_FLAGS = --MaxY=20000
-churn_low_jax_ns_FLAGS = --MaxY=20000
+churn_jax_ns_FLAGS = --MaxY=10000
+churn_low_jax_ns_FLAGS = --MaxY=10000
 
 churn_nasus_ops_FLAGS = --MaxY=75000000
 churn_low_nasus_ops_FLAGS = --MaxY=75000000
-churn_nasus_ns_FLAGS = --MaxY=20000
-churn_low_nasus_ns_FLAGS = --MaxY=20000
+churn_nasus_ns_FLAGS = --MaxY=5000
+churn_low_nasus_ns_FLAGS = --MaxY=5000
+
+locality_share_jax_ops_FLAGS = --MaxY=40000000
+locality_noshare_jax_ops_FLAGS = --MaxY=40000000
+locality_share_jax_ns_FLAGS = --MaxY=10000
+locality_noshare_jax_ns_FLAGS = --MaxY=10000
+
+locality_share_nasus_ops_FLAGS = --MaxY=60000000
+locality_noshare_nasus_ops_FLAGS = --MaxY=60000000
+locality_share_nasus_ns_FLAGS = --MaxY=10000
+locality_noshare_nasus_ns_FLAGS = --MaxY=10000
 
 build/result.%.ns.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build}
Index: doc/theses/thierry_delisle_PhD/thesis/glossary.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/glossary.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/glossary.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -14,28 +14,30 @@
 % Definitions
 
-\longnewglossaryentry{thrd}
-{name={thread}}
+\longnewglossaryentry{at}
+{name={Thread},text={thread}}
 {
-Threads created and managed inside user-space. Each thread has its own stack and its own thread of execution. User-level threads are invisible to the underlying operating system.
+A thread is an independent sequential execution path through a program. Each thread is scheduled for execution separately and independently from other threads. Systems offer one or more concrete implementations of this concept, \eg \gls{kthrd}, \gls{job}, task. However, most of the concepts of scheduling are independent of the particular implementations of the thread representation. For this reason, this document uses the term \gls{at} to mean any of these representation that meets the general definition.
 
-\textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
+\textit{Synonyms : Tasks, Jobs, Blocks.}
 }
 
 \longnewglossaryentry{proc}
-{name={processor}}
+{name={Processor},text={processor}}
 {
+Entity that executes a \gls{at}, \ie the resource being scheduled by the scheduler. In kernel-level threading, \ats are kernel threads and \procs are the \glspl{hthrd} on which the kernel threads are scheduled. In user-level threading and thread pools, \procs are kernel threads.
 
+\textit{Synonyms : Server, Worker.}
 }
 
 \longnewglossaryentry{rQ}
-{name={ready-queue}}
+{name={Ready Queue}, text={ready-queue}}
 {
-
+Data structure holding \ats that are ready to \glslink{atrun}{run}. Often a \glsxtrshort{fifo} queue for fairness, but can take many different forms, \eg binary tree and priority queue are also common.
 }
 
 \longnewglossaryentry{uthrding}
-{name={user-level threading}}
+{name={User-Level Threading},text={user-level threading}}
 {
-
+Threading model where a scheduler runs in users space and maps threads managed and created inside the user-space onto \glspl{kthrd}.
 
 \textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
@@ -43,7 +45,7 @@
 
 \longnewglossaryentry{rmr}
-{name={remote memory reference}}
+{name={Remote Memory Reference},text={remote memory reference}}
 {
-
+A memory reference to an address not in the current \gls{hthrd}'s cache is a remote reference. Memory references that \emph{are} in the current \gls{hthrd}'s cache is a \newterm{local} memory reference. For example, a cache line that must be updated from the any cache on another socket, or from RAM in a \glsxtrshort{numa} context.
 }
 
@@ -51,15 +53,15 @@
 
 \longnewglossaryentry{hthrd}
-{name={hardware thread}}
+{name={Hardware Threading},text={hardware thread}}
 {
-Threads representing the underlying hardware directly, \eg the CPU core, or hyper-thread if the hardware supports multiple threads of execution per core. The number of hardware threads is considered to be always fixed to a specific number determined by the hardware.
+Threads representing the underlying hardware, \eg a CPU core or hyper-thread, if the hardware supports multiple threads of execution per core. The number of hardware threads present is fixed on any given computer.
 
-\textit{Synonyms : }
+\textit{Synonyms : Core, Hyper-Thread, Processing Unit, CPU.}
 }
 
 \longnewglossaryentry{kthrd}
-{name={kernel-level thread}}
+{name={Kernel-Level Thread},text={kernel-level thread}}
 {
-Threads created and managed inside kernel-space. Each thread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system.
+Threads created and managed inside kernel space. Each kernel thread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system.
 
 \textit{Synonyms : OS threads, Hardware threads, Physical threads.}
@@ -67,7 +69,7 @@
 
 \longnewglossaryentry{fiber}
-{name={fiber}}
+{name={Fiber},text={fiber}}
 {
-Fibers are non-preemptive user-level threads. They share most of the caracteristics of user-level threads except that they cannot be preempted by another fiber.
+Fibers are non-preemptive user-level threads. They share most of the characteristics of user-level threads except that they cannot be preempted by another fiber.
 
 \textit{Synonyms : Tasks.}
@@ -75,5 +77,5 @@
 
 \longnewglossaryentry{job}
-{name={job}}
+{name={Job},text={job}}
 {
 Unit of work, often sent to a thread pool or worker pool to be executed. Has neither its own stack nor its own thread of execution.
@@ -83,13 +85,13 @@
 
 \longnewglossaryentry{pool}
-{name={thread-pool}}
+{name={Thread Pool},text={thread-pool}}
 {
-Group of homogeneuous threads that loop executing units of works after another.
+Group of homogeneous threads that loop executing units of works. Often executing \glspl{jobs}.
 
-\textit{Synonyms : }
+\textit{Synonyms : Executor.}
 }
 
 \longnewglossaryentry{preemption}
-{name={preemption}}
+{name={Preemption},text={preemption}}
 {
 Involuntary context switch imposed on threads at a given rate.
@@ -98,18 +100,10 @@
 }
 
-
-
-\longnewglossaryentry{at}
-{name={task}}
-{
-Abstract object representing an unit of work. Systems will offer one or more concrete implementations of this concept (\eg \gls{kthrd}, \gls{job}), however, most of the concept of schedulings are independent of the particular implementations of the work representation. For this reason, this document use the term \Gls{at} to mean any representation and not one in particular.
-}
-
 \longnewglossaryentry{atsched}
 {name={Scheduling a \gls{at}}}
 {
-Scheduling an \gls{at} refers to the act of notifying the scheduler that a task is ready to be ran. When representing the scheduler as a queue of tasks, scheduling is the act of pushing a task onto the end of the queue. This doesn't necesserily means the task will ever be allocated CPU time (\gls{atrun}), for example, if the system terminates abruptly, scheduled \glspl{at} will probably never run.
+Scheduling a \at refers to notifying the scheduler that a \at is ready to run. When representing the scheduler as a queue of \ats, scheduling is the act of pushing a \at onto the end of the queue. This operation does not necessarily mean the \at is guaranteed CPU time (\gls{atrun}), \eg if the program terminates abruptly, scheduled \glspl{at} never run.
 
-\textit{Synonyms : None.}
+\textit{Synonyms : Unparking.}
 }
 
@@ -117,5 +111,5 @@
 {name={Running a \gls{at}}}
 {
-Running an \gls{at} refers to the act of allocating CPU time to a task that is ready to run. When representing the scheduler as a queue of tasks, running is the act of poping a task from the front of the queue and putting it onto a \gls{proc}. The \gls{at} can than accomplish some or all of the work it is programmed to do.
+Running a \at refers to allocating CPU time to a \at that is ready to run. When representing the scheduler as a queue of \ats, running is the act of popping a \at from the front of the queue and putting it onto a \gls{proc}. The \gls{at} can then accomplish some or all of the work it is programmed to do.
 
 \textit{Synonyms : None.}
@@ -123,7 +117,7 @@
 
 \longnewglossaryentry{atmig}
-{name={migration of \gls{at}}}
+{name={\Glspl{at} Migration}}
 {
-Migration refers to the idea of an \gls{at} running on a different worker/processor than the last time it was run. It is generally preferable to minimise migration as it incurs cost but any load balancing among workers requires some amount of migration.
+Migration refers to the idea of an \gls{at} running on a different \proc than the last time it was run. It is generally preferable to minimize migration as it incurs cost but any load balancing among \proc requires some amount of migration.
 
 \textit{Synonyms : None.}
@@ -131,5 +125,5 @@
 
 \longnewglossaryentry{atpass}
-{name={overtaking \gls{at}}}
+{name={Overtaking \gls{at}}}
 {
 When representing the scheduler as a queue of \glspl{at}, overtaking is the act breaking the FIFO-ness of the queue by moving a \gls{at} in front of some other \gls{at} when it arrived after. This remains true for schedulers that do not use a FIFO queue, when the order in which the \glspl{at} are \glslink{atsched}{scheduled} and \glslink{atrun}{run} in a different order. A \gls{at} is said to \emph{overtake} another if it is run \emph{before} but was \emph{scheduled} after the other \gls{at}.
@@ -139,9 +133,9 @@
 
 \longnewglossaryentry{atblock}
-{name={Blocking an \gls{at}}}
+{name={\Gls{at} Blocking}}
 {
-Blocking an abstract task refers to the act of taking a task that us running on a CPU off the CPU. Unless no other task is ready, this action is generally immediately followed by running an other task.
+\Gls{at} blocking means taking a running \at off a CPU. Unless no other \at is ready, this action is immediately followed by running another \at.
 
-\textit{Synonyms : None.}
+\textit{Synonyms : Parking.}
 }
 
@@ -149,5 +143,5 @@
 {name={Running to completion}}
 {
-Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given task.
+Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given \at.
 
 See also \gls{atsched}, \gls{atrun}, \gls{atblock}
@@ -157,7 +151,9 @@
 
 \longnewglossaryentry{load}
-{name={System Load}}
+{name={System Load},text={load}}
 {
-The load is refers to the rate at which \glspl{at} are \glslink{atsched}{scheduled} versus the rate at which they are \glslink{atrun}{run}. When \glspl{at} are being scheduled faster than they are run, the system is considered \emph{overloaded}. When \glspl{at} are being run faster than they are scheduled, the system is considered \emph{underloaded}. Conrrespondingly, if both rates are equal, the system is considered \emph{loaded}. Note that the system is considered loaded only of the rate at which \glspl{at} are scheduled/run is non-zero, otherwise the system is empty, it has no load.
+The system load refers to the rate at which \glspl{at} are \glslink{atsched}{scheduled} versus the rate at which they are \glslink{atrun}{run}. When \glspl{at} are being scheduled faster than they are run, the system is considered \emph{overloaded}. When \glspl{at} are being run faster than they are scheduled, the system is considered \emph{underloaded}. Correspondingly, if both rates are equal, the system is considered \emph{loaded}. Note the system is considered loaded only if the rate at which \glspl{at} are scheduled/run is non-zero, otherwise the system is empty, \ie it has no load.
+
+\textit{Synonyms : CPU Load, System Load.}
 }
 
Index: doc/theses/thierry_delisle_PhD/thesis/local.bib
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/local.bib	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/local.bib	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -458,5 +458,62 @@
 }
 
-
+% Trevor's relaxed FIFO list
+@inproceedings{alistarh2018relaxed,
+  title={Relaxed schedulers can efficiently parallelize iterative algorithms},
+  author={Alistarh, Dan and Brown, Trevor and Kopinsky, Justin and Nadiradze, Giorgi},
+  booktitle={Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing},
+  pages={377--386},
+  year={2018}
+}
+
+@article{zhuravlev2012survey,
+  title={Survey of energy-cognizant scheduling techniques},
+  author={Zhuravlev, Sergey and Saez, Juan Carlos and Blagodurov, Sergey and Fedorova, Alexandra and Prieto, Manuel},
+  journal={IEEE Transactions on Parallel and Distributed Systems},
+  volume={24},
+  number={7},
+  pages={1447--1464},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{vikranth2013topology,
+  title={Topology aware task stealing for on-chip NUMA multi-core processors},
+  author={Vikranth, BRWACRR and Wankar, Rajeev and Rao, C Raghavendra},
+  journal={Procedia Computer Science},
+  volume={18},
+  pages={379--388},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@inproceedings{min2011hierarchical,
+  title={Hierarchical work stealing on manycore clusters},
+  author={Min, Seung-Jai and Iancu, Costin and Yelick, Katherine},
+  booktitle={Fifth Conference on Partitioned Global Address Space Programming Models (PGAS11)},
+  volume={625},
+  year={2011},
+  organization={Citeseer}
+}
+
+@article{ribic2014energy,
+  title={Energy-efficient work-stealing language runtimes},
+  author={Ribic, Haris and Liu, Yu David},
+  journal={ACM SIGARCH Computer Architecture News},
+  volume={42},
+  number={1},
+  pages={513--528},
+  year={2014},
+  publisher={ACM New York, NY, USA}
+}
+
+@inproceedings{torng2016asymmetry,
+  title={Asymmetry-aware work-stealing runtimes},
+  author={Torng, Christopher and Wang, Moyang and Batten, Christopher},
+  booktitle={2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA)},
+  pages={40--52},
+  year={2016},
+  organization={IEEE}
+}
 
 % --------------------------------------------------
@@ -555,5 +612,12 @@
   title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide},
   organization = {Apple Inc.},
-  howPublish = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}}
+  note = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Darwin/\-Conceptual/\-KernelProgramming/\-scheduler/\-scheduler.html}}
+}
+
+@misc{MemcachedThreading,
+  author = {Oracle},
+  title = {MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide},
+  howpublished = {\href{https://docs.oracle.com/cd/E17952_01/mysql-5.6-en/ha-memcached-using-threads.html}{https://docs.oracle.com/\-cd/E17952\_01/\-mysql-5.6-en/\-ha-memcached-using-threads.html}},
+  note = "[Online; accessed 5-August-2022]"
 }
 
@@ -650,4 +714,10 @@
 }
 
+@misc{GITHUB:SchedulingBenchmarks,
+  title = {Scheduling Benchmarks},
+  author = {Thierry Delisle},
+  howpublished = {\href{https://github.com/cforall/SchedulingBenchmarks_PhD22}{https://\-github.com/\-cforall/\-SchedulingBenchmarks\_\-PhD22}},
+}
+
 % --------------------------------------------------
 % Tech documents
@@ -758,4 +828,11 @@
 }
 
+@manual{MAN:eventfd,
+  key        = "eventfd",
+  title      = "eventfd(2) Linux User's Manual",
+  year       = "2019",
+  month      = "MArch",
+}
+
 @manual{MAN:aio,
   key        = "aio",
@@ -763,4 +840,13 @@
   year       = "2019",
   month      = "March",
+}
+
+@manual{MAN:bash,
+  title   = {Bash Reference Manual},
+  author  = {Chet Ramey and Brian Fox},
+  year    = "2020",
+  month   = "December",
+  version = {5,1},
+  howpublished = {\href{https://www.gnu.org/software/bash/manual/bash.pdf}{https://\-www.gnu.org/\-software/\-bash/\-manual/\-bash.pdf}}
 }
 
@@ -774,4 +860,5 @@
 }
 
+
 % --------------------------------------------------
 % Wikipedia Entries
@@ -870,4 +957,12 @@
   howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
   note = "[Online; accessed 5-August-2022]"
+}
+
+@misc{wiki:htm,
+  author = "{Wikipedia contributors}",
+  title = "Transactional memory --- {W}ikipedia{,} The Free Encyclopedia",
+  year = "2022",
+  howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
+  note = "[Online; accessed 7-September-2022]"
 }
 
@@ -991,2 +1086,23 @@
   note = "[Online; accessed 5-August-2022]"
 }
+
+@article{reese2008nginx,
+    title	= {NGINX: the high-performance web server and reverse proxy},
+    author	= {Reese, Will},
+    journal	= {Linux Journal},
+    volume	= {2008},
+    number	= {173},
+    pages	= {2},
+    year	= {2008},
+    publisher	= {Belltown Media}
+}
+
+@phdthesis{Harji10,
+    author	= {Ashif Harji},
+    title	= {Performance Comparison of Uniprocessor and Multiprocessor Web Server Architectures},
+    school	= {University of Waterloo},
+    year	= 2010,
+    month	= feb,
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    note	= {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-5040/\-1/\-Harji\_thesis.pdf}},
+}
Index: c/theses/thierry_delisle_PhD/thesis/test.svg
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/test.svg	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,492 +1,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
-  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Created with matplotlib (https://matplotlib.org/) -->
-<svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
- </defs>
- <g id="figure_1">
-  <g id="patch_1">
-   <path d="M 0 345.6 
-L 460.8 345.6 
-L 460.8 0 
-L 0 0 
-z
-" style="fill:#ffffff;"/>
-  </g>
-  <g id="axes_1">
-   <g id="patch_2">
-    <path d="M 57.6 307.584 
-L 414.72 307.584 
-L 414.72 41.472 
-L 57.6 41.472 
-z
-" style="fill:#ffffff;"/>
-   </g>
-   <g id="PathCollection_1">
-    <defs>
-     <path d="M -3 3 
-L 3 -3 
-M -3 -3 
-L 3 3 
-" id="mb6fe696cd4" style="stroke:#0095e3;stroke-width:1.5;"/>
-    </defs>
-    <g clip-path="url(#pd400051835)">
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="127.853115" xlink:href="#mb6fe696cd4" y="238.969387"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="408.865574" xlink:href="#mb6fe696cd4" y="92.390403"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="57.6" xlink:href="#mb6fe696cd4" y="263.873925"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="127.853115" xlink:href="#mb6fe696cd4" y="234.646917"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="57.6" xlink:href="#mb6fe696cd4" y="263.692599"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="408.865574" xlink:href="#mb6fe696cd4" y="90.109534"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="408.865574" xlink:href="#mb6fe696cd4" y="85.824"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="127.853115" xlink:href="#mb6fe696cd4" y="237.910643"/>
-     <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="57.6" xlink:href="#mb6fe696cd4" y="263.37251"/>
-    </g>
-   </g>
-   <g id="PathCollection_2">
-    <defs>
-     <path d="M -3 3 
-L 3 -3 
-M -3 -3 
-L 3 3 
-" id="mb7a392378d" style="stroke:#006cb4;stroke-width:1.5;"/>
-    </defs>
-    <g clip-path="url(#pd400051835)">
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="408.865574" xlink:href="#mb7a392378d" y="160.001329"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="127.853115" xlink:href="#mb7a392378d" y="238.512735"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="127.853115" xlink:href="#mb7a392378d" y="238.265802"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="57.6" xlink:href="#mb7a392378d" y="256.021044"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="127.853115" xlink:href="#mb7a392378d" y="238.284474"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="408.865574" xlink:href="#mb7a392378d" y="159.821437"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="57.6" xlink:href="#mb7a392378d" y="256.956649"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="408.865574" xlink:href="#mb7a392378d" y="165.331574"/>
-     <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="57.6" xlink:href="#mb7a392378d" y="255.961851"/>
-    </g>
-   </g>
-   <g id="matplotlib.axis_1">
-    <g id="xtick_1">
-     <g id="line2d_1">
-      <path clip-path="url(#pd400051835)" d="M 57.6 307.584 
-L 57.6 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_2">
-      <defs>
-       <path d="M 0 0 
-L 0 3.5 
-" id="m9bee3d39da" style="stroke:#000000;stroke-width:0.8;"/>
-      </defs>
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_1">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 57.6, 322.182437)" x="57.6" y="322.182437">1</text>
-     </g>
-    </g>
-    <g id="xtick_2">
-     <g id="line2d_3">
-      <path clip-path="url(#pd400051835)" d="M 81.017705 307.584 
-L 81.017705 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_4">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="81.017705" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_2">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 81.017705, 322.182437)" x="81.017705" y="322.182437">2</text>
-     </g>
-    </g>
-    <g id="xtick_3">
-     <g id="line2d_5">
-      <path clip-path="url(#pd400051835)" d="M 104.43541 307.584 
-L 104.43541 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_6">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="104.43541" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_3">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 104.43541, 322.182437)" x="104.43541" y="322.182437">3</text>
-     </g>
-    </g>
-    <g id="xtick_4">
-     <g id="line2d_7">
-      <path clip-path="url(#pd400051835)" d="M 127.853115 307.584 
-L 127.853115 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_8">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="127.853115" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_4">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 127.853115, 322.182437)" x="127.853115" y="322.182437">4</text>
-     </g>
-    </g>
-    <g id="xtick_5">
-     <g id="line2d_9">
-      <path clip-path="url(#pd400051835)" d="M 151.27082 307.584 
-L 151.27082 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_10">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="151.27082" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_5">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 151.27082, 322.182437)" x="151.27082" y="322.182437">5</text>
-     </g>
-    </g>
-    <g id="xtick_6">
-     <g id="line2d_11">
-      <path clip-path="url(#pd400051835)" d="M 174.688525 307.584 
-L 174.688525 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_12">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="174.688525" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_6">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 174.688525, 322.182437)" x="174.688525" y="322.182437">6</text>
-     </g>
-    </g>
-    <g id="xtick_7">
-     <g id="line2d_13">
-      <path clip-path="url(#pd400051835)" d="M 198.10623 307.584 
-L 198.10623 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_14">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="198.10623" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_7">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 198.10623, 322.182437)" x="198.10623" y="322.182437">7</text>
-     </g>
-    </g>
-    <g id="xtick_8">
-     <g id="line2d_15">
-      <path clip-path="url(#pd400051835)" d="M 221.523934 307.584 
-L 221.523934 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_16">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="221.523934" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_8">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 221.523934, 322.182437)" x="221.523934" y="322.182437">8</text>
-     </g>
-    </g>
-    <g id="xtick_9">
-     <g id="line2d_17">
-      <path clip-path="url(#pd400051835)" d="M 244.941639 307.584 
-L 244.941639 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_18">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="244.941639" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_9">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 244.941639, 322.182437)" x="244.941639" y="322.182437">9</text>
-     </g>
-    </g>
-    <g id="xtick_10">
-     <g id="line2d_19">
-      <path clip-path="url(#pd400051835)" d="M 268.359344 307.584 
-L 268.359344 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_20">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="268.359344" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_10">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 268.359344, 322.182437)" x="268.359344" y="322.182437">10</text>
-     </g>
-    </g>
-    <g id="xtick_11">
-     <g id="line2d_21">
-      <path clip-path="url(#pd400051835)" d="M 291.777049 307.584 
-L 291.777049 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_22">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="291.777049" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_11">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 291.777049, 322.182437)" x="291.777049" y="322.182437">11</text>
-     </g>
-    </g>
-    <g id="xtick_12">
-     <g id="line2d_23">
-      <path clip-path="url(#pd400051835)" d="M 315.194754 307.584 
-L 315.194754 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_24">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="315.194754" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_12">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 315.194754, 322.182437)" x="315.194754" y="322.182437">12</text>
-     </g>
-    </g>
-    <g id="xtick_13">
-     <g id="line2d_25">
-      <path clip-path="url(#pd400051835)" d="M 338.612459 307.584 
-L 338.612459 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_26">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="338.612459" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_13">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 338.612459, 322.182437)" x="338.612459" y="322.182437">13</text>
-     </g>
-    </g>
-    <g id="xtick_14">
-     <g id="line2d_27">
-      <path clip-path="url(#pd400051835)" d="M 362.030164 307.584 
-L 362.030164 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_28">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="362.030164" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_14">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 362.030164, 322.182437)" x="362.030164" y="322.182437">14</text>
-     </g>
-    </g>
-    <g id="xtick_15">
-     <g id="line2d_29">
-      <path clip-path="url(#pd400051835)" d="M 385.447869 307.584 
-L 385.447869 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_30">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="385.447869" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_15">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 385.447869, 322.182437)" x="385.447869" y="322.182437">15</text>
-     </g>
-    </g>
-    <g id="xtick_16">
-     <g id="line2d_31">
-      <path clip-path="url(#pd400051835)" d="M 408.865574 307.584 
-L 408.865574 41.472 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_32">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="408.865574" xlink:href="#m9bee3d39da" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_16">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 408.865574, 322.182437)" x="408.865574" y="322.182437">16</text>
-     </g>
-    </g>
-    <g id="text_17">
-     <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-0, 236.16, 335.860562)" x="236.16" y="335.860562">Number of processors</text>
-    </g>
-   </g>
-   <g id="matplotlib.axis_2">
-    <g id="ytick_1">
-     <g id="line2d_33">
-      <path clip-path="url(#pd400051835)" d="M 57.6 307.584 
-L 414.72 307.584 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_34">
-      <defs>
-       <path d="M 0 0 
-L -3.5 0 
-" id="m082b2e4a56" style="stroke:#000000;stroke-width:0.8;"/>
-      </defs>
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="307.584"/>
-      </g>
-     </g>
-     <g id="text_18">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 311.383219)" x="50.6" y="311.383219">0 Ops</text>
-     </g>
-    </g>
-    <g id="ytick_2">
-     <g id="line2d_35">
-      <path clip-path="url(#pd400051835)" d="M 57.6 268.244858 
-L 414.72 268.244858 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_36">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="268.244858"/>
-      </g>
-     </g>
-     <g id="text_19">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 272.044077)" x="50.6" y="272.044077">5 MOps</text>
-     </g>
-    </g>
-    <g id="ytick_3">
-     <g id="line2d_37">
-      <path clip-path="url(#pd400051835)" d="M 57.6 228.905717 
-L 414.72 228.905717 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_38">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="228.905717"/>
-      </g>
-     </g>
-     <g id="text_20">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 232.704936)" x="50.6" y="232.704936">10 MOps</text>
-     </g>
-    </g>
-    <g id="ytick_4">
-     <g id="line2d_39">
-      <path clip-path="url(#pd400051835)" d="M 57.6 189.566575 
-L 414.72 189.566575 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_40">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="189.566575"/>
-      </g>
-     </g>
-     <g id="text_21">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 193.365794)" x="50.6" y="193.365794">15 MOps</text>
-     </g>
-    </g>
-    <g id="ytick_5">
-     <g id="line2d_41">
-      <path clip-path="url(#pd400051835)" d="M 57.6 150.227434 
-L 414.72 150.227434 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_42">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="150.227434"/>
-      </g>
-     </g>
-     <g id="text_22">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 154.026652)" x="50.6" y="154.026652">20 MOps</text>
-     </g>
-    </g>
-    <g id="ytick_6">
-     <g id="line2d_43">
-      <path clip-path="url(#pd400051835)" d="M 57.6 110.888292 
-L 414.72 110.888292 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_44">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="110.888292"/>
-      </g>
-     </g>
-     <g id="text_23">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 114.687511)" x="50.6" y="114.687511">25 MOps</text>
-     </g>
-    </g>
-    <g id="ytick_7">
-     <g id="line2d_45">
-      <path clip-path="url(#pd400051835)" d="M 57.6 71.54915 
-L 414.72 71.54915 
-" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
-     </g>
-     <g id="line2d_46">
-      <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m082b2e4a56" y="71.54915"/>
-      </g>
-     </g>
-     <g id="text_24">
-      <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:end;" transform="rotate(-0, 50.6, 75.348369)" x="50.6" y="75.348369">30 MOps</text>
-     </g>
-    </g>
-    <g id="text_25">
-     <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:middle;" transform="rotate(-90, 0.559375, 174.528)" x="0.559375" y="174.528">Ops per second</text>
-    </g>
-   </g>
-   <g id="patch_3">
-    <path d="M 57.6 307.584 
-L 57.6 41.472 
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
-   </g>
-   <g id="patch_4">
-    <path d="M 414.72 307.584 
-L 414.72 41.472 
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
-   </g>
-   <g id="patch_5">
-    <path d="M 57.6 307.584 
-L 414.72 307.584 
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
-   </g>
-   <g id="patch_6">
-    <path d="M 57.6 41.472 
-L 414.72 41.472 
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
-   </g>
-   <g id="legend_1">
-    <g id="patch_7">
-     <path d="M 64.6 78.82825 
-L 161.615625 78.82825 
-Q 163.615625 78.82825 163.615625 76.82825 
-L 163.615625 48.472 
-Q 163.615625 46.472 161.615625 46.472 
-L 64.6 46.472 
-Q 62.6 46.472 62.6 48.472 
-L 62.6 76.82825 
-Q 62.6 78.82825 64.6 78.82825 
-z
-" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/>
-    </g>
-    <g id="PathCollection_3">
-     <g>
-      <use style="fill:#0095e3;stroke:#0095e3;stroke-width:1.5;" x="76.6" xlink:href="#mb6fe696cd4" y="55.445437"/>
-     </g>
-    </g>
-    <g id="text_26">
-     <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:start;" transform="rotate(-0, 94.6, 58.070437)" x="94.6" y="58.070437">rdq-cycle-go</text>
-    </g>
-    <g id="PathCollection_4">
-     <g>
-      <use style="fill:#006cb4;stroke:#006cb4;stroke-width:1.5;" x="76.6" xlink:href="#mb7a392378d" y="70.123562"/>
-     </g>
-    </g>
-    <g id="text_27">
-     <text style="font-family:DejaVu Sans;font-size:10px;font-style:normal;font-weight:normal;text-anchor:start;" transform="rotate(-0, 94.6, 72.748562)" x="94.6" y="72.748562">rdq-cycle-cfa</text>
-    </g>
-   </g>
-  </g>
- </g>
- <defs>
-  <clipPath id="pd400051835">
-   <rect height="266.112" width="357.12" x="57.6" y="41.472"/>
-  </clipPath>
- </defs>
-</svg>
Index: doc/theses/thierry_delisle_PhD/thesis/text/conclusion.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/conclusion.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/conclusion.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -1,53 +1,117 @@
 \chapter{Conclusion}\label{conclusion}
 
-\Gls{uthrding} is popular.
-It makes sense for \CFA to use it.
+Building the \CFA runtime has been a challenging project.
+The work was divided between high-level concurrency design and a user-level threading runtime (Masters' thesis), and low-level support of the user-level runtime using OS kernel threading and its (multiple) I/O subsystems (Ph.D. thesis).
+Because I am the main developer for both components of this project, there is strong continuity across the design and implementation.
+This continuity provides a consistent approach to advanced control flow and concurrency, with easier development, management and maintenance of the runtime in the future.
 
-\todo{Obivously fix the above}
+I believed my Masters' work would provide the background to make the Ph.D. work reasonably straightforward.
+However, I discovered two significant challenges.
 
-An important aspect of this approach to threading is how threads are scheduled.
-As \CFA aims to increase productivity and safety of C while maintaining its performance, so to should the threading runtime achieve these goals.
-For scheduling, productivity and safety manifest in removing pitfalls in the efficient usage of the threading runtime.
-This thesis contributes to this goal by presenting a low-latency scheduler that offers improved starvation prevention compared to other state-of-the-art schedulers.
-It presents a core algorithm (Chapter~\ref{core}) that provides increased fairness through helping (Section~\ref{heling}) as well as optimizations which virtually remove the cost of this fairness (Section~\ref{relaxedtimes}).
-Building upon the fundamental scheduling algorithm, an implementation of user-level \io blocking is presented (Chapter~\ref{io}) which achieves the same performance and fairness balance as the scheduler itself.
-From these core algorithms, and a low-latency idle-sleep mechanism is presented (Chapter~\ref{practice}) which allows the \CFA runtime to stay viable for workloads that do not consistently saturate the system.
+First, modern symmetric multiprocessing CPUs have significant performance penalties for communication, often cache-related.
+An SQMS scheduler (see Section~\ref{sched}), with its \proc-shared ready-queue, has perfect load-balancing but poor affinity resulting in high communication across \procs.
+An MQMS scheduler, with its \proc-specific ready-queues, has poor load-balancing but perfect affinity often resulting in significantly reduced communication.
+However, implementing fairness for an MQMS scheduler is difficult, since fairness requires \procs to be aware of each other's ready-queue progress, \ie communicated knowledge.
+For balanced workloads with little or no data sharing, \ie embarrassingly parallel, an MQMS scheduler is near optimal, \eg a state-of-the-art work-stealing scheduler.
+For these kinds of fair workloads, adding fairness must be low-cost to hide the communication costs needed for global ready-queue progress or performance suffers.
+While I was aware of these realities, I underestimated how little performance margin there is for communication.
+Several of my attempts at building a fair scheduler compared poorly to work-stealing schedulers because of the thin communication margin.
+
+Second, the kernel locking, threading, and I/O in the Linux operating system offer very little flexibility and are not designed to facilitate user-level threading.
+There are multiple concurrency aspects in Linux that require carefully following a strict procedure to achieve acceptable performance.
+To be fair, many of these concurrency aspects were designed 30-40 years ago, when there were few multiprocessor computers and concurrency knowledge was just developing.
+Unfortunately, little has changed in the intervening years.
+
+Also, my decision to use @io_uring@ was both positive and negative.
+The positive is that @io_uring@ supports the panoply of I/O mechanisms in Linux;
+hence, the \CFA runtime uses one I/O mechanism to provide non-blocking I/O, rather than using @select@ to handle TTY I/O, @epoll@ to handle network I/O, and managing a thread pool to handle disk I/O.
+Merging all these different \io mechanisms into a coherent scheduling implementation would require much more work than what is present in this thesis, as well as detailed knowledge of multiple I/O mechanisms.
+The negative is that @io_uring@ is new and developing.
+As a result, there is limited documentation, few places to find usage examples, and multiple errors that required workarounds.
+
+Given what I now know about @io_uring@, I would say it is insufficiently coupled with the Linux kernel to properly handle non-blocking I/O.
+It does not seem to reach deep into the kernel's handling of \io, and as such it must contend with the same realities that users of @epoll@ must contend with.
+Specifically, in cases where @O_NONBLOCK@ behaves as desired, operations must still be retried.
+Preserving the illusion of asynchronicity requires delegating these operations to kernel threads.
+This requirement is also true of cases where @O_NONBLOCK@ does not prevent blocking.
+Spinning up internal kernel threads to handle blocking scenarios is what developers already do outside of the kernel, and managing these threads adds a significant burden to the system.
+Nonblocking I/O should not be handled in this way.
+
+\section{Goals}
+This work focuses on efficient and fair scheduling of the multiple CPUs, which are ubiquitous on all modern computers.
+The levels of indirection to the CPUs are:
+\begin{itemize}
+\item
+The \CFA presentation of concurrency through multiple high-level language constructs.
+\item
+The OS presentation of concurrency through multiple kernel threads within an application.
+\item
+The OS and library presentation of disk and network I/O, and many secondary library routines that directly and indirectly use these mechanisms.
+\end{itemize}
+The key aspect of all of these mechanisms is that control flow can block, which immediately hinders any level above from making scheduling decisions as a result.
+Fundamentally, scheduling needs to understand all the mechanisms used by threads that affect their state changes.
+
+The underlying goal of this thesis is scheduling the complex hardware components that make up a computer to provide good utilization and fairness.
+However, direct hardware scheduling is only possible in the OS.
+Instead, this thesis is performing arms-length application scheduling of the hardware components through a set of OS interfaces that indirectly manipulate the hardware components.
+This can quickly lead to tensions when the OS interface has different use cases in mind.
+
+As \CFA aims to increase productivity and safety of C, while maintaining its performance, this places a huge burden on the \CFA runtime to achieve these goals.
+Productivity and safety manifest in removing scheduling pitfalls in the efficient usage of the threading runtime.
+Performance manifests in making efficient use of the underlying kernel threads that provide indirect access to the CPUs.
+
+This thesis achieves its stated contributions by presenting:
+\begin{enumerate}[leftmargin=*]
+\item
+A scalable low-latency scheduler that offers improved starvation prevention (progress guarantee) compared to other state-of-the-art schedulers, including NUMA awareness.
+\item
+The scheduler demonstrates a core algorithm that provides increased fairness through helping, as well as optimizations which virtually remove the cost of this fairness.
+\item
+An implementation of user-level \io blocking is incorporated into the scheduler, which achieves the same performance and fairness balance as the scheduler itself.
+\item
+These core algorithms are further extended with a low-latency idle-sleep mechanism, which allows the \CFA runtime to stay viable for workloads that do not consistently saturate the system.
+\end{enumerate}
+Finally, the complete scheduler is fairly simple with low-cost execution, meaning the total cost of scheduling during thread state changes is low.
 
 \section{Future Work}
-While the \CFA runtime achieves a better compromise in term of performance and fairness than other schedulers, I do believe that further improvements could be made to reduce even further the number of cases where performance deteriorates.
-Furthermore, I believe that achieve performance and starvation freedom simultaneously is generally a challenge even outside of scheduling algorithms.
+While the \CFA runtime achieves a better compromise than other schedulers, in terms of performance and fairness, I believe further improvements can be made to reduce or eliminate the few cases where performance does deteriorate.
+Fundamentally, achieving performance and starvation freedom will always be goals with opposing needs even outside of scheduling algorithms.
 
 \subsection{Idle Sleep}
-A difficult challenge that was not fully address in this thesis is idle-sleep.
-While a correct and somewhat low-cost idle-sleep mechanism was presented, several of the benchmarks show notable performance degradation when too few \ats are present in the system.
+A difficult challenge, not fully addressed in this thesis, is idle sleep.
+While a correct and somewhat low-cost idle-sleep mechanism is presented, several of the benchmarks show notable performance degradation when too few \ats are present in the system.
 The idle sleep mechanism could therefore benefit from a reduction of spurious cases of sleeping.
 Furthermore, this thesis did not present any heuristic for when \procs should be put to sleep and when \procs should be woken up.
-It is especially worth noting that relaxed timestamps and topology aware helping lead to notable improvements in performance.
-Neither of these techniques were used for the idle sleep mechanism.
+While relaxed timestamps and topology awareness made notable performance improvements, neither of these techniques are used for the idle-sleep mechanism.
 
-There are opportunities where these techniques could be use:
-The mechanism uses a hand-shake between notification and sleep to ensure that no \at is missed.
-The correctness of that hand-shake is cirtical when the last \proc goes to sleep but could be relaxed when several \procs are awake.
-Furthermore, organizing the sleeping \procs as a LIDO stack makes sense to keep cold \procs as cold as possible, but it might be more appropriate to attempt to keep cold CPU sockets instead.
-
-However, using these techniques could require significant investigation.
-For example, keeping a CPU socket cold might be appropriate for power consumption reasons but can affect overall memory bandwith.
-The balance between these is not necessarily obvious.
+Here are opportunities where these techniques could be used:
+\begin{itemize}
+\item
+The mechanism uses a handshake between notification and sleep to ensure that no \at is missed.
+\item
+The handshake correctness is critical when the last \proc goes to sleep but could be relaxed when several \procs are awake.
+\item
+Furthermore, organizing the sleeping \procs as a LIFO stack makes sense to keep cold \procs as cold as possible, but it might be more appropriate to attempt to keep cold CPU sockets instead.
+\end{itemize}
+However, using these techniques would require significant investigation.
+For example, keeping a CPU socket cold might be appropriate for power consumption reasons but can affect overall memory bandwidth.
+The balance between these approaches is not obvious.
+I am aware there is a host of low-power research that could be tapped here.
 
 \subsection{Hardware}
-One challenge that needed to be overcome for this thesis was that the modern x86-64 has very few tools to implement fairness.
-\Glspl{proc} attempting to help eachother inherently cause cache-coherence traffic.
+One challenge that needed to be overcome for this thesis is that the modern x86-64 processors have very few tools to implement fairness.
+\Glspl{proc} attempting to help each other inherently cause cache-coherence traffic.
 However, as mentioned in Section~\ref{helping}, relaxed requirements mean this traffic is not necessarily productive.
 In cases like this one, there is an opportunity to improve performance by extending the hardware.
 
-Many different extensions would be suitable here.
-For example, when attempting to read remote timestamps when deciding to whether or not to help, it could be useful to allow cancelling the remote read if it will lead to significant latency.
-If the latency is due to a recent cache invalidation, it is unlikely that the timestamp is old and that helping will be needed.
+Many different extensions are suitable here.
+For example, when attempting to read remote timestamps for helping, it would be useful to allow cancelling the remote read if it leads to significant latency.
+If the latency is due to a recent cache invalidation, it is unlikely the timestamp is old and that helping is needed.
 As such, simply moving on without the result is likely to be acceptable.
-Another option would be to attempt to read multiple memory addresses and only wait for \emph{one of} these reads to retire.
-This would have a similar effect, where cache-lines with more traffic would be waited on less often.
-In both of these examples, some care would probably be needed to make sure that the reads to an address \emph{sometimes} retire.
+Another option is to read multiple memory addresses and only wait for \emph{one of} these reads to retire.
+This approach has a similar effect, where cache lines with more traffic are waited on less often.
+In both of these examples, some care is needed to ensure that reads to an address \emph{sometimes} retire.
 
-Note that this is similar to the feature \newterm{Hardware Transactional Memory}~\cite{HTM}, which allows groups of instructions to be aborted and rolled-back if they encounter memory conflicts when being retired.
+Note that this idea is similar to \newterm{Hardware Transactional Memory}~\cite{wiki:htm}, which allows groups of instructions to be aborted and rolled back if they encounter memory conflicts when being retired.
 However, I believe this feature is generally aimed at large groups of instructions.
-A more fine-grained approach may be more amenable to carefully picking which aspects of an algorithm require exact correctness and which do not.
+A more fine-grained approach may be more amenable by carefully picking which aspects of an algorithm require exact correctness and which do not.
Index: doc/theses/thierry_delisle_PhD/thesis/text/core.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/core.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/core.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -2,35 +2,35 @@
 
 Before discussing scheduling in general, where it is important to address systems that are changing states, this document discusses scheduling in a somewhat ideal scenario, where the system has reached a steady state.
-For this purpose, a steady state is loosely defined as a state where there are always \glspl{thrd} ready to run and the system has the resources necessary to accomplish the work, \eg, enough workers.
+For this purpose, a steady state is loosely defined as a state where there are always \ats ready to run and the system has the resources necessary to accomplish the work, \eg, enough workers.
 In short, the system is neither overloaded nor underloaded.
 
 It is important to discuss the steady state first because it is the easiest case to handle and, relatedly, the case in which the best performance is to be expected.
-As such, when the system is either overloaded or underloaded, a common approach is to try to adapt the system to this new load and return to the steady state, \eg, by adding or removing workers.
+As such, when the system is either overloaded or underloaded, a common approach is to try to adapt the system to this new \gls{load} and return to the steady state, \eg, by adding or removing workers.
 Therefore, flaws in scheduling the steady state tend to be pervasive in all states.
 
 \section{Design Goals}
-As with most of the design decisions behind \CFA, an important goal is to match the expectation of the programmer according to their execution mental-model.
-To match expectations, the design must offer the programmer sufficient guarantees so that, as long as they respect the execution mental-model, the system also respects this model.
-
-For threading, a simple and common execution mental-model is the ``Ideal multi-tasking CPU'' :
+As with most of the design decisions behind \CFA, an important goal is to match the expectation of the programmer according to their execution mental model.
+To match expectations, the design must offer the programmer sufficient guarantees so that, as long as they respect the execution mental model, the system also respects this model.
+
+For threading, a simple and common execution mental model is the ``ideal multitasking CPU'':
 
 \begin{displayquote}[Linux CFS\cite{MAN:linux/cfs}]
-	{[The]} ``Ideal multi-tasking CPU'' is a (non-existent  :-)) CPU that has 100\% physical power and which can run each task at precise equal speed, in parallel, each at [an equal fraction of the] speed.  For example: if there are 2 tasks running, then it runs each at 50\% physical power --- i.e., actually in parallel.
+	{[The]} ``ideal multi-tasking CPU'' is a (non-existent  :-)) CPU that has 100\% physical power and which can run each task at precise equal speed, in parallel, each at [an equal fraction of the] speed.  For example: if there are 2 running tasks, then it runs each at 50\% physical power --- i.e., actually in parallel.
 	\label{q:LinuxCFS}
 \end{displayquote}
 
-Applied to threads, this model states that every ready \gls{thrd} immediately runs in parallel with all other ready \glspl{thrd}. While a strict implementation of this model is not feasible, programmers still have expectations about scheduling that come from this model.
-
-In general, the expectation at the center of this model is that ready \glspl{thrd} do not interfere with each other but simply share the hardware.
-This assumption makes it easier to reason about threading because ready \glspl{thrd} can be thought of in isolation and the effect of the scheduler can be virtually ignored.
-This expectation of \gls{thrd} independence means the scheduler is expected to offer two guarantees:
+Applied to \ats, this model states that every ready \at immediately runs in parallel with all other ready \ats. While a strict implementation of this model is not feasible, programmers still have expectations about scheduling that come from this model.
+
+In general, the expectation at the centre of this model is that ready \ats do not interfere with each other but simply share the hardware.
+This assumption makes it easier to reason about threading because ready \ats can be thought of in isolation and the effect of the scheduler can be virtually ignored.
+This expectation of \at independence means the scheduler is expected to offer two guarantees:
 \begin{enumerate}
-	\item A fairness guarantee: a \gls{thrd} that is ready to run is not prevented by another thread.
-	\item A performance guarantee: a \gls{thrd} that wants to start or stop running is not prevented by other threads wanting to do the same.
+	\item A fairness guarantee: a \at that is ready to run is not prevented by another thread.
+	\item A performance guarantee: a \at that wants to start or stop running is not prevented by other threads wanting to do the same.
 \end{enumerate}
 
 It is important to note that these guarantees are expected only up to a point.
-\Glspl{thrd} that are ready to run should not be prevented to do so, but they still share the limited hardware resources.
-Therefore, the guarantee is considered respected if a \gls{thrd} gets access to a \emph{fair share} of the hardware resources, even if that share is very small.
+\Glspl{at} that are ready to run should not be prevented from doing so, but they still share the limited hardware resources.
+Therefore, the guarantee is considered respected if a \at gets access to a \emph{fair share} of the hardware resources, even if that share is very small.
 
 Similar to the performance guarantee, the lack of interference among threads is only relevant up to a point.
@@ -40,5 +40,5 @@
 This demonstration can be made by comparing applications built in \CFA to applications built with other languages or other models.
 Recall programmer expectation is that the impact of the scheduler can be ignored.
-Therefore, if the cost of scheduling is competitive to other popular languages, the guarantee is consider achieved.
+Therefore, if the cost of scheduling is competitive with other popular languages, the guarantee is considered achieved.
 More precisely the scheduler should be:
 \begin{itemize}
@@ -53,11 +53,11 @@
 In any running system, a \proc can stop dequeuing \ats if it starts running a \at that never blocks.
 Without preemption, traditional work-stealing schedulers do not have starvation freedom in this case.
-Now this requirement begs the question, what about preemption?
-Generally speaking preemption happens on the timescale of several milliseconds, which brings us to the next requirement: ``fast'' load balancing.
+Now, this requirement begs the question, what about preemption?
+Generally speaking, preemption happens on the timescale of several milliseconds, which brings us to the next requirement: ``fast'' load balancing.
 
 \paragraph{Fast load balancing} means that load balancing should happen faster than preemption would normally allow.
-For interactive applications that need to run at 60, 90, 120 frames per second, \ats having to wait for several milliseconds to run are effectively starved.
+For interactive applications that need to run at 60, 90 or 120 frames per second, \ats having to wait for several milliseconds to run are effectively starved.
 Therefore load-balancing should be done at a faster pace, one that can detect starvation at the microsecond scale.
-With that said, this is a much fuzzier requirement since it depends on the number of \procs, the number of \ats and the general load of the system.
+With that said, this is a much fuzzier requirement since it depends on the number of \procs, the number of \ats and the general \gls{load} of the system.
 
 \subsection{Fairness vs Scheduler Locality} \label{fairnessvlocal}
@@ -68,11 +68,11 @@
 
 For a scheduler, having good locality, \ie, having the data local to each \gls{hthrd}, generally conflicts with fairness.
-Indeed, good locality often requires avoiding the movement of cache lines, while fairness requires dynamically moving a \gls{thrd}, and as consequence cache lines, to a \gls{hthrd} that is currently available.
-Note that this section discusses \emph{internal locality}, \ie, the locality of the data used by the scheduler versus \emph{external locality}, \ie, how the data used by the application is affected by scheduling.
+Indeed, good locality often requires avoiding the movement of cache lines, while fairness requires dynamically moving a \at, and as consequence cache lines, to a \gls{hthrd} that is currently available.
+Note that this section discusses \emph{internal locality}, \ie, the locality of the data used by the scheduler versus \emph{external locality}, \ie, how scheduling affects the locality of the application's data.
 External locality is a much more complicated subject and is discussed in the next section.
 
 However, I claim that in practice it is possible to strike a balance between fairness and performance because these goals do not necessarily overlap temporally.
 Figure~\ref{fig:fair} shows a visual representation of this behaviour.
-As mentioned, some unfairness is acceptable; therefore it is desirable to have an algorithm that prioritizes cache locality as long as thread delay does not exceed the execution mental-model.
+As mentioned, some unfairness is acceptable; therefore it is desirable to have an algorithm that prioritizes cache locality as long as thread delay does not exceed the execution mental model.
 
 \begin{figure}
@@ -80,6 +80,6 @@
 	\input{fairness.pstex_t}
 	\vspace*{-10pt}
-	\caption[Fairness vs Locality graph]{Rule of thumb Fairness vs Locality graph \smallskip\newline The importance of Fairness and Locality while a ready \gls{thrd} awaits running is shown as the time the ready \gls{thrd} waits increases, Ready Time, the chances that its data is still in cache decreases, Locality.
-	At the same time, the need for fairness increases since other \glspl{thrd} may have the chance to run many times, breaking the fairness model.
+	\caption[Fairness vs Locality graph]{Rule of thumb Fairness vs Locality graph \smallskip\newline The importance of Fairness and Locality while a ready \at awaits running is shown as the time the ready \at waits increases (Ready Time) the chances that its data is still in cache decreases (Locality).
+	At the same time, the need for fairness increases since other \ats may have the chance to run many times, breaking the fairness model.
 	Since the actual values and curves of this graph can be highly variable, the graph is an idealized representation of the two opposing goals.}
 	\label{fig:fair}
@@ -92,10 +92,10 @@
 \subsubsection{Scalability}
 The most basic performance challenge of a scheduler is scalability.
-Given a large number of \procs and an even larger number of \ats, scalability measures how fast \procs can enqueue and dequeues \ats.
-One could expect that doubling the number of \procs would double the rate at which \ats are dequeued, but contention on the internal data structure of the scheduler can lead to worst improvements.
-While the ready-queue itself can be sharded to alleviate the main source of contention, auxiliary scheduling features, \eg counting ready \ats, can also be sources of contention.
+Given a large number of \procs and an even larger number of \ats, scalability measures how fast \procs can enqueue and dequeue \ats.
+One could expect that doubling the number of \procs would double the rate at which \ats are dequeued, but contention on the internal data structure of the scheduler can diminish the improvements.
+While the ready queue itself can be sharded to alleviate the main source of contention, auxiliary scheduling features, \eg counting ready \ats, can also be sources of contention.
 
 \subsubsection{Migration Cost}
-Another important source of scheduling latency is migration.
+Another important source of scheduling latency is \glslink{atmig}{migration}.
 A \at migrates if it executes on two different \procs consecutively, which is the process discussed in \ref{fairnessvlocal}.
 Migrations can have many different causes, but in certain programs, it can be impossible to limit migration.
@@ -108,5 +108,5 @@
 The problem is a single point of contention when adding/removing \ats.
 As shown in the evaluation sections, most production schedulers do scale when adding \glspl{hthrd}.
-The solution to this problem is to shard the ready-queue: create multiple \emph{subqueues} forming the logical ready-queue and the subqueues are accessed by multiple \glspl{hthrd} without interfering.
+The solution to this problem is to shard the ready queue: create multiple \emph{sub-queues} forming the logical ready-queue and the sub-queues are accessed by multiple \glspl{hthrd} without interfering.
 
 Before going into the design of \CFA's scheduler, it is relevant to discuss two sharding solutions that served as the inspiration scheduler in this thesis.
@@ -114,36 +114,36 @@
 \subsection{Work-Stealing}
 
-As mentioned in \ref{existing:workstealing}, a popular sharding approach for the ready-queue is work-stealing.
-In this approach, each \gls{proc} has its own local subqueue and \glspl{proc} only access each other's subqueue if they run out of work on their local ready-queue.
+As mentioned in \ref{existing:workstealing}, a popular sharding approach for the ready queue is work-stealing.
+In this approach, each \gls{proc} has its own local sub-queue and \glspl{proc} only access each other's sub-queue if they run out of work on their local ready-queue.
 The interesting aspect of work stealing happens in the steady-state scheduling case, \ie all \glspl{proc} have work and no load balancing is needed.
 In this case, work stealing is close to optimal scheduling: it can achieve perfect locality and have no contention.
 On the other hand, work-stealing schedulers only attempt to do load-balancing when a \gls{proc} runs out of work.
 This means that the scheduler never balances unfair loads unless they result in a \gls{proc} running out of work.
-Chapter~\ref{microbench} shows that pathological cases work stealing can lead to indefinite starvation.
-
-Based on these observation, the conclusion is that a \emph{perfect} scheduler should behave similar to work-stealing in the steady-state case, but load balance proactively when the need arises.
+Chapter~\ref{microbench} shows that, in pathological cases, work stealing can lead to indefinite starvation.
+
+Based on these observations, the conclusion is that a \emph{perfect} scheduler should behave similarly to work-stealing in the steady-state case, but load balance proactively when the need arises.
 
 \subsection{Relaxed-FIFO}
-A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \todo{cite Trevor's paper}.
-This approach forgoes any ownership between \gls{proc} and subqueue, and simply creates a pool of ready-queues from which \glspl{proc} pick.
+A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \cite{alistarh2018relaxed}.
+This approach forgoes any ownership between \gls{proc} and sub-queue, and simply creates a pool of sub-queues from which \glspl{proc} pick.
 Scheduling is performed as follows:
 \begin{itemize}
 \item
-All subqueues are protected by TryLocks.
-\item
-Timestamps are added to each element of a subqueue.
-\item
-A \gls{proc} randomly tests ready queues until it has acquired one or two queues.
-\item
-If two queues are acquired, the older of the two \ats at the front the acquired queues is dequeued.
-\item
-Otherwise the \ats from the single queue is dequeued.
+All sub-queues are protected by TryLocks.
+\item
+Timestamps are added to each element of a sub-queue.
+\item
+A \gls{proc} randomly tests sub-queues until it has acquired one or two queues.
+\item
+If two queues are acquired, the older of the two \ats is dequeued from the front of the acquired queues.
+\item
+Otherwise, the \at from the single queue is dequeued.
 \end{itemize}
 The result is a queue that has both good scalability and sufficient fairness.
 The lack of ownership ensures that as long as one \gls{proc} is still able to repeatedly dequeue elements, it is unlikely any element will delay longer than any other element.
-This guarantee contrasts with work-stealing, where a \gls{proc} with a long subqueue results in unfairness for its \ats in comparison to a \gls{proc} with a short subqueue.
+This guarantee contrasts with work-stealing, where a \gls{proc} with a long sub-queue results in unfairness for its \ats in comparison to a \gls{proc} with a short sub-queue.
 This unfairness persists until a \gls{proc} runs out of work and steals.
 
-An important aspects of this scheme's fairness approach is that the timestamps make it possible to evaluate how long elements have been on the queue.
+An important aspect of this scheme's fairness approach is that the timestamps make it possible to evaluate how long elements have been in the queue.
 However, \glspl{proc} eagerly search for these older elements instead of focusing on specific queues, which negatively affects locality.
 
@@ -152,57 +152,57 @@
 
 \section{Relaxed-FIFO++}
-The inherent fairness and good performance with many \ats, makes the relaxed-FIFO queue a good candidate to form the basis of a new scheduler.
+The inherent fairness and good performance with many \ats make the relaxed-FIFO queue a good candidate to form the basis of a new scheduler.
 The problem case is workloads where the number of \ats is barely greater than the number of \procs.
-In these situations, the wide sharding of the ready queue means most of its subqueues are empty.
-Furthermore, the non-empty subqueues are unlikely to hold more than one item.
-The consequence is that a random dequeue operation is likely to pick an empty subqueue, resulting in an unbounded number of selections.
-This state is generally unstable: each subqueue is likely to frequently toggle between being empty and nonempty.
-Indeed, when the number of \ats is \emph{equal} to the number of \procs, every pop operation is expected to empty a subqueue and every push is expected to add to an empty subqueue.
-In the worst case, a check of the subqueues sees all are empty or full.
+In these situations, the wide sharding of the ready queue means most of its sub-queues are empty.
+Furthermore, the non-empty sub-queues are unlikely to hold more than one item.
+The consequence is that a random dequeue operation is likely to pick an empty sub-queue, resulting in an unbounded number of selections.
+This state is generally unstable: each sub-queue is likely to frequently toggle between being empty and nonempty.
+Indeed, when the number of \ats is \emph{equal} to the number of \procs, every pop operation is expected to empty a sub-queue and every push is expected to add to an empty sub-queue.
+In the worst case, a check of the sub-queues sees all are empty or full.
 
 As this is the most obvious challenge, it is worth addressing first.
-The obvious solution is to supplement each sharded subqueue with data that indicates if the queue is empty/nonempty to simplify finding nonempty queues, \ie ready \glspl{at}.
-This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty subqueues.
+The obvious solution is to supplement each sharded sub-queue with data that indicates if the queue is empty/nonempty to simplify finding nonempty queues, \ie ready \glspl{at}.
+This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty sub-queues.
 Specifically, many modern architectures have powerful bitmask manipulation instructions or searching a binary tree has good Big-O complexity.
-However, precisely tracking nonempty subqueues is problematic.
-The reason is that the subqueues are initially sharded with a width presumably chosen to avoid contention.
-However, tracking which ready queue is nonempty is only useful if the tracking data is dense, \ie denser than the sharded subqueues.
-Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a subqueue at random.
-But if the tracking mechanism \emph{is} denser than the shared subqueues, than constant updates invariably create a new source of contention.
+However, precisely tracking nonempty sub-queues is problematic.
+The reason is that the sub-queues are initially sharded with a width presumably chosen to avoid contention.
+However, tracking which ready queue is nonempty is only useful if the tracking data is dense, \ie denser than the sharded sub-queues.
+Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a sub-queue at random.
+But if the tracking mechanism \emph{is} denser than the shared sub-queues, then constant updates invariably create a new source of contention.
 Early experiments with this approach showed that randomly picking, even with low success rates, is often faster than bit manipulations or tree walks.
 
 The exception to this rule is using local tracking.
-If each \proc locally keeps track of empty subqueues, than this can be done with a very dense data structure without introducing a new source of contention.
+If each \proc locally keeps track of empty sub-queues, then this can be done with a very dense data structure without introducing a new source of contention.
 However, the consequence of local tracking is that the information is incomplete.
-Each \proc is only aware of the last state it saw about each subqueue so this information quickly becomes stale.
+Each \proc is only aware of the last state it saw about each sub-queue so this information quickly becomes stale.
 Even on systems with low \gls{hthrd} count, \eg 4 or 8, this approach can quickly lead to the local information being no better than the random pick.
 This result is due in part to the cost of maintaining information and its poor quality.
 
-However, using a very low cost but inaccurate approach for local tracking can actually be beneficial.
-If the local tracking is no more costly than a random pick, than \emph{any} improvement to the success rate, however low it is, leads to a performance benefits.
-This suggests to the following approach:
+However, using a very low-cost but inaccurate approach for local tracking can still be beneficial.
+If the local tracking is no more costly than a random pick, then \emph{any} improvement to the success rate, however low it is, leads to a performance benefit.
+This suggests the following approach:
 
 \subsection{Dynamic Entropy}\cite{xkcd:dynamicentropy}
-The Relaxed-FIFO approach can be made to handle the case of mostly empty subqueues by tweaking the \glsxtrlong{prng}.
-The \glsxtrshort{prng} state can be seen as containing a list of all the future subqueues that will be accessed.
-While this concept is not particularly useful on its own, the consequence is that if the \glsxtrshort{prng} algorithm can be run \emph{backwards}, then the state also contains a list of all the subqueues that were accessed.
+The Relaxed-FIFO approach can be made to handle the case of mostly empty sub-queues by tweaking the \glsxtrlong{prng}.
+The \glsxtrshort{prng} state can be seen as containing a list of all the future sub-queues that will be accessed.
+While this concept is not particularly useful on its own, the consequence is that if the \glsxtrshort{prng} algorithm can be run \emph{backwards}, then the state also contains a list of all the sub-queues that were accessed.
 Luckily, bidirectional \glsxtrshort{prng} algorithms do exist, \eg some Linear Congruential Generators\cite{wiki:lcg} support running the algorithm backwards while offering good quality and performance.
 This particular \glsxtrshort{prng} can be used as follows:
 \begin{itemize}
 \item
-Each \proc maintains two \glsxtrshort{prng} states, refereed to as $F$ and $B$.
-\item
-When a \proc attempts to dequeue a \at, it picks a subqueue by running $B$ backwards.
-\item
-When a \proc attempts to enqueue a \at, it runs $F$ forward picking a subqueue to enqueue to.
-If the enqueue is successful, the state $B$ is overwritten with the content of $F$.
+Each \proc maintains two \glsxtrshort{prng} states, referred to as $F$ and $B$.
+\item
+When a \proc attempts to dequeue a \at, it picks a sub-queue by running $B$ backwards.
+\item
+When a \proc attempts to enqueue a \at, it runs $F$ forward picking a sub-queue to enqueue to.
+If the enqueue is successful, state $B$ is overwritten with the content of $F$.
 \end{itemize}
 The result is that each \proc tends to dequeue \ats that it has itself enqueued.
-When most subqueues are empty, this technique increases the odds of finding \ats at very low cost, while also offering an improvement on locality in many cases.
+When most sub-queues are empty, this technique increases the odds of finding \ats at a very low cost, while also offering an improvement on locality in many cases.
 
 Tests showed this approach performs better than relaxed-FIFO in many cases.
 However, it is still not competitive with work-stealing algorithms.
 The fundamental problem is that the constant randomness limits how much locality the scheduler offers.
-This becomes problematic both because the scheduler is likely to get cache misses on internal data-structures and because migrations become frequent.
+This becomes problematic both because the scheduler is likely to get cache misses on internal data structures and because migrations become frequent.
 Therefore, the attempt to modify the relaxed-FIFO algorithm to behave more like work stealing did not pan out.
 The alternative is to do it the other way around.
@@ -210,7 +210,7 @@
 \section{Work Stealing++}\label{helping}
 To add stronger fairness guarantees to work stealing a few changes are needed.
-First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all subqueues.
+First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all sub-queues.
 Therefore, the work-stealing algorithm must be prepended with some monitoring.
-Before attempting to dequeue from a \proc's subqueue, the \proc must make some effort to ensure other subqueues are not being neglected.
+Before attempting to dequeue from a \proc's sub-queue, the \proc must make some effort to ensure other sub-queues are not being neglected.
 To make this possible, \procs must be able to determine which \at has been on the ready queue the longest.
 Second, the relaxed-FIFO approach needs timestamps for each \at to make this possible.
@@ -219,6 +219,6 @@
 	\centering
 	\input{base.pstex_t}
-	\caption[Base \CFA design]{Base \CFA design \smallskip\newline A pool of subqueues offers the sharding, two per \glspl{proc}.
-	Each \gls{proc} can access all of the subqueues.
+	\caption[Base \CFA design]{Base \CFA design \smallskip\newline A pool of sub-queues offers the sharding, two per \proc.
+	Each \gls{proc} can access all of the sub-queues.
 	Each \at is timestamped when enqueued.}
 	\label{fig:base}
@@ -226,50 +226,50 @@
 
 Figure~\ref{fig:base} shows the algorithm structure.
-This structure is similar to classic work-stealing except the subqueues are placed in an array so \procs can access them in constant time.
+This structure is similar to classic work-stealing except the sub-queues are placed in an array so \procs can access them in constant time.
 Sharding width can be adjusted based on contention.
 Note, as an optimization, the TS of a \at is stored in the \at in front of it, so the first TS is in the array and the last \at has no TS.
 This organization keeps the highly accessed front TSs directly in the array.
-When a \proc attempts to dequeue a \at, it first picks a random remote subqueue and compares its timestamp to the timestamps of its local subqueue(s).
+When a \proc attempts to dequeue a \at, it first picks a random remote sub-queue and compares its timestamp to the timestamps of its local sub-queue(s).
 The oldest waiting \at is dequeued to provide global fairness.
 
-However, this na\"ive implemented has performance problems.
+However, this na\"ive implementation has performance problems.
 First, it is necessary to have some damping effect on helping.
 Random effects like cache misses and preemption can add spurious but short bursts of latency negating the attempt to help.
-These bursts can cause increased migrations and make this work stealing approach slowdown to the level of relaxed-FIFO.
+These bursts can cause increased migrations and make this work-stealing approach slow down to the level of relaxed-FIFO.
 
 \begin{figure}
 	\centering
 	\input{base_avg.pstex_t}
-	\caption[\CFA design with Moving Average]{\CFA design with Moving Average \smallskip\newline A moving average is added to each subqueue.}
+	\caption[\CFA design with Moving Average]{\CFA design with Moving Average \smallskip\newline A moving average is added to each sub-queue.}
 	\label{fig:base-ma}
 \end{figure}
 
-A simple solution to this problem is to use an exponential moving average\cite{wiki:ma} (MA) instead of a raw timestamps, shown in Figure~\ref{fig:base-ma}.
-Note, this is more complex because the \at at the head of a subqueue is still waiting, so its wait time has not ended.
-Therefore, the exponential moving average is actually an exponential moving average of how long each dequeued \at has waited.
-To compare subqueues, the timestamp at the head must be compared to the current time, yielding the best-case wait-time for the \at at the head of the queue.
+A simple solution to this problem is to use an exponential moving average\cite{wiki:ma} (MA) instead of a raw timestamp, as shown in Figure~\ref{fig:base-ma}.
+Note that this is more complex because the \at at the head of a sub-queue is still waiting, so its wait time has not ended.
+Therefore, the exponential moving average is an average of how long each dequeued \at has waited.
+To compare sub-queues, the timestamp at the head must be compared to the current time, yielding the best-case wait time for the \at at the head of the queue.
 This new waiting is averaged with the stored average.
-To further limit migration, a bias can be added to a local subqueue, where a remote subqueue is helped only if its moving average is more than $X$ times the local subqueue's average.
+To further limit \glslink{atmig}{migrations}, a bias can be added to a local sub-queue, where a remote sub-queue is helped only if its moving average is more than $X$ times the local sub-queue's average.
 Tests for this approach indicate the choice of the weight for the moving average or the bias is not important, \ie weights and biases of similar \emph{magnitudes} have similar effects.
 
 With these additions to work stealing, scheduling can be made as fair as the relaxed-FIFO approach, avoiding the majority of unnecessary migrations.
-Unfortunately, the work to achieve fairness has a performance cost, especially when the workload is inherently fair, and hence, there is only short-term or no starvation.
-The problem is that the constant polling, \ie reads, of remote subqueues generally entail a cache miss because the TSs are constantly being updated, \ie, writes.
-To make things worst, remote subqueues that are very active, \ie \ats are frequently enqueued and dequeued from them, lead to higher chances that polling will incur a cache-miss.
-Conversely, the active subqueues do not benefit much from helping since starvation is already a non-issue.
-This puts this algorithm in the awkward situation of paying for a cost that is largely unnecessary.
-The good news is that this problem can be mitigated
-
-\subsection{Redundant Timestamps}\ref{relaxedtimes}
-The problem with polling remote subqueues is that correctness is critical.
-There must be a consensus among \procs on which subqueues hold which \ats, as the \ats are in constant motion.
-Furthermore, since timestamps are use for fairness, it is critical to have consensus on which \at is the oldest.
-However, when deciding if a remote subqueue is worth polling, correctness is less of a problem.
-Since the only requirement is that a subqueue is eventually polled, some data staleness is acceptable.
+Unfortunately, the work to achieve fairness has a performance cost, especially when the workload is inherently fair, and hence, there is only short-term unfairness or no starvation.
+The problem is that the constant polling, \ie reads, of remote sub-queues generally entails cache misses because the TSs are constantly being updated, \ie, writes.
+To make things worst, remote sub-queues that are very active, \ie \ats are frequently enqueued and dequeued from them, lead to higher chances that polling will incur a cache-miss.
+Conversely, the active sub-queues do not benefit much from helping since starvation is already a non-issue.
+This puts this algorithm in the awkward situation of paying for a largely unnecessary cost.
+The good news is that this problem can be mitigated.
+
+\subsection{Redundant Timestamps}\label{relaxedtimes}
+The problem with polling remote sub-queues is that correctness is critical.
+There must be a consensus among \procs on which sub-queues hold which \ats, as the \ats are in constant motion.
+Furthermore, since timestamps are used for fairness, it is critical to have a consensus on which \at is the oldest.
+However, when deciding if a remote sub-queue is worth polling, correctness is less of a problem.
+Since the only requirement is that a sub-queue is eventually polled, some data staleness is acceptable.
 This leads to a situation where stale timestamps are only problematic in some cases.
-Furthermore, stale timestamps can be desirable since lower freshness requirements mean less cache invalidations.
+Furthermore, stale timestamps can be desirable since lower freshness requirements mean fewer cache invalidations.
 
 Figure~\ref{fig:base-ts2} shows a solution with a second array containing a copy of the timestamps and average.
-This copy is updated \emph{after} the subqueue's critical sections using relaxed atomics.
+This copy is updated \emph{after} the sub-queue's critical sections using relaxed atomics.
 \Glspl{proc} now check if polling is needed by comparing the copy of the remote timestamp instead of the actual timestamp.
 The result is that since there is no fencing, the writes can be buffered in the hardware and cause fewer cache invalidations.
@@ -279,5 +279,5 @@
 	\input{base_ts2.pstex_t}
 	\caption[\CFA design with Redundant Timestamps]{\CFA design with Redundant Timestamps \smallskip\newline An array is added containing a copy of the timestamps.
-	These timestamps are written to with relaxed atomics, so there is no order among concurrent memory accesses, leading to fewer cache invalidations.}
+	These timestamps are written-to with relaxed atomics, so there is no order among concurrent memory accesses, leading to fewer cache invalidations.}
 	\label{fig:base-ts2}
 \end{figure}
@@ -285,12 +285,12 @@
 The correctness argument is somewhat subtle.
 The data used for deciding whether or not to poll a queue can be stale as long as it does not cause starvation.
-Therefore, it is acceptable if stale data makes queues appear older than they really are but appearing fresher can be a problem.
-For the timestamps, this means missing writes to the timestamp is acceptable since they make the head \at look older.
+Therefore, it is acceptable if stale data makes queues appear older than they are but appearing fresher can be a problem.
+For the timestamps, this means it is acceptable to miss writes to the timestamp since they make the head \at look older.
 For the moving average, as long as the operations are just atomic reads/writes, the average is guaranteed to yield a value that is between the oldest and newest values written.
-Therefore, this unprotected read of the timestamp and average satisfy the limited correctness that is required.
+Therefore, this unprotected read of the timestamp and average satisfies the limited correctness that is required.
 
 With redundant timestamps, this scheduling algorithm achieves both the fairness and performance requirements on most machines.
 The problem is that the cost of polling and helping is not necessarily consistent across each \gls{hthrd}.
-For example, on machines with a CPU containing multiple hyperthreads and cores and multiple CPU sockets, cache misses can be satisfied from the caches on same (local) CPU, or by a CPU on a different (remote) socket.
+For example on machines with a CPU containing multiple hyper threads and cores and multiple CPU sockets, cache misses can be satisfied from the caches on the same (local) CPU, or by a CPU on a different (remote) socket.
 Cache misses satisfied by a remote CPU have significantly higher latency than from the local CPU.
 However, these delays are not specific to systems with multiple CPUs.
@@ -313,9 +313,9 @@
 In Figure~\ref{fig:cache-share}, all cache misses are either private to a CPU or shared with another CPU.
 This means latency due to cache misses is fairly consistent.
-In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of L3 cache.
+In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of the L3 cache.
 However, the memory-access latency to the remote L3 is higher than the memory-access latency to the local L3.
 The impact of these different designs on this algorithm is that scheduling only scales well on architectures with a wide L3 cache, similar to Figure~\ref{fig:cache-share}, and less well on architectures with many narrower L3 cache instances, similar to Figure~\ref{fig:cache-noshare}.
-Hence, as the number of L3 instances grow, so too does the chance that the random helping causes significant cache latency.
-The solution is for the scheduler be aware of the cache topology.
+Hence, as the number of L3 instances grows, so too does the chance that the random helping causes significant cache latency.
+The solution is for the scheduler to be aware of the cache topology.
 
 \subsection{Per CPU Sharding}
@@ -323,29 +323,29 @@
 Unfortunately, there is no portable way to discover cache topology, and it is outside the scope of this thesis to solve this problem.
 This work uses the cache topology information from Linux's @/sys/devices/system/cpu@ directory.
-This leaves the challenge of matching \procs to cache structure, or more precisely identifying which subqueues of the ready queue are local to which subcomponents of the cache structure.
-Once a matching is generated, the helping algorithm is changed to add bias so that \procs more often help subqueues local to the same cache substructure.\footnote{
+This leaves the challenge of matching \procs to cache structure, or more precisely identifying which sub-queues of the ready queue are local to which subcomponents of the cache structure.
+Once a match is generated, the helping algorithm is changed to add bias so that \procs more often help sub-queues local to the same cache substructure.\footnote{
 Note that like other biases mentioned in this section, the actual bias value does not appear to need precise tuning.}
 
-The simplest approach for mapping subqueues to cache structure is to statically tie subqueues to CPUs.
-Instead of having each subqueue local to a specific \proc, the system is initialized with subqueues for each hardware hyperthread/core up front.
-Then \procs dequeue and enqueue by first asking which CPU id they are executing on, in order to identify which subqueues are the local ones.
+The simplest approach for mapping sub-queues to cache structure is to statically tie sub-queues to CPUs.
+Instead of having each sub-queue local to a specific \proc, the system is initialized with sub-queues for each hardware hyperthread/core up front.
+Then \procs dequeue and enqueue by first asking which CPU id they are executing on, to identify which sub-queues are the local ones.
 \Glspl{proc} can get the CPU id from @sched_getcpu@ or @librseq@.
 
 This approach solves the performance problems on systems with topologies with narrow L3 caches, similar to Figure \ref{fig:cache-noshare}.
 However, it can still cause some subtle fairness problems in systems with few \procs and many \glspl{hthrd}.
-In this case, the large number of subqueues and the bias against subqueues tied to different cache substructures make it unlikely that every subqueue is picked.
-To make things worst, the small number of \procs mean that few helping attempts are made.
-This combination of low selection and few helping attempts allow a \at to become stranded on a subqueue for a long time until it gets randomly helped.
-On a system with 2 \procs, 256 \glspl{hthrd} with narrow cache sharing, and a 100:1 bias, it can actually take multiple seconds for a \at to get dequeued from a remote queue.
-Therefore, a more dynamic matching of subqueues to cache instance is needed.
+In this case, the large number of sub-queues and the bias against sub-queues tied to different cache substructures make it unlikely that every sub-queue is picked.
+To make things worst, the small number of \procs means that few helping attempts are made.
+This combination of low selection and few helping attempts allow a \at to become stranded on a sub-queue for a long time until it gets randomly helped.
+On a system with 2 \procs, 256 \glspl{hthrd} with narrow cache sharing, and a 100:1 bias, it can take multiple seconds for a \at to get dequeued from a remote queue.
+Therefore, a more dynamic match of sub-queues to cache instances is needed.
 
 \subsection{Topological Work Stealing}
 \label{s:TopologicalWorkStealing}
-Therefore, the approach used in the \CFA scheduler is to have per-\proc subqueues, but have an explicit data-structure track which cache substructure each subqueue is tied to.
+The approach used in the \CFA scheduler is to have per-\proc sub-queues, but have an explicit data structure to track which cache substructure each sub-queue is tied to.
 This tracking requires some finesse because reading this data structure must lead to fewer cache misses than not having the data structure in the first place.
-A key element however is that, like the timestamps for helping, reading the cache instance mapping only needs to give the correct result \emph{often enough}.
+A key element, however, is that, like the timestamps for helping, reading the cache instance mapping only needs to give the correct result \emph{often enough}.
 Therefore the algorithm can be built as follows: before enqueueing or dequeuing a \at, each \proc queries the CPU id and the corresponding cache instance.
-Since subqueues are tied to \procs, each \proc can then update the cache instance mapped to the local subqueue(s).
-To avoid unnecessary cache line invalidation, the map is only written to if the mapping changes.
+Since sub-queues are tied to \procs, each \proc can then update the cache instance mapped to the local sub-queue(s).
+To avoid unnecessary cache line invalidation, the map is only written-to if the mapping changes.
 
 This scheduler is used in the remainder of the thesis for managing CPU execution, but additional scheduling is needed to handle long-term blocking and unblocking, such as I/O.
Index: doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -2,17 +2,17 @@
 The previous chapter demonstrated the \CFA scheduler achieves its equivalent performance goal in small and controlled \at-scheduling scenarios.
 The next step is to demonstrate performance stays true in more realistic and complete scenarios.
-Therefore, this chapter exercises both \at and I/O scheduling using two flavours of webservers that demonstrate \CFA performs competitively with production environments.
-
-Webservers are chosen because they offer fairly simple applications that perform complex I/O, both network and disk, and are useful as standalone products.
-Furthermore, webservers are generally amenable to parallelization since their workloads are mostly homogeneous.
-Therefore, webservers offer a stringent performance benchmark for \CFA.
-Indeed, existing webservers have close to optimal performance, while the homogeneity of the workload means fairness may not be a problem.
-As such, these experiments should highlight the overhead tue to any \CFA fairness cost in realistic scenarios.
+Therefore, this chapter exercises both \at and I/O scheduling using two flavours of web servers that demonstrate \CFA performs competitively compared to web servers used in production environments.
+
+Web servers are chosen because they offer fairly simple applications that perform complex I/O, both network and disk, and are useful as standalone products.
+Furthermore, web servers are generally amenable to parallelization since their workloads are mostly homogeneous.
+Therefore, web servers offer a stringent performance benchmark for \CFA.
+Indeed, existing web servers have close to optimal performance, while the homogeneity of the workload means fairness may not be a problem.
+As such, these experiments should highlight the overhead due to any \CFA fairness cost in realistic scenarios.
 
 \section{Memcached}
 Memcached~\cite{memcached} is an in-memory key-value store used in many production environments, \eg \cite{atikoglu2012workload}.
-In fact, the Memcached server is so popular there exists a full-featured front-end for performance testing, called @mutilate@~\cite{GITHUB:mutilate}.
-Experimenting on Memcached allows for a simple test of the \CFA runtime as a whole, exercising the scheduler, the idle-sleep mechanism, as well the \io subsystem for sockets.
-Note, this experiment does not exercise the \io subsystem with regards to disk operations because Memcached is an in-memory server.
+The Memcached server is so popular there exists a full-featured front-end for performance testing, called @mutilate@~\cite{GITHUB:mutilate}.
+Experimenting on Memcached allows for a simple test of the \CFA runtime as a whole, exercising the scheduler, the idle-sleep mechanism, as well as the \io subsystem for sockets.
+Note that this experiment does not exercise the \io subsystem with regard to disk operations because Memcached is an in-memory server.
 
 \subsection{Benchmark Environment}
@@ -24,9 +24,9 @@
 Each node has 2 Intel(R) Xeon(R) CPU E5-2620 v2 running at 2.10GHz.
 \item
-These CPUs have 6 cores per CPUs and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}.
-\item
-The CPUs each have 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches respectively.
-\item
-Each node is connected to the network through a Mellanox 10 Gigabit Ethernet port.
+Each CPU has 6 cores and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}.
+\item
+A CPU has 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches, respectively.
+\item
+The compute nodes are connected to the network through a Mellanox 10 Gigabit Ethernet port.
 \item
 Network routing is performed by a Mellanox SX1012 10/40 Gigabit Ethernet switch.
@@ -35,5 +35,5 @@
 \subsection{Memcached threading}\label{memcd:thrd}
 Memcached can be built to use multiple threads in addition to its @libevent@ subsystem to handle requests.
-When enabled, the threading implementation operates as follows~\cite{https://docs.oracle.com/cd/E17952_01/mysql-5.6-en/ha-memcached-using-threads.html}:
+When enabled, the threading implementation operates as follows~\cite[\S~16.2.2.8]{MemcachedThreading}:
 \begin{itemize}
 \item
@@ -48,9 +48,9 @@
 For UDP connections, all the threads listen to a single UDP socket for incoming requests.
 Threads that are not currently dealing with another request ignore the incoming packet.
-One of the remaining, nonbusy, threads reads the request and sends the response.
-This implementation can lead to increased CPU load as threads wake from sleep to potentially process the request.
-\end{itemize}
-Here, Memcached is based on an event-based webserver architecture~\cite{Pai99Flash}, using \gls{kthrd}ing to run multiple largely independent event engines, and if needed, spinning up additional kernel threads to handle blocking I/O.
-Alternative webserver architecture are:
+One of the remaining, non-busy, threads reads the request and sends the response.
+This implementation can lead to increased CPU \gls{load} as threads wake from sleep to potentially process the request.
+\end{itemize}
+Here, Memcached is based on an event-based web server architecture~\cite{Pai99Flash}, using \gls{kthrd}ing to run multiple largely independent event engines, and if needed, spinning up additional kernel threads to handle blocking I/O.
+Alternative web server architectures are:
 \begin{itemize}
 \item
@@ -74,5 +74,5 @@
  \item \emph{vanilla}: the official release of Memcached, version~1.6.9.
  \item \emph{fibre}: a modification of vanilla using the thread-per-connection model on top of the libfibre runtime.
- \item \emph{cfa}: a modification of the fibre webserver that replaces the libfibre runtime with \CFA.
+ \item \emph{cfa}: a modification of the fibre web server that replaces the libfibre runtime with \CFA.
 \end{itemize}
 
@@ -80,17 +80,17 @@
 This experiment is done by having the clients establish 15,360 total connections, which persist for the duration of the experiment.
 The clients then send read and write queries with only 3\% writes (updates), attempting to follow a desired query rate, and the server responds to the desired rate as best as possible.
-Figure~\ref{fig:memcd:rate:qps} shows the 3 server versions at different client rates, ``Target \underline{Q}ueries \underline{P}er \underline{S}econd'', and the actual rate, ``Actual QPS'', for all three webservers.
-
-Like the experimental setup in Chapter~\ref{microbench}, each experiment is run 15 times, and for each client rate, the measured webserver rate is plotted.
+Figure~\ref{fig:memcd:rate:qps} shows the 3 server versions at different client rates, ``Target \underline{Q}ueries \underline{P}er \underline{S}econd'', and the actual rate, ``Actual QPS'', for all three web servers.
+
+Like the experimental setup in Chapter~\ref{microbench}, each experiment is run 15 times, and for each client rate, the measured web server rate is plotted.
 The solid line represents the median while the dashed and dotted lines represent the maximum and minimum respectively.
-For rates below 500K queries per seconds, all three webservers match the client rate.
-Beyond 500K, the webservers cannot match the client rate.
-During this interval, vanilla Memcached achieves the highest webserver throughput, with libfibre and \CFA slightly lower but very similar throughput.
-Overall the performance of all three webservers is very similar, especially considering that at 500K the servers have reached saturation, which is discussed more in the next section.
+For rates below 500K queries per second, all three web servers match the client rate.
+Beyond 500K, the web servers cannot match the client rate.
+During this interval, vanilla Memcached achieves the highest web server throughput, with libfibre and \CFA slightly lower but very similar throughput.
+Overall the performance of all three web servers is very similar, especially considering that at 500K the servers have reached saturation, which is discussed more in the next section.
 
 \begin{figure}
 	\centering
 	\resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.qps.pstex_t}}
-	\caption[Memcached Benchmark: Throughput]{Memcached Benchmark: Throughput\smallskip\newline Desired vs Actual query rate for 15,360 connections. Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server is able to respond.}
+	\caption[Memcached Benchmark: Throughput]{Memcached Benchmark: Throughput\smallskip\newline Desired vs Actual query rate for 15,360 connections. Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server can respond.}
 	\label{fig:memcd:rate:qps}
 %\end{figure}
@@ -99,30 +99,31 @@
 	\centering
 	\resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.99th.pstex_t}}
-	\caption[Memcached Benchmark : 99th Percentile Lantency]{Memcached Benchmark : 99th Percentile Lantency\smallskip\newline 99th Percentile of the response latency as a function of \emph{desired} query rate for 15,360 connections. }
+	\caption[Memcached Benchmark: 99th Percentile Latency]{Memcached Benchmark: 99th Percentile Latency\smallskip\newline 99th Percentile of the response latency as a function of \emph{desired} query rate for 15,360 connections. }
 	\label{fig:memcd:rate:tail}
 \end{figure}
 
 \subsection{Tail Latency}
-Another popular performance metric is \newterm{tail} latency, which indicates some notion of fairness among requests across the experiment, \ie do some requests wait longer than other requests for service.
+Another popular performance metric is \newterm{tail} latency, which indicates some notion of fairness among requests across the experiment, \ie do some requests wait longer than other requests for service?
 Since many web applications rely on a combination of different queries made in parallel, the latency of the slowest response, \ie tail latency, can dictate a performance perception.
 Figure~\ref{fig:memcd:rate:tail} shows the 99th percentile latency results for the same Memcached experiment.
 
 Again, each experiment is run 15 times with the median, maximum and minimum plotted with different lines.
-As expected, the latency starts low and increases as the server gets close to saturation, at which point, the latency increases dramatically because the webservers cannot keep up with the connection rate so client requests are disproportionally delayed.
-Because of this dramatic increase, the Y axis is presented using log scale.
-Note that the graph shows \emph{target} query rate, the actual response rate is given in Figure~\ref{fig:memcd:rate:qps} as this is the same underlying experiment.
-
-For all three servers, the saturation point is reached before 500K queries per second, which is when throughput starts to decline among the webservers.
-In this experiment, all three webservers are much more distinguishable than the throughput experiment.
-Vanilla Memcached achieves the lowest latency until 600K, after which all the webservers are struggling to respond to client requests.
+As expected, the latency starts low and increases as the server gets close to saturation, at which point, the latency increases dramatically because the web servers cannot keep up with the connection rate so client requests are disproportionally delayed.
+Because of this dramatic increase, the Y-axis is presented using a log scale.
+Note that the graph shows the \emph{target} query rate, the actual response rate is given in Figure~\ref{fig:memcd:rate:qps} as this is the same underlying experiment.
+
+For all three servers, the saturation point is reached before 500K queries per second, which is when throughput starts to decline among the web servers.
+In this experiment, all three web servers are much more distinguishable than in the throughput experiment.
+Vanilla Memcached achieves the lowest latency until 600K, after which all the web servers are struggling to respond to client requests.
 \CFA begins to decline at 600K, indicating some bottleneck after saturation.
-Overall, all three webservers achieve micro-second latencies and the increases in latency mostly follow each other.
+Overall, all three web servers achieve microsecond latencies and the increases in latency mostly follow each other.
 
 \subsection{Update rate}
-Since Memcached is effectively a simple database, the information that is cached can be written to concurrently by multiple queries.
+Since Memcached is effectively a simple database, the cache information can be written to concurrently by multiple queries.
 And since writes can significantly affect performance, it is interesting to see how varying the update rate affects performance.
 Figure~\ref{fig:memcd:updt} shows the results for the same experiment as the throughput and latency experiment but increasing the update percentage to 5\%, 10\% and 50\%, respectively, versus the original 3\% update percentage.
 
 \begin{figure}
+	\hspace{-15pt}
 	\subfloat[][\CFA: Throughput]{
 		\resizebox{0.5\linewidth}{!}{
@@ -132,5 +133,5 @@
 	}
 	\subfloat[][\CFA: Latency]{
-		\resizebox{0.5\linewidth}{!}{
+		\resizebox{0.52\linewidth}{!}{
 			\input{result.memcd.forall.lat.pstex_t}
 		}
@@ -138,4 +139,5 @@
 	}
 
+	\hspace{-15pt}
 	\subfloat[][LibFibre: Throughput]{
 		\resizebox{0.5\linewidth}{!}{
@@ -145,5 +147,5 @@
 	}
 	\subfloat[][LibFibre: Latency]{
-		\resizebox{0.5\linewidth}{!}{
+		\resizebox{0.52\linewidth}{!}{
 			\input{result.memcd.fibre.lat.pstex_t}
 		}
@@ -151,4 +153,5 @@
 	}
 
+	\hspace{-15pt}
 	\subfloat[][Vanilla: Throughput]{
 		\resizebox{0.5\linewidth}{!}{
@@ -158,10 +161,15 @@
 	}
 	\subfloat[][Vanilla: Latency]{
-		\resizebox{0.5\linewidth}{!}{
+		\resizebox{0.52\linewidth}{!}{
 			\input{result.memcd.vanilla.lat.pstex_t}
 		}
 		\label{fig:memcd:updt:vanilla:lat}
 	}
-	\caption[Throughput and Latency results at different update rates (percentage of writes).]{Throughput and Latency results at different update rates (percentage of writes).\smallskip\newline Description}
+	\caption[Throughput and Latency results at different update rates (percentage of writes).]{Throughput and Latency results at different update rates (percentage of writes).\smallskip\newline On the left, throughput as Desired vs Actual query rate.
+	Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server can respond.
+	On the right, tail latency, \ie 99th Percentile of the response latency as a function of \emph{desired} query rate.
+	For throughput, higher is better, for tail-latency, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
+	All runs have 15,360 client connections.
 	\label{fig:memcd:updt}
 \end{figure}
@@ -175,81 +183,85 @@
 \section{Static Web-Server}
 The Memcached experiment does not exercise two key aspects of the \io subsystem: accept\-ing new connections and interacting with disks.
-On the other hand, a webserver servicing static web-pages does stress both accepting connections and disk \io by accepting tens of thousands of client requests per second where these requests return static data serviced from the file-system cache or disk.\footnote{
-Webservers servicing dynamic requests, which read from multiple locations and construct a response, are not as interesting since creating the response takes more time and does not exercise the runtime in a meaningfully different way.}
-The static webserver experiment compares NGINX~\cite{nginx} with a custom \CFA-based webserver developed for this experiment.
+On the other hand, a web server servicing static web pages does stress both accepting connections and disk \io by accepting tens of thousands of client requests per second where these requests return static data serviced from the file-system cache or disk.\footnote{
+web servers servicing dynamic requests, which read from multiple locations and construct a response, are not as interesting since creating the response takes more time and does not exercise the runtime in a meaningfully different way.}
+The static web server experiment compares NGINX~\cite{nginx} with a custom \CFA-based web server developed for this experiment.
 
 \subsection{NGINX threading}
-Like memcached, NGINX can be makde to use multiple \glspl{kthrd}.
-It has a very similar architecture to the memcached architecture decscribed in Section~\ref{memcd:thrd}, where multiple \glspl{kthrd} each run a mostly independent network logic.
-While it does not necessarily use a dedicated listening thread, each connection is arbitrarily assigned to one of the \newterm{worker} threads.
-Each worker threads handles multiple connections exclusively, effectively dividing the connections into distinct sets.
-Again, this is effectively the \emph{event-based server} approach.
-
-\cit{https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/}
-
-
-\subsection{\CFA webserver}
-The \CFA webserver is a straightforward thread-per-connection webserver, where a fixed number of \ats are created upfront.
+NGINX is a high-performance, \emph{full-service}, event-driven web server.
+It can handle both static and dynamic web content, as well as serve as a reverse proxy and a load balancer~\cite{reese2008nginx}.
+This wealth of capabilities comes with a variety of potential configurations, dictating available features and performance.
+The NGINX server runs a master process that performs operations such as reading configuration files, binding to ports, and controlling worker processes.
+When running as a static web server, it uses an event-driven architecture to service incoming requests.
+Incoming connections are assigned a \emph{stackless} HTTP state machine and worker processes can handle thousands of these state machines.
+For the following experiment, NGINX is configured to use @epoll@ to listen for events on these state machines and have each worker process independently accept new connections.
+Because of the realities of Linux, see Subsection~\ref{ononblock}, NGINX also maintains a pool of auxiliary threads to handle blocking \io.
+The configuration can set the number of worker processes desired, as well as the size of the auxiliary pool.
+However, for the following experiments, NGINX is configured to let the master process decide the appropriate number of threads.
+
+\subsection{\CFA web server}
+The \CFA web server is a straightforward thread-per-connection web server, where a fixed number of \ats are created upfront.
 Each \at calls @accept@, through @io_uring@, on the listening port and handles the incoming connection once accepted.
 Most of the implementation is fairly straightforward;
 however, the inclusion of file \io found an @io_uring@ problem that required an unfortunate workaround.
 
-Normally, webservers use @sendfile@~\cite{MAN:sendfile} to send files over a socket because it performs a direct move in the kernel from the file-system cache to the NIC, eliminating reading/writing the file into the webserver.
-While @io_uring@ does not support @sendfile@, it does supports @splice@~\cite{MAN:splice}, which is strictly more powerful.
-However, because of how Linux implements file \io, see Subsection~\ref{ononblock}, @io_uring@ must delegate splice calls to worker threads inside the kernel.
+Normally, web servers use @sendfile@~\cite{MAN:sendfile} to send files over a socket because it performs a direct move in the kernel from the file-system cache to the NIC, eliminating reading/writing the file into the web server.
+While @io_uring@ does not support @sendfile@, it does support @splice@~\cite{MAN:splice}, which is strictly more powerful.
+However, because of how Linux implements file \io, see Subsection~\ref{ononblock}, @io_uring@ must delegate splice calls to worker threads \emph{inside} the kernel.
 As of Linux 5.13, @io_uring@ had no mechanism to restrict the number of worker threads, and therefore, when tens of thousands of splice requests are made, it correspondingly creates tens of thousands of internal \glspl{kthrd}.
 Such a high number of \glspl{kthrd} slows Linux significantly.
-Rather than abandon the experiment, the \CFA webserver was switched to @sendfile@.
-
-With a blocking @sendfile@ the \CFA achieves acceptable performance until saturation is reached.
-At saturation, latency increases so some client connections timeout.
+Rather than abandon the experiment, the \CFA web server was switched to @sendfile@.
+
+Starting with \emph{blocking} @sendfile@, \CFA achieves acceptable performance until saturation is reached.
+At saturation, latency increases and client connections begin to timeout.
 As these clients close their connection, the server must close its corresponding side without delay so the OS can reclaim the resources used by these connections.
 Indeed, until the server connection is closed, the connection lingers in the CLOSE-WAIT TCP state~\cite{rfc:tcp} and the TCP buffers are preserved.
-However, this poses a problem using nonblocking @sendfile@ calls:
+However, this poses a problem using blocking @sendfile@ calls:
 when @sendfile@ blocks, the \proc rather than the \at blocks, preventing other connections from closing their sockets.
 The call can block if there is insufficient memory, which can be caused by having too many connections in the CLOSE-WAIT state.\footnote{
 \lstinline{sendfile} can always block even in nonblocking mode if the file to be sent is not in the file-system cache, because Linux does not provide nonblocking disk I/O.}
-This effect results in a negative feedback where more timeouts lead to more @sendfile@ calls running out of resources.
-
-Normally, this is address by using @select@/@epoll@ to wait for sockets to have sufficient resources.
-However, since @io_uring@ respects nonblocking semantics, marking all sockets as non-blocking effectively circumvents the @io_uring@ subsystem entirely:
-all calls would simply immediately return @EAGAIN@ and all asynchronicity would be lost.
-
-For this reason, the \CFA webserver sets and resets the @O_NONBLOCK@ flag before and after any calls to @sendfile@.
+This effect results in a negative feedback loop where more timeouts lead to more @sendfile@ calls running out of resources.
+
+Normally, this problem is addressed by using @select@/@epoll@ to wait for sockets to have sufficient resources.
+However, since @io_uring@ does not support @sendfile@ but does respect non\-blocking semantics, marking all sockets as non-blocking effectively circumvents the @io_uring@ subsystem entirely:
+all calls simply immediately return @EAGAIN@ and all asynchronicity is lost.
+
+Switching the entire \CFA runtime to @epoll@ for this experiment is unrealistic and does not help in the evaluation of the \CFA runtime.
+For this reason, the \CFA web server sets and resets the @O_NONBLOCK@ flag before and after any calls to @sendfile@.
 However, when the nonblocking @sendfile@ returns @EAGAIN@, the \CFA server cannot block the \at because its I/O subsystem uses @io_uring@.
-Therefore, the \at must spin performing the @sendfile@ and yield if the call returns @EAGAIN@.
-Normally @epoll@ would also be used when these calls to @sendfile@ return @EAGAIN@, but since this would not help in the evaluation of the \CFA runtime, the \CFA webserver simply yields and retries in these cases.
-
-Interestingly, Linux 5.15 @io_uring@ introduces the ability to limit the number of worker threads that are created, through the @IORING_REGISTER_IOWQ_MAX_WORKERS@ option.
-Presumably, this limit could prevent the explosion of \glspl{kthrd} which justified using @sendfile@ over @io_uring@ and @splice@.
+Therefore, the \at spins performing the @sendfile@, yields if the call returns @EAGAIN@ and retries in these cases.
+
+Interestingly, Linux 5.15 @io_uring@ introduces the ability to limit the number of worker threads that are created through the @IORING_REGISTER_IOWQ_MAX_WORKERS@ option.
+Presumably, this limit would prevent the explosion of \glspl{kthrd}, which justified using @sendfile@ over @io_uring@ and @splice@.
 However, recall from Section~\ref{iouring} that @io_uring@ maintains two pools of workers: bounded workers and unbounded workers.
-In the particular case of the webserver, we would want the unbounded workers to handle accepts and reads on socket and bounded workers to handle reading the files from disk.
-This would allow fine grained countrol over the number of workers needed for each operation type and would presumably lead to good performance.
+For a web server, the unbounded workers should handle accepts and reads on sockets, and the bounded workers should handle reading files from disk.
+This setup allows fine-grained control over the number of workers needed for each operation type and presumably leads to good performance.
+
 However, @io_uring@ must contend with another reality of Linux: the versatility of @splice@.
-Indeed, @splice@ can be used both for reading and writing, to or from any type of file descriptor.
-This makes it more ambiguous which pool @io_uring@ should delegate @splice@ calls to.
-In the case of splicing from a socket to pipe, @splice@ will behave like an unbounded operation, but when splicing from a regular file to a pipe, @splice@ becomes a bounded operation.
-To make things more complicated, @splice@ can read from a pipe and write out to a regular file.
+Indeed, @splice@ can be used both for reading and writing to or from any type of file descriptor.
+This generality makes it ambiguous which pool @io_uring@ should delegate @splice@ calls to.
+In the case of splicing from a socket to a pipe, @splice@ behaves like an unbounded operation, but when splicing from a regular file to a pipe, @splice@ becomes a bounded operation.
+To make things more complicated, @splice@ can read from a pipe and write to a regular file.
 In this case, the read is an unbounded operation but the write is a bounded one.
 This leaves @io_uring@ in a difficult situation where it can be very difficult to delegate splice operations to the appropriate type of worker.
-Since there is little to no context available to @io_uring@, I believe it makes the decision to always delegate @splice@ operations to the unbounded workers.
-This is unfortunate for this specific experiment, since it prevents the webserver from limiting the number of calls to @splice@ happening in parallel without affecting the performance of @read@ or @accept@.
+Since there is little or no context available to @io_uring@, it seems to always delegate @splice@ operations to the unbounded workers.
+This decision is unfortunate for this specific experiment since it prevents the web server from limiting the number of parallel calls to @splice@ without affecting the performance of @read@ or @accept@.
 For this reason, the @sendfile@ approach described above is still the most performant solution in Linux 5.15.
 
-Note that it could be possible to workaround this problem, for example by creating more @io_uring@ instances so @splice@ operations can be issued to a different instance than the @read@ and @accept@ operations.
-However, I do not believe this solution is appropriate in general, it simply replaces a hack in the webserver with a different, equivalent hack.
+One possible workaround is to create more @io_uring@ instances so @splice@ operations can be issued to a different instance than the @read@ and @accept@ operations.
+However, I do not believe this solution is appropriate in general;
+it simply replaces my current web server hack with a different, equivalent hack.
 
 \subsection{Benchmark Environment}
-Unlike the Memcached experiment, the webserver experiment is run on a heterogeneous environment.
+Unlike the Memcached experiment, the web server experiment is run on a heterogeneous environment.
 \begin{itemize}
 \item
 The server runs Ubuntu 20.04.4 LTS on top of Linux Kernel 5.13.0-52.
 \item
-It has an AMD Opteron(tm) Processor 6380 running at 2.5GHz.
+The server computer has four AMD Opteron\texttrademark Processor 6380 with 16 cores running at 2.5GHz, for a total of 64 \glspl{hthrd}.
+\item
+The computer is booted with only 8 CPUs enabled, which is sufficient to achieve line rate.
 \item
 Each CPU has 64 KB, 256 KiB and 8 MB of L1, L2 and L3 caches respectively.
 \item
-The computer is booted with only 8 CPUs enabled, which is sufficient to achieve line rate.
-\item
 The computer is booted with only 25GB of memory to restrict the file-system cache.
 \end{itemize}
@@ -257,35 +269,35 @@
 \begin{itemize}
 \item
-A client runs a 2.6.11-1 SMP Linux kernel, which permits each client load-generator to run on a separate CPU.
+A client runs a 2.6.11-1 SMP Linux kernel, which permits each client load generator to run on a separate CPU.
 \item
 It has two 2.8 GHz Xeon CPUs, and four one-gigabit Ethernet cards.
 \item
-\todo{switch}
+Network routing is performed by an HP 2530 10 Gigabit Ethernet switch.
 \item
 A client machine runs two copies of the workload generator.
 \end{itemize}
 The clients and network are sufficiently provisioned to drive the server to saturation and beyond.
-Hence, any server effects are attributable solely to the runtime system and webserver.
-Finally, without restricting the server hardware resources, it is impossible to determine if a runtime system or the webserver using it has any specific design restrictions, \eg using space to reduce time.
-Trying to determine these restriction with large numbers of processors or memory simply means running equally large experiments, which takes longer and are harder to set up.
+Hence, any server effects are attributable solely to the runtime system and web server.
+Finally, without restricting the server hardware resources, it is impossible to determine if a runtime system or the web server using it has any specific design restrictions, \eg using space to reduce time.
+Trying to determine these restrictions with large numbers of processors or memory simply means running equally large experiments, which take longer and are harder to set up.
 
 \subsection{Throughput}
-To measure webserver throughput, the server computer is loaded with 21,600 files, sharded across 650 directories, occupying about 2.2GB of disk, distributed over the server's RAID-5 4-drives to achieve high throughput for disk I/O.
+To measure web server throughput, the server computer is loaded with 21,600 files, sharded across 650 directories, occupying about 2.2GB of disk, distributed over the server's RAID-5 4-drives to achieve high throughput for disk I/O.
 The clients run httperf~\cite{httperf} to request a set of static files.
-The httperf load-generator is used with session files to simulate a large number of users and to implement a partially open-loop system.
+The httperf load generator is used with session files to simulate a large number of users and to implement a partially open-loop system.
 This permits httperf to produce overload conditions, generate multiple requests from persistent HTTP/1.1 connections, and include both active and inactive off periods to model browser processing times and user think times~\cite{Barford98}.
 
 The experiments are run with 16 clients, each running a copy of httperf (one copy per CPU), requiring a set of 16 log files with requests conforming to a Zipf distribution.
-This distribution is representative of users accessing static data through a web-browser.
-Each request reads a file name from its trace, establishes a connection, performs an HTTP get-request for the file name, receive the file data, close the connection, and repeat the process.
+This distribution is representative of users accessing static data through a web browser.
+Each request reads a file name from its trace, establishes a connection, performs an HTTP GET request for the file name, receives the file data, closes the connection, and repeats the process.
 Some trace elements have multiple file names that are read across a persistent connection.
-A client times-out if the server does not complete a request within 10 seconds.
+A client times out if the server does not complete a request within 10 seconds.
 
 An experiment consists of running a server with request rates ranging from 10,000 to 70,000 requests per second;
 each rate takes about 5 minutes to complete.
-There is 20 seconds idle time between rates and between experiments to allow connections in the TIME-WAIT state to clear.
+There are 20 seconds of idle time between rates and between experiments to allow connections in the TIME-WAIT state to clear.
 Server throughput is measured both at peak and after saturation (\ie after peak).
 Peak indicates the level of client requests the server can handle and after peak indicates if a server degrades gracefully.
-Throughput is measured by aggregating the results from httperf of all the clients.
+Throughput is measured by aggregating the results from httperf for all the clients.
 
 This experiment can be done for two workload scenarios by reconfiguring the server with different amounts of memory: 25 GB and 2.5 GB.
@@ -305,15 +317,6 @@
 \end{table}
 
-Figure~\ref{fig:swbsrv} shows the results comparing \CFA to NGINX in terms of throughput.
-These results are fairly straightforward.
-Both servers achieve the same throughput until around 57,500 requests per seconds.
-Since the clients are asking for the same files, the fact that the throughput matches exactly is expected as long as both servers are able to serve the desired rate.
-Once the saturation point is reached, both servers are still very close.
-NGINX achieves slightly better throughput.
-However, Figure~\ref{fig:swbsrv:err} shows the rate of errors, a gross approximation of tail latency, where \CFA achieves notably fewer errors once the machine reaches saturation.
-This suggest that \CFA is slightly more fair and NGINX may slightly sacrifice some fairness for improved throughput.
-It demonstrate that the \CFA webserver described above is able to match the performance of NGINX up-to and beyond the saturation point of the machine.
-
 \begin{figure}
+	\centering
 	\subfloat[][Throughput]{
 		\resizebox{0.85\linewidth}{!}{\input{result.swbsrv.25gb.pstex_t}}
@@ -325,19 +328,32 @@
 		\label{fig:swbsrv:err}
 	}
-	\caption[Static Webserver Benchmark : Throughput]{Static Webserver Benchmark : Throughput\smallskip\newline Throughput vs request rate for short lived connections connections.}
+	\caption[Static web server Benchmark: Throughput]{Static web server Benchmark: Throughput\smallskip\newline Throughput vs request rate for short-lived connections.}
 	\label{fig:swbsrv}
 \end{figure}
 
+Figure~\ref{fig:swbsrv} shows the results comparing \CFA to NGINX in terms of throughput.
+These results are fairly straightforward.
+Both servers achieve the same throughput until around 57,500 requests per second.
+Since the clients are asking for the same files, the fact that the throughput matches exactly is expected as long as both servers are able to serve the request rate.
+Once the saturation point is reached, both servers are still very close.
+NGINX achieves slightly better throughput.
+However, Figure~\ref{fig:swbsrv:err} shows the rate of errors, a gross approximation of tail latency, where \CFA achieves notably fewer errors once the servers reach saturation.
+This suggests \CFA is slightly fairer with less throughput, while NGINX sacrifices fairness for more throughput.
+This experiment demonstrates that the \CFA web server is able to match the performance of NGINX up to and beyond the saturation point of the machine.
+
 \subsection{Disk Operations}
-The throughput was made using a server with 25gb of memory, this was sufficient to hold the entire fileset in addition to all the code and data needed to run the webserver and the rest of the machine.
-Previous work like \cit{Cite Ashif's stuff} demonstrate that an interesting follow-up experiment is to rerun the same throughput experiment but allowing significantly less memory on the machine.
-If the machine is constrained enough, it will force the OS to evict files from the file cache and cause calls to @sendfile@ to have to read from disk.
-However, in this configuration, the problem with @splice@ and @io_uring@ rears its ugly head again.
+With 25GB of memory, the entire experimental file-set plus the web server and OS fit in memory.
+If memory is constrained, the OS must evict files from the file cache, which causes @sendfile@ to read from disk.\footnote{
+For the in-memory experiments, the file-system cache was warmed by running an experiment three times before measuring started to ensure all files are in the file-system cache.}
+web servers can behave very differently once file I/O begins and increases.
+Hence, prior work~\cite{Harji10} suggests running both kinds of experiments to test overall web server performance.
+
+However, after reducing memory to 2.5GB, the problem with @splice@ and @io_uring@ rears its ugly head again.
 Indeed, in the in-memory configuration, replacing @splice@ with calls to @sendfile@ works because the bounded side basically never blocks.
 Like @splice@, @sendfile@ is in a situation where the read side requires bounded blocking, \eg reading from a regular file, while the write side requires unbounded blocking, \eg blocking until the socket is available for writing.
-The unbounded side can be handled by yielding when it returns @EAGAIN@ like mentioned above, but this trick does not work for the bounded side.
+The unbounded side can be handled by yielding when it returns @EAGAIN@, as mentioned above, but this trick does not work for the bounded side.
 The only solution for the bounded side is to spawn more threads and let these handle the blocking.
 
-Supporting this case in the webserver would require creating more \procs or creating a dedicated thread-pool.
-However, since what I am to evaluate in this thesis is the runtime of \CFA, I decided to forgo experiments on low memory server.
-The implementation of the webserver itself is simply too impactful to be an interesting evaluation of the underlying runtime.
+Supporting this case in the web server would require creating more \procs or creating a dedicated thread pool.
+However, I felt this kind of modification moves too far away from my goal of evaluating the \CFA runtime, \ie it begins writing another runtime system;
+hence, I decided to forgo experiments on low-memory performance.
Index: doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -4,7 +4,7 @@
 This chapter presents five different experimental setups for evaluating the basic features of the \CFA, libfibre~\cite{libfibre}, Go, and Tokio~\cite{Tokio} schedulers.
 All of these systems have a \gls{uthrding} model.
-The goal in this chapter is show the \CFA scheduler obtains equivalent performance to other less fair schedulers through the different experiments.
-Note, only the code of the \CFA tests is shown;
-all tests in the other systems are functionally identical and available online~\cite{SchedulingBenchmarks}.
+The goal of this chapter is to show that the \CFA scheduler obtains equivalent performance to other, less fair, schedulers through the different experiments.
+Note that only the code of the \CFA tests is shown;
+all tests in the other systems are functionally identical and available online~\cite{GITHUB:SchedulingBenchmarks}.
 
 \section{Benchmark Environment}\label{microenv}
@@ -13,7 +13,7 @@
 \begin{description}
 \item[AMD] is a server with two AMD EPYC 7662 CPUs and 256GB of DDR4 RAM.
-The EPYC CPU has 64 cores with 2 \glspl{hthrd} per core, for 128 \glspl{hthrd} per socket with 2 sockets for a total of 256 \glspl{hthrd}.
+The EPYC CPU has 64 cores with 2 \glspl{hthrd} per core, for a total of 128 \glspl{hthrd} per socket with 2 sockets for a total of 256 \glspl{hthrd}.
 Each CPU has 4 MB, 64 MB and 512 MB of L1, L2 and L3 caches, respectively.
-Each L1 and L2 instance are only shared by \glspl{hthrd} on a given core, but each L3 instance is shared by 4 cores, therefore 8 \glspl{hthrd}.
+Each L1 and L2 instance is only shared by \glspl{hthrd} on a given core, but each L3 instance is shared by 4 cores, therefore 8 \glspl{hthrd}.
 The server runs Ubuntu 20.04.2 LTS on top of Linux Kernel 5.8.0-55.
 
@@ -25,5 +25,5 @@
 \end{description}
 
-For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA node with no hyper threading.
+For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA node with no hyperthreading.
 If more \glspl{hthrd} are needed, then 1 NUMA node with hyperthreading is used.
 If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA nodes as needed.
@@ -32,8 +32,8 @@
 On AMD, the same algorithm is used, but the machine only has 2 sockets.
 So hyperthreading\footnote{
-Hyperthreading normally refers specifically to the technique used by Intel, however it is often used generically to refer to any equivalent feature.}
-is used when the \proc count reach 65 and 193.
-
-The limited sharing of the last-level cache on the AMD machine is markedly different than the Intel machine.
+Hyperthreading normally refers specifically to the technique used by Intel, however, it is often used generically to refer to any equivalent feature.}
+is used when the \proc count reaches 65 and 193.
+
+The limited sharing of the last-level cache on the AMD machine is markedly different from the Intel machine.
 Indeed, while on both architectures L2 cache misses that are served by L3 caches on a different CPU incur a significant latency, on the AMD it is also the case that cache misses served by a different L3 instance on the same CPU also incur high latency.
 
@@ -42,5 +42,5 @@
 Each experiment is run 15 times varying the number of processors depending on the two different computers.
 All experiments gather throughput data and secondary data for scalability or latency.
-The data is graphed using a solid and two dashed lines representing the median, maximum and minimum result respectively, where the minimum/maximum lines are referred to as the \emph{extremes}.\footnote{
+The data is graphed using a solid, a dashed, and a dotted line, representing the median, maximum and minimum results respectively, where the minimum/maximum lines are referred to as the \emph{extremes}.\footnote{
 An alternative display is to use error bars with min/max as the bottom/top for the bar.
 However, this approach is not truly an error bar around a mean value and I felt the connected lines are easier to read.}
@@ -48,10 +48,10 @@
 
 For each experiment, four graphs are generated showing traditional throughput on the top row and \newterm{scalability} or \newterm{latency} on the bottom row (peek ahead to Figure~\ref{fig:cycle:jax}).
-Scalability uses the same data as throughput but the Y axis is calculated as the number of \procs over the throughput.
+Scalability uses the same data as throughput but the Y-axis is calculated as the number of \procs over the throughput.
 In this representation, perfect scalability should appear as a horizontal line, \eg, if doubling the number of \procs doubles the throughput, then the relation stays the same.
 
-The left column shows results for 100 cycles per \proc, enough cycles to always keep every \proc busy.
-The right column shows results for 1 cycle per \proc, where the ready queues are expected to be near empty most of the time.
-The distinction between 100 and 1 cycles is meaningful because the idle sleep subsystem is expected to matter only in the right column, where spurious effects can cause a \proc to run out of work temporarily.
+The left column shows results for hundreds of \ats per \proc, enough to always keep every \proc busy.
+The right column shows results for very few \ats per \proc, where the ready queues are expected to be near empty most of the time.
+The distinction between many and few \ats is meaningful because the idle sleep subsystem is expected to matter only in the right column, where spurious effects can cause a \proc to run out of work temporarily.
 
 \section{Cycle}
@@ -62,27 +62,27 @@
 Hence, systems that perform this optimization have an artificial performance benefit because the yield becomes a \emph{nop}.
 For this reason, I designed a different push/pop benchmark, called \newterm{Cycle Benchmark}.
-This benchmark arranges a number of \ats into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list.
-At runtime, each \at unparks the next \at before parking itself.
-Unparking the next \at pushes that \at onto the ready queue while the ensuing park leads to a \at being popped from the ready queue.
+This benchmark arranges several \ats into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list.
+At runtime, each \at unparks the next \at before \glslink{atblock}{parking} itself.
+Unparking the next \at pushes that \at onto the ready queue while the ensuing \park leads to a \at being popped from the ready queue.
 
 \begin{figure}
 	\centering
 	\input{cycle.pstex_t}
-	\caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before parking itself.}
+	\caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before \glslink{atblock}{parking} itself.}
 	\label{fig:cycle}
 \end{figure}
 
 Therefore, the underlying runtime cannot rely on the number of ready \ats staying constant over the duration of the experiment.
-In fact, the total number of \ats waiting on the ready queue is expected to vary because of the race between the next \at unparking and the current \at parking.
+In fact, the total number of \ats waiting on the ready queue is expected to vary because of the race between the next \at \glslink{atsched}{unparking} and the current \at \glslink{atblock}{parking}.
 That is, the runtime cannot anticipate that the current task immediately parks.
 As well, the size of the cycle is also decided based on this race, \eg a small cycle may see the chain of unparks go full circle before the first \at parks because of time-slicing or multiple \procs.
 If this happens, the scheduler push and pop are avoided and the results of the experiment are skewed.
-(Note, an unpark is like a V on a semaphore, so the subsequent park (P) may not block.)
-Every runtime system must handle this race and cannot optimized away the ready-queue pushes and pops.
-To prevent any attempt of silently omitting ready-queue operations, the ring of \ats is made big enough so the \ats have time to fully park before being unparked again.
+(Note, an \unpark is like a V on a semaphore, so the subsequent \park (P) may not block.)
+Every runtime system must handle this race and cannot optimize away the ready-queue pushes and pops.
+To prevent any attempt of silently omitting ready-queue operations, the ring of \ats is made big enough so the \ats have time to fully \park before being unparked again.
 Finally, to further mitigate any underlying push/pop optimizations, especially on SMP machines, multiple rings are created in the experiment.
 
 Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark, where each cycle has 5 \ats.
-There is additional complexity to handle termination (not shown), which requires a binary semaphore or a channel instead of raw @park@/@unpark@ and carefully picking the order of the @P@ and @V@ with respect to the loop condition.
+There is additional complexity to handle termination (not shown), which requires a binary semaphore or a channel instead of raw \park/\unpark and carefully picking the order of the @P@ and @V@ with respect to the loop condition.
 
 \begin{figure}
@@ -99,11 +99,7 @@
 }
 \end{cfa}
-\caption[Cycle Benchmark : Pseudo Code]{Cycle Benchmark : Pseudo Code}
+\caption[Cycle Benchmark: Pseudo Code]{Cycle Benchmark: Pseudo Code}
 \label{fig:cycle:code}
-%\end{figure}
-
 \bigskip
-
-%\begin{figure}
 	\subfloat[][Throughput, 100 cycles per \proc]{
 		\resizebox{0.5\linewidth}{!}{
@@ -131,5 +127,7 @@
 		\label{fig:cycle:jax:low:ns}
 	}
-	\caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle count. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are maximums while the solid line is the medium.}
+	\caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:cycle:jax}
 \end{figure}
@@ -161,5 +159,7 @@
 		\label{fig:cycle:nasus:low:ns}
 	}
-	\caption[Cycle Benchmark on AMD]{Cycle Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle count. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Cycle Benchmark on AMD]{Cycle Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:cycle:nasus}
 \end{figure}
@@ -167,36 +167,38 @@
 \subsection{Results}
 
-For the Intel architecture, Figure~\ref{fig:cycle:jax}:
-\begin{itemize}
-\item
-For 100 cycles per \proc (first column), \CFA, Go and Tokio all obtain effectively the same throughput performance.
+Figures~\ref{fig:cycle:jax} and \ref{fig:cycle:nasus} show the results for the cycle experiment on Intel and AMD, respectively.
+Looking at the left column on Intel, Figures~\ref{fig:cycle:jax:ops} and \ref{fig:cycle:jax:ns} show the results for 100 cycles of 5 \ats for each \proc.
+\CFA, Go and Tokio all obtain effectively the same throughput performance.
 Libfibre is slightly behind in this case but still scales decently.
-As a result of the \gls{kthrd} placement, additional \procs from 25 to 48 offer less performance improvement (flatting of the line) for all runtimes.
-As expected, this pattern repeats again between \proc count 72 and 96.
-\item
-For 1 cycle per \proc, \CFA and Tokio obtain very similar results overall, but Tokio shows more variations in the results.
-Go achieves slightly better performance.
+As a result of the \gls{kthrd} placement, additional \procs from 25 to 48 offer less performance improvement for all runtimes, which can be seen as a flattening of the line.
+This effect even causes a decrease in throughput in libfibre's case.
+As expected, this pattern repeats between \proc count 72 and 96.
+
+Looking next at the right column on Intel, Figures~\ref{fig:cycle:jax:low:ops} and \ref{fig:cycle:jax:low:ns} show the results for 1 cycle of 5 \ats for each \proc.
+\CFA and Tokio obtain very similar results overall, but Tokio shows more variations in the results.
+Go achieves slightly better performance than \CFA and Tokio, but all three display significantly worst performance compared to the left column.
+This decrease in performance is likely due to the additional overhead of the idle-sleep mechanism.
+This can either be the result of \procs actually running out of work or simply additional overhead from tracking whether or not there is work available.
+Indeed, unlike the left column, it is likely that the ready queue is transiently empty, which likely triggers additional synchronization steps.
 Interestingly, libfibre achieves better performance with 1 cycle.
-\end{itemize}
-
-For the AMD architecture, Figure~\ref{fig:cycle:nasus}, the results show the same story as on the Intel, with close to double the performance overall but with slightly increased variation.
-The different performance improvements and plateaus are due to cache topology and appear at the expected \proc counts of 64, 128 and 192, for the same reasons as on Intel.
-\begin{itemize}
-\item
-For 100 cycles per \proc, unlike Intel, all 4 runtimes achieve very similar throughput and scalability.
-\item
-For 1 cycle per \proc, unlike on Intel, Tokio and Go have the same throughput performance, while \CFA is slightly slower.
-Again, the same performance increase for libfibre is visible.
-\end{itemize}
+
+Looking now at the results for the AMD architecture, Figure~\ref{fig:cycle:nasus}, the results are overall similar to the Intel results, but with close to double the performance, slightly increased variation, and some differences in the details.
+Note the maximum of the Y-axis on Intel and AMD differ significantly.
+Looking at the left column on AMD, Figures~\ref{fig:cycle:nasus:ops} and \ref{fig:cycle:nasus:ns} all 4 runtimes achieve very similar throughput and scalability.
+However, as the number of \procs grows higher, the results on AMD show notably more variability than on Intel.
+The different performance improvements and plateaus are due to cache topology and appear at the expected: \proc counts of 64, 128 and 192, for the same reasons as on Intel.
+Looking next at the right column on AMD, Figures~\ref{fig:cycle:nasus:low:ops} and \ref{fig:cycle:nasus:low:ns}, Tokio and Go have the same throughput performance, while \CFA is slightly slower.
+This result is different than on Intel, where Tokio behaved like \CFA rather than behaving like Go.
+Again, the same performance increase for libfibre is visible when running fewer \ats.
 Note, I did not investigate the libfibre performance boost for 1 cycle in this experiment.
 
-The conclusion from both architectures is that all of the compared runtime have fairly equivalent performance for this micro-benchmark.
-Clearly, the pathological case with 1 \at per \proc, can affect fairness algorithms managing mostly idle processors, \eg \CFA, but only at high core counts.
-For this case, \emph{any} helping is likely to cause a cascade of \procs running out of work and attempting to steal.
-For this experiment, the \CFA scheduler has achieved the goal of obtaining equivalent performance to other less fair schedulers, except for very unusual workloads.
+The conclusion from both architectures is that all of the compared runtimes have fairly equivalent performance for this micro-benchmark.
+Clearly, the pathological case with 1 cycle per \proc can affect fairness algorithms managing mostly idle processors, \eg \CFA, but only at high core counts.
+In this case, \emph{any} helping is likely to cause a cascade of \procs running out of work and attempting to steal.
+For this experiment, the \CFA scheduler has achieved the goal of obtaining equivalent performance to other, less fair, schedulers.
 
 \section{Yield}
 
-For completion, the classic yield benchmark is included.
+For completeness, the classic yield benchmark is included.
 Here, the throughput is dominated by the mechanism used to handle the @yield@ function.
 Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the cycle @wait/next.wake@ is replaced by @yield@.
@@ -216,5 +218,5 @@
 }
 \end{cfa}
-\caption[Yield Benchmark : Pseudo Code]{Yield Benchmark : Pseudo Code}
+\caption[Yield Benchmark: Pseudo Code]{Yield Benchmark: Pseudo Code}
 \label{fig:yield:code}
 %\end{figure}
@@ -227,5 +229,5 @@
 		\label{fig:yield:jax:ops}
 	}
-	\subfloat[][Throughput, 1 \ats per \proc]{
+	\subfloat[][Throughput, 1 \at per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 		\input{result.yield.low.jax.ops.pstex_t}
@@ -240,5 +242,5 @@
 		\label{fig:yield:jax:ns}
 	}
-	\subfloat[][Scalability, 1 \ats per \proc]{
+	\subfloat[][Scalability, 1 \at per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 		\input{result.yield.low.jax.ns.pstex_t}
@@ -246,5 +248,7 @@
 		\label{fig:yield:jax:low:ns}
 	}
-	\caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count, using 1 \ats per \proc. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:yield:jax}
 \end{figure}
@@ -252,27 +256,28 @@
 \subsection{Results}
 
-Figures~\ref{fig:yield:jax} and~\ref{fig:yield:nasus} show the same throughput graphs as @cycle@ on Intel and AMD, respectively.
-Note, the Y-axis on the yield graph for Intel is twice as large as the Intel cycle-graph.
-A visual glance between the cycle and yield graphs confirms my claim that the yield benchmark is unreliable.
-
-For the Intel architecture, Figure~\ref{fig:yield:jax}:
-\begin{itemize}
-\item
+Figures~\ref{fig:yield:jax} and \ref{fig:yield:nasus} show the results for the yield experiment on Intel and AMD, respectively.
+Looking at the left column on Intel, Figures~\ref{fig:yield:jax:ops} and \ref{fig:yield:jax:ns} show the results for 100 \ats for each \proc.
+Note that the Y-axis on this graph is twice as large as the Intel cycle graph.
+A visual glance between the left columns of the cycle and yield graphs confirms my claim that the yield benchmark is unreliable.
 \CFA has no special handling for @yield@, but this experiment requires less synchronization than the @cycle@ experiment.
-Hence, the @yield@ throughput and scalability graphs for both 100 and 1 cycles/tasks per processor have similar shapes to the corresponding @cycle@ graphs.
-The only difference is sightly better performance for @yield@ because of less synchronization.
-As for @cycle@, the cost of idle sleep also comes into play in a very significant way in Figure~\ref{fig:yield:jax:low:ns}, where the scaling is not flat. 
-\item
-libfibre has special handling for @yield@ using the fact that the number of ready fibres does not change, and therefore, by-passing the idle-sleep mechanism entirely.
-Additionally, when only running 1 \at per \proc, libfibre optimizes further, and forgoes the context-switch entirely.
-Hence, libfibre behaves very differently in the cycle and yield benchmarks, with a 4 times increase in performance for 100 cycles/tasks and an 8 times increase for 1 cycle/task.
-\item
-Go has special handling for @yield@ by putting a yielding goroutine on a secondary global ready-queue, giving it lower priority.
+Hence, the @yield@ throughput and scalability graphs have similar shapes to the corresponding @cycle@ graphs.
+The only difference is slightly better performance for @yield@ because of less synchronization.
+Libfibre has special handling for @yield@ using the fact that the number of ready fibres does not change, and therefore, bypassing the idle-sleep mechanism entirely.
+Hence, libfibre behaves very differently in the cycle and yield benchmarks, with a 4 times increase in performance on the left column.
+Go has special handling for @yield@ by putting a yielding goroutine on a secondary global ready-queue, giving it a lower priority.
 The result is that multiple \glspl{hthrd} contend for the global queue and performance suffers drastically.
-Hence, Go behaves very differently in the cycle and yield benchmarks, with a complete performance collapse in @yield@ for both 100 and 1 cycles/tasks.
-\item
+Hence, Go behaves very differently in the cycle and yield benchmarks, with a complete performance collapse in @yield@.
 Tokio has a similar performance collapse after 16 processors, and therefore, its special @yield@ handling is probably related to a Go-like scheduler problem and/or a \CFA idle-sleep problem.
 (I did not dig through the Rust code to ascertain the exact reason for the collapse.)
-\end{itemize}
+Note that since there is no communication among \ats, locality problems are much less likely than for the cycle benchmark.
+This lack of communication is probably why the plateaus due to topology are not present.
+
+Looking next at the right column on Intel, Figures~\ref{fig:yield:jax:low:ops} and \ref{fig:yield:jax:low:ns} show the results for 1 \at for each \proc.
+As for @cycle@, \CFA's cost of idle sleep comes into play in a very significant way in Figure~\ref{fig:yield:jax:low:ns}, where the scaling is not flat.
+This result is to be expected since fewer \ats mean \procs are more likely to run out of work.
+On the other hand, when only running 1 \at per \proc, libfibre optimizes further and forgoes the context switch entirely.
+This results in libfibre outperforming other runtimes, even more, achieving 8 times more throughput than for @cycle@.
+Finally, Go and Tokio's performance collapse is still the same with fewer \ats.
+The only exception is Tokio running on 24 \procs, deepening the mystery of its yielding mechanism further.
 
 \begin{figure}
@@ -302,12 +307,21 @@
 		\label{fig:yield:nasus:low:ns}
 	}
-	\caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count, using 1 \ats per \proc. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:yield:nasus}
 \end{figure}
 
-For the AMD architecture, Figure~\ref{fig:yield:nasus}, the results show the same story as on the Intel, with slightly increased variations.
-Also, some transition points on the X-axis differ because of the architectures, like at 16 versus 24 processors.
-
-It is difficult to draw conclusions for this benchmark when runtime system treat @yield@ so differently.
+Looking now at the results for the AMD architecture, Figure~\ref{fig:yield:nasus}, the results again show a story that is overall similar to the results on the Intel, with increased variation and some differences in the details.
+Note that the maximum of the Y-axis on Intel and AMD differ less in @yield@ than @cycle@.
+Looking at the left column first, Figures~\ref{fig:yield:nasus:ops} and \ref{fig:yield:nasus:ns}, \CFA achieves very similar throughput and scaling.
+Libfibre still outpaces all other runtimes, but it encounters a performance hit at 64 \procs.
+This anomaly suggests some amount of communication between the \procs that the Intel machine is able to mask where the AMD is not once hyperthreading is needed.
+Go and Tokio still display the same performance collapse as on Intel.
+Looking next at the right column on AMD, Figures~\ref{fig:yield:nasus:low:ops} and \ref{fig:yield:nasus:low:ns}, all runtime systems effectively behave the same as they did on the Intel machine.
+At the high \ats count, the only difference is Libfibre's scaling and this difference disappears on the right column.
+This behaviour suggests whatever communication issue it encountered on the left is completely circumvented on the right.
+
+It is difficult to draw conclusions for this benchmark when runtime systems treat @yield@ so differently.
 The win for \CFA is its consistency between the cycle and yield benchmarks making it simpler for programmers to use and understand, \ie the \CFA semantics match with programmer intuition.
 
@@ -315,19 +329,19 @@
 \section{Churn}
 
-The Cycle and Yield benchmark represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
-In these benchmarks, \ats can be easily partitioned over the different \procs upfront and none of the \ats communicate with each other.
-
-The Churn benchmark represents more chaotic executions, where there is more communication among \ats but no relationship between the last \proc on which a \at ran and blocked and the \proc that subsequently unblocks it.
+The Cycle and Yield benchmarks represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
+In these benchmarks \ats can be easily partitioned over the different \procs upfront and none of the \ats communicate with each other.
+
+The Churn benchmark represents more chaotic executions, where there is more communication among \ats but no relationship between the last \proc on which a \at ran and blocked, and the \proc that subsequently unblocks it.
 With processor-specific ready-queues, when a \at is unblocked by a different \proc that means the unblocking \proc must either ``steal'' the \at from another processor or find it on a remote queue.
 This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on the \at data structure.
-Hence, this benchmark has performance dominated by the cache traffic as \proc are constantly accessing the each other's data.
-In either case, this benchmark aims to measure how well a scheduler handles these cases, since both cases can lead to performance degradation if not handled correctly.
+Hence, this benchmark has performance dominated by the cache traffic as \procs are constantly accessing each other's data.
+In either case, this benchmark aims to measure how well a scheduler handles these cases since both cases can lead to performance degradation if not handled correctly.
 
 This benchmark uses a fixed-size array of counting semaphores.
-Each \at picks a random semaphore, @V@s it to unblock any waiting \at, and then @P@s (maybe blocks) the \ats on the semaphore.
+Each \at picks a random semaphore, @V@s it to unblock any waiting \at, and then @P@s (maybe blocks) the \at on the semaphore.
 This creates a flow where \ats push each other out of the semaphores before being pushed out themselves.
-For this benchmark to work, the number of \ats must be equal or greater than the number of semaphores plus the number of \procs;
-\eg if there are 10 semaphores and 5 \procs, but only 3 \ats, all 3 \ats can block (P) on a random semaphore and now there is no \ats to unblock (V) them.
-Note, the nature of these semaphores mean the counter can go beyond 1, which can lead to nonblocking calls to @P@.
+For this benchmark to work, the number of \ats must be equal to or greater than the number of semaphores plus the number of \procs;
+\eg if there are 10 semaphores and 5 \procs, but only 3 \ats, all 3 \ats can block (P) on a random semaphore and now there are no \ats to unblock (V) them.
+Note that the nature of these semaphores means the counter can go beyond 1, which can lead to nonblocking calls to @P@.
 Figure~\ref{fig:churn:code} shows pseudo code for this benchmark, where the @yield@ is replaced by @V@ and @P@.
 
@@ -346,5 +360,5 @@
 }
 \end{cfa}
-\caption[Churn Benchmark : Pseudo Code]{Churn Benchmark : Pseudo Code}
+\caption[Churn Benchmark: Pseudo Code]{Churn Benchmark: Pseudo Code}
 \label{fig:churn:code}
 %\end{figure}
@@ -364,5 +378,5 @@
 	}
 
-	\subfloat[][Latency, 100 \ats per \proc]{
+	\subfloat[][Scalability, 100 \ats per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 			\input{result.churn.jax.ns.pstex_t}
@@ -370,5 +384,5 @@
 		\label{fig:churn:jax:ns}
 	}
-	\subfloat[][Latency, 2 \ats per \proc]{
+	\subfloat[][Scalability, 2 \ats per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 			\input{result.churn.low.jax.ns.pstex_t}
@@ -376,5 +390,7 @@
 		\label{fig:churn:jax:low:ns}
 	}
-	\caption[Churn Benchmark on Intel]{\centering Churn Benchmark on Intel\smallskip\newline Throughput and latency of the Churn on the benchmark on the Intel machine. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Churn Benchmark on Intel]{Churn Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:churn:jax}
 \end{figure}
@@ -382,14 +398,34 @@
 \subsection{Results}
 
-Figures~\ref{fig:churn:jax} and Figure~\ref{fig:churn:nasus} show the throughput on Intel and AMD respectively.
-
-The performance cost of crossing the cache boundaries is still visible at the same \proc count.
-
-Scalability is notably worst than the previous benchmarks since there is inherently more communication between processors.
-Indeed, once the number of \glspl{hthrd} goes beyond a single socket, performance ceases to improve.
+Figures~\ref{fig:churn:jax} and Figure~\ref{fig:churn:nasus} show the results for the churn experiment on Intel and AMD, respectively.
+Looking at the left column on Intel, Figures~\ref{fig:churn:jax:ops} and \ref{fig:churn:jax:ns} show the results for 100 \ats for each \proc, and all runtimes obtain fairly similar throughput for most \proc counts.
+\CFA does very well on a single \proc but quickly loses its advantage over the other runtimes.
+As expected, it scales decently up to 48 \procs, drops from 48 to 72 \procs, and then plateaus.
+Tokio achieves very similar performance to \CFA, with the starting boost, scaling decently until 48 \procs, drops from 48 to 72 \procs, and starts increasing again to 192 \procs.
+Libfibre obtains effectively the same results as Tokio with slightly less scaling, \ie the scaling curve is the same but with slightly lower values.
+Finally, Go gets the most peculiar results, scaling worst than other runtimes until 48 \procs.
+At 72 \procs, the results of the Go runtime vary significantly, sometimes scaling sometimes plateauing.
+However, beyond this point Go keeps this level of variation but does not scale further in any of the runs.
+
+Throughput and scalability are notably worst for all runtimes than the previous benchmarks since there is inherently more communication between processors.
+Indeed, none of the runtimes reach 40 million operations per second while in the cycle benchmark all but libfibre reached 400 million operations per second.
+Figures~\ref{fig:churn:jax:ns} and \ref{fig:churn:jax:low:ns} show that for all \proc counts, all runtimes produce poor scaling.
+However, once the number of \glspl{hthrd} goes beyond a single socket, at 48 \procs, scaling goes from bad to worst and performance completely ceases to improve.
+At this point, the benchmark is dominated by inter-socket communication costs for all runtimes.
+
 An interesting aspect to note here is that the runtimes differ in how they handle this situation.
-Indeed, when a \proc unparks a \at that was last run on a different \proc, the \at could be appended to the ready-queue local \proc or to the ready-queue of the remote \proc, which previously ran the \at.
-\CFA, Tokio and Go all use the approach of unparking to the local \proc while Libfibre unparks to the remote \proc.
-In this particular benchmark, the inherent chaos of the benchmark in addition to small memory footprint means neither approach wins over the other.
+Indeed, when a \proc unparks a \at that was last run on a different \proc, the \at could be appended to the ready queue of the local \proc or to the ready queue of the remote \proc, which previously ran the \at.
+\CFA, Tokio and Go all use the approach of \glslink{atsched}{unparking} to the local \proc, while Libfibre unparks to the remote \proc.
+In this particular benchmark, the inherent chaos of the benchmark, in addition to the small memory footprint, means neither approach wins over the other.
+
+Looking next at the right column on Intel, Figures~\ref{fig:churn:jax:low:ops} and \ref{fig:churn:jax:low:ns} show the results for 1 \at for each \proc, and many of the differences between the runtimes disappear.
+\CFA outperforms other runtimes by a minuscule margin.
+Libfibre follows very closely behind with basically the same performance and scaling.
+Tokio maintains effectively the same curve shapes as \CFA and libfibre, but it incurs extra costs for all \proc counts.
+While Go maintains overall similar results to the others, it again encounters significant variation at high \proc counts.
+Inexplicably resulting in super-linear scaling for some runs, \ie the scalability curves display a negative slope.
+
+Interestingly, unlike the cycle benchmark, running with fewer \ats does not produce drastically different results.
+In fact, the overall throughput stays almost exactly the same on the left and right columns.
 
 \begin{figure}
@@ -407,5 +443,5 @@
 	}
 
-	\subfloat[][Latency, 100 \ats per \proc]{
+	\subfloat[][Scalability, 100 \ats per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 			\input{result.churn.nasus.ns.pstex_t}
@@ -413,5 +449,5 @@
 		\label{fig:churn:nasus:ns}
 	}
-	\subfloat[][Latency, 2 \ats per \proc]{
+	\subfloat[][Scalability, 2 \ats per \proc]{
 		\resizebox{0.5\linewidth}{!}{
 			\input{result.churn.low.nasus.ns.pstex_t}
@@ -419,35 +455,56 @@
 		\label{fig:churn:nasus:low:ns}
 	}
-	\caption[Churn Benchmark on AMD]{\centering Churn Benchmark on AMD\smallskip\newline Throughput and latency of the Churn on the benchmark on the AMD machine.
-	For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Churn Benchmark on AMD]{Churn Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:churn:nasus}
 \end{figure}
 
-Like for the cycle benchmark, here all runtimes achieve fairly similar performance.
-Performance improves as long as all \procs fit on a single socket.
-Beyond that performance starts to suffer from increased caching costs.
-
-Indeed on Figures~\ref{fig:churn:jax:ops} and \ref{fig:churn:jax:ns} show that with 1 and 100 \ats per \proc, \CFA, libfibre, Go and Tokio achieve effectively equivalent performance for most \proc count.
-
-However, Figure~\ref{fig:churn:nasus} again shows a somewhat different story on AMD.
-While \CFA, libfibre, and Tokio achieve effectively equivalent performance for most \proc count, Go starts with better scaling at very low \proc counts but then performance quickly plateaus, resulting in worse performance at higher \proc counts.
-This performance difference is visible at both high and low \at counts.
-
-One possible explanation for this difference is that since Go has very few available concurrent primitives, a channel was used instead of a semaphore.
-On paper a semaphore can be replaced by a channel and with zero-sized objects passed along equivalent performance could be expected.
-However, in practice there can be implementation difference between the two.
-This is especially true if the semaphore count can get somewhat high.
-Note that this replacement is also made in the cycle benchmark, however in that context it did not seem to have a notable impact.
-
-As second possible explanation is that Go may sometimes use the heap when allocating variables based on the result of escape analysis of the code.
-It is possible that variables that should be placed on the stack are placed on the heap.
-This could cause extra pointer chasing in the benchmark, heightening locality effects.
-Depending on how the heap is structure, this could also lead to false sharing.
-
-The objective of this benchmark is to demonstrate that unparking \ats from remote \procs do not cause too much contention on the local queues.
-Indeed, the fact all runtimes achieve some scaling at lower \proc count demonstrate that migrations do not need to be serialized.
-Again these result demonstrate \CFA achieves satisfactory performance.
+
+Looking now at the results for the AMD architecture, Figure~\ref{fig:churn:nasus}, the results show a somewhat different story.
+Looking at the left column first, Figures~\ref{fig:churn:nasus:ops} and \ref{fig:churn:nasus:ns}, \CFA, Libfibre and Tokio all produce decent scalability.
+\CFA suffers particularly from larger variations at higher \proc counts, but largely outperforms the other runtimes.
+Go still produces intriguing results in this case and even more intriguingly, the results have fairly low variation.
+
+One possible explanation for Go's difference is that it has very few available concurrent primitives, so a channel is substituted for a semaphore.
+On paper, a semaphore can be replaced by a channel, and with zero-sized objects passed through the channel, equivalent performance could be expected.
+However, in practice, there are implementation differences between the two, \eg if the semaphore count can get somewhat high so objects accumulate in the channel.
+Note that this substitution is also made in the cycle benchmark;
+however, in that context, it did not have a notable impact.
+
+A second possible explanation is that Go may use the heap when allocating variables based on the result of the escape analysis of the code.
+It is possible for variables that could be placed on the stack to instead be placed on the heap.
+This placement could cause extra pointer chasing in the benchmark, heightening locality effects.
+Depending on how the heap is structured, this could also lead to false sharing.
+I did not investigate what causes these unusual results.
+
+Looking next at the right column, Figures~\ref{fig:churn:nasus:low:ops} and \ref{fig:churn:nasus:low:ns}, as for Intel, all runtimes obtain overall similar throughput between the left and right column.
+\CFA, Libfibre and Tokio all have very close results.
+Go still suffers from poor scalability but is now unusual in a different way.
+While it obtains effectively constant performance regardless of \proc count, this ``sequential'' performance is higher than the other runtimes for low \proc count.
+Up to 32 \procs, after which the other runtimes manage to outscale Go.
+
+In conclusion, the objective of this benchmark is to demonstrate that \glslink{atsched}{unparking} \ats from remote \procs does not cause too much contention on the local queues.
+Indeed, the fact that most runtimes achieve some scaling between various \proc counts demonstrates migrations do not need to be serialized.
+Again these results demonstrate that \CFA achieves satisfactory performance compared to the other runtimes.
 
 \section{Locality}
+
+As mentioned in the churn benchmark, when \glslink{atsched}{unparking} a \at, it is possible to either \unpark to the local or remote ready-queue.\footnote{
+It is also possible to \unpark to a third unrelated ready-queue, but without additional knowledge about the situation, it is likely to degrade performance.}
+The locality experiment includes two variations of the churn benchmark, where a data array is added.
+In both variations, before @V@ing the semaphore, each \at calls a @work@ function which increments random cells inside the data array.
+In the noshare variation, the array is not passed on and each thread continuously accesses its private array.
+In the share variation, the array is passed to another thread via the semaphore's shadow queue (each blocking thread can save a word of user data in its blocking node), transferring ownership of the array to the woken thread.
+Figure~\ref{fig:locality:code} shows the pseudo code for this benchmark.
+
+The objective here is to highlight the different decisions made by the runtime when \glslink{atsched}{unparking}.
+Since each thread unparks a random semaphore, it means that it is unlikely that a \at is unparked from the last \proc it ran on.
+In the noshare variation, \glslink{atsched}{unparking} the \at on the local \proc is an appropriate choice since the data was last modified on that \proc.
+In the shared variation, \glslink{atsched}{unparking} the \at on a remote \proc is an appropriate choice.
+
+The expectation for this benchmark is to see a performance inversion, where runtimes fare notably better in the variation which matches their \glslink{atsched}{unparking} policy.
+This decision should lead to \CFA, Go and Tokio achieving better performance in the share variation while libfibre achieves better performance in noshare.
+Indeed, \CFA, Go and Tokio have the default policy of \glslink{atsched}{unparking} \ats on the local \proc, whereas libfibre has the default policy of \glslink{atsched}{unparking} \ats wherever they last ran.
 
 \begin{figure}
@@ -493,32 +550,26 @@
 \end{lrbox}
 
-\subfloat[Thread$_1$]{\label{f:CFibonacci}\usebox\myboxA}
+\subfloat[Noshare]{\label{fig:locality:code:T1}\usebox\myboxA}
 \hspace{3pt}
 \vrule
 \hspace{3pt}
-\subfloat[Thread$_2$]{\label{f:CFAFibonacciGen}\usebox\myboxB}
-
-\caption[Locality Benchmark : Pseudo Code]{Locality Benchmark : Pseudo Code}
+\subfloat[Share]{\label{fig:locality:code:T2}\usebox\myboxB}
+
+\caption[Locality Benchmark: Pseudo Code]{Locality Benchmark: Pseudo Code}
 \label{fig:locality:code}
 \end{figure}
 
-As mentioned in the churn benchmark, when unparking a \at, it is possible to either unpark to the local or remote ready-queue.
-\footnote{It is also possible to unpark to a third unrelated ready-queue, but without additional knowledge about the situation, there is little to suggest this would not degrade performance.}
-The locality experiment includes two variations of the churn benchmark, where an array of data is added.
-In both variations, before @V@ing the semaphore, each \at increment random cells inside the array.
-The @share@ variation then passes the array to the shadow-queue of the semaphore, transferring ownership of the array to the woken thread.
-In the @noshare@ variation the array is not passed on and each thread continuously accesses its private array.
-
-The objective here is to highlight the different decision made by the runtime when unparking.
-Since each thread unparks a random semaphore, it means that it is unlikely that a \at will be unparked from the last \proc it ran on.
-In the @share@ version, this means that unparking the \at on the local \proc is appropriate since the data was last modified on that \proc.
-In the @noshare@ version, the unparking the \at on the remote \proc is the appropriate approach.
-
-The expectation for this benchmark is to see a performance inversion, where runtimes will fare notably better in the variation which matches their unparking policy.
-This should lead to \CFA, Go and Tokio achieving better performance in @share@ while libfibre achieves better performance in @noshare@.
-Indeed, \CFA, Go and Tokio have the default policy of unpark \ats on the local \proc, where as libfibre has the default policy of unparks \ats wherever they last ran.
-
 \subsection{Results}
 
+Figures~\ref{fig:locality:jax} and \ref{fig:locality:nasus} show the results for the locality experiment on Intel and AMD, respectively.
+In both cases, the graphs on the left column show the results for the share variation and the graphs on the right column show the results for the noshare.
+Looking at the left column on Intel, Figures~\ref{fig:locality:jax:share:ops} and \ref{fig:locality:jax:share:ns} show the results for the share variation.
+\CFA and Tokio slightly outperform libfibre, as expected, based on their \ats placement approach.
+\CFA and Tokio both \unpark locally and do not suffer cache misses on the transferred array.
+Libfibre, on the other hand, unparks remotely, and as such the unparked \at is likely to miss on the shared data.
+Go trails behind in this experiment, presumably for the same reasons that were observable in the churn benchmark.
+Otherwise, the results are similar to the churn benchmark, with lower throughput due to the array processing.
+As for most previous results, all runtimes suffer a performance hit after 48 \procs, which is the socket boundary, and climb again from 96 to 192 \procs.
+
 \begin{figure}
 	\subfloat[][Throughput share]{
@@ -547,7 +598,10 @@
 		\label{fig:locality:jax:noshare:ns}
 	}
-	\caption[Locality Benchmark on Intel]{Locality Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Locality Benchmark on Intel]{Locality Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:locality:jax}
 \end{figure}
+
 \begin{figure}
 	\subfloat[][Throughput share]{
@@ -576,50 +630,40 @@
 		\label{fig:locality:nasus:noshare:ns}
 	}
-	\caption[Locality Benchmark on AMD]{Locality Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count. For throughput, higher is better, for scalability, lower is better. Each series represent 15 independent runs, the dotted lines are extremes while the solid line is the medium.}
+	\caption[Locality Benchmark on AMD]{Locality Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count.
+	For throughput, higher is better, for scalability, lower is better.
+	Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
 	\label{fig:locality:nasus}
 \end{figure}
 
-Figures~\ref{fig:locality:jax} and \ref{fig:locality:nasus} shows the results on Intel and AMD respectively.
-In both cases, the graphs on the left column show the results for the @share@ variation and the graphs on the right column show the results for the @noshare@.
-
-On Intel, Figure~\ref{fig:locality:jax} shows Go trailing behind the 3 other runtimes.
-On the left of the figure showing the results for the shared variation, where \CFA and Tokio slightly outperform libfibre as expected.
-And correspondingly on the right, we see the expected performance inversion where libfibre now outperforms \CFA and Tokio.
-Otherwise the results are similar to the churn benchmark, with lower throughput due to the array processing.
-Presumably the reason why Go trails behind are the same as in Figure~\ref{fig:churn:nasus}.
-
-Figure~\ref{fig:locality:nasus} shows the same experiment on AMD.
-\todo{why is cfa slower?}
-Again, we see the same story, where Tokio and libfibre swap places and Go trails behind.
+Looking at the right column on Intel, Figures~\ref{fig:locality:jax:noshare:ops} and \ref{fig:locality:jax:noshare:ns} show the results for the noshare variation.
+The graphs show the expected performance inversion where libfibre now outperforms \CFA and Tokio.
+Indeed, in this case, unparking remotely means the unparked \at is less likely to suffer a cache miss on the array, which leaves the \at data structure and the remote queue as the only source of likely cache misses.
+Results show both are amortized fairly well in this case.
+\CFA and Tokio both \unpark locally and as a result, suffer a marginal performance degradation from the cache miss on the array.
+
+Looking at the results for the AMD architecture, Figure~\ref{fig:locality:nasus}, shows results similar to the Intel.
+Again the overall performance is higher and slightly more variation is visible.
+Looking at the left column first, Figures~\ref{fig:locality:nasus:share:ops} and \ref{fig:locality:nasus:share:ns}, \CFA and Tokio still outperform libfibre, this time more significantly.
+This advantage is expected from the AMD server with its smaller and narrower caches that magnify the costs of processing the array.
+Go still has the same poor performance as on Intel.
+
+Finally looking at the right column, Figures~\ref{fig:locality:nasus:noshare:ops} and \ref{fig:locality:nasus:noshare:ns}, like on Intel, the same performance inversion is present between libfibre and \CFA/Tokio.
+Go still has the same poor performance.
+
+Overall, this benchmark mostly demonstrates the two options available when \glslink{atsched}{unparking} a \at.
+Depending on the workload, either of these options can be the appropriate one.
+Since it is prohibitively difficult to dynamically detect which approach is appropriate, all runtimes much choose one of the two and live with the consequences.
+
+Once again, these experiments demonstrate that \CFA achieves equivalent performance to the other runtimes, in this case matching the faster Tokio rather than Go, which is trailing behind.
 
 \section{Transfer}
 The last benchmark is more of an experiment than a benchmark.
 It tests the behaviour of the schedulers for a misbehaved workload.
-In this workload, one of the \at is selected at random to be the leader.
+In this workload, one \at is selected at random to be the leader.
 The leader then spins in a tight loop until it has observed that all other \ats have acknowledged its leadership.
 The leader \at then picks a new \at to be the next leader and the cycle repeats.
-The benchmark comes in two flavours for the non-leader \ats:
+The benchmark comes in two variations for the non-leader \ats:
 once they acknowledged the leader, they either block on a semaphore or spin yielding.
-
-The experiment is designed to evaluate the short-term load-balancing of a scheduler.
-Indeed, schedulers where the runnable \ats are partitioned on the \procs may need to balance the \ats for this experiment to terminate.
-This problem occurs because the spinning \at is effectively preventing the \proc from running any other \at.
-In the semaphore flavour, the number of runnable \ats eventually dwindles down to only the leader.
-This scenario is a simpler case to handle for schedulers since \procs eventually run out of work.
-In the yielding flavour, the number of runnable \ats stays constant.
-This scenario is a harder case to handle because corrective measures must be taken even when work is available.
-Note, runtime systems with preemption circumvent this problem by forcing the spinner to yield.
-
-In both flavours, the experiment effectively measures how long it takes for all \ats to run once after a given synchronization point.
-In an ideal scenario where the scheduler is strictly FIFO, every thread would run once after the synchronization and therefore the delay between leaders would be given by:
-$ \frac{CSL + SL}{NP - 1}$, where $CSL$ is the context switch latency, $SL$ is the cost for enqueueing and dequeuing a \at and $NP$ is the number of \procs.
-However, if the scheduler allows \ats to run many times before other \ats are able to run once, this delay will increase.
-The semaphore version is an approximation of the strictly FIFO scheduling, where none of the \ats \emph{attempt} to run more than once.
-The benchmark effectively provides the fairness guarantee in this case.
-In the yielding version however, the benchmark provides no such guarantee, which means the scheduler has full responsibility and any unfairness will be measurable.
-
-While this is a fairly artificial scenario, it requires only a few simple pieces.
-The yielding version of this simply creates a scenario where a \at runs uninterrupted in a saturated system, and starvation has an easily measured impact.
-However, \emph{any} \at that runs uninterrupted for a significant period of time in a saturated system could lead to this kind of starvation.
+Figure~\ref{fig:transfer:code} shows pseudo code for this benchmark.
 
 \begin{figure}
@@ -641,5 +685,5 @@
 	// pick next leader
 	leader := threads[ prng() % len(threads) ]
-	// wake every one
+	// wake everyone
 	if ! exhaust {
 		for t in threads {
@@ -660,14 +704,45 @@
 }
 \end{cfa}
-\caption[Transfer Benchmark : Pseudo Code]{Transfer Benchmark : Pseudo Code}
+\caption[Transfer Benchmark: Pseudo Code]{Transfer Benchmark: Pseudo Code}
 \label{fig:transfer:code}
 \end{figure}
 
+The experiment is designed to evaluate the short-term load balancing of a scheduler.
+Indeed, schedulers where the runnable \ats are partitioned on the \procs may need to balance the \ats for this experiment to terminate.
+This problem occurs because the spinning \at is effectively preventing the \proc from running any other \at.
+In the semaphore variation, the number of runnable \ats eventually dwindles to only the leader.
+This scenario is a simpler case to handle for schedulers since \procs eventually run out of work.
+In the yielding variation, the number of runnable \ats stays constant.
+This scenario is a harder case to handle because corrective measures must be taken even when work is available.
+Note that runtimes with preemption circumvent this problem by forcing the spinner to yield.
+In \CFA preemption was disabled as it only obfuscates the results.
+I am not aware of a method to disable preemption in Go.
+
+In both variations, the experiment effectively measures how long it takes for all \ats to run once after a given synchronization point.
+In an ideal scenario where the scheduler is strictly FIFO, every thread would run once after the synchronization and therefore the delay between leaders would be given by, $(CSL + SL) / (NP - 1)$,
+where $CSL$ is the context-switch latency, $SL$ is the cost for enqueueing and dequeuing a \at, and $NP$ is the number of \procs.
+However, if the scheduler allows \ats to run many times before other \ats can run once, this delay increases.
+The semaphore version is an approximation of strictly FIFO scheduling, where none of the \ats \emph{attempt} to run more than once.
+The benchmark effectively provides the fairness guarantee in this case.
+In the yielding version, however, the benchmark provides no such guarantee, which means the scheduler has full responsibility and any unfairness is measurable.
+
+While this is an artificial scenario, in real life it requires only a few simple pieces.
+The yielding version simply creates a scenario where a \at runs uninterrupted in a saturated system and the starvation has an easily measured impact.
+Hence, \emph{any} \at that runs uninterrupted for a significant time in a saturated system could lead to this kind of starvation.
+
 \subsection{Results}
-\begin{figure}
+
+\begin{table}
+\caption[Transfer Benchmark on Intel and AMD]{Transfer Benchmark on Intel and AMD\smallskip\newline Average measurement of how long it takes for all \ats to acknowledge the leader \at.
+DNC stands for ``did not complete'', meaning that after 5 seconds of a new leader being decided, some \ats still had not acknowledged the new leader.}
+\label{fig:transfer:res}
+\setlength{\extrarowheight}{2pt}
+\setlength{\tabcolsep}{5pt}
 \begin{centering}
-\begin{tabular}{r | c c c c | c c c c }
-Machine   &			\multicolumn{4}{c |}{Intel}                &          \multicolumn{4}{c}{AMD}                    \\
-Variation & \multicolumn{2}{c}{Park} & \multicolumn{2}{c |}{Yield} & \multicolumn{2}{c}{Park} & \multicolumn{2}{c}{Yield} \\
+\begin{tabular}{r | c | c | c | c | c | c | c | c}
+Machine   &			\multicolumn{4}{c |}{Intel}                &          \multicolumn{4}{c}{AMD}             \\
+\cline{2-9}
+Variation & \multicolumn{2}{c|}{Park} & \multicolumn{2}{c |}{Yield} & \multicolumn{2}{c|}{Park} & \multicolumn{2}{c}{Yield} \\
+\cline{2-9}
 \procs    &      2      &      192   &      2      &      192      &      2      &      256   &      2      &      256    \\
 \hline
@@ -678,25 +753,43 @@
 \end{tabular}
 \end{centering}
-\caption[Transfer Benchmark on Intel and AMD]{Transfer Benchmark on Intel and AMD\smallskip\newline Average measurement of how long it takes for all \ats to acknowledge the leader \at. DNC stands for ``did not complete'', meaning that after 5 seconds of a new leader being decided, some \ats still had not acknowledged the new leader.}
-\label{fig:transfer:res}
-\end{figure}
-
-Figure~\ref{fig:transfer:res} shows the result for the transfer benchmark with 2 \procs and all \procs, where each experiment runs 100 \at per \proc.
+\end{table}
+
+Table~\ref{fig:transfer:res} shows the result for the transfer benchmark with 2 \procs and all \procs on the computer, where each experiment runs 100 \ats per \proc.
 Note that the results here are only meaningful as a coarse measurement of fairness, beyond which small cost differences in the runtime and concurrent primitives begin to matter.
-As such, data points that are the on the same order of magnitude as each other should be basically considered equal.
-The takeaway of this experiment is the presence of very large differences.
-The semaphore variation is denoted ``Park'', where the number of \ats dwindles down as the new leader is acknowledged.
+As such, data points within the same order of magnitude are considered equal.
+That is, the takeaway of this experiment is the presence of very large differences.
+The semaphore variation is denoted ``Park'', where the number of \ats dwindles as the new leader is acknowledged.
 The yielding variation is denoted ``Yield''.
-The experiment was only run for the extremes of the number of cores since the scaling per core behaves like previous experiments.
-This experiments clearly demonstrate that while the other runtimes achieve similar performance in previous benchmarks, here \CFA achieves significantly better fairness.
-The semaphore variation serves as a control group, where all runtimes are expected to transfer leadership fairly quickly.
-Since \ats block after acknowledging the leader, this experiment effectively measures how quickly \procs can steal \ats from the \proc running leader.
-Figure~\ref{fig:transfer:res} shows that while Go and Tokio are slower, all runtime achieve decent latency.
+The experiment is only run for a few and many \procs since scaling is not the focus of this experiment.
+
+The first two columns show the results for the semaphore variation on Intel.
+While there are some differences in latencies, \CFA is consistently the fastest and Tokio the slowest, all runtimes achieve fairly close results.
+Again, this experiment is meant to highlight major differences so latencies within $10\times$ of each other are considered equal.
+
+Looking at the next two columns, the results for the yield variation on Intel, the story is very different.
+\CFA achieves better latencies, presumably due to no synchronization with the yield.
+Go does complete the experiment, but with drastically higher latency:
+latency at 2 \procs is $350\times$ higher than \CFA and $70\times$ higher at 192 \procs.
+This difference is because Go has a classic work-stealing scheduler, but it adds coarse-grain preemption
+, which interrupts the spinning leader after a period.
+Neither Libfibre nor Tokio complete the experiment.
+Both runtimes also use classical work-stealing scheduling without preemption, and therefore, none of the work queues are ever emptied so no load balancing occurs.
+
+Looking now at the results for the AMD architecture, the results show effectively the same story.
+The first two columns show all runtime obtaining results well within $10\times$ of each other.
+The next two columns again show \CFA producing low latencies, while Go still has notably higher latency but the difference is less drastic on 2 \procs, where it produces a $15\times$ difference as opposed to a $100\times$ difference on 256 \procs.
+Neither Libfibre nor Tokio complete the experiment.
+
+This experiment clearly demonstrates that \CFA achieves significantly better fairness.
+The semaphore variation serves as a control, where all runtimes are expected to transfer leadership fairly quickly.
+Since \ats block after acknowledging the leader, this experiment effectively measures how quickly \procs can steal \ats from the \proc running the leader.
+Table~\ref{fig:transfer:res} shows that while Go and Tokio are slower using the semaphore, all runtimes achieve decent latency.
+
 However, the yielding variation shows an entirely different picture.
-Since libfibre and Tokio have a traditional work-stealing scheduler, \procs that have \ats on their local queues will never steal from other \procs.
-The result is that the experiment simply does not complete for these runtime.
-Without \procs stealing from the \proc running the leader, the experiment will simply never terminate.
+Since libfibre and Tokio have a traditional work-stealing scheduler, \procs that have \ats on their local queues never steal from other \procs.
+The result is that the experiment simply does not complete for these runtimes.
+Without \procs stealing from the \proc running the leader, the experiment cannot terminate.
 Go manages to complete the experiment because it adds preemption on top of classic work-stealing.
-However, since preemption is fairly costly it achieves significantly worst performance.
+However, since preemption is fairly infrequent, it achieves significantly worst performance.
 In contrast, \CFA achieves equivalent performance in both variations, demonstrating very good fairness.
-Interestingly \CFA achieves better delays in the yielding version than the semaphore version, however, that is likely due to fairness being equivalent but removing the cost of the semaphores and idle-sleep.
+Interestingly \CFA achieves better delays in the yielding version than the semaphore version, however, that is likely due to fairness being equivalent but removing the cost of the semaphores and idle sleep.
Index: doc/theses/thierry_delisle_PhD/thesis/text/existing.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/existing.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/existing.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -5,39 +5,40 @@
 
 In general, \emph{selecting} a scheduling algorithm depends on how much information is available to the scheduler.
-Workloads that are well-known, consistent, and homogeneous can benefit from a scheduler that is optimized to use this information, while ill-defined, inconsistent, heterogeneous workloads require general non-optimal algorithms.
+Workloads that are well known, consistent, and homogeneous can benefit from a scheduler that is optimized to use this information, while ill-defined, inconsistent, heterogeneous workloads require general non-optimal algorithms.
 A secondary aspect is how much information can be gathered versus how much information must be given as part of the scheduler input.
 This information adds to the spectrum of scheduling algorithms, going from static schedulers that are well informed from the start, to schedulers that gather most of the information needed, to schedulers that can only rely on very limited information.
-Note, this description includes both information about each requests, \eg time to complete or resources needed, and information about the relationships among request, \eg whether or not some request must be completed before another request starts.
-
-Scheduling physical resources, \eg in an assembly line, is generally amenable to using well-informed scheduling, since information can be gathered much faster than the physical resources can be assigned and workloads are likely to stay stable for long periods of time.
+Note, this description includes both information about each request, \eg time to complete or resources needed, and information about the relationships among requests, \eg whether some requests must be completed before another request starts.
+
+Scheduling physical resources, \eg in an assembly line, is generally amenable to using well-informed scheduling since information can be gathered much faster than the physical resources can be assigned and workloads are likely to stay stable for long periods.
 When a faster pace is needed and changes are much more frequent gathering information on workloads, up-front or live, can become much more limiting and more general schedulers are needed.
 
 \section{Naming Convention}
-Scheduling has been studied by various communities concentrating on different incarnation of the same problems.
-As a result, there are no standard naming conventions for scheduling that is respected across these communities.
+Scheduling has been studied by various communities concentrating on different incarnations of the same problems.
+As a result, there are no standard naming conventions for scheduling that are respected across these communities.
 This document uses the term \newterm{\Gls{at}} to refer to the abstract objects being scheduled and the term \newterm{\Gls{proc}} to refer to the concrete objects executing these \ats.
 
 \section{Static Scheduling}
-\newterm{Static schedulers} require \ats dependencies and costs be explicitly and exhaustively specified prior to scheduling.
+\newterm{Static schedulers} require \ats dependencies and costs to be explicitly and exhaustively specified prior to scheduling.
 The scheduler then processes this input ahead of time and produces a \newterm{schedule} the system follows during execution.
 This approach is popular in real-time systems since the need for strong guarantees justifies the cost of determining and supplying this information.
-In general, static schedulers are less relevant to this project because they require input from the programmers that the programming language does not have as part of its concurrency semantic.
+In general, static schedulers are less relevant to this project because they require input from the programmers that the \CFA programming language does not have as part of its concurrency semantics.
 Specifying this information explicitly adds a significant burden to the programmer and reduces flexibility.
 For this reason, the \CFA scheduler does not require this information.
 
 \section{Dynamic Scheduling}
-\newterm{Dynamic schedulers} determine \ats dependencies and costs during scheduling, if at all.
-Hence, unlike static scheduling, \ats dependencies are conditional and detected at runtime.
-This detection takes the form of observing new \ats(s) in the system and determining dependencies from their behaviour, including suspending or halting a \ats that dynamically detects unfulfilled dependencies.
-Furthermore, each \ats has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.
+\newterm{Dynamic schedulers} determine \at dependencies and costs during scheduling, if at all.
+Hence, unlike static scheduling, \at dependencies are conditional and detected at runtime.
+This detection takes the form of observing new \ats in the system and determining dependencies from their behaviour, including suspending or halting a \at that dynamically detects unfulfilled dependencies.
+Furthermore, each \at has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.
 As a consequence, the scheduler often has an incomplete view of the system, seeing only \ats with no pending dependencies.
 
 \subsection{Explicitly Informed Dynamic Schedulers}
-While dynamic schedulers may not have an exhaustive list of dependencies for a \ats, some information may be available about each \ats, \eg expected duration, required resources, relative importance, \etc.
-When available, a scheduler can then use this information to direct the scheduling decisions. \cit{Examples of schedulers with more information}
-However, most programmers do not determine or even \emph{predict} this information;
-at best, the scheduler has only some imprecise information provided by the programmer, \eg, indicating a \ats takes approximately 3--7 seconds to complete, rather than exactly 5 seconds.
-Providing this kind of information is a significant programmer burden especially if the information does not scale with the number of \ats and their complexity.
-For example, providing an exhaustive list of files read by 5 \ats is an easier requirement then providing an exhaustive list of memory addresses accessed by 10,000 independent \ats.
+While dynamic schedulers may not have an exhaustive list of dependencies for a \at, some information may be available about each \at, \eg expected duration, required resources, relative importance, \etc.
+When available, a scheduler can then use this information to direct the scheduling decisions.
+For example, when scheduling in a cloud computing context, \ats will commonly have extra information that was manually entered, \eg caps on compute time or \io usage.
+However, in the context of user-level threading, most programmers do not determine or even \emph{predict} this information;
+at best, the scheduler has only some imprecise information provided by the programmer, \eg, indicating a \at takes approximately 3--7 seconds to complete, rather than exactly 5 seconds.
+Providing this kind of information is a significant programmer burden, especially if the information does not scale with the number of \ats and their complexity.
+For example, providing an exhaustive list of files read by 5 \ats is an easier requirement than providing an exhaustive list of memory addresses accessed by 10,000 independent \ats.
 
 Since the goal of this thesis is to provide a scheduler as a replacement for \CFA's existing \emph{uninformed} scheduler, explicitly informed schedulers are less relevant to this project. Nevertheless, some strategies are worth mentioning.
@@ -45,28 +46,28 @@
 \subsubsection{Priority Scheduling}
 Common information used by schedulers to direct their algorithm is priorities.
-Each \ats is given a priority and higher-priority \ats are preferred to lower-priority ones.
-The simplest priority scheduling algorithm is to require that every \ats have a distinct pre-established priority and always run the available \ats with the highest priority.
+Each \at is given a priority, and higher-priority \ats are preferred to lower-priority ones.
+The simplest priority scheduling algorithm is to require that every \at have a distinct pre-established priority and always run the available \ats with the highest priority.
 Asking programmers to provide an exhaustive set of unique priorities can be prohibitive when the system has a large number of \ats.
-It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically setting and adjusting priorities for \ats.
+It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically set and adjust priorities for \ats.
 Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments.
 For example, Microsoft Windows uses a pair of priorities~\cite{win:priority}, one specified by users out of ten possible options and one adjusted by the system.
 
 \subsection{Uninformed and Self-Informed Dynamic Schedulers}
-Several scheduling algorithms do not require programmers to provide additional information on each \ats, and instead make scheduling decisions based solely on internal state and/or information implicitly gathered by the scheduler.
+Several scheduling algorithms do not require programmers to provide additional information on each \at, and instead, make scheduling decisions based solely on internal state and/or information implicitly gathered by the scheduler.
 
 
 \subsubsection{Feedback Scheduling}
-As mentioned, schedulers may also gather information about each \ats to direct their decisions.
+As mentioned, schedulers may also gather information about each \at to direct their decisions.
 This design effectively moves the scheduler into the realm of \newterm{Control Theory}~\cite{wiki:controltheory}.
 This information gathering does not generally involve programmers, and as such, does not increase programmer burden the same way explicitly provided information may.
-However, some feedback schedulers do allow programmers to offer additional information on certain \ats, in order to direct scheduling decisions.
-The important distinction being whether or not the scheduler can function without this additional information.
+However, some feedback schedulers do allow programmers to offer additional information on certain \ats, to direct scheduling decisions.
+The important distinction is whether the scheduler can function without this additional information.
 
 
 \section{Work Stealing}\label{existing:workstealing}
-One of the most popular scheduling algorithm in practice (see~\ref{existing:prod}) is work stealing.
-This idea, introduce by \cite{DBLP:conf/fpca/BurtonS81}, effectively has each worker process its local \ats first, but allows the possibility for other workers to steal local \ats if they run out of \ats.
-\cite{DBLP:conf/focs/Blumofe94} introduced the more familiar incarnation of this, where each workers has a queue of \ats and workers without \ats steal \ats from random workers\footnote{The Burton and Sleep algorithm had trees of \ats and steal only among neighbours.}.
-Blumofe and Leiserson also prove worst case space and time requirements for well-structured computations.
+One of the most popular scheduling algorithms in practice (see~\ref{existing:prod}) is work stealing.
+This idea, introduced by \cite{DBLP:conf/fpca/BurtonS81}, effectively has each worker process its local \ats first but allows the possibility for other workers to steal local \ats if they run out of \ats.
+\cite{DBLP:conf/focs/Blumofe94} introduced the more familiar incarnation of this, where each worker has a queue of \ats and workers without \ats steal \ats from random workers\footnote{The Burton and Sleep algorithm has trees of \ats and steals only among neighbours.}.
+Blumofe and Leiserson also prove worst-case space and time requirements for well-structured computations.
 
 Many variations of this algorithm have been proposed over the years~\cite{DBLP:journals/ijpp/YangH18}, both optimizations of existing implementations and approaches that account for new metrics.
@@ -76,27 +77,33 @@
 In general, fine granularity is better for load balancing and coarse granularity reduces communication overhead.
 The best performance generally means finding a middle ground between the two.
-Several methods can be employed, but I believe these are less relevant for threads, which are generally explicit and more coarse grained.
-
-\paragraph{Task Placement} Since modern computers rely heavily on cache hierarchies\cit{Do I need a citation for this}, migrating \ats from one core to another can be .  \cite{DBLP:journals/tpds/SquillanteL93}
-
-\todo{The survey is not great on this subject}
-
-\paragraph{Complex Machine Architecture} Another aspect that has been examined is how well work stealing is applicable to different machine architectures.
+Several methods can be employed, but I believe these are less relevant for threads, which are generally explicit and more coarse-grained.
+
+\paragraph{Task Placement} Another aspect of work stealing that has been studied extensively is the mapping between \at and \proc.
+In its simplest form, work stealing assumes that all \procs are interchangeable and therefore the mapping between \at and \proc is not interesting.
+However, in real-life architectures there are contexts where different \procs can have different characteristics, which makes some mapping more interesting than others.
+A common example where this is statically true is architectures with \glsxtrshort{numa}.
+In these cases, it can be relevant to change the scheduler to be cognizant of the topology~\cite{vikranth2013topology,min2011hierarchical}.
+Another example is energy usage, where the scheduler is modified to optimize for energy efficiency in addition/instead of performance~\cite{ribic2014energy,torng2016asymmetry}.
+
+\paragraph{Complex Machine Architecture} Another aspect that has been examined is how applicable work stealing is to different machine architectures.
+This is arguably strongly related to Task Placement but extends into more heterogeneous architectures.
+As \CFA offers no particular support for heterogeneous architecture, this is also an area that is less relevant to this thesis.
+Although it could be an interesting avenue for future work.
 
 \subsection{Theoretical Results}
-There is also a large body of research on the theoretical aspects of work stealing. These evaluate, for example, the cost of migration~\cite{DBLP:conf/sigmetrics/SquillanteN91,DBLP:journals/pe/EagerLZ86}, how affinity affects performance~\cite{DBLP:journals/tpds/SquillanteL93,DBLP:journals/mst/AcarBB02,DBLP:journals/ipl/SuksompongLS16} and theoretical models for heterogeneous systems~\cite{DBLP:journals/jpdc/MirchandaneyTS90,DBLP:journals/mst/BenderR02,DBLP:conf/sigmetrics/GastG10}.
+There is also a large body of research on the theoretical aspects of work stealing. These evaluate, for example, the cost of \glslink{atmig}{migration}~\cite{DBLP:conf/sigmetrics/SquillanteN91,DBLP:journals/pe/EagerLZ86}, how affinity affects performance~\cite{DBLP:journals/tpds/SquillanteL93,DBLP:journals/mst/AcarBB02,DBLP:journals/ipl/SuksompongLS16} and theoretical models for heterogeneous systems~\cite{DBLP:journals/jpdc/MirchandaneyTS90,DBLP:journals/mst/BenderR02,DBLP:conf/sigmetrics/GastG10}.
 \cite{DBLP:journals/jacm/BlellochGM99} examines the space bounds of work stealing and \cite{DBLP:journals/siamcomp/BerenbrinkFG03} shows that for under-loaded systems, the scheduler completes its computations in finite time, \ie is \newterm{stable}.
-Others show that work stealing is applicable to various scheduling contexts~\cite{DBLP:journals/mst/AroraBP01,DBLP:journals/anor/TchiboukdjianGT13,DBLP:conf/isaac/TchiboukdjianGTRB10,DBLP:conf/ppopp/AgrawalLS10,DBLP:conf/spaa/AgrawalFLSSU14}.
+Others show that work stealing applies to various scheduling contexts~\cite{DBLP:journals/mst/AroraBP01,DBLP:journals/anor/TchiboukdjianGT13,DBLP:conf/isaac/TchiboukdjianGTRB10,DBLP:conf/ppopp/AgrawalLS10,DBLP:conf/spaa/AgrawalFLSSU14}.
 \cite{DBLP:conf/ipps/ColeR13} also studied how randomized work-stealing affects false sharing among \ats.
 
-However, as \cite{DBLP:journals/ijpp/YangH18} highlights, it is worth mentioning that this theoretical research has mainly focused on ``fully-strict'' computations, \ie workloads that can be fully represented with a direct acyclic graph.
-It is unclear how well these distributions represent workloads in real world scenarios.
+However, as \cite{DBLP:journals/ijpp/YangH18} highlights, it is worth mentioning that this theoretical research has mainly focused on ``fully strict'' computations, \ie workloads that can be fully represented with a direct acyclic graph.
+It is unclear how well these distributions represent workloads in real-world scenarios.
 
 \section{Preemption}
 One last aspect of scheduling is preemption since many schedulers rely on it for some of their guarantees.
 Preemption is the idea of interrupting \ats that have been running too long, effectively injecting suspend points into the application.
-There are multiple techniques to achieve this effect but they all aim to guarantee that the suspend points in a \ats are never further apart than some fixed duration.
-While this helps schedulers guarantee that no \ats unfairly monopolizes a worker, preemption can effectively be added to any scheduler.
-Therefore, the only interesting aspect of preemption for the design of scheduling is whether or not to require it.
+There are multiple techniques to achieve this effect, but they all aim to guarantee that the suspend points in a \at are never further apart than some fixed duration.
+While this helps schedulers guarantee that no \ats unfairly monopolize a worker, preemption can effectively be added to any scheduler.
+Therefore, the only interesting aspect of preemption for the design of scheduling is whether to require it.
 
 \section{Production Schedulers}\label{existing:prod}
@@ -104,41 +111,41 @@
 While these schedulers do not necessarily represent the most recent advances in scheduling, they are what is generally accessible to programmers.
 As such, I believe these schedulers are at least as relevant as those presented in published work.
-Schedulers that operate in kernel space and in user space are considered, as both can offer relevant insight for this project.
+Both Schedulers that operate in kernel space and user space are considered, as both can offer relevant insight for this project.
 However, real-time schedulers are not considered, as these have constraints that are much stricter than what is needed for this project.
 
 \subsection{Operating System Schedulers}
-Operating System Schedulers tend to be fairly complex as they generally support some amount of real-time, aim to balance interactive and non-interactive \ats and support multiple users sharing hardware without requiring these users to cooperate.
+Operating System Schedulers tend to be fairly complex as they generally support some amount of real time, aim to balance interactive and non-interactive \ats and support multiple users sharing hardware without requiring these users to cooperate.
 Here are more details on a few schedulers used in the common operating systems: Linux, FreeBSD, Microsoft Windows and Apple's OS X.
-The information is less complete for operating systems with closed source.
+The information is less complete for closed source operating systems.
 
 \paragraph{Linux's CFS}
 The default scheduler used by Linux, the Completely Fair Scheduler~\cite{MAN:linux/cfs,MAN:linux/cfs2}, is a feedback scheduler based on CPU time.
 For each processor, it constructs a Red-Black tree of \ats waiting to run, ordering them by the amount of CPU time used.
-The \ats that has used the least CPU time is scheduled.
+The \at that has used the least CPU time is scheduled.
 It also supports the concept of \newterm{Nice values}, which are effectively multiplicative factors on the CPU time used.
-The ordering of \ats is also affected by a group based notion of fairness, where \ats belonging to groups having used less CPU time are preferred to \ats belonging to groups having used more CPU time.
-Linux achieves load-balancing by regularly monitoring the system state~\cite{MAN:linux/cfs/balancing} and using some heuristic on the load, currently CPU time used in the last millisecond plus a decayed version of the previous time slots~\cite{MAN:linux/cfs/pelt}.
-
-\cite{DBLP:conf/eurosys/LoziLFGQF16} shows that Linux's CFS also does work stealing to balance the workload of each processors, but the paper argues this aspect can be improved significantly.
-The issues highlighted stem from Linux's need to support fairness across \ats \emph{and} across users\footnote{Enforcing fairness across users means that given two users, one with a single \ats and the other with one thousand \ats, the user with a single \ats does not receive one thousandth of the CPU time.}, increasing the complexity.
-
-Linux also offers a FIFO scheduler, a real-time scheduler, which runs the highest-priority \ats, and a round-robin scheduler, which is an extension of the FIFO-scheduler that adds fixed time slices. \cite{MAN:linux/sched}
+The ordering of \ats is also affected by a group-based notion of fairness, where \ats belonging to groups having used less CPU time are preferred to \ats belonging to groups having used more CPU time.
+Linux achieves load-balancing by regularly monitoring the system state~\cite{MAN:linux/cfs/balancing} and using some heuristic on the \gls{load}, currently CPU time used in the last millisecond plus a decayed version of the previous time slots~\cite{MAN:linux/cfs/pelt}.
+
+\cite{DBLP:conf/eurosys/LoziLFGQF16} shows that Linux's CFS also does work stealing to balance the workload of each \proc, but the paper argues this aspect can be improved significantly.
+The issues highlighted stem from Linux's need to support fairness across \ats \emph{and} across users\footnote{Enforcing fairness across users means that given two users, one with a single \at and the other with one thousand \ats, the user with a single \at does not receive one-thousandth of the CPU time.}, increasing the complexity.
+
+Linux also offers a FIFO scheduler, a real-time scheduler, which runs the highest-priority \ats, and a round-robin scheduler, which is an extension of the FIFO scheduler that adds fixed time slices. \cite{MAN:linux/sched}
 
 \paragraph{FreeBSD}
 The ULE scheduler used in FreeBSD\cite{DBLP:conf/bsdcon/Roberson03} is a feedback scheduler similar to Linux's CFS.
 It uses different data structures and heuristics but also schedules according to some combination of CPU time used and niceness values.
-It also periodically balances the load of the system (according to a different heuristic), but uses a simpler work stealing approach.
+It also periodically balances the load of the system (according to a different heuristic) but uses a simpler work stealing approach.
 
 \paragraph{Windows(OS)}
 Microsoft's Operating System's Scheduler~\cite{MAN:windows/scheduler} is a feedback scheduler with priorities.
 It supports 32 levels of priorities, some of which are reserved for real-time and privileged applications.
-It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \ats has used.
+It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \at has used.
 The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests.
 
-In~\cite{russinovich2009windows}, Chapter 1 section ``Processes, Threads, and Jobs''\todo{Look up section number.} discusses the scheduling policy more in depth.
-Multicore scheduling is based on a combination of priorities and preferred \proc.
+In~\cite{russinovich2009windows}, Chapter 1 section 2.3 ``Processes, Threads, and Jobs'' discusses the scheduling policy more in-depth.
+Multicore scheduling is based on a combination of priorities and \proc preference.
 Each \at is assigned an initial processor using a round-robin policy, called the \at's \newterm{ideal} \proc.
 \Glspl{at} are distributed among the \procs according to their priority, preferring to match \ats to their ideal \proc and then to the last \proc they ran on.
-This approach is a variation of work stealing, where the stealing \proc restore the \at to its original \proc after running it, but mixed with priorities.
+This approach is a variation of work stealing, where the stealing \proc restores the \at to its original \proc after running it, but mixed with priorities.
 
 \paragraph{Apple OS X}
@@ -152,12 +159,14 @@
 \end{displayquote}
 
-\todo{load balancing}
+There is very little documentation on the internals of this scheduler.
+However, the documentation does describe a feature set that is very similar to the Windows and Linux OS schedulers.
+Presumably, this means that the internals are also fairly similar overall.
 
 \subsection{User-Level Schedulers}
-By comparison, user level schedulers tend to be simpler, gathering fewer metrics and avoid complex notions of fairness. Part of the simplicity is due to the fact that all \ats have the same user, and therefore cooperation is both feasible and probable.
+By comparison, user-level schedulers tend to be simpler, gather fewer metrics and avoid complex notions of fairness. Part of the simplicity is due to the fact that all \ats have the same user, and therefore cooperation is both feasible and probable.
 
 \paragraph{Go}\label{GoSafePoint}
 Go's scheduler uses a randomized work-stealing algorithm that has a global run-queue (\emph{GRQ}) and each processor (\emph{P}) has both a fixed-size run-queue (\emph{LRQ}) and a high-priority next ``chair'' holding a single element~\cite{GITHUB:go,YTUBE:go}.
-Preemption is present, but only at safe-points,~\cite{go:safepoints} which are inserted detection code at various frequent access boundaries.
+Preemption is present, but only at safe points,~\cite{go:safepoints} which are detection code inserted at various frequent access boundaries.
 
 The algorithm is as follows :
@@ -175,19 +184,19 @@
 Erlang is a functional language that supports concurrency in the form of processes: threads that share no data.
 It uses a kind of round-robin scheduler, with a mix of work sharing and stealing to achieve load balancing~\cite{:erlang}, where under-loaded workers steal from other workers, but overloaded workers also push work to other workers.
-This migration logic is directed by monitoring logic that evaluates the load a few times per seconds.
+This \glslink{atmig}{migration} logic is directed by monitoring logic that evaluates the load a few times per second.
 
 \paragraph{Intel\textregistered ~Threading Building Blocks}
 \newterm{Thread Building Blocks} (TBB) is Intel's task parallelism \cite{wiki:taskparallel} framework.
-It runs \newterm{jobs}, which are uninterruptable \ats that must always run to completion, on a pool of worker threads.
+It runs \newterm{jobs}, which are uninterruptible \ats that must always run to completion, on a pool of worker threads.
 TBB's scheduler is a variation of randomized work-stealing that also supports higher-priority graph-like dependencies~\cite{MAN:tbb/scheduler}.
-It schedules \ats as follows (where \textit{t} is the last \ats completed):
+It schedules \ats as follows (where \textit{t} is the last \at completed):
 \begin{displayquote}
 	\begin{enumerate}
 		\item The task returned by \textit{t}@.execute()@
 		\item The successor of t if \textit{t} was its last completed predecessor.
-		\item A task popped from the end of the thread's own deque.
-		\item A task with affinity for the thread.
+		\item A task popped from the end of the thread's own queue.
+		\item A task with an affinity for the thread.
 		\item A task popped from approximately the beginning of the shared queue.
-		\item A task popped from the beginning of another randomly chosen thread's deque.
+		\item A task popped from the beginning of another randomly chosen thread's queue.
 	\end{enumerate}
 
@@ -208,10 +217,11 @@
 While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests a fairly classic approach.
 Each \proc has a queue of \ats to run, called \newterm{blocks}, which are drained in \glsxtrshort{fifo}.
-\todo{update: They seem to add the concept of dependent queues with clear ordering, where executing a block ends-up scheduling more blocks.
-In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB \lstinline{execute()} and predecessor semantics.}
-
+GCD also has secondary queues, called \newterm{Dispatch Queues}, with clear ordering, where executing a block ends up scheduling more blocks.
+In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB \lstinline{execute()} and predecessor semantics.
+
+The similarity of API and semantics between GCD and Intel\textregistered ~TBB suggest the underlying scheduling algorithms are similar.
 
 \paragraph{LibFibre}
-LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a light-weight user-level threading framework developed at the University of Waterloo.
-Similarly to Go, it uses a variation of work stealing with a global queue that is higher priority than stealing.
+LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a lightweight user-level threading framework developed at the University of Waterloo.
+Similarly to Go, it uses a variation of work stealing with a global queue that has a higher priority than stealing.
 Unlike Go, it does not have the high-priority next ``chair'' and does not use randomized work-stealing.
Index: doc/theses/thierry_delisle_PhD/thesis/text/front.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/front.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/front.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -39,9 +39,9 @@
 		\vspace*{2.0cm}
 
-		Waterloo, Ontario, Canada, 2021 \\
-
-		\vspace*{1.0cm}
-
-		\copyright\ Thierry Delisle 2021 \\
+		Waterloo, Ontario, Canada, 2022 \\
+
+		\vspace*{1.0cm}
+
+		\copyright\ Thierry Delisle 2022 \\
 	\end{center}
 \end{titlepage}
@@ -60,12 +60,12 @@
 \noindent
 	The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote.
-	\todo{External Examiners}
-\bigskip
-
-\noindent
-\begin{tabbing}
-	Internal-External Member: \=  \kill % using longest text to define tab length
-	External Examiner: \>  TBD \\
-	\> TBD \\
+\bigskip
+
+\noindent
+\begin{tabbing}
+	Internal-External Member: \=  \kill % using longest text to define tab length
+	External Examiner: \>  Doug Lea \\
+	\> Professor, Computer Science Department \\
+	\> State University of New York at Oswego \\
 \end{tabbing}
 \bigskip
@@ -96,6 +96,6 @@
 \begin{tabbing}
 	Internal-External Member: \=  \kill % using longest text to define tab length
-	Internal-External Member: \> TBD \\
-	\> TBD \\
+	Internal-External Member: \> Patrick Lam \\
+	\> Associate Professor, Department of Electrical and Computer Engineering \\
 	\> University of Waterloo \\
 \end{tabbing}
@@ -124,16 +124,16 @@
 
 User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages.
-The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multi-core systems.
+The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems.
 Indeed, over-partitioning into small work-units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities.
 To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads;
-which begs of the question of how many kernel threads are needed and should the number be dynamically reevaluated.
+which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated.
 Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops.
-When user-threading parallelism does drop, how and when should idle kernel-threads be put to sleep to avoid wasting CPU resources.
+When user-threading parallelism does drop, how and when should idle \glspl{kthrd} be put to sleep to avoid wasting CPU resources.
 Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread;
-otherwise other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
-
-This thesis analyses multiple scheduler systems, where each system attempts to fulfill the necessary requirements for user-level threading.
-The predominant technique for managing high levels of concurrency is sharding the ready-queue with one queue per kernel-thread and using some form of work stealing/sharing to dynamically rebalance workload shifts.
-Preventing kernel blocking is accomplish by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking.
+otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
+
+This thesis analyses multiple scheduler systems, where each system attempts to fulfill the requirements for user-level threading.
+The predominant technique for managing high levels of concurrency is sharding the ready queue with one queue per \gls{kthrd} and using some form of work stealing/sharing to dynamically rebalance workload shifts.
+Preventing kernel blocking is accomplished by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking.
 Fairness is handled through preemption and/or ad-hoc solutions, which leads to coarse-grained fairness with some pathological cases.
 
@@ -146,5 +146,5 @@
 The new scheduler also includes support for implicit nonblocking \io, allowing applications to have more user-threads blocking on \io operations than there are \glspl{kthrd}.
 The implementation is based on @io_uring@, a recent addition to the Linux kernel, and achieves the same performance and fairness as systems using @select@, @epoll@, \etc.
-To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside of the application.
+To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application.
 
 \cleardoublepage
@@ -179,4 +179,11 @@
 \phantomsection    % allows hyperref to link to the correct page
 
+% L I S T   O F   F I G U R E S
+% -----------------------------
+\addcontentsline{toc}{chapter}{List of Figures}
+\listoffigures
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
 % L I S T   O F   T A B L E S
 % ---------------------------
@@ -186,11 +193,4 @@
 \phantomsection		% allows hyperref to link to the correct page
 
-% L I S T   O F   F I G U R E S
-% -----------------------------
-\addcontentsline{toc}{chapter}{List of Figures}
-\listoffigures
-\cleardoublepage
-\phantomsection		% allows hyperref to link to the correct page
-
 % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
 % -----------------------------
@@ -199,12 +199,4 @@
 \phantomsection		% allows hyperref to link to the correct page
 
-% TODOs and missing citations
-% -----------------------------
-\listofcits
-\listoftodos
-\cleardoublepage
-\phantomsection		% allows hyperref to link to the correct page
-
-
 % Change page numbering back to Arabic numerals
 \pagenumbering{arabic}
Index: doc/theses/thierry_delisle_PhD/thesis/text/intro.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/intro.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/intro.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -2,26 +2,26 @@
 
 \Gls{uthrding} (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages.
-The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multi-core systems.
-Indeed, over-partitioning into small work-units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities.
+The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems.
+Indeed, over-partitioning into small work units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities.
 To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads;
-which begs of the question of how many kernel threads are needed and should the number be dynamically reevaluated.
+which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated.
 Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops.
 When user-threading parallelism does drop, how and when should idle kernel-threads be put to sleep to avoid wasting CPU resources.
 Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread;
-otherwise other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
+otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
 
-This thesis analyses multiple scheduler systems, where each system attempts to fulfill the necessary requirements for \gls{uthrding}.
-The predominant technique for managing high levels of concurrency is sharding the ready-queue with one queue per kernel-thread and using some form of work stealing/sharing to dynamically rebalance workload shifts.
-Preventing kernel blocking is accomplish by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking.
-Fairness is handled through preemption and/or ad-hoc solutions, which leads to coarse-grained fairness with some pathological cases.
+This thesis analyzes multiple scheduler systems, where each system attempts to fulfill the requirements for \gls{uthrding}.
+The predominant technique for managing high levels of concurrency is sharding the ready queue with one queue per kernel thread and using some form of work stealing/sharing to dynamically rebalance workload shifts.
+Preventing kernel blocking is accomplished by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking.
+Fairness is handled through preemption and/or ad hoc solutions, which leads to coarse-grained fairness with some pathological cases.
 
-After examining, testing and selecting specific approaches to these scheduling issues, a completely new scheduler was created and tested in the \CFA (C-for-all) user-threading runtime-system.
+After examining, testing and selecting specific approaches to these scheduling issues, a completely new scheduler was created and tested in the \CFA (C-for-all) user-threading runtime system.
 The goal of the new scheduler is to offer increased safety and productivity without sacrificing performance.
-The quality of the new scheduler is demonstrated by comparing it with other user-threading work-stealing schedulers with the aim of showing equivalent or better performance while offering better fairness.
+The quality of the new scheduler is demonstrated by comparing it with other user-threading work-stealing schedulers with, the aim of showing equivalent or better performance while offering better fairness.
 
 Chapter~\ref{intro} defines scheduling and its general goals.
 Chapter~\ref{existing} discusses how scheduler implementations attempt to achieve these goals, but all implementations optimize some workloads better than others.
-Chapter~\ref{cfaruntime} presents the relevant aspects of the \CFA runtime system that have a significant affect on the new scheduler design and implementation.
-Chapter~\ref{core} analyses different scheduler approaches, while looking for scheduler mechanisms that provide both performance and fairness.
+Chapter~\ref{cfaruntime} presents the relevant aspects of the \CFA runtime system that have a significant effect on the new scheduler design and implementation.
+Chapter~\ref{core} analyses different scheduler approaches while looking for scheduler mechanisms that provide both performance and fairness.
 Chapter~\ref{userio} covers the complex mechanisms that must be used to achieve nonblocking I/O to prevent the blocking of \glspl{kthrd}.
 Chapter~\ref{practice} presents the mechanisms needed to adjust the amount of parallelism, both manually and automatically.
@@ -29,16 +29,16 @@
 
 
-\section{Scheduling}
+\section{Scheduling}\label{sched}
 Computer systems share multiple resources across many threads of execution, even on single-user computers like laptops or smartphones.
-On a computer system with multiple processors and work units (routines, coroutines, threads, programs, \etc), there exists the problem of mapping many different kinds of work units onto many different kinds of processors in an efficient manner, called \newterm{scheduling}.
+On a computer system with multiple processors and work units (routines, coroutines, threads, programs, \etc), there exists the problem of mapping many different kinds of work units onto many different kinds of processors efficiently, called \newterm{scheduling}.
 Scheduling systems are normally \newterm{open}, meaning new work arrives from an external source or is randomly spawned from an existing work unit.
 In general, work units without threads, like routines and coroutines, are self-scheduling, while work units with threads, like tasks and programs, are scheduled.
 For scheduled work-units, a scheduler takes a sequence of threads and attempts to run them to completion, subject to shared resource restrictions and utilization.
-A general-purpose dynamic-scheduler for an open system cannot anticipate work requests, so its performance is rarely optimal.
-Even with complete knowledge of arrive order and work, creating an optimal solution is a bin packing problem~\cite{wiki:binpak}.
+In an open system, a general-purpose dynamic scheduler cannot anticipate work requests, so its performance is rarely optimal.
+Even with complete knowledge of arrival order and work, creating an optimal solution is a bin packing problem~\cite{wiki:binpak}.
 However, optimal solutions are often not required: schedulers often produce excellent solutions, without needing optimality, by taking advantage of regularities in work patterns.
 
-Scheduling occurs at discreet points when there are transitions in a system.
-For example, a thread cycles through the following transitions during its execution.
+Scheduling occurs at discrete points when there are transitions in a system.
+For example, a \at cycles through the following transitions during its execution.
 \begin{center}
 \input{executionStates.pstex_t}
@@ -49,9 +49,9 @@
 entering the system (new $\rightarrow$ ready)
 \item
-scheduler assigns a thread to a computing resource, \eg CPU (ready $\rightarrow$ running)
+scheduler assigns a \at to a computing resource, \eg CPU (ready $\rightarrow$ running)
 \item
 timer alarm for preemption (running $\rightarrow$ ready)
 \item
-long term delay versus spinning (running $\rightarrow$ blocked)
+long-term delay versus spinning (running $\rightarrow$ blocked)
 \item
 completion of delay, \eg network or I/O completion (blocked $\rightarrow$ ready)
@@ -59,5 +59,5 @@
 normal completion or error, \eg segment fault (running $\rightarrow$ halted)
 \end{itemize}
-Key to scheduling is that a thread cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system, \ie no self-scheduling among threads.
+Key to scheduling is that a \at cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system, \ie no self-scheduling among threads.
 
 When the workload exceeds the capacity of the processors, \ie work cannot be executed immediately, it is placed on a queue for subsequent service, called a \newterm{ready queue}.
@@ -71,5 +71,5 @@
 \end{tabular}
 \end{center}
-Beyond these two schedulers are a host of options, \eg adding an global shared queue to MQMS or adding multiple private queues with distinc characteristics.
+Beyond these two schedulers are a host of options, \eg adding a global shared queue to MQMS or adding multiple private queues with distinct characteristics.
 
 Once there are multiple resources and ready queues, a scheduler is faced with three major optimization criteria:
@@ -84,12 +84,12 @@
 
 \noindent
-Essentially, all multi-processor computers have non-uniform memory access (NUMA), with one or more quantized steps to access data at different levels in the memory hierarchy.
+Essentially, all multiprocessor computers have non-uniform memory access (NUMA), with one or more quantized steps to access data at different levels in the memory hierarchy.
 When a system has a large number of independently executing threads, affinity becomes difficult because of \newterm{thread churn}.
-That is, threads must be scheduled on different processors to obtain high processors utilization because the number of threads $\ggg$ processors.
+That is, threads must be scheduled on different processors to obtain high processor utilization because the number of threads $\ggg$ processors.
 
 \item
 \newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking.\footnote{
 Lock-free data-structures do not involve locking but incur similar costs to achieve mutual exclusion.}
-Mutual exclusion cost and latency increases significantly with the number of processors access\-ing a shared object.
+Mutual exclusion cost and latency increase significantly with the number of processors access\-ing a shared object.
 \end{enumerate}
 
@@ -116,12 +116,12 @@
 
 Since \CFA attempts to improve the safety and productivity of C, the new scheduler presented in this thesis attempts to achieve the same goals.
-More specifically, safety and productivity for scheduling means supporting a wide range of workloads so that programmers can rely on progress guarantees (safety) and more easily achieve acceptable performance (productivity).
+More specifically, safety and productivity for scheduling mean supporting a wide range of workloads so that programmers can rely on progress guarantees (safety) and more easily achieve acceptable performance (productivity).
 The new scheduler also includes support for implicit nonblocking \io, allowing applications to have more user-threads blocking on \io operations than there are \glspl{kthrd}.
-To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside of the application.
+To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application.
 
-As a research project, this work builds exclusively on newer versions of the Linux operating-system and gcc/clang compilers.
+As a research project, this work builds exclusively on newer versions of the Linux operating system and gcc/clang compilers.
 The new scheduler implementation uses several optimizations to successfully balance the cost of fairness against performance;
 some of these optimizations rely on interesting hardware optimizations only present on modern CPUs.
-The \io implementation is based on the @io_uring@ kernel-interface, a recent addition to the Linux kernel, because it purports to handle nonblocking \emph{file} and network \io.
+The \io implementation is based on the @io_uring@ kernel interface, a recent addition to the Linux kernel, because it purports to handle nonblocking \emph{file} and network \io.
 This decision allowed an interesting performance and fairness comparison with other threading systems using @select@, @epoll@, \etc.
 While the current \CFA release supports older versions of Linux ($\ge$~Ubuntu 16.04) and gcc/clang compilers ($\ge$~gcc 6.0), it is not the purpose of this project to find workarounds in these older systems to provide backwards compatibility.
@@ -129,5 +129,5 @@
 
 \section{Contributions}\label{s:Contributions}
-This work provides the following scheduling contributions for advanced \gls{uthrding} runtime-systems:
+This work provides the following scheduling contributions for advanced \gls{uthrding} runtime systems:
 \begin{enumerate}[leftmargin=*]
 \item
@@ -140,5 +140,5 @@
 A mechanism for adding fairness on top of MQMS algorithm through helping, used both for scalable scheduling algorithm and the user-level \glsxtrshort{io}.
 \item
-An optimization of the helping-mechanism for load balancing to reduce scheduling costs.
+An optimization of the helping mechanism for load balancing to reduce scheduling costs.
 \item
 An optimization for the alternative relaxed-list for load balancing to reduce scheduling costs in embarrassingly parallel cases.
Index: doc/theses/thierry_delisle_PhD/thesis/text/io.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/io.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/io.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -1,5 +1,5 @@
 \chapter{User Level \io}\label{userio}
-As mentioned in Section~\ref{prev:io}, user-level \io requires multiplexing the \io operations of many \glspl{thrd} onto fewer \glspl{proc} using asynchronous \io operations.
-Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating-system.
+As mentioned in Section~\ref{prev:io}, user-level \io requires multiplexing the \io operations of many \ats onto fewer \glspl{proc} using asynchronous \io operations.
+Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating system.
 
 \section{Kernel Interface}
@@ -13,10 +13,10 @@
 In this context, ready means \emph{some} operation can be performed without blocking.
 It does not mean an operation returning \lstinline{EAGAIN} succeeds on the next try.
-For example, a ready read may only return a subset of requested bytes and the read must be issues again for the remaining bytes, at which point it may return \lstinline{EAGAIN}.}
-This mechanism is also crucial in determining when all \glspl{thrd} are blocked and the application \glspl{kthrd} can now block.
+For example, a ready read may only return a subset of requested bytes and the read must be issued again for the remaining bytes, at which point it may return \lstinline{EAGAIN}.}
+This mechanism is also crucial in determining when all \ats are blocked and the application \glspl{kthrd} can now block.
 
 There are three options to monitor file descriptors in Linux:\footnote{
 For simplicity, this section omits \lstinline{pselect} and \lstinline{ppoll}.
-The difference between these system calls and \lstinline{select} and \lstinline{poll}, respectively, is not relevant for this discussion.},
+The difference between these system calls and \lstinline{select} and \lstinline{poll}, respectively, is not relevant for this discussion.}
 @select@~\cite{MAN:select}, @poll@~\cite{MAN:poll} and @epoll@~\cite{MAN:epoll}.
 All three of these options offer a system call that blocks a \gls{kthrd} until at least one of many file descriptors becomes ready.
@@ -30,49 +30,11 @@
 Hence, if one \gls{kthrd} is managing the select calls, other threads can only add/remove to/from the manager's interest set through synchronized calls to update the interest set.
 However, these changes are only reflected when the manager makes its next call to @select@.
-Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/ttys it is waiting on never get data again.
+Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/TTYs it is waiting on never get data again.
 Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem.
-
-\begin{comment}
-From: Tim Brecht <brecht@uwaterloo.ca>
-Subject: Re: FD sets
-Date: Wed, 6 Jul 2022 00:29:41 +0000
-
-Large number of open files
---------------------------
-
-In order to be able to use more than the default number of open file
-descriptors you may need to:
-
-o increase the limit on the total number of open files /proc/sys/fs/file-max
-  (on Linux systems)
-
-o increase the size of FD_SETSIZE
-  - the way I often do this is to figure out which include file __FD_SETSIZE
-    is defined in, copy that file into an appropriate directory in ./include,
-    and then modify it so that if you use -DBIGGER_FD_SETSIZE the larger size
-    gets used
-
-  For example on a RH 9.0 distribution I've copied
-  /usr/include/bits/typesizes.h into ./include/i386-linux/bits/typesizes.h
-
-  Then I modify typesizes.h to look something like:
-
-  #ifdef BIGGER_FD_SETSIZE
-  #define __FD_SETSIZE            32767
-  #else
-  #define __FD_SETSIZE            1024
-  #endif
-
-  Note that the since I'm moving and testing the userver on may different
-  machines the Makefiles are set up to use -I ./include/$(HOSTTYPE)
-
-  This way if you redefine the FD_SETSIZE it will get used instead of the
-  default original file.
-\end{comment}
 
 \paragraph{\lstinline{poll}} is the next oldest option, and takes as input an array of structures containing the FD numbers rather than their position in an array of bits, allowing a more compact input for interest sets that contain widely spaced FDs.
 For small interest sets with densely packed FDs, the @select@ bit mask can take less storage, and hence, copy less information into the kernel.
-Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialize on every call.
-Like @select@, @poll@ suffers from the limitation that the interest set cannot be changed by other \gls{kthrd}, while a manager thread is blocked in @poll@.
+Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialized on every call.
+Like @select@, @poll@ suffers from the limitation that the interest set cannot be changed by other \glspl{kthrd}, while a manager thread is blocked in @poll@.
 
 \paragraph{\lstinline{epoll}} follows after @poll@, and places the interest set in the kernel rather than the application, where it is managed by an internal \gls{kthrd}.
@@ -84,5 +46,6 @@
 However, all three of these I/O systems have limitations.
 The @man@ page for @O_NONBLOCK@ mentions that ``[@O_NONBLOCK@] has no effect for regular files and block devices'', which means none of these three system calls are viable multiplexing strategies for these types of \io operations.
-Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}.
+Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed.
+For example, @epoll@ rejects FDs pointing to regular files or block devices, which includes @stdin@ when using shell redirections~\cite[\S~3.6]{MAN:bash}, but does not reject shell pipelines~\cite[\S~3.2.3]{MAN:bash}, which includes pipelines into @stdin@.
 Finally, none of these are useful solutions for multiplexing \io operations that do not have a corresponding file descriptor and can be awkward for operations using multiple file descriptors.
 
@@ -90,15 +53,15 @@
 An alternative to @O_NONBLOCK@ is the AIO interface.
 Its interface lets programmers enqueue operations to be performed asynchronously by the kernel.
-Completions of these operations can be communicated in various ways: either by spawning a new \gls{kthrd}, sending a Linux signal, or by polling for completion of one or more operation.
-For this work, spawning a new \gls{kthrd} is counter-productive but a related solution is discussed in Section~\ref{io:morethreads}.
-Using interrupts handlers can also lead to fairly complicated interactions between subsystems and has non-trivial cost.
+Completions of these operations can be communicated in various ways: either by spawning a new \gls{kthrd}, sending a Linux signal, or polling for completion of one or more operations.
+For this work, spawning a new \gls{kthrd} is counterproductive but a related solution is discussed in Section~\ref{io:morethreads}.
+Using interrupt handlers can also lead to fairly complicated interactions between subsystems and has a non-trivial cost.
 Leaving polling for completion, which is similar to the previous system calls.
 AIO only supports read and write operations to file descriptors, it does not have the same limitation as @O_NONBLOCK@, \ie, the file descriptors can be regular files and blocked devices.
 It also supports batching multiple operations in a single system call.
 
-AIO offers two different approaches to polling: @aio_error@ can be used as a spinning form of polling, returning @EINPROGRESS@ until the operation is completed, and @aio_suspend@ can be used similarly to @select@, @poll@ or @epoll@, to wait until one or more requests have completed.
-For the purpose of \io multiplexing, @aio_suspend@ is the best interface.
+AIO offers two different approaches to polling: @aio_error@ can be used as a spinning form of polling, returning @EINPROGRESS@ until the operation is completed, and @aio_suspend@ can be used similarly to @select@, @poll@ or @epoll@, to wait until one or more requests have been completed.
+For \io multiplexing, @aio_suspend@ is the best interface.
 However, even if AIO requests can be submitted concurrently, @aio_suspend@ suffers from the same limitation as @select@ and @poll@, \ie, the interest set cannot be dynamically changed while a call to @aio_suspend@ is in progress.
-AIO also suffers from the limitation of specifying which requests have completed, \ie programmers have to poll each request in the interest set using @aio_error@ to identify the completed requests.
+AIO also suffers from the limitation of specifying which requests have been completed, \ie programmers have to poll each request in the interest set using @aio_error@ to identify the completed requests.
 This limitation means that, like @select@ and @poll@ but not @epoll@, the time needed to examine polling results increases based on the total number of requests monitored, not the number of completed requests.
 Finally, AIO does not seem to be a popular interface, which I believe is due in part to this poor polling interface.
@@ -124,5 +87,5 @@
 in
 ``some kind of arbitrary \textit{queue up asynchronous system call} model''.
-This description is actually quite close to the interface described in the next section.
+This description is quite close to the interface described in the next section.
 
 \subsection{\lstinline{io_uring}}
@@ -135,13 +98,13 @@
 In addition to supporting reads and writes to any file descriptor like AIO, it supports other operations like @open@, @close@, @fsync@, @accept@, @connect@, @send@, @recv@, @splice@, \etc.
 
-On top of these, @io_uring@ adds many extras like avoiding copies between the kernel and user-space using shared memory, allowing different mechanisms to communicate with device drivers, and supporting chains of requests, \ie, requests that automatically trigger followup requests on completion.
+On top of these, @io_uring@ adds many extras like avoiding copies between the kernel and user space using shared memory, allowing different mechanisms to communicate with device drivers, and supporting chains of requests, \ie, requests that automatically trigger follow-up requests on completion.
 
 \subsection{Extra Kernel Threads}\label{io:morethreads}
-Finally, if the operating system does not offer a satisfactory form of asynchronous \io operations, an ad-hoc solution is to create a pool of \glspl{kthrd} and delegate operations to it to avoid blocking \glspl{proc}, which is a compromise for multiplexing.
-In the worst case, where all \glspl{thrd} are consistently blocking on \io, it devolves into 1-to-1 threading.
-However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \glspl{thrd} are ready to run.
+Finally, if the operating system does not offer a satisfactory form of asynchronous \io operations, an ad hoc solution is to create a pool of \glspl{kthrd} and delegate operations to it to avoid blocking \glspl{proc}, which is a compromise for multiplexing.
+In the worst case, where all \ats are consistently blocking on \io, it devolves into 1-to-1 threading.
+However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \ats are ready to run.
 This approach is used by languages like Go~\cite{GITHUB:go}, frameworks like libuv~\cite{libuv}, and web servers like Apache~\cite{apache} and NGINX~\cite{nginx}, since it has the advantage that it can easily be used across multiple operating systems.
 This advantage is especially relevant for languages like Go, which offer a homogeneous \glsxtrshort{api} across all platforms.
-As opposed to C, which has a very limited standard api for \io, \eg, the C standard library has no networking.
+As opposed to C, which has a very limited standard \glsxtrshort{api} for \io, \eg, the C standard library has no networking.
 
 \subsection{Discussion}
@@ -155,6 +118,6 @@
 \section{Event-Engine}
 An event engine's responsibility is to use the kernel interface to multiplex many \io operations onto few \glspl{kthrd}.
-In concrete terms, this means \glspl{thrd} enter the engine through an interface, the event engine then starts an operation and parks the calling \glspl{thrd}, returning control to the \gls{proc}.
-The parked \glspl{thrd} are then rescheduled by the event engine once the desired operation has completed.
+In concrete terms, this means \ats enter the engine through an interface, the event engine then starts an operation and parks the calling \ats, returning control to the \gls{proc}.
+The parked \ats are then rescheduled by the event engine once the desired operation has been completed.
 
 \subsection{\lstinline{io_uring} in depth}\label{iouring}
@@ -171,5 +134,5 @@
 	\centering
 	\input{io_uring.pstex_t}
-	\caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffer are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.}
+	\caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffers are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.}
 	\label{fig:iouring}
 \end{figure}
@@ -184,6 +147,6 @@
 \item
 The SQE is filled according to the desired operation.
-This step is straight forward.
-The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled in order to match submission and completion entries.
+This step is straightforward.
+The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled to match submission and completion entries.
 \item
 The SQE is submitted to the submission ring by appending the index of the SQE to the ring following regular ring buffer steps: \lstinline{buffer[head] = item; head++}.
@@ -207,5 +170,5 @@
 
 The @io_uring_enter@ system call is protected by a lock inside the kernel.
-This protection means that concurrent call to @io_uring_enter@ using the same instance are possible, but there is no performance gained from parallel calls to @io_uring_enter@.
+This protection means that concurrent calls to @io_uring_enter@ using the same instance are possible, but there is no performance gained from parallel calls to @io_uring_enter@.
 It is possible to do the first three submission steps in parallel;
 however, doing so requires careful synchronization.
@@ -216,9 +179,9 @@
 This restriction means \io request bursts may have to be subdivided and submitted in chunks at a later time.
 
-An important detail to keep in mind is that just like ``The cloud is just someone else's computer''\cite{xkcd:cloud}, asynchronous operations are just operation using someone else's threads.
-Indeed, asynchronous operation can require computation time to complete, which means that if this time is not taken from the thread that triggered the asynchronous operation, it must be taken from some other threads.
+An important detail to keep in mind is that just like ``The cloud is just someone else's computer''\cite{xkcd:cloud}, asynchronous operations are just operations using someone else's threads.
+Indeed, asynchronous operations can require computation time to complete, which means that if this time is not taken from the thread that triggered the asynchronous operation, it must be taken from some other threads.
 In this case, the @io_uring@ operations that cannot be handled directly in the system call must be delegated to some other \gls{kthrd}.
 To this end, @io_uring@ maintains multiple \glspl{kthrd} inside the kernel that are not exposed to the user.
-There are three kind of operations that can need the \glspl{kthrd}:
+Three kinds of operations that can need the \glspl{kthrd}:
 
 \paragraph{Operations using} @IOSQE_ASYNC@.
@@ -228,5 +191,5 @@
 This is also a fairly simple case. As mentioned earlier in this chapter, [@O_NONBLOCK@] has no effect for regular files and block devices.
 @io_uring@ must also take this reality into account by delegating operations on regular files and block devices.
-In fact @io_uring@ maintains a pool of \glspl{kthrd} dedicated to these operations, which are referred to as \newterm{bounded workers}.
+In fact, @io_uring@ maintains a pool of \glspl{kthrd} dedicated to these operations, which are referred to as \newterm{bounded workers}.
 
 \paragraph{Unbounded operations that must be retried.}
@@ -235,14 +198,14 @@
 @io_uring@ maintains a separate pool for these operations.
 The \glspl{kthrd} in this pool are referred to as \newterm{unbounded workers}.
-Unbounded workers are also responsible of handling operations using @IOSQE_ASYNC@.
+Unbounded workers are also responsible for handling operations using @IOSQE_ASYNC@.
 
 @io_uring@ implicitly spawns and joins both the bounded and unbounded workers based on its evaluation of the needs of the workload.
 This effectively encapsulates the work that is needed when using @epoll@.
-Indeed, @io_uring@ does not change Linux's underlying handling of \io opeartions, it simply offers an asynchronous \glsxtrshort{api} on top of the existing system.
+Indeed, @io_uring@ does not change Linux's underlying handling of \io operations, it simply offers an asynchronous \glsxtrshort{api} on top of the existing system.
 
 
 \subsection{Multiplexing \io: Submission}
 
-The submission side is the most complicated aspect of @io_uring@ and the completion side effectively follows from the design decisions made in the submission side.
+The submission side is the most complicated aspect of @io_uring@ and the completion side effectively follows from the design decisions made on the submission side.
 While there is freedom in designing the submission side, there are some realities of @io_uring@ that must be taken into account.
 It is possible to do the first steps of submission in parallel;
@@ -255,5 +218,5 @@
 As described in Chapter~\ref{practice}, this does not translate into constant CPU usage.}.
 Note that once an operation completes, there is nothing that ties it to the @io_uring@ instance that handled it.
-There is nothing preventing a new operation with, \eg the same file descriptors to a different @io_uring@ instance.
+Nothing preventing a new operation, with for example the same file descriptor, to use a different @io_uring@ instance.
 
 A complicating aspect of submission is @io_uring@'s support for chains of operations, where the completion of an operation triggers the submission of the next operation on the link.
@@ -263,23 +226,23 @@
 Support for this feature can be fulfilled simply by supporting arbitrary user code between allocation and submission.
 
-Similar to scheduling, sharding @io_uring@ instances can be done privately, \ie, one instance per \glspl{proc}, in decoupled pools, \ie, a pool of \glspl{proc} use a pool of @io_uring@ instances without one-to-one coupling between any given instance and any given \gls{proc}, or some mix of the two.
+Similar to scheduling, sharding @io_uring@ instances can be done privately, \ie, one instance per \proc, in decoupled pools, \ie, a pool of \procs using a pool of @io_uring@ instances without one-to-one coupling between any given instance and any given \gls{proc}, or some mix of the two.
 These three sharding approaches are analyzed.
 
 \subsubsection{Private Instances}
 The private approach creates one ring instance per \gls{proc}, \ie one-to-one coupling.
-This alleviates the need for synchronization on the submissions, requiring only that \glspl{thrd} are not time-sliced during submission steps.
-This requirement is the same as accessing @thread_local@ variables, where a \gls{thrd} is accessing kernel-thread data, is time-sliced, and continues execution on another kernel thread but is now accessing the wrong data.
-This failure is the serially reusable problem~\cite{SeriallyReusable}.
-Hence, allocated SQEs must be submitted to the same ring on the same \gls{proc}, which effectively forces the application to submit SQEs in allocation order.\footnote{
-To remove this requirement, a \gls{thrd} needs the ability to ``yield to a specific \gls{proc}'', \ie, park with the guarantee it unparks on a specific \gls{proc}, \ie the \gls{proc} attached to the correct ring.}
+This alleviates the need for synchronization on the submissions, requiring only that \ats are not time-sliced during submission steps.
+This requirement is the same as accessing @thread_local@ variables, where a \at is accessing kernel-thread data, is time-sliced, and continues execution on another kernel thread but is now accessing the wrong data.
+This failure is the \newterm{serially reusable problem}~\cite{SeriallyReusable}.
+Hence, allocated SQEs must be submitted to the same ring on the same \gls{proc}, which effectively forces the application to submit SQEs in order of allocation.\footnote{
+To remove this requirement, a \at needs the ability to ``yield to a specific \gls{proc}'', \ie, \park with the guarantee it unparks on a specific \gls{proc}, \ie the \gls{proc} attached to the correct ring.}
 From the subsystem's point of view, the allocation and submission are sequential, greatly simplifying both.
 In this design, allocation and submission form a partitioned ring buffer as shown in Figure~\ref{fig:pring}.
-Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regards to when to perform the system call.
-Possible options are: when the \gls{proc} runs out of \glspl{thrd} to run, after running a given number of \glspl{thrd}, \etc.
+Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regard to when to perform the system call.
+Possible options are: when the \gls{proc} runs out of \ats to run, after running a given number of \ats, \etc.
 
 \begin{figure}
 	\centering
 	\input{pivot_ring.pstex_t}
-	\caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appending to the first partition.
+	\caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appended to the first partition.
 	When submitting, the partition is advanced.
 	The kernel considers the partition as the head of the ring.}
@@ -288,29 +251,29 @@
 
 This approach has the advantage that it does not require much of the synchronization needed in a shared approach.
-However, this benefit means \glspl{thrd} submitting \io operations have less flexibility: they cannot park or yield, and several exceptional cases are handled poorly.
-Instances running out of SQEs cannot run \glspl{thrd} wanting to do \io operations.
-In this case, the \io \gls{thrd} needs to be moved to a different \gls{proc}, and the only current way of achieving this is to @yield()@ hoping to be scheduled on a different \gls{proc} with free SQEs, which is not guaranteed.
+However, this benefit means \ats submitting \io operations have less flexibility: they cannot \park or yield, and several exceptional cases are handled poorly.
+Instances running out of SQEs cannot run \ats wanting to do \io operations.
+In this case, the \io \at needs to be moved to a different \gls{proc}, and the only current way of achieving this is to @yield()@ hoping to be scheduled on a different \gls{proc} with free SQEs, which is not guaranteed.
 
 A more involved version of this approach tries to solve these problems using a pattern called \newterm{helping}.
-\Glspl{thrd} that cannot submit \io operations, either because of an allocation failure or migration to a different \gls{proc} between allocation and submission, create an \io object and add it to a list of pending submissions per \gls{proc} and a list of pending allocations, probably per cluster.
-While there is still the strong coupling between \glspl{proc} and @io_uring@ instances, these data structures allow moving \glspl{thrd} to a specific \gls{proc}, when the current \gls{proc} cannot fulfill the \io request.
-
-Imagine a simple scenario with two \glspl{thrd} on two \glspl{proc}, where one \gls{thrd} submits an \io operation and then sets a flag, while the other \gls{thrd} spins until the flag is set.
-Assume both \glspl{thrd} are running on the same \gls{proc}, and the \io \gls{thrd} is preempted between allocation and submission, moved to the second \gls{proc}, and the original \gls{proc} starts running the spinning \gls{thrd}.
-In this case, the helping solution has the \io \gls{thrd} append an \io object to the submission list of the first \gls{proc}, where the allocation was made.
-No other \gls{proc} can help the \gls{thrd} since @io_uring@ instances are strongly coupled to \glspl{proc}.
-However, the \io \gls{proc} is unable to help because it is executing the spinning \gls{thrd} resulting in a deadlock.
-While this example is artificial, in the presence of many \glspl{thrd}, it is possible for this problem to arise ``in the wild''.
+\ats that cannot submit \io operations, either because of an allocation failure or \glslink{atmig}{migration} to a different \gls{proc} between allocation and submission, create an \io object and add it to a list of pending submissions per \gls{proc} and a list of pending allocations, probably per cluster.
+While there is still a strong coupling between \glspl{proc} and @io_uring@ instances, these data structures allow moving \ats to a specific \gls{proc}, when the current \gls{proc} cannot fulfill the \io request.
+
+Imagine a simple scenario with two \ats on two \glspl{proc}, where one \at submits an \io operation and then sets a flag, while the other \at spins until the flag is set.
+Assume both \ats are running on the same \gls{proc}, and the \io \at is preempted between allocation and submission, moved to the second \gls{proc}, and the original \gls{proc} starts running the spinning \at.
+In this case, the helping solution has the \io \at append an \io object to the submission list of the first \gls{proc}, where the allocation was made.
+No other \gls{proc} can help the \at since @io_uring@ instances are strongly coupled to \glspl{proc}.
+However, the \io \gls{proc} is unable to help because it is executing the spinning \at resulting in a deadlock.
+While this example is artificial, in the presence of many \ats, this problem can arise ``in the wild''.
 Furthermore, this pattern is difficult to reliably detect and avoid.
-Once in this situation, the only escape is to interrupted the spinning \gls{thrd}, either directly or via some regular preemption, \eg time slicing.
-Having to interrupt \glspl{thrd} for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.
+Once in this situation, the only escape is to interrupt the spinning \at, either directly or via some regular preemption, \eg time slicing.
+Having to interrupt \ats for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.
 Interrupts are needed here entirely because the \gls{proc} is tied to an instance it is not using.
-Therefore, a more satisfying solution is for the \gls{thrd} submitting the operation to notice that the instance is unused and simply go ahead and use it.
+Therefore, a more satisfying solution is for the \at submitting the operation to notice that the instance is unused and simply go ahead and use it.
 This approach is presented shortly.
 
 \subsubsection{Public Instances}
 The public approach creates decoupled pools of @io_uring@ instances and processors, \ie without one-to-one coupling.
-\Glspl{thrd} attempting an \io operation pick one of the available instances and submit the operation to that instance.
-Since there is no coupling between @io_uring@ instances and \glspl{proc} in this approach, \glspl{thrd} running on more than one \gls{proc} can attempt to submit to the same instance concurrently.
+\ats attempting an \io operation pick one of the available instances and submit the operation to that instance.
+Since there is no coupling between @io_uring@ instances and \glspl{proc} in this approach, \ats running on more than one \gls{proc} can attempt to submit to the same instance concurrently.
 Because @io_uring@ effectively sets the amount of sharding needed to avoid contention on its internal locks, performance in this approach is based on two aspects:
 \begin{itemize}
@@ -319,48 +282,48 @@
 \item
 The scheme to route \io requests to specific @io_uring@ instances does not introduce contention.
-This aspect has an oversized importance because it comes into play before the sharding of instances, and as such, all \glspl{hthrd} can contend on the routing algorithm.
+This aspect has oversized importance because it comes into play before the sharding of instances, and as such, all \glspl{hthrd} can contend on the routing algorithm.
 \end{itemize}
 
 Allocation in this scheme is fairly easy.
-Free SQEs, \ie, SQEs that are not currently being used to represent a request, can be written to safely and have a field called @user_data@ that the kernel only reads to copy to @cqe@s.
-Allocation also requires no ordering guarantee as all free SQEs are interchangeable.
+Free SQEs, \ie, SQEs that are not currently being used to represent a request, can be written-to safely and have a field called @user_data@ that the kernel only reads to copy to CQEs.
+Allocation also does not require ordering guarantees as all free SQEs are interchangeable.
 The only added complexity is that the number of SQEs is fixed, which means allocation can fail.
 
-Allocation failures need to be pushed to a routing algorithm: \glspl{thrd} attempting \io operations must not be directed to @io_uring@ instances without sufficient SQEs available.
-Furthermore, the routing algorithm should block operations up-front, if none of the instances have available SQEs.
-
-Once an SQE is allocated, \glspl{thrd} insert the \io request information, and keep track of the SQE index and the instance it belongs to.
-
-Once an SQE is filled in, it is added to the submission ring buffer, an operation that is not thread-safe, and then the kernel must be notified using the @io_uring_enter@ system call.
-The submission ring buffer is the same size as the pre-allocated SQE buffer, therefore pushing to the ring buffer cannot fail because it would mean a \lstinline{sqe} multiple times in the ring buffer, which is undefined behaviour.
-However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations complete.
+Allocation failures need to be pushed to a routing algorithm: \ats attempting \io operations must not be directed to @io_uring@ instances without sufficient SQEs available.
+Furthermore, the routing algorithm should block operations upfront if none of the instances have available SQEs.
+
+Once an SQE is allocated, \ats insert the \io request information and keep track of the SQE index and the instance it belongs to.
+
+Once an SQE is filled in, it is added to the submission ring buffer, an operation that is not thread safe, and then the kernel must be notified using the @io_uring_enter@ system call.
+The submission ring buffer is the same size as the pre-allocated SQE buffer, therefore pushing to the ring buffer cannot fail because it would mean an SQE multiple times in the ring buffer, which is undefined behaviour.
+However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations are complete.
 
 Since multiple SQEs can be submitted to the kernel at once, it is important to strike a balance between batching and latency.
-Operations that are ready to be submitted should be batched together in few system calls, but at the same time, operations should not be left pending for long period of times before being submitted.
-Balancing submission can be handled by either designating one of the submitting \glspl{thrd} as the being responsible for the system call for the current batch of SQEs or by having some other party regularly submitting all ready SQEs, \eg, the poller \gls{thrd} mentioned later in this section.
-
-Ideally, when multiple \glspl{thrd} attempt to submit operations to the same @io_uring@ instance, all requests should be batched together and one of the \glspl{thrd} is designated to do the system call on behalf of the others, called the \newterm{submitter}.
+Operations that are ready to be submitted should be batched together in few system calls, but at the same time, operations should not be left pending for long periods before being submitted.
+Balancing submission can be handled by either designating one of the submitting \ats as the \at responsible for the system call for the current batch of SQEs or by having some other party regularly submit all ready SQEs, \eg, the poller \at mentioned later in this section.
+
+Ideally, when multiple \ats attempt to submit operations to the same @io_uring@ instance, all requests should be batched together and one of the \ats is designated to do the system call on behalf of the others, called the \newterm{submitter}.
 However, in practice, \io requests must be handed promptly so there is a need to guarantee everything missed by the current submitter is seen by the next one.
-Indeed, as long as there is a ``next'' submitter, \glspl{thrd} submitting new \io requests can move on, knowing that some future system call includes their request.
-Once the system call is done, the submitter must also free SQEs so that the allocator can reused them.
-
-Finally, the completion side is much simpler since the @io_uring@ system-call enforces a natural synchronization point.
-Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \glspl{thrd}.
-Since CQEs only own a signed 32 bit result, in addition to the copy of the @user_data@ field, all that is needed to communicate the result is a simple future~\cite{wiki:future}.
+Indeed, as long as there is a ``next'' submitter, \ats submitting new \io requests can move on, knowing that some future system call includes their request.
+Once the system call is done, the submitter must also free SQEs so that the allocator can reuse them.
+
+Finally, the completion side is much simpler since the @io_uring@ system call enforces a natural synchronization point.
+Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \ats.
+Since CQEs only own a signed 32-bit result, in addition to the copy of the @user_data@ field, all that is needed to communicate the result is a simple future~\cite{wiki:future}.
 If the submission side does not designate submitters, polling can also submit all SQEs as it is polling events.
-A simple approach to polling is to allocate a \gls{thrd} per @io_uring@ instance and simply let the poller \glspl{thrd} poll their respective instances when scheduled.
+A simple approach to polling is to allocate a \at per @io_uring@ instance and simply let the poller \ats poll their respective instances when scheduled.
 
 With the pool of SEQ instances approach, the big advantage is that it is fairly flexible.
-It does not impose restrictions on what \glspl{thrd} submitting \io operations can and cannot do between allocations and submissions.
+It does not impose restrictions on what \ats submitting \io operations can and cannot do between allocations and submissions.
 It also can gracefully handle running out of resources, SQEs or the kernel returning @EBUSY@.
-The down side to this approach is that many of the steps used for submitting need complex synchronization to work properly.
-The routing and allocation algorithm needs to keep track of which ring instances have available SQEs, block incoming requests if no instance is available, prevent barging if \glspl{thrd} are already queued up waiting for SQEs and handle SQEs being freed.
+The downside to this approach is that many of the steps used for submitting need complex synchronization to work properly.
+The routing and allocation algorithm needs to keep track of which ring instances have available SQEs, block incoming requests if no instance is available, prevent barging if \ats are already queued up waiting for SQEs and handle SQEs being freed.
 The submission side needs to safely append SQEs to the ring buffer, correctly handle chains, make sure no SQE is dropped or left pending forever, notify the allocation side when SQEs can be reused, and handle the kernel returning @EBUSY@.
-All this synchronization has a significant cost, and compared to the private-instance approach, this synchronization is entirely overhead.
+Compared to the private-instance approach, all this synchronization has a significant cost this synchronization is entirely overhead.
 
 \subsubsection{Instance borrowing}
 Both of the prior approaches have undesirable aspects that stem from tight or loose coupling between @io_uring@ and \glspl{proc}.
 The first approach suffers from tight coupling causing problems when a \gls{proc} does not benefit from the coupling.
-The second approach suffers from loose coupling causing operations to have synchronization overhead, which tighter coupling avoids.
+The second approach suffers from loose couplings causing operations to have synchronization overhead, which tighter coupling avoids.
 When \glspl{proc} are continuously issuing \io operations, tight coupling is valuable since it avoids synchronization costs.
 However, in unlikely failure cases or when \glspl{proc} are not using their instances, tight coupling is no longer advantageous.
@@ -370,7 +333,7 @@
 
 In this approach, each cluster, see Figure~\ref{fig:system}, owns a pool of @io_uring@ instances managed by an \newterm{arbiter}.
-When a \gls{thrd} attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.
-This instance is now bound to the \gls{proc} the \gls{thrd} is running on.
-This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial state with respect to \io.
+When a \at attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.
+This instance is now bound to the \gls{proc} the \at is running on.
+This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial \io state.
 This tight coupling means that synchronization can be minimal since only one \gls{proc} can use the instance at a time, akin to the private instances approach.
 However, it differs in that revocation by the arbiter means this approach does not suffer from the deadlock scenario described above.
@@ -380,8 +343,8 @@
 	\item The current \gls{proc} does not hold an instance.
 	\item The current instance does not have sufficient SQEs to satisfy the request.
-	\item The current \gls{proc} has a wrong instance, this happens if the submitting \gls{thrd} context-switched between allocation and submission, called \newterm{external submissions}.
+	\item The current \gls{proc} has a wrong instance, this happens if the submitting \at context-switched between allocation and submission, called \newterm{external submissions}.
 \end{enumerate}
 However, even when the arbiter is not directly needed, \glspl{proc} need to make sure that their instance ownership is not being revoked, which is accomplished by a lock-\emph{less} handshake.\footnote{
-Note the handshake is not lock \emph{free} since it lacks the proper progress guarantee.}
+Note the handshake is not lock-\emph{free} since it lacks the proper progress guarantee.}
 A \gls{proc} raises a local flag before using its borrowed instance and checks if the instance is marked as revoked or if the arbiter has raised its flag.
 If not, it proceeds, otherwise it delegates the operation to the arbiter.
@@ -389,5 +352,5 @@
 
 Correspondingly, before revoking an instance, the arbiter marks the instance and then waits for the \gls{proc} using it to lower its local flag.
-Only then does it reclaim the instance and potentially assign it to an other \gls{proc}.
+Only then does it reclaim the instance and potentially assign it to another \gls{proc}.
 
 The arbiter maintains four lists around which it makes its decisions:
@@ -406,79 +369,22 @@
 
 \paragraph{Pending Allocations} are handled by the arbiter when it has available instances and can directly hand over the instance and satisfy the request.
-Otherwise, it must hold onto the list of threads until SQEs are made available again.
+Otherwise, it must hold on to the list of threads until SQEs are made available again.
 This handling is more complex when an allocation requires multiple SQEs, since the arbiter must make a decision between satisfying requests in FIFO ordering or for fewer SQEs.
 
 While an arbiter has the potential to solve many of the problems mentioned above, it also introduces a significant amount of complexity.
-Tracking which processors are borrowing which instances and which instances have SQEs available ends-up adding a significant synchronization prelude to any I/O operation.
+Tracking which processors are borrowing which instances and which instances have SQEs available ends up adding a significant synchronization prelude to any I/O operation.
 Any submission must start with a handshake that pins the currently borrowed instance, if available.
 An attempt to allocate is then made, but the arbiter can concurrently be attempting to allocate from the same instance from a different \gls{hthrd}.
 Once the allocation is completed, the submission must check that the instance is still burrowed before attempting to flush.
 These synchronization steps turn out to have a similar cost to the multiple shared-instances approach.
-Furthermore, if the number of instances does not match the number of processors actively submitting I/O, the system can fall into a state where instances are constantly being revoked and end-up cycling the processors, which leads to significant cache deterioration.
+Furthermore, if the number of instances does not match the number of processors actively submitting I/O, the system can fall into a state where instances are constantly being revoked and end up cycling the processors, which leads to significant cache deterioration.
 For these reasons, this approach, which sounds promising on paper, does not improve on the private instance approach in practice.
-
-\subsubsection{Private Instances V2}
-
-% Verbs of this design
-
-% Allocation: obtaining an sqe from which to fill in the io request, enforces the io instance to use since it must be the one which provided the sqe. Must interact with the arbiter if the instance does not have enough sqe for the allocation. (Typical allocation will ask for only one sqe, but chained sqe must be allocated from the same context so chains of sqe must be allocated in bulks)
-
-% Submission: simply adds the sqe(s) to some data structure to communicate that they are ready to go. This operation can't fail because there are as many spots in the submit buffer than there are sqes. Must interact with the arbiter only if the thread was moved between the allocation and the submission.
-
-% Flushing: Taking all the sqes that were submitted and making them visible to the kernel, also counting them in order to figure out what to_submit should be. Must be thread-safe with submission. Has to interact with the Arbiter if there are external submissions. Can't simply use a protected queue because adding to the array is not safe if the ring is still available for submitters. Flushing must therefore: check if there are external pending requests if so, ask the arbiter to flush otherwise use the fast flush operation.
-
-% Collect: Once the system call is done, it returns how many sqes were consumed by the system. These must be freed for allocation. Must interact with the arbiter to notify that things are now ready.
-
-% Handle: process all the produced cqe. No need to interact with any of the submission operations or the arbiter.
-
-
-% alloc():
-% 	proc.io->in_use = true, __ATOMIC_ACQUIRE
-% 	if cltr.io.flag || !proc.io || proc.io->flag:
-% 		return alloc_slow(cltr.io, proc.io)
-
-% 	a = alloc_fast(proc.io)
-% 	if a:
-% 		proc.io->in_use = false, __ATOMIC_RELEASE
-% 		return a
-
-% 	return alloc_slow(cltr.io)
-
-% alloc_fast()
-% 	left = proc.io->submit_q.free.tail - proc.io->submit_q.free.head
-% 	if num_entries - left < want:
-% 		return None
-
-% 	a = ready[head]
-% 	head = head + 1, __ATOMIC_RELEASE
-
-% alloc_slow()
-% 	cltr.io.flag = true, __ATOMIC_ACQUIRE
-% 	while(proc.io && proc.io->in_use) pause;
-
-
-
-% submit(a):
-% 	proc.io->in_use = true, __ATOMIC_ACQUIRE
-% 	if cltr.io.flag || proc.io != alloc.io || proc.io->flag:
-% 		return submit_slow(cltr.io)
-
-% 	submit_fast(proc.io, a)
-% 	proc.io->in_use = false, __ATOMIC_RELEASE
-
-% polling()
-% 	loop:
-% 		yield
-% 		flush()
-% 		io_uring_enter
-% 		collect
-% 		handle()
 
 \section{Interface}
 The last important part of the \io subsystem is its interface.
-There are multiple approaches that can be offered to programmers, each with advantages and disadvantages.
-The new \io subsystem can replace the C runtime API or extend it, and in the later case, the interface can go from very similar to vastly different.
+Multiple approaches can be offered to programmers, each with advantages and disadvantages.
+The new \io subsystem can replace the C runtime API or extend it, and in the latter case, the interface can go from very similar to vastly different.
 The following sections discuss some useful options using @read@ as an example.
-The standard Linux interface for C is :
+The standard Linux interface for C is:
 \begin{cfa}
 ssize_t read(int fd, void *buf, size_t count);
@@ -492,5 +398,5 @@
 However, this approach also entails a plethora of subtle technical challenges, which generally boils down to making a perfect replacement.
 If the \CFA interface replaces only \emph{some} of the calls to glibc, then this can easily lead to esoteric concurrency bugs.
-Since the gcc ecosystems does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
+Since the gcc ecosystem does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
 
 \subsection{Synchronous Extension}
@@ -503,5 +409,5 @@
 It comes with the caveat that any code attempting to use it must be recompiled, which is a problem considering the amount of existing legacy C binaries.
 However, it has the advantage of implementation simplicity.
-Finally, there is a certain irony to using a blocking synchronous interfaces for a feature often referred to as ``non-blocking'' \io.
+Finally, there is a certain irony to using a blocking synchronous interface for a feature often referred to as ``non-blocking'' \io.
 
 \subsection{Asynchronous Extension}
@@ -531,3 +437,3 @@
 This offers more flexibility to users wanting to fully utilize all of the @io_uring@ features.
 However, it is not the most user-friendly option.
-It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricting users to usages that are compatible with how \CFA internally uses @io_uring@.
+It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricts users to usages that are compatible with how \CFA internally uses @io_uring@.
Index: doc/theses/thierry_delisle_PhD/thesis/text/practice.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/practice.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/practice.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -16,25 +16,25 @@
 } // delete 4 kernel threads
 \end{cfa}
-Dynamically allocated processors can be deleted an any time, \ie their lifetime exceeds the block of creation.
+Dynamically allocated processors can be deleted at any time, \ie their lifetime exceeds the block of creation.
 The consequence is that the scheduler and \io subsystems must know when these \procs come in and out of existence and roll them into the appropriate scheduling algorithms.
 
 \section{Manual Resizing}
 Manual resizing is expected to be a rare operation.
-Programmers normally create/delete processors on a clusters at startup/teardown.
+Programmers normally create/delete processors on a cluster at startup/teardown.
 Therefore, dynamically changing the number of \procs is an appropriate moment to allocate or free resources to match the new state.
 As such, all internal scheduling arrays that are sized based on the number of \procs need to be @realloc@ed.
-This requirement also means any references into these arrays, \eg pointers or indexes, may need to be updated if elements are moved for compaction or for any other reason.
+This requirement also means any references into these arrays, \eg pointers or indexes, may need to be updated if elements are moved for compaction or any other reason.
 
 There are no performance requirements, within reason, for resizing since it is expected to be rare.
 However, this operation has strict correctness requirements since updating and idle sleep can easily lead to deadlocks.
-It should also avoid as much as possible any effect on performance when the number of \procs remain constant.
+It should also avoid as much as possible any effect on performance when the number of \procs remains constant.
 This later requirement prohibits naive solutions, like simply adding a global lock to the ready-queue arrays.
 
 \subsection{Read-Copy-Update}
 One solution is to use the Read-Copy-Update pattern~\cite{wiki:rcu}.
-In this pattern, resizing is done by creating a copy of the internal data structures, \eg see Figure~\ref{fig:base-ts2}, updating the copy with the desired changes, and then attempt an Indiana Jones Switch to replace the original with the copy.
+In this pattern, resizing is done by creating a copy of the internal data structures, \eg see Figure~\ref{fig:base-ts2}, updating the copy with the desired changes, and then attempting an Indiana Jones Switch to replace the original with the copy.
 This approach has the advantage that it may not need any synchronization to do the switch.
 However, there is a race where \procs still use the original data structure after the copy is switched.
-This race not only requires adding a memory-reclamation scheme, it also requires that operations made on the stale original version are eventually moved to the copy.
+This race not only requires adding a memory-reclamation scheme, but it also requires that operations made on the stale original version are eventually moved to the copy.
 
 Specifically, the original data structure must be kept until all \procs have witnessed the change.
@@ -42,7 +42,7 @@
 If all operations need synchronization, then the overall cost of this technique is likely to be similar to an uncontended lock approach.
 In addition to the classic challenge of memory reclamation, transferring the original data to the copy before reclaiming it poses additional challenges.
-Especially merging subqueues while having a minimal impact on fairness and locality.
-
-For example, given a linked-list, having a node enqueued onto the original and new list is not necessarily a problem depending on the chosen list structure.
+Especially merging sub-queues while having a minimal impact on fairness and locality.
+
+For example, given a linked list, having a node enqueued onto the original and new list is not necessarily a problem depending on the chosen list structure.
 If the list supports arbitrary insertions, then inconsistencies in the tail pointer do not break the list;
 however, ordering may not be preserved.
@@ -55,14 +55,14 @@
 A simpler approach is to use a \newterm{Readers-Writer Lock}~\cite{wiki:rwlock}, where the resizing requires acquiring the lock as a writer while simply enqueueing/dequeuing \ats requires acquiring the lock as a reader.
 Using a Readers-Writer lock solves the problem of dynamically resizing and leaves the challenge of finding or building a lock with sufficient good read-side performance.
-Since this approach is not a very complex challenge and an ad-hoc solution is perfectly acceptable, building a Readers-Writer lock was the path taken.
+Since this approach is not a very complex challenge and an ad hoc solution is perfectly acceptable, building a Readers-Writer lock was the path taken.
 
 To maximize reader scalability, readers should not contend with each other when attempting to acquire and release a critical section.
-To achieve this goal requires each reader to have its own memory to mark as locked and unlocked.
-The read acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock.
-The write acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks.
-Acquiring all the local read locks guarantees mutual exclusion among the readers and the writer, while the wait on the read side prevents readers from continuously starving the writer.
+Achieving this goal requires that each reader have its own memory to mark as locked and unlocked.
+The read-acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock.
+The writer acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks.
+Acquiring all the local read-locks guarantees mutual exclusion among the readers and the writer, while the wait on the read side prevents readers from continuously starving the writer.
 Figure~\ref{f:SpecializedReadersWriterLock} shows the outline for this specialized readers-writer lock.
 The lock in nonblocking, so both readers and writers spin while the lock is held.
-This very wide sharding strategy means that readers have very good locality, since they only ever need to access two memory location.
+This very wide sharding strategy means that readers have very good locality since they only ever need to access two memory locations.
 
 \begin{figure}
@@ -98,5 +98,5 @@
 \section{Idle-Sleep}\label{idlesleep}
 While manual resizing of \procs is expected to be rare, the number of \ats can vary significantly over an application's lifetime, which means there are times when there are too few or too many \procs.
-For this work, it is the programer's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue.
+For this work, it is the programmer's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue.
 This leaves too many \procs when there are not enough \ats for all the \procs to be useful.
 These idle \procs cannot be removed because their lifetime is controlled by the application, and only the application knows when the number of \ats may increase or decrease.
@@ -108,24 +108,24 @@
 Because idle sleep is spurious, this data structure has strict performance requirements, in addition to strict correctness requirements.
 Next, some mechanism is needed to block \glspl{kthrd}, \eg @pthread_cond_wait@ on a pthread semaphore.
-The complexity here is to support \at parking and unparking, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity.
+The complexity here is to support \at \glslink{atblock}{parking} and \glslink{atsched}{unparking}, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity.
 Finally, the scheduler needs a heuristic to determine when to block and unblock an appropriate number of \procs.
 However, this third challenge is outside the scope of this thesis because developing a general heuristic is complex enough to justify its own work.
 Therefore, the \CFA scheduler simply follows the ``Race-to-Idle''~\cite{Albers12} approach where a sleeping \proc is woken any time a \at becomes ready and \procs go to idle sleep anytime they run out of work.
 
-An interesting sub-part of this heuristic is what to do with bursts of \ats that become ready.
-Since waking up a sleeping \proc can have notable latency, it is possible multiple \ats become ready while a single \proc is waking up.
-This facts begs the question, if many \procs are available, how many should be woken?
-If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelisation.
-If the ready \ats will run for a short very short time, waking many \procs may be wasteful.
+An interesting subpart of this heuristic is what to do with bursts of \ats that become ready.
+Since waking up a sleeping \proc can have notable latency, multiple \ats may become ready while a single \proc is waking up.
+This fact begs the question, if many \procs are available, how many should be woken?
+If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelization.
+If the ready \ats will run for a very short time, waking many \procs may be wasteful.
 As mentioned, a heuristic to handle these complex cases is outside the scope of this thesis, the behaviour of the scheduler in this particular case is left unspecified.
 
 \section{Sleeping}
-As usual, the corner-stone of any feature related to the kernel is the choice of system call.
+As usual, the cornerstone of any feature related to the kernel is the choice of system call.
 In terms of blocking a \gls{kthrd} until some event occurs, the Linux kernel has many available options.
 
 \subsection{\lstinline{pthread_mutex}/\lstinline{pthread_cond}}
-The classic option is to use some combination of the pthread mutual exclusion and synchronization locks, allowing a safe park/unpark of a \gls{kthrd} to/from a @pthread_cond@.
+The classic option is to use some combination of the pthread mutual exclusion and synchronization locks, allowing a safe \park/\unpark of a \gls{kthrd} to/from a @pthread_cond@.
 While this approach works for \glspl{kthrd} waiting among themselves, \io operations do not provide a mechanism to signal @pthread_cond@s.
-For \io results to wake a \proc waiting on a @pthread_cond@ means a different \glspl{kthrd} must be woken up first, which then signals the \proc.
+For \io results to wake a \proc waiting on a @pthread_cond@ means a different \gls{kthrd} must be woken up first, which then signals the \proc.
 
 \subsection{\lstinline{io_uring} and Epoll}
@@ -137,8 +137,8 @@
 
 \subsection{Event FDs}
-Another interesting approach is to use an event file descriptor\cite{eventfd}.
+Another interesting approach is to use an event file descriptor\cite{MAN:eventfd}.
 This Linux feature is a file descriptor that behaves like \io, \ie, uses @read@ and @write@, but also behaves like a semaphore.
-Indeed, all reads and writes must use a word-sized values, \ie 64 or 32 bits.
-Writes \emph{add} their values to a buffer using arithmetic addition versus buffer append, and reads zero out the buffer and return the buffer values so far.\footnote{
+Indeed, all reads and writes must use word-sized values, \ie 64 or 32 bits.
+Writes \emph{add} their values to a buffer using arithmetic addition versus buffer append, and reads zero-out the buffer and return the buffer values so far.\footnote{
 This behaviour is without the \lstinline{EFD_SEMAPHORE} flag, which changes the behaviour of \lstinline{read} but is not needed for this work.}
 If a read is made while the buffer is already 0, the read blocks until a non-0 value is added.
@@ -148,5 +148,5 @@
 
 \section{Tracking Sleepers}
-Tracking which \procs are in idle sleep requires a data structure holding all the sleeping \procs, but more importantly it requires a concurrent \emph{handshake} so that no \at is stranded on a ready-queue with no active \proc.
+Tracking which \procs are in idle sleep requires a data structure holding all the sleeping \procs, but more importantly, it requires a concurrent \emph{handshake} so that no \at is stranded on a ready queue with no active \proc.
 The classic challenge occurs when a \at is made ready while a \proc is going to sleep: there is a race where the new \at may not see the sleeping \proc and the sleeping \proc may not see the ready \at.
 Since \ats can be made ready by timers, \io operations, or other events outside a cluster, this race can occur even if the \proc going to sleep is the only \proc awake.
@@ -154,17 +154,17 @@
 
 The handshake closing the race is done with both the notifier and the idle \proc executing two ordered steps.
-The notifier first make sure the newly ready \at is visible to \procs searching for \ats, and then attempt to notify an idle \proc.
+The notifier first makes sure the newly ready \at is visible to \procs searching for \ats, and then attempts to notify an idle \proc.
 On the other side, \procs make themselves visible as idle \procs and then search for any \ats they may have missed.
 Unlike regular work-stealing, this search must be exhaustive to make sure that pre-existing \at is missed.
 These steps from both sides guarantee that if the search misses a newly ready \at, then the notifier is guaranteed to see at least one idle \proc.
-Conversly, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.
+Conversely, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.
 
 Furthermore, the ``Race-to-Idle'' approach means that there may be contention on the data structure tracking sleepers.
-Contention can be tolerated for \procs attempting to sleep or wake-up because these \procs are not doing useful work, and therefore, not contributing to overall performance.
+Contention can be tolerated for \procs attempting to sleep or wake up because these \procs are not doing useful work, and therefore, not contributing to overall performance.
 However, notifying, checking if a \proc must be woken-up, and doing so if needed, can significantly affect overall performance and must be low cost.
 
 \subsection{Sleepers List}
 Each cluster maintains a list of idle \procs, organized as a stack.
-This ordering allows \procs at the tail to stay in idle sleep for extended period of times while those at the head of the list wake-up for bursts of activity.
+This ordering allows \procs at the tail to stay in idle sleep for extended periods while those at the head of the list wake up for bursts of activity.
 Because of unbalanced performance requirements, the algorithm tracking sleepers is designed to have idle \procs handle as much of the work as possible.
 The idle \procs maintain the stack of sleepers among themselves and notifying a sleeping \proc takes as little work as possible.
@@ -173,12 +173,12 @@
 
 This approach also simplifies notification.
-Indeed, \procs not only need to be notify when a new \at is readied, but also must be notified during manual resizing, so the \gls{kthrd} can be joined.
+Indeed, \procs not only need to be notified when a new \at is readied, but must also be notified during manual resizing, so the \gls{kthrd} can be joined.
 These requirements mean whichever entity removes idle \procs from the sleeper list must be able to do so in any order.
 Using a simple lock over this data structure makes the removal much simpler than using a lock-free data structure.
-The single lock also means the notification process simply needs to wake-up the desired idle \proc, using @pthread_cond_signal@, @write@ on an @fd@, \etc, and the \proc handles the rest.
+The single lock also means the notification process simply needs to wake up the desired idle \proc, using @pthread_cond_signal@, @write@ on an @fd@, \etc, and the \proc handles the rest.
 
 \subsection{Reducing Latency}
-As mentioned in this section, \procs going to sleep for extremely short periods of time is likely in certain scenarios.
-Therefore, the latency of doing a system call to read from and writing to an event @fd@ can negatively affect overall performance in a notable way.
+As mentioned in this section, \procs going to sleep for extremely short periods is likely in certain scenarios.
+Therefore, the latency of doing a system call to read from and write to an event @fd@ can negatively affect overall performance notably.
 Hence, it is important to reduce latency and contention of the notification as much as possible.
 Figure~\ref{fig:idle1} shows the basic idle-sleep data structure.
@@ -205,6 +205,6 @@
 The woken \proc then updates the atomic pointer, while it is updating the head of the list, as it removes itself from the list.
 Notifiers that obtained a @NULL@ in the exchange simply move on knowing that another notifier is already waking a \proc.
-This behaviour is equivalent to having multiple notifier write to the @fd@ since reads consume all previous writes.
-Note that with and without this atomic pointer, bursts of notification can lead to an unspecified number of \procs being woken up, depending on how the arrival notification compares witht the latency of \procs waking up.
+This behaviour is equivalent to having multiple notifiers write to the @fd@ since reads consume all previous writes.
+Note that with and without this atomic pointer, bursts of notification can lead to an unspecified number of \procs being woken up, depending on how the arrival notification compares with the latency of \procs waking up.
 As mentioned in section~\ref{idlesleep}, there is no optimal approach to handle these bursts.
 It is therefore difficult to justify the cost of any extra synchronization here.
@@ -218,18 +218,18 @@
 
 The next optimization is to avoid the latency of the event @fd@, which can be done by adding what is effectively a binary benaphore\cite{schillings1996engineering} in front of the event @fd@.
-The benaphore over the event @fd@ logically provides a three state flag to avoid unnecessary system calls, where the states are expressed explicit in Figure~\ref{fig:idle:state}.
-A \proc begins its idle sleep by adding itself to the idle list before searching for an \at.
+The benaphore over the event @fd@ logically provides a three-state flag to avoid unnecessary system calls, where the states are expressed explicitly in Figure~\ref{fig:idle:state}.
+A \proc begins its idle sleep by adding itself to the idle list before searching for a \at.
 In the process of adding itself to the idle list, it sets the state flag to @SEARCH@.
 If no \ats can be found during the search, the \proc then confirms it is going to sleep by atomically swapping the state to @SLEEP@.
 If the previous state is still @SEARCH@, then the \proc does read the event @fd@.
-Meanwhile, notifiers atomically exchange the state to @AWAKE@ state.
+Meanwhile, notifiers atomically exchange the state to the @AWAKE@ state.
 If the previous state is @SLEEP@, then the notifier must write to the event @fd@.
 However, if the notify arrives almost immediately after the \proc marks itself idle, then both reads and writes on the event @fd@ can be omitted, which reduces latency notably.
-These extensions leads to the final data structure shown in Figure~\ref{fig:idle}.
+These extensions lead to the final data structure shown in Figure~\ref{fig:idle}.
 
 \begin{figure}
 	\centering
 	\input{idle_state.pstex_t}
-	\caption[Improved Idle-Sleep Latency]{Improved Idle-Sleep Latency \smallskip\newline A three state flag is added to the event \lstinline{fd}.}
+	\caption[Improved Idle-Sleep Latency]{Improved Idle-Sleep Latency \smallskip\newline A three-state flag is added to the event \lstinline{fd}.}
 	\label{fig:idle:state}
 \end{figure}
Index: doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -4,5 +4,5 @@
 \section{C Threading}
 
-\Celeven introduced threading features, such the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
+\Celeven introduced threading features, such as the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
 Interestingly, almost a decade after the \Celeven standard, the most recent versions of gcc, clang, and msvc do not support the \Celeven include @threads.h@, indicating no interest in the C11 concurrency approach (possibly because of the recent effort to add concurrency to \CC).
 While the \Celeven standard does not state a threading model, the historical association with pthreads suggests implementations would adopt kernel-level threading (1:1)~\cite{ThreadModel}, as for \CC.
@@ -13,14 +13,14 @@
 \section{M:N Threading}\label{prev:model}
 
-Threading in \CFA is based on \Gls{uthrding}, where \glspl{thrd} are the representation of a unit of work. As such, \CFA programmers should expect these units to be fairly inexpensive, \ie programmers should be able to create a large number of \glspl{thrd} and switch among \glspl{thrd} liberally without many concerns for performance.
+Threading in \CFA is based on \Gls{uthrding}, where \ats are the representation of a unit of work. As such, \CFA programmers should expect these units to be fairly inexpensive, \ie programmers should be able to create a large number of \ats and switch among \ats liberally without many performance concerns.
 
-The \CFA M:N threading models is implemented using many user-level threads mapped onto fewer \glspl{kthrd}.
+The \CFA M:N threading model is implemented using many user-level threads mapped onto fewer \glspl{kthrd}.
 The user-level threads have the same semantic meaning as a \glspl{kthrd} in the 1:1 model: they represent an independent thread of execution with its own stack.
-The difference is that user-level threads do not have a corresponding object in the kernel; they are handled by the runtime in user space and scheduled onto \glspl{kthrd}, referred to as \glspl{proc} in this document. \Glspl{proc} run a \gls{thrd} until it context switches out, it then chooses a different \gls{thrd} to run.
+The difference is that user-level threads do not have a corresponding object in the kernel; they are handled by the runtime in user space and scheduled onto \glspl{kthrd}, referred to as \glspl{proc} in this document. \Glspl{proc} run a \at until it context switches out, it then chooses a different \at to run.
 
 \section{Clusters}
 \CFA allows the option to group user-level threading, in the form of clusters.
-Both \glspl{thrd} and \glspl{proc} belong to a specific cluster.
-\Glspl{thrd} are only scheduled onto \glspl{proc} in the same cluster and scheduling is done independently of other clusters.
+Both \ats and \glspl{proc} belong to a specific cluster.
+\Glspl{at} are only scheduled onto \glspl{proc} in the same cluster and scheduling is done independently of other clusters.
 Figure~\ref{fig:system} shows an overview of the \CFA runtime, which allows programmers to tightly control parallelism.
 It also opens the door to handling effects like NUMA, by pinning clusters to a specific NUMA node\footnote{This capability is not currently implemented in \CFA, but the only hurdle left is creating a generic interface for CPU masks.}.
@@ -30,5 +30,5 @@
 		\input{system.pstex_t}
 	\end{center}
-	\caption[Overview of the \CFA runtime]{Overview of the \CFA runtime \newline \Glspl{thrd} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \glspl{thrd}.}
+	\caption[Overview of the \CFA runtime]{Overview of the \CFA runtime \newline \Glspl{at} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \ats.}
 	\label{fig:system}
 \end{figure}
@@ -38,17 +38,17 @@
 
 \section{\glsxtrshort{io}}\label{prev:io}
-Prior to this work, the \CFA runtime did not add any particular support for \glsxtrshort{io} operations. While all \glsxtrshort{io} operations available in C are available in \CFA, \glsxtrshort{io} operations are designed for the POSIX threading model~\cite{pthreads}. Using these 1:1 threading operations in an M:N threading model means \glsxtrshort{io} operations block \glspl{proc} instead of \glspl{thrd}. While this can work in certain cases, it limits the number of concurrent operations to the number of \glspl{proc} rather than \glspl{thrd}. It also means deadlock can occur because all \glspl{proc} are blocked even if at least one \gls{thrd} is ready to run. A simple example of this type of deadlock would be as follows:
+Prior to this work, the \CFA runtime did not add any particular support for \glsxtrshort{io} operations. While all \glsxtrshort{io} operations available in C are available in \CFA, \glsxtrshort{io} operations are designed for the POSIX threading model~\cite{pthreads}. Using these 1:1 threading operations in an M:N threading model means \glsxtrshort{io} operations block \glspl{proc} instead of \ats. While this can work in certain cases, it limits the number of concurrent operations to the number of \glspl{proc} rather than \ats. It also means deadlock can occur because all \glspl{proc} are blocked even if at least one \at is ready to run. A simple example of this type of deadlock would be as follows:
 
 \begin{quote}
-Given a simple network program with 2 \glspl{thrd} and a single \gls{proc}, one \gls{thrd} sends network requests to a server and the other \gls{thrd} waits for a response from the server.
-If the second \gls{thrd} races ahead, it may wait for responses to requests that have not been sent yet.
-In theory, this should not be a problem, even if the second \gls{thrd} waits, because the first \gls{thrd} is still ready to run and should be able to get CPU time to send the request.
-With M:N threading, while the first \gls{thrd} is ready, the lone \gls{proc} \emph{cannot} run the first \gls{thrd} if it is blocked in the \glsxtrshort{io} operation of the second \gls{thrd}.
-If this happen, the system is in a synchronization deadlock\footnote{In this example, the deadlock could be resolved if the server sends unprompted messages to the client.
+Given a simple network program with 2 \ats and a single \gls{proc}, one \at sends network requests to a server and the other \at waits for a response from the server.
+If the second \at races ahead, it may wait for responses to requests that have not been sent yet.
+In theory, this should not be a problem, even if the second \at waits, because the first \at is still ready to run and should be able to get CPU time to send the request.
+With M:N threading, while the first \at is ready, the lone \gls{proc} \emph{cannot} run the first \at if it is blocked in the \glsxtrshort{io} operation of the second \at.
+If this happens, the system is in a synchronization deadlock\footnote{In this example, the deadlock could be resolved if the server sends unprompted messages to the client.
 However, this solution is neither general nor appropriate even in this simple case.}.
 \end{quote}
 
-Therefore, one of the objective of this work is to introduce \emph{User-Level \glsxtrshort{io}}, which like \glslink{uthrding}{User-Level \emph{Threading}}, blocks \glspl{thrd} rather than \glspl{proc} when doing \glsxtrshort{io} ope      rations.
-This feature entails multiplexing the \glsxtrshort{io} operations of many \glspl{thrd} onto fewer \glspl{proc}.
+Therefore, one of the objectives of this work is to introduce \emph{User-Level \glsxtrshort{io}}, which like \glslink{uthrding}{User-Level \emph{Threading}}, blocks \ats rather than \glspl{proc} when doing \glsxtrshort{io} operations.
+This feature entails multiplexing the \glsxtrshort{io} operations of many \ats onto fewer \glspl{proc}.
 The multiplexing requires a single \gls{proc} to execute multiple \glsxtrshort{io} operations in parallel.
 This requirement cannot be done with operations that block \glspl{proc}, \ie \glspl{kthrd}, since the first operation would prevent starting new operations for its blocking duration.
@@ -60,5 +60,5 @@
 All functions defined by this volume of POSIX.1-2017 shall be thread-safe, except that the following functions need not be thread-safe. ... (list of 70+ excluded functions)
 \end{quote}
-Only UNIX @man@ pages identify whether or not a library function is thread safe, and hence, may block on a pthreads lock or system call; hence interoperability with UNIX library functions is a challenge for an M:N threading model.
+Only UNIX @man@ pages identify whether a library function is thread-safe, and hence, may block on a pthreads lock or system call; hence interoperability with UNIX library functions is a challenge for an M:N threading model.
 
 Languages like Go and Java, which have strict interoperability with C\cite{wiki:jni,go:cgo}, can control operations in C by ``sandboxing'' them, \eg a blocking function may be delegated to a \gls{kthrd}. Sandboxing may help towards guaranteeing that the kind of deadlock mentioned above does not occur.
@@ -72,3 +72,3 @@
 Therefore, it is possible calls to an unknown library function can block a \gls{kthrd} leading to deadlocks in \CFA's M:N threading model, which would not occur in a traditional 1:1 threading model.
 Currently, all M:N thread systems interacting with UNIX without sandboxing suffer from this problem but manage to work very well in the majority of applications.
-Therefore, a complete solution to this problem is outside the scope of this thesis.\footnote{\CFA does provide a pthreads emulation, so any library function using embedded pthreads locks are redirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.}
+Therefore, a complete solution to this problem is outside the scope of this thesis.\footnote{\CFA does provide a pthreads emulation, so any library function using embedded pthreads locks is redirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.}
Index: doc/theses/thierry_delisle_PhD/thesis/thesis.tex
===================================================================
--- doc/theses/thierry_delisle_PhD/thesis/thesis.tex	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ doc/theses/thierry_delisle_PhD/thesis/thesis.tex	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -84,4 +84,5 @@
 \usepackage{subcaption}
 \usepackage{comment} % Removes large sections of the document.
+\usepackage{array}
 
 % Hyperlinks make it very easy to navigate an electronic document.
@@ -210,4 +211,6 @@
 \newcommand\proc{\gls{proc}\xspace}%
 \newcommand\procs{\glspl{proc}\xspace}%
+\newcommand\park{\glslink{atblock}{park}\xspace}%
+\newcommand\unpark{\glslink{atsched}{unpark}\xspace}%
 
 %======================================================================
Index: driver/Makefile.am
===================================================================
--- driver/Makefile.am	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ driver/Makefile.am	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -19,5 +19,5 @@
 
 # applies to both programs
-AM_CXXFLAGS = @HOST_FLAGS@ -Wall -Wextra -Werror=return-type -O2 -g -std=c++14 -I${abs_top_srcdir}/src -I${abs_top_srcdir}/src/include
+AM_CXXFLAGS = @HOST_FLAGS@ -Wall -Wextra -Werror=return-type -O2 -g -std=c++17 -I${abs_top_srcdir}/src -I${abs_top_srcdir}/src/include
 
 # don't install cfa directly
Index: driver/cfa.cc
===================================================================
--- driver/cfa.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ driver/cfa.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -53,9 +53,4 @@
 	return arg.substr( 0, pre.size() ) == pre;
 } // prefix
-
-static inline bool ends_with(const string & str, const string & sfix) {
-	if (sfix.size() > str.size()) return false;
-	return std::equal(str.rbegin(), str.rbegin() + sfix.size(), sfix.rbegin(), sfix.rend());
-}
 
 // check if string has suffix
Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/prelude/Makefile.am	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -50,5 +50,5 @@
 
 prelude.cfa : prelude-gen.cc
-	${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++14
+	${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++17
 	@./prelude-gen > ${@}
 	@rm ./prelude-gen
@@ -76,5 +76,5 @@
 
 if ENABLE_DISTCC
-distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
 	${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@
 	@echo "Dummy file to track distribution to remote hosts" > ${@}
Index: libcfa/prelude/defines.hfa.in
===================================================================
--- libcfa/prelude/defines.hfa.in	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/prelude/defines.hfa.in	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -141,4 +141,8 @@
 
 /* Defined if io_uring support is present when compiling libcfathread and
+   supports the flag IORING_REGISTER_IOWQ_MAX_WORKERS. */
+#undef CFA_HAVE_IORING_REGISTER_IOWQ_MAX_WORKERS
+
+/* Defined if io_uring support is present when compiling libcfathread and
    supports the flag IORING_SETUP_ATTACH_WQ. */
 #undef CFA_HAVE_IORING_SETUP_ATTACH_WQ
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/Makefile.am	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -186,5 +186,5 @@
 if ENABLE_DISTCC
 
-../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/defines.hfa ../prelude/gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh
 	@+make -C ../prelude distribution
 
Index: libcfa/src/bits/defs.hfa
===================================================================
--- libcfa/src/bits/defs.hfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/bits/defs.hfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -24,5 +24,4 @@
 #define likely(x)   __builtin_expect(!!(x), 1)
 #define unlikely(x) __builtin_expect(!!(x), 0)
-#define thread_local _Thread_local
 
 typedef void (*fptr_t)();
@@ -37,5 +36,21 @@
 #endif
 
+
+#if defined(__has_attribute)
+#if !__has_attribute(__noclone__)
+#define ATTRIBUTE_NOCLONE
+#endif
+#endif
+#ifndef ATTRIBUTE_NOCLONE
+#define ATTRIBUTE_NOCLONE __attribute__((__noclone__))
+#endif
+
 #define libcfa_public __attribute__((visibility("default")))
+#define libcfa_nopreempt __attribute__((section("cfatext_nopreempt"))) __attribute__((__noinline__)) ATTRIBUTE_NOCLONE
+
+struct __cfa_nopreempt_region {
+	void * start;
+	void * stop;
+};
 
 #ifdef __cforall
Index: libcfa/src/bits/locks.hfa
===================================================================
--- libcfa/src/bits/locks.hfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/bits/locks.hfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -13,6 +13,6 @@
 // Created On       : Tue Oct 31 15:14:38 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Aug 27 15:06:39 2022
-// Update Count     : 15
+// Last Modified On : Mon Sep 19 18:39:45 2022
+// Update Count     : 16
 //
 
Index: libcfa/src/concurrency/io/call.cfa.in
===================================================================
--- libcfa/src/concurrency/io/call.cfa.in	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/io/call.cfa.in	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -202,16 +202,9 @@
 		struct io_context$ * ctx = cfa_io_allocate( &sqe, &idx, 1 );
 
+		memset(sqe, 0, sizeof(*sqe));
 		sqe->opcode = IORING_OP_{op};
+		sqe->flags = sflags;
 		sqe->user_data = (uintptr_t)&future;
-		sqe->flags = sflags;
-		sqe->ioprio = 0;
-		sqe->fd = 0;
-		sqe->off = 0;
-		sqe->addr = 0;
-		sqe->len = 0;
-		sqe->fsync_flags = 0;
-		sqe->__pad2[0] = 0;
-		sqe->__pad2[1] = 0;
-		sqe->__pad2[2] = 0;{body}
+		{body}
 
 		asm volatile("": : :"memory");
Index: libcfa/src/concurrency/io/setup.cfa
===================================================================
--- libcfa/src/concurrency/io/setup.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/io/setup.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -228,4 +228,5 @@
 
 		#if !defined(CFA_WITH_IO_URING_IDLE)
+		{
 			// Step 4 : eventfd
 			__cfadbg_print_safe(io_core, "Kernel I/O : registering %d for completion with ring %d\n", procfd, fd);
@@ -237,7 +238,12 @@
 
 			__cfadbg_print_safe(io_core, "Kernel I/O : registered %d for completion with ring %d\n", procfd, fd);
-		#endif
-
+		}
+		#endif
+
+		// TODO: implement a proper version of this.
+		// I have not found a better maximum that works in general but users should be able to configure it
+		// the same way they configure other I/O options
 		// #if defined(CFA_HAVE_IORING_REGISTER_IOWQ_MAX_WORKERS)
+		// {
 		// 	// Step 5 : max worker count
 		// 	__cfadbg_print_safe(io_core, "Kernel I/O : lmiting max workers for ring %d\n", fd);
@@ -252,4 +258,5 @@
 
 		// 	__cfadbg_print_safe(io_core, "Kernel I/O : lmited max workers for ring %d\n", fd);
+		// }
 		// #endif
 
Index: libcfa/src/concurrency/kernel/cluster.hfa
===================================================================
--- libcfa/src/concurrency/kernel/cluster.hfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/kernel/cluster.hfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -63,5 +63,5 @@
 		}
 	}
-	return (max + 2 * max) / 2;
+	return 8 * max;
 }
 
Index: libcfa/src/concurrency/kernel/fwd.hfa
===================================================================
--- libcfa/src/concurrency/kernel/fwd.hfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/kernel/fwd.hfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -35,5 +35,5 @@
 extern "C" {
 	extern "Cforall" {
-		extern __attribute__((aligned(64))) thread_local struct KernelThreadData {
+		extern __attribute__((aligned(64))) __thread struct KernelThreadData {
 			struct thread$          * volatile this_thread;
 			struct processor        * volatile this_processor;
@@ -179,8 +179,9 @@
 		// Similar to a binary semaphore with a 'one shot' semantic
 		// is expected to be discarded after each party call their side
+		enum(struct thread$ *) { oneshot_ARMED = 0p, oneshot_FULFILLED = 1p };
 		struct oneshot {
 			// Internal state :
-			//     0p     : is initial state (wait will block)
-			//     1p     : fulfilled (wait won't block)
+			// armed      : initial state, wait will block
+			// fulfilled  : wait won't block
 			// any thread : a thread is currently waiting
 			struct thread$ * volatile ptr;
@@ -189,5 +190,5 @@
 		static inline {
 			void  ?{}(oneshot & this) {
-				this.ptr = 0p;
+				this.ptr = oneshot_ARMED;
 			}
 
@@ -199,8 +200,8 @@
 				for() {
 					struct thread$ * expected = this.ptr;
-					if(expected == 1p) return false;
+					if(expected == oneshot_FULFILLED) return false;
 					if(__atomic_compare_exchange_n(&this.ptr, &expected, active_thread(), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
 						park();
-						/* paranoid */ verify( this.ptr == 1p );
+						/* paranoid */ verify( this.ptr == oneshot_FULFILLED );
 						return true;
 					}
@@ -211,6 +212,6 @@
 			// return true if a thread was unparked
 			thread$ * post(oneshot & this, bool do_unpark = true) {
-				struct thread$ * got = __atomic_exchange_n( &this.ptr, 1p, __ATOMIC_SEQ_CST);
-				if( got == 0p || got == 1p ) return 0p;
+				struct thread$ * got = __atomic_exchange_n( &this.ptr, oneshot_FULFILLED, __ATOMIC_SEQ_CST);
+				if( got == oneshot_ARMED || got == oneshot_FULFILLED ) return 0p;
 				if(do_unpark) unpark( got );
 				return got;
@@ -223,10 +224,11 @@
 		// thread on "any of" [a given set of] futures.
 		// does not support multiple threads waiting on the same future
+		enum(struct oneshot *) { future_ARMED = 0p, future_FULFILLED = 1p, future_PROGRESS = 2p, future_ABANDONED = 3p };
 		struct future_t {
 			// Internal state :
-			//     0p      : is initial state (wait will block)
-			//     1p      : fulfilled (wait won't block)
-			//     2p      : in progress ()
-			//     3p      : abandoned, server should delete
+			// armed       : initial state, wait will block
+			// fulfilled   : result is ready, wait won't block
+			// progress    : someone else is in the process of fulfilling this
+			// abandoned   : client no longer cares, server should delete
 			// any oneshot : a context has been setup to wait, a thread could wait on it
 			struct oneshot * volatile ptr;
@@ -235,5 +237,5 @@
 		static inline {
 			void  ?{}(future_t & this) {
-				this.ptr = 0p;
+				this.ptr = future_ARMED;
 			}
 
@@ -242,11 +244,11 @@
 			void reset(future_t & this) {
 				// needs to be in 0p or 1p
-				__atomic_exchange_n( &this.ptr, 0p, __ATOMIC_SEQ_CST);
+				__atomic_exchange_n( &this.ptr, future_ARMED, __ATOMIC_SEQ_CST);
 			}
 
 			// check if the future is available
 			bool available( future_t & this ) {
-				while( this.ptr == 2p ) Pause();
-				return this.ptr == 1p;
+				while( this.ptr == future_PROGRESS ) Pause();
+				return this.ptr == future_FULFILLED;
 			}
 
@@ -254,10 +256,10 @@
 			// intented to be use by wait, wait_any, waitfor, etc. rather than used directly
 			bool setup( future_t & this, oneshot & wait_ctx ) {
-				/* paranoid */ verify( wait_ctx.ptr == 0p || wait_ctx.ptr == 1p );
+				/* paranoid */ verify( wait_ctx.ptr == oneshot_ARMED || wait_ctx.ptr == oneshot_FULFILLED );
 				// The future needs to set the wait context
 				for() {
 					struct oneshot * expected = this.ptr;
 					// Is the future already fulfilled?
-					if(expected == 1p) return false; // Yes, just return false (didn't block)
+					if(expected == future_FULFILLED) return false; // Yes, just return false (didn't block)
 
 					// The future is not fulfilled, try to setup the wait context
@@ -277,22 +279,22 @@
 
 				// attempt to remove the context so it doesn't get consumed.
-				if(__atomic_compare_exchange_n( &this.ptr, &expected, 0p, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
+				if(__atomic_compare_exchange_n( &this.ptr, &expected, future_ARMED, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
 					// we still have the original context, then no one else saw it
 					return false;
 				}
 
-				// expected == 0p: future was never actually setup, just return
-				if( expected == 0p ) return false;
-
-				// expected == 1p: the future is ready and the context was fully consumed
+				// expected == ARMED: future was never actually setup, just return
+				if( expected == future_ARMED ) return false;
+
+				// expected == FULFILLED: the future is ready and the context was fully consumed
 				// the server won't use the pointer again
 				// It is safe to delete (which could happen after the return)
-				if( expected == 1p ) return true;
-
-				// expected == 2p: the future is ready but the context hasn't fully been consumed
+				if( expected == future_FULFILLED ) return true;
+
+				// expected == PROGRESS: the future is ready but the context hasn't fully been consumed
 				// spin until it is safe to move on
-				if( expected == 2p ) {
-					while( this.ptr != 1p ) Pause();
-					/* paranoid */ verify( this.ptr == 1p );
+				if( expected == future_PROGRESS ) {
+					while( this.ptr != future_FULFILLED ) Pause();
+					/* paranoid */ verify( this.ptr == future_FULFILLED );
 					return true;
 				}
@@ -305,21 +307,21 @@
 			// Mark the future as abandoned, meaning it will be deleted by the server
 			bool abandon( future_t & this ) {
-				/* paranoid */ verify( this.ptr != 3p );
+				/* paranoid */ verify( this.ptr != future_ABANDONED );
 
 				// Mark the future as abandonned
-				struct oneshot * got = __atomic_exchange_n( &this.ptr, 3p, __ATOMIC_SEQ_CST);
+				struct oneshot * got = __atomic_exchange_n( &this.ptr, future_ABANDONED, __ATOMIC_SEQ_CST);
 
 				// If the future isn't already fulfilled, let the server delete it
-				if( got == 0p ) return false;
-
-				// got == 2p: the future is ready but the context hasn't fully been consumed
+				if( got == future_ARMED ) return false;
+
+				// got == PROGRESS: the future is ready but the context hasn't fully been consumed
 				// spin until it is safe to move on
-				if( got == 2p ) {
-					while( this.ptr != 1p ) Pause();
-					got = 1p;
+				if( got == future_PROGRESS ) {
+					while( this.ptr != future_FULFILLED ) Pause();
+					got = future_FULFILLED;
 				}
 
 				// The future is completed delete it now
-				/* paranoid */ verify( this.ptr != 1p );
+				/* paranoid */ verify( this.ptr != future_FULFILLED );
 				free( &this );
 				return true;
@@ -336,19 +338,19 @@
 						#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
 					#endif
-						if( expected == 3p ) { free( &this ); return 0p; }
+						if( expected == future_ABANDONED ) { free( &this ); return 0p; }
 					#if defined(__GNUC__) && __GNUC__ >= 7
 						#pragma GCC diagnostic pop
 					#endif
 
-					/* paranoid */ verify( expected != 1p ); // Future is already fulfilled, should not happen
-					/* paranoid */ verify( expected != 2p ); // Future is bein fulfilled by someone else, this is even less supported then the previous case.
+					/* paranoid */ verify( expected != future_FULFILLED ); // Future is already fulfilled, should not happen
+					/* paranoid */ verify( expected != future_PROGRESS ); // Future is bein fulfilled by someone else, this is even less supported then the previous case.
 
 					// If there is a wait context, we need to consume it and mark it as consumed after
 					// If there is no context then we can skip the in progress phase
-					struct oneshot * want = expected == 0p ? 1p : 2p;
+					struct oneshot * want = expected == future_ARMED ? future_FULFILLED : future_PROGRESS;
 					if(__atomic_compare_exchange_n(&this.ptr, &expected, want, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
-						if( expected == 0p ) { return 0p; }
+						if( expected == future_ARMED ) { return 0p; }
 						thread$ * ret = post( *expected, do_unpark );
-						__atomic_store_n( &this.ptr, 1p, __ATOMIC_SEQ_CST);
+						__atomic_store_n( &this.ptr, future_FULFILLED, __ATOMIC_SEQ_CST);
 						return ret;
 					}
@@ -366,5 +368,5 @@
 
 				// Wait for the future to tru
-				while( this.ptr == 2p ) Pause();
+				while( this.ptr == future_PROGRESS ) Pause();
 				// Make sure the state makes sense
 				// Should be fulfilled, could be in progress but it's out of date if so
@@ -372,5 +374,5 @@
 				// and the oneshot should not be needed any more
 				__attribute__((unused)) struct oneshot * was = this.ptr;
-				/* paranoid */ verifyf( was == 1p, "Expected this.ptr to be 1p, was %p\n", was );
+				/* paranoid */ verifyf( was == future_FULFILLED, "Expected this.ptr to be 1p, was %p\n", was );
 
 				// Mark the future as fulfilled, to be consistent
Index: libcfa/src/concurrency/kernel/private.hfa
===================================================================
--- libcfa/src/concurrency/kernel/private.hfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/kernel/private.hfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -88,5 +88,5 @@
 #elif defined(CFA_HAVE_LINUX_RSEQ_H)
 	extern "Cforall" {
-		extern __attribute__((aligned(64))) thread_local volatile struct rseq __cfaabi_rseq;
+		extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq;
 	}
 #else
@@ -161,4 +161,7 @@
 // Blocking acquire
 static inline void __atomic_acquire(volatile bool * ll) {
+	/* paranoid */ verify( ! __preemption_enabled() );
+	/* paranoid */ verify(ll);
+
 	while( __builtin_expect(__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST), false) ) {
 		while(__atomic_load_n(ll, (int)__ATOMIC_RELAXED))
@@ -166,8 +169,12 @@
 	}
 	/* paranoid */ verify(*ll);
+	/* paranoid */ verify( ! __preemption_enabled() );
 }
 
 // Non-Blocking acquire
 static inline bool __atomic_try_acquire(volatile bool * ll) {
+	/* paranoid */ verify( ! __preemption_enabled() );
+	/* paranoid */ verify(ll);
+
 	return !__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST);
 }
@@ -175,4 +182,6 @@
 // Release
 static inline void __atomic_unlock(volatile bool * ll) {
+	/* paranoid */ verify( ! __preemption_enabled() );
+	/* paranoid */ verify(ll);
 	/* paranoid */ verify(*ll);
 	__atomic_store_n(ll, (bool)false, __ATOMIC_RELEASE);
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -133,5 +133,5 @@
 //-----------------------------------------------------------------------------
 // Global state
-thread_local struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
+__thread struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
 	NULL,												// cannot use 0p
 	NULL,
@@ -153,5 +153,5 @@
 #elif defined(CFA_HAVE_LINUX_RSEQ_H)
 	extern "Cforall" {
-		__attribute__((aligned(64))) thread_local volatile struct rseq __cfaabi_rseq @= {
+		__attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq @= {
 			.cpu_id : RSEQ_CPU_ID_UNINITIALIZED,
 		};
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/concurrency/preemption.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -238,5 +238,5 @@
 //----------
 // special case for preemption since used often
-__attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_public {
+__attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_nopreempt libcfa_public {
 	// create a assembler label before
 	// marked as clobber all to avoid movement
@@ -272,9 +272,24 @@
 }
 
+extern "C" {
+	__attribute__((visibility("hidden"))) extern void * const __start_cfatext_nopreempt;
+	__attribute__((visibility("hidden"))) extern void * const __stop_cfatext_nopreempt;
+
+	extern const __cfa_nopreempt_region __libcfa_nopreempt;
+	__attribute__((visibility("protected"))) const __cfa_nopreempt_region __libcfathrd_nopreempt @= {
+		(void * const)&__start_cfatext_nopreempt,
+		(void * const)&__stop_cfatext_nopreempt
+	};
+}
+
+static inline bool __cfaabi_in( void * const ip, const struct __cfa_nopreempt_region & const region ) {
+	return ip >= region.start && ip <= region.stop;
+}
+
 
 //----------
 // Get data from the TLS block
 // struct asm_region __cfaasm_get;
-uintptr_t __cfatls_get( unsigned long int offset ) __attribute__((__noinline__, visibility("default"))); //no inline to avoid problems
+uintptr_t __cfatls_get( unsigned long int offset ) libcfa_nopreempt libcfa_public; //no inline to avoid problems
 uintptr_t __cfatls_get( unsigned long int offset ) {
 	// create a assembler label before
@@ -295,5 +310,5 @@
 extern "C" {
 	// Disable interrupts by incrementing the counter
-	__attribute__((__noinline__, visibility("default"))) void disable_interrupts() libcfa_public {
+	void disable_interrupts() libcfa_nopreempt libcfa_public {
 		// create a assembler label before
 		// marked as clobber all to avoid movement
@@ -326,5 +341,5 @@
 	// Enable interrupts by decrementing the counter
 	// If counter reaches 0, execute any pending __cfactx_switch
-	void enable_interrupts( bool poll ) libcfa_public {
+	void enable_interrupts( bool poll ) libcfa_nopreempt libcfa_public {
 		// Cache the processor now since interrupts can start happening after the atomic store
 		processor   * proc = __cfaabi_tls.this_processor;
@@ -358,4 +373,27 @@
 		}
 	}
+
+	// Check whether or not there is pending preemption
+	// force_yield( __POLL_PREEMPTION ) if appropriate
+	// return true if the thread was in an interruptable state
+	// i.e. on a real processor and not in the kernel
+	// (can return true even if no preemption was pending)
+	bool poll_interrupts() libcfa_public {
+		// Cache the processor now since interrupts can start happening after the atomic store
+		processor   * proc = publicTLS_get( this_processor );
+		if ( ! proc ) return false;
+		if ( ! __preemption_enabled() ) return false;
+
+		with( __cfaabi_tls.preemption_state ){
+			// Signal the compiler that a fence is needed but only for signal handlers
+			__atomic_signal_fence(__ATOMIC_RELEASE);
+			if( proc->pending_preemption ) {
+				proc->pending_preemption = false;
+				force_yield( __POLL_PREEMPTION );
+			}
+		}
+
+		return true;
+	}
 }
 
@@ -463,84 +501,4 @@
 
 //-----------------------------------------------------------------------------
-// Some assembly required
-#if defined( __i386 )
-	#ifdef __PIC__
-		#define RELOC_PRELUDE( label ) \
-			"calll   .Lcfaasm_prelude_" #label "$pb\n\t" \
-			".Lcfaasm_prelude_" #label "$pb:\n\t" \
-			"popl    %%eax\n\t" \
-			".Lcfaasm_prelude_" #label "_end:\n\t" \
-			"addl    $_GLOBAL_OFFSET_TABLE_+(.Lcfaasm_prelude_" #label "_end-.Lcfaasm_prelude_" #label "$pb), %%eax\n\t"
-		#define RELOC_PREFIX ""
-		#define RELOC_SUFFIX "@GOT(%%eax)"
-	#else
-		#define RELOC_PREFIX "$"
-		#define RELOC_SUFFIX ""
-	#endif
-	#define __cfaasm_label( label ) struct asm_region label = \
-		({ \
-			struct asm_region region; \
-			asm( \
-				RELOC_PRELUDE( label ) \
-				"movl " RELOC_PREFIX "__cfaasm_" #label "_before" RELOC_SUFFIX ", %[vb]\n\t" \
-				"movl " RELOC_PREFIX "__cfaasm_" #label "_after"  RELOC_SUFFIX ", %[va]\n\t" \
-				 : [vb]"=r"(region.before), [va]"=r"(region.after) \
-			); \
-			region; \
-		});
-#elif defined( __x86_64 )
-	#ifdef __PIC__
-		#define RELOC_PREFIX ""
-		#define RELOC_SUFFIX "@GOTPCREL(%%rip)"
-	#else
-		#define RELOC_PREFIX "$"
-		#define RELOC_SUFFIX ""
-	#endif
-	#define __cfaasm_label( label ) struct asm_region label = \
-		({ \
-			struct asm_region region; \
-			asm( \
-				"movq " RELOC_PREFIX "__cfaasm_" #label "_before" RELOC_SUFFIX ", %[vb]\n\t" \
-				"movq " RELOC_PREFIX "__cfaasm_" #label "_after"  RELOC_SUFFIX ", %[va]\n\t" \
-				 : [vb]"=r"(region.before), [va]"=r"(region.after) \
-			); \
-			region; \
-		});
-#elif defined( __aarch64__ )
-	#ifdef __PIC__
-		// Note that this works only for gcc
-		#define __cfaasm_label( label ) struct asm_region label = \
-		({ \
-			struct asm_region region; \
-			asm( \
-				"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 ) 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
-#endif
-
 // KERNEL ONLY
 // Check if a __cfactx_switch signal handler shoud defer
@@ -548,16 +506,9 @@
 // If false : preemption is unsafe and marked as pending
 static inline bool preemption_ready( void * ip ) {
-	// Get all the region for which it is not safe to preempt
-	__cfaasm_label( get    );
-	__cfaasm_label( check  );
-	__cfaasm_label( dsable );
-	// __cfaasm_label( debug  );
-
 	// Check if preemption is safe
 	bool ready = true;
-	if( __cfaasm_in( ip, get    ) ) { ready = false; goto EXIT; };
-	if( __cfaasm_in( ip, check  ) ) { ready = false; goto EXIT; };
-	if( __cfaasm_in( ip, dsable ) ) { ready = false; goto EXIT; };
-	// if( __cfaasm_in( ip, debug  ) ) { ready = false; goto EXIT; };
+	if( __cfaabi_in( ip, __libcfa_nopreempt ) ) { ready = false; goto EXIT; };
+	if( __cfaabi_in( ip, __libcfathrd_nopreempt ) ) { 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; };
@@ -643,5 +594,5 @@
 // Kernel Signal Handlers
 //=============================================================================================
-__cfaabi_dbg_debug_do( static thread_local void * last_interrupt = 0; )
+__cfaabi_dbg_debug_do( static __thread void * last_interrupt = 0; )
 
 // Context switch signal handler
Index: libcfa/src/startup.cfa
===================================================================
--- libcfa/src/startup.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ libcfa/src/startup.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -41,6 +41,15 @@
 	} // __cfaabi_appready_shutdown
 
-	void disable_interrupts() __attribute__(( weak )) libcfa_public {}
-	void enable_interrupts() __attribute__(( weak )) libcfa_public {}
+	void disable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {}
+	void enable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {}
+	bool poll_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public { return false; }
+
+	__attribute__((visibility("hidden"))) extern void * const __start_cfatext_nopreempt;
+	__attribute__((visibility("hidden"))) extern void * const __stop_cfatext_nopreempt;
+
+	__attribute__((visibility("protected"))) const __cfa_nopreempt_region __libcfa_nopreempt @= {
+		(void * const)&__start_cfatext_nopreempt,
+		(void * const)&__stop_cfatext_nopreempt
+	};
 
 
Index: src/AST/Decl.hpp
===================================================================
--- src/AST/Decl.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Decl.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -217,5 +217,5 @@
 
 	/// convenience accessor to match Type::isComplete()
-	bool isComplete() { return sized; }
+	bool isComplete() const { return sized; }
 
 	const Decl * accept( Visitor & v ) const override { return v.visit( this ); }
Index: src/AST/DeclReplacer.cpp
===================================================================
--- src/AST/DeclReplacer.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/DeclReplacer.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,109 +9,109 @@
 // Author           : Aaron B. Moss
 // Created On       : Wed May 8 13:00:00 2019
-// Last Modified By : Aaron B. Moss
-// Last Modified On : Wed May 8 13:00:00 2019
-// Update Count     : 1
+// Last Modified By : Andrew Beach
+// Last Modified On : Thr Sep 15 11:55:00 2022
+// Update Count     : 2
 //
 
 #include "DeclReplacer.hpp"
+
 #include "Expr.hpp"
+#include "Pass.hpp"
 #include "Type.hpp"
-
-#include "Pass.hpp"
 
 namespace ast {
 
 namespace DeclReplacer {
-	namespace {
-		struct DeclReplacer {
-		private:
-			const DeclMap & declMap;
-			const TypeMap & typeMap;
-			bool debug;
 
-		public:
-			DeclReplacer(const DeclMap & declMap, const TypeMap & typeMap, bool debug)
-				: declMap( declMap ), typeMap( typeMap ), debug( debug )
-			{}
+namespace {
+	struct DeclReplacer {
+	private:
+		const DeclMap & declMap;
+		const TypeMap & typeMap;
+		bool debug;
 
-			const ast::VariableExpr * previsit( const ast::VariableExpr * );
-			const ast::TypeInstType * previsit( const ast::TypeInstType * );
-		};
+	public:
+		DeclReplacer( const DeclMap & declMap, const TypeMap & typeMap, bool debug )
+			: declMap( declMap ), typeMap( typeMap ), debug( debug )
+		{}
 
-		struct VarExprReplacer {
-		private:
-			const ExprMap & exprMap;
-			
-		public:
-			VarExprReplacer(const ExprMap & exprMap): exprMap (exprMap) {}
+		const ast::VariableExpr * previsit( const ast::VariableExpr * );
+		const ast::TypeInstType * previsit( const ast::TypeInstType * );
+	};
 
-			const Expr * postvisit (const VariableExpr *);
-		};
+	struct VarExprReplacer {
+	private:
+		const ExprMap & exprMap;
+
+	public:
+		VarExprReplacer( const ExprMap & exprMap ) : exprMap( exprMap ) {}
+
+		const Expr * postvisit( const VariableExpr * );
+	};
+} // namespace
+
+const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) {
+	if(!node) return nullptr;
+	Pass<DeclReplacer> replacer = { declMap, typeMap, debug };
+	return node->accept( replacer );
+}
+
+const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
+	TypeMap typeMap;
+	return replace( node, declMap, typeMap, debug );
+}
+
+const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) {
+	DeclMap declMap;
+	return replace( node, declMap, typeMap, debug );
+}
+
+const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap ) {
+	Pass<VarExprReplacer> replacer = {exprMap};
+	return node->accept( replacer );
+}
+
+namespace {
+	// replace variable with new node from decl map
+	const ast::VariableExpr * DeclReplacer::previsit( const VariableExpr * varExpr ) {
+		// xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are)
+		if ( !declMap.count( varExpr->var ) ) return varExpr;
+
+		auto replacement = declMap.at( varExpr->var );
+		if ( debug ) {
+			std::cerr << "replacing variable reference: "
+				<< (void*)varExpr->var.get() << " " << varExpr->var
+				<< " with " << (void*)replacement << " " << replacement
+				<< std::endl;
+		}
+		auto nexpr = mutate(varExpr);
+		nexpr->var = replacement;
+		return nexpr;
 	}
 
-	const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) {
-		if(!node) return nullptr;
-		Pass<DeclReplacer> replacer = { declMap, typeMap, debug };
-		return node->accept( replacer );
+	const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) {
+		if ( !typeMap.count( inst->base ) ) return inst;
+
+		auto replacement = typeMap.at( inst->base );
+		if ( debug ) {
+			std::cerr << "replacing type reference: "
+				<< (void*)inst->base.get() << " " << inst->base
+				<< " with " << (void*)replacement << " " << replacement
+				<< std::endl;
+		}
+		auto ninst = mutate(inst);
+		ninst->base = replacement;
+		return ninst;
 	}
 
-	const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
-		TypeMap typeMap;
-		return replace( node, declMap, typeMap, debug );
+	const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) {
+		if ( !exprMap.count( expr->var ) ) return expr;
+		return exprMap.at( expr->var );
 	}
+} // namespace
 
-	const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) {
-		DeclMap declMap;
-		return replace( node, declMap, typeMap, debug );
-	}
+} // namespace DeclReplacer
 
-	const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap) {
-		Pass<VarExprReplacer> replacer = {exprMap};
-		return node->accept( replacer );
-	}
-
-	namespace {
-		// replace variable with new node from decl map
-		const ast::VariableExpr * DeclReplacer::previsit( const VariableExpr * varExpr ) {
-			// xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are)
-			if ( !declMap.count( varExpr->var ) ) return varExpr;
-
-			auto replacement = declMap.at( varExpr->var );
-			if ( debug ) {
-				std::cerr << "replacing variable reference: "
-					<< (void*)varExpr->var.get() << " " << varExpr->var
-					<< " with " << (void*)replacement << " " << replacement
-					<< std::endl;
-			}
-			auto nexpr = mutate(varExpr);
-			nexpr->var = replacement;
-			return nexpr;
-		}
-
-		const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) {
-			if ( !typeMap.count( inst->base ) ) return inst;
-
-			auto replacement = typeMap.at( inst->base );
-			if ( debug ) {
-				std::cerr << "replacing type reference: "
-					<< (void*)inst->base.get() << " " << inst->base
-					<< " with " << (void*)replacement << " " << replacement
-					<< std::endl;
-			}
-			auto ninst = mutate(inst);
-			ninst->base = replacement;
-			return ninst;
-		}
-
-		const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) {
-			if (!exprMap.count(expr->var)) return expr;
-
-			return exprMap.at(expr->var);
-		}
-
-	}
-}
-
-}
+} // namespace ast
 
 // Local Variables: //
Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Pass.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -327,4 +327,8 @@
 struct PureVisitor {};
 
+struct WithCodeLocation {
+	const CodeLocation * location = nullptr;
+};
+
 /// Keep track of the polymorphic const TypeSubstitution * typeSubs for the current expression.
 struct WithConstTypeSubstitution {
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Pass.impl.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -25,4 +25,6 @@
 #define VISIT_START( node ) \
 	using namespace ast; \
+	/* back-up the last known code location */ \
+	__attribute__((unused)) auto loc_guard = ast::__pass::make_location_guard( core, node, 0 ); \
 	/* back-up the visit children */ \
 	__attribute__((unused)) ast::__pass::visit_children_guard guard1( ast::__pass::visit_children(core, 0) ); \
Index: src/AST/Pass.proto.hpp
===================================================================
--- src/AST/Pass.proto.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Pass.proto.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -326,4 +326,17 @@
 	}
 
+	template< typename core_t, typename node_t >
+	static auto make_location_guard( core_t & core, node_t * node, int )
+			-> decltype( node->location, ValueGuardPtr<const CodeLocation *>( &core.location ) ) {
+		ValueGuardPtr<const CodeLocation *> guard( &core.location );
+		core.location = &node->location;
+		return guard;
+	}
+
+	template< typename core_t, typename node_t >
+	static auto make_location_guard( core_t &, node_t *, long ) -> int {
+		return 0;
+	}
+
 	// Another feature of the templated visitor is that it calls beginScope()/endScope() for compound statement.
 	// All passes which have such functions are assumed desire this behaviour
Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Print.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -33,5 +33,5 @@
 {
 	return array<C,sizeof...(T)>{
-		forward<T>(values)...
+		std::forward<T>(values)...
 	};
 }
@@ -86,5 +86,5 @@
 
 		static constexpr auto StorageClasses = make_array<const char*>(
-			"extern", "static", "auto", "register", "_Thread_local"
+			"extern", "static", "auto", "register", "__thread", "_Thread_local"
 		);
 
@@ -215,5 +215,5 @@
 			++indent;
 			ptrToEnum->base->accept( *this );
-			--indent;  
+			--indent;
 		}
 
@@ -1623,5 +1623,5 @@
 // if the wrong size is specified
 constexpr array<const char*, 3> Printer::Names::FuncSpecifiers;
-constexpr array<const char*, 5> Printer::Names::StorageClasses;
+constexpr array<const char*, 6> Printer::Names::StorageClasses;
 constexpr array<const char*, 6> Printer::Names::Qualifiers;
 }
Index: src/AST/StorageClasses.hpp
===================================================================
--- src/AST/StorageClasses.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/StorageClasses.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -24,10 +24,11 @@
 	/// Bitflags for storage classes
 	enum {
-		Extern      = 1 << 0,
-		Static      = 1 << 1,
-		Auto        = 1 << 2,
-		Register    = 1 << 3,
-		ThreadLocal = 1 << 4,
-		NumClasses       = 5
+		Extern         = 1 << 0,
+		Static         = 1 << 1,
+		Auto           = 1 << 2,
+		Register       = 1 << 3,
+		ThreadLocalGcc = 1 << 4,
+		ThreadLocalC11 = 1 << 5,
+		NumClasses          = 6
 	};
 
@@ -37,9 +38,10 @@
 			unsigned int val;
 			struct {
-				bool is_extern      : 1;
-				bool is_static      : 1;
-				bool is_auto        : 1;
-				bool is_register    : 1;
-				bool is_threadlocal : 1;
+				bool is_extern         : 1;
+				bool is_static         : 1;
+				bool is_auto           : 1;
+				bool is_register       : 1;
+				bool is_threadlocalGcc : 1;
+				bool is_threadlocalC11 : 1;
 			};
 
@@ -48,4 +50,6 @@
 
 		constexpr class_flags( unsigned int val = 0 ) : val(val) {}
+
+		bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
 	};
 
Index: src/AST/Type.cpp
===================================================================
--- src/AST/Type.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Type.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -143,5 +143,5 @@
 TraitInstType::TraitInstType(
 	const TraitDecl * b, CV::Qualifiers q, std::vector<ptr<Attribute>>&& as )
-: BaseInstType( b->name, q, move(as) ), base( b ) {}
+: BaseInstType( b->name, q, std::move(as) ), base( b ) {}
 
 // --- TypeInstType
@@ -149,5 +149,5 @@
 TypeInstType::TypeInstType( const TypeDecl * b,
 	CV::Qualifiers q, std::vector<ptr<Attribute>> && as )
-: BaseInstType( b->name, q, move(as) ), base( b ), kind( b->kind ) {}
+: BaseInstType( b->name, q, std::move(as) ), base( b ), kind( b->kind ) {}
 
 void TypeInstType::set_base( const TypeDecl * b ) {
@@ -161,5 +161,5 @@
 
 TupleType::TupleType( std::vector<ptr<Type>> && ts, CV::Qualifiers q )
-: Type( q ), types( move(ts) ), members() {
+: Type( q ), types( std::move(ts) ), members() {
 	// This constructor is awkward. `TupleType` needs to contain objects so that members can be
 	// named, but members without initializer nodes end up getting constructors, which breaks
Index: src/AST/Type.hpp
===================================================================
--- src/AST/Type.hpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/AST/Type.hpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -83,5 +83,5 @@
 template< enum Node::ref_type ref_t >
 void reset_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q = {} ) {
-	if ( p->qualifiers.val != q.val ) p.get_and_mutate()->qualifiers = q;
+	if ( p->qualifiers != q ) p.get_and_mutate()->qualifiers = q;
 }
 
@@ -89,5 +89,5 @@
 template< enum Node::ref_type ref_t >
 void add_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) {
-	if ( ( p->qualifiers.val & q.val ) != q.val ) p.get_and_mutate()->qualifiers |= q;
+	if ( ( p->qualifiers & q ) != q ) p.get_and_mutate()->qualifiers |= q;
 }
 
@@ -95,5 +95,5 @@
 template< enum Node::ref_type ref_t >
 void remove_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) {
-	if ( ( p->qualifiers.val & q.val ) != 0 ) p.get_and_mutate()->qualifiers -= q;
+	if ( ( p->qualifiers & q ) != 0 ) p.get_and_mutate()->qualifiers -= q;
 }
 
@@ -412,5 +412,4 @@
 		std::string typeString() const { return std::string("_") + std::to_string(formal_usage) + "_" + std::to_string(expr_id) + "_" + base->name; }
 		bool operator==(const TypeEnvKey & other) const { return base == other.base && formal_usage == other.formal_usage && expr_id == other.expr_id; }
-
 	};
 
Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/CodeGen/CodeGenerator.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -493,4 +493,10 @@
 					assert( false );
 				} // switch
+			} else if( varExpr->get_var()->get_linkage() == LinkageSpec::BuiltinCFA && varExpr->get_var()->get_name() == "intptr" ) {
+				// THIS is a hack to make it a constant until a proper constexpr solution is created
+				output << "((void*)";
+				std::list< Expression* >::iterator arg = applicationExpr->get_args().begin();
+				(*arg++)->accept( *visitor );
+				output << ")";
 			} else {
 				varExpr->accept( *visitor );
Index: src/Common/utility.h
===================================================================
--- src/Common/utility.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Common/utility.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -322,4 +322,6 @@
 
 	ValueGuardPtr(T * inRef) : old( inRef ? *inRef : T() ), ref(inRef) {}
+	ValueGuardPtr(const ValueGuardPtr& other) = delete;
+	ValueGuardPtr(ValueGuardPtr&& other) : old(other.old), ref(other.ref) { other.ref = nullptr; }
 	~ValueGuardPtr() { if( ref ) *ref = old; }
 };
Index: src/CompilationState.cc
===================================================================
--- src/CompilationState.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/CompilationState.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -31,5 +31,5 @@
 	genproto = false,
 	deterministic_output = false,
-	useNewAST = CFA_USE_NEW_AST,
+	useNewAST = true,
 	nomainp = false,
 	parsep = false,
Index: src/Concurrency/Keywords.cc
===================================================================
--- src/Concurrency/Keywords.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Concurrency/Keywords.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -508,5 +508,5 @@
 		ObjectDecl * vtable_object = Virtual::makeVtableForward(
 			"_default_vtable_object_declaration",
-			vtable_decl->makeInst( move( poly_args ) ) );
+			vtable_decl->makeInst( std::move( poly_args ) ) );
 		declsToAddBefore.push_back( vtable_object );
 		declsToAddBefore.push_back(
@@ -681,5 +681,5 @@
 			void lock (monitor_t & this) {
 				lock(get_monitor(this));
-			}	
+			}
 		*/
 		FunctionDecl * lock_decl = new FunctionDecl(
@@ -700,5 +700,5 @@
 		CompoundStmt * lock_statement = new CompoundStmt();
 		lock_statement->push_back(
-			new ExprStmt( 
+			new ExprStmt(
 				new UntypedExpr (
 					new NameExpr( "lock" ),
@@ -716,5 +716,5 @@
 			void unlock (monitor_t & this) {
 				unlock(get_monitor(this));
-			}	
+			}
 		*/
 		FunctionDecl * unlock_decl = new FunctionDecl(
@@ -736,5 +736,5 @@
 
 		unlock_statement->push_back(
-			new ExprStmt( 
+			new ExprStmt(
 				new UntypedExpr(
 					new NameExpr( "unlock" ),
@@ -746,5 +746,5 @@
 		);
 		unlock_decl->set_statements( unlock_statement );
-		
+
 		// pushes routines to declsToAddAfter to add at a later time
 		declsToAddAfter.push_back( lock_decl );
@@ -1054,5 +1054,5 @@
 			assert( !thread_guard_decl );
 			thread_guard_decl = decl;
-		} 
+		}
 		else if ( decl->name == "__mutex_stmt_lock_guard" && decl->body ) {
 			assert( !lock_guard_decl );
@@ -1206,5 +1206,5 @@
 							new NameExpr( "__get_mutexstmt_lock_type" ),
 							{ args.front()->clone() }
-						) 
+						)
 					)
 				),
@@ -1225,10 +1225,10 @@
 
 		StructInstType * lock_guard_struct = new StructInstType( noQualifiers, lock_guard_decl );
-		TypeExpr * lock_type_expr = new TypeExpr( 
+		TypeExpr * lock_type_expr = new TypeExpr(
 			new TypeofType( noQualifiers, new UntypedExpr(
 				new NameExpr( "__get_mutexstmt_lock_type" ),
 				{ args.front()->clone() }
-				) 
-			) 
+				)
+			)
 		);
 
Index: src/Concurrency/Waitfor.cc
===================================================================
--- src/Concurrency/Waitfor.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Concurrency/Waitfor.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -402,5 +402,5 @@
 
 		clause.target.function = nullptr;
-		clause.target.arguments.empty();
+		clause.target.arguments.clear();
 		clause.condition = nullptr;
 	}
Index: src/Concurrency/WaitforNew.cpp
===================================================================
--- src/Concurrency/WaitforNew.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Concurrency/WaitforNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -101,5 +101,5 @@
 namespace {
 
-class GenerateWaitForCore :
+class GenerateWaitForCore final :
 		public ast::WithSymbolTable, public ast::WithConstTranslationUnit {
 	const ast::FunctionDecl * decl_waitfor    = nullptr;
Index: src/ControlStruct/ExceptTranslateNew.cpp
===================================================================
--- src/ControlStruct/ExceptTranslateNew.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ControlStruct/ExceptTranslateNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -32,5 +32,5 @@
 	}
 
-class TranslateThrowsCore : public ast::WithGuards {
+class TranslateThrowsCore final : public ast::WithGuards {
 	const ast::ObjectDecl * terminateHandlerExcept;
 	enum Context { NoHandler, TerHandler, ResHandler } currentContext;
@@ -136,5 +136,5 @@
 
 
-class TryMutatorCore {
+class TryMutatorCore final {
 	// The built in types used in translation.
 	const ast::StructDecl * except_decl;
Index: src/ControlStruct/LabelFixer.cc
===================================================================
--- src/ControlStruct/LabelFixer.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ControlStruct/LabelFixer.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -119,5 +119,5 @@
 
 // Builds a table that maps a label to its defining statement.
-std::map<Label, Statement * > * LabelFixer::resolveJumps() throw ( SemanticErrorException ) {
+std::map<Label, Statement * > * LabelFixer::resolveJumps() {
 	std::map< Label, Statement * > *ret = new std::map< Label, Statement * >();
 	for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) {
Index: src/ControlStruct/LabelFixer.h
===================================================================
--- src/ControlStruct/LabelFixer.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ControlStruct/LabelFixer.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -33,5 +33,5 @@
 	LabelFixer( LabelGenerator *gen = 0 );
 
-	std::map < Label, Statement * > *resolveJumps() throw ( SemanticErrorException );
+	std::map < Label, Statement * > *resolveJumps();
 
 	// Declarations
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ControlStruct/MLEMutator.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -141,6 +141,5 @@
 
 
-	Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt )
-			throw ( SemanticErrorException ) {
+	Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt ) {
 		std::string originalTarget = branchStmt->originalTarget;
 
Index: src/ControlStruct/MLEMutator.h
===================================================================
--- src/ControlStruct/MLEMutator.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ControlStruct/MLEMutator.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -41,5 +41,5 @@
 
 		void premutate( CompoundStmt *cmpndStmt );
-		Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException );
+		Statement * postmutate( BranchStmt *branchStmt );
 		void premutate( WhileDoStmt *whileDoStmt );
 		Statement * postmutate( WhileDoStmt *whileDoStmt );
Index: src/GenPoly/GenPoly.cc
===================================================================
--- src/GenPoly/GenPoly.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/GenPoly.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 29 21:45:53 2016
-// Update Count     : 14
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Sep 14  9:24:00 2022
+// Update Count     : 15
 //
 
@@ -83,4 +83,15 @@
 		}
 
+		bool hasDynParams( const std::vector<ast::ptr<ast::Expr>> & params, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs ) {
+			for ( ast::ptr<ast::Expr> const & param : params ) {
+				auto paramType = param.as<ast::TypeExpr>();
+				assertf( paramType, "Aggregate parameters should be type expressions." );
+				if ( isDynType( paramType->type, tyVars, typeSubs ) ) {
+					return true;
+				}
+			}
+			return false;
+		}
+
 		/// Checks a parameter list for inclusion of polymorphic parameters; will substitute according to env if present
 		bool includesPolyParams( std::list< Expression* >& params, const TypeSubstitution *env ) {
@@ -198,4 +209,24 @@
 		}
 		return 0;
+	}
+
+	const ast::BaseInstType *isDynType( const ast::Type *type, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs ) {
+		type = replaceTypeInst( type, typeSubs );
+
+		if ( auto inst = dynamic_cast<ast::TypeInstType const *>( type ) ) {
+			auto var = tyVars.find( inst->name );
+			if ( var != tyVars.end() && var->second.isComplete ) {
+				return inst;
+			}
+		} else if ( auto inst = dynamic_cast<ast::StructInstType const *>( type ) ) {
+			if ( hasDynParams( inst->params, tyVars, typeSubs ) ) {
+				return inst;
+			}
+		} else if ( auto inst = dynamic_cast<ast::UnionInstType const *>( type ) ) {
+			if ( hasDynParams( inst->params, tyVars, typeSubs ) ) {
+				return inst;
+			}
+		}
+		return nullptr;
 	}
 
@@ -378,4 +409,9 @@
 		inline D* as( B* p ) { return reinterpret_cast<D*>(p); }
 
+		template<typename D, typename B>
+		inline D const * as( B const * p ) {
+			return reinterpret_cast<D const *>( p );
+		}
+
 		/// Flattens a declaration list
 		template<typename Output>
@@ -391,4 +427,11 @@
 			for ( Type* ty : src ) {
 				ResolvExpr::flatten( ty, out );
+			}
+		}
+
+		void flattenList( vector<ast::ptr<ast::Type>> const & src,
+				vector<ast::ptr<ast::Type>> & out ) {
+			for ( auto const & type : src ) {
+				ResolvExpr::flatten( type, out );
 			}
 		}
@@ -409,4 +452,29 @@
 				// if ( is<VoidType>( aparam->get_type() ) || is<VoidType>( bparam->get_type() ) ) continue;
 				if ( ! typesPolyCompatible( aparam->get_type(), bparam->get_type() ) ) return false;
+			}
+
+			return true;
+		}
+
+		bool paramListsPolyCompatible(
+				std::vector<ast::ptr<ast::Expr>> const & lparams,
+				std::vector<ast::ptr<ast::Expr>> const & rparams ) {
+			if ( lparams.size() != rparams.size() ) {
+				return false;
+			}
+
+			for ( auto lparam = lparams.begin(), rparam = rparams.begin() ;
+					lparam != lparams.end() ; ++lparam, ++rparam ) {
+				ast::TypeExpr const * lexpr = lparam->as<ast::TypeExpr>();
+				assertf( lexpr, "Aggregate parameters should be type expressions" );
+				ast::TypeExpr const * rexpr = rparam->as<ast::TypeExpr>();
+				assertf( rexpr, "Aggregate parameters should be type expressions" );
+
+				// xxx - might need to let VoidType be a wildcard here too; could have some voids
+				// stuffed in for dtype-statics.
+				// if ( is<VoidType>( lexpr->type() ) || is<VoidType>( bparam->get_type() ) ) continue;
+				if ( !typesPolyCompatible( lexpr->type, rexpr->type ) ) {
+					return false;
+				}
 			}
 
@@ -505,4 +573,116 @@
 	}
 
+bool typesPolyCompatible( ast::Type const * lhs, ast::Type const * rhs ) {
+	type_index const lid = typeid(*lhs);
+
+	// Polymorphic types always match:
+	if ( type_index(typeid(ast::TypeInstType)) == lid ) return true;
+
+	type_index const rid = typeid(*rhs);
+	if ( type_index(typeid(ast::TypeInstType)) == rid ) return true;
+
+	// All other types only match if they are the same type:
+	if ( lid != rid ) return false;
+
+	// So remaining types can be examined case by case.
+	// Recurse through type structure (conditions borrowed from Unify.cc).
+
+	if ( type_index(typeid(ast::BasicType)) == lid ) {
+		return as<ast::BasicType>(lhs)->kind == as<ast::BasicType>(rhs)->kind;
+	} else if ( type_index(typeid(ast::PointerType)) == lid ) {
+		ast::PointerType const * l = as<ast::PointerType>(lhs);
+		ast::PointerType const * r = as<ast::PointerType>(rhs);
+
+		// void pointers should match any other pointer type.
+		return is<ast::VoidType>( l->base.get() )
+			|| is<ast::VoidType>( r->base.get() )
+			|| typesPolyCompatible( l->base.get(), r->base.get() );
+	} else if ( type_index(typeid(ast::ReferenceType)) == lid ) {
+		ast::ReferenceType const * l = as<ast::ReferenceType>(lhs);
+		ast::ReferenceType const * r = as<ast::ReferenceType>(rhs);
+
+		// void references should match any other reference type.
+		return is<ast::VoidType>( l->base.get() )
+			|| is<ast::VoidType>( r->base.get() )
+			|| typesPolyCompatible( l->base.get(), r->base.get() );
+	} else if ( type_index(typeid(ast::ArrayType)) == lid ) {
+		ast::ArrayType const * l = as<ast::ArrayType>(lhs);
+		ast::ArrayType const * r = as<ast::ArrayType>(rhs);
+
+		if ( l->isVarLen ) {
+			if ( !r->isVarLen ) return false;
+		} else {
+			if ( r->isVarLen ) return false;
+
+			auto lc = l->dimension.as<ast::ConstantExpr>();
+			auto rc = r->dimension.as<ast::ConstantExpr>();
+			if ( lc && rc && lc->intValue() != rc->intValue() ) {
+				return false;
+			}
+		}
+
+		return typesPolyCompatible( l->base.get(), r->base.get() );
+	} else if ( type_index(typeid(ast::FunctionType)) == lid ) {
+		ast::FunctionType const * l = as<ast::FunctionType>(lhs);
+		ast::FunctionType const * r = as<ast::FunctionType>(rhs);
+
+		std::vector<ast::ptr<ast::Type>> lparams, rparams;
+		flattenList( l->params, lparams );
+		flattenList( r->params, rparams );
+		if ( lparams.size() != rparams.size() ) return false;
+		for ( unsigned i = 0; i < lparams.size(); ++i ) {
+			if ( !typesPolyCompatible( lparams[i], rparams[i] ) ) return false;
+		}
+
+		std::vector<ast::ptr<ast::Type>> lrets, rrets;
+		flattenList( l->returns, lrets );
+		flattenList( r->returns, rrets );
+		if ( lrets.size() != rrets.size() ) return false;
+		for ( unsigned i = 0; i < lrets.size(); ++i ) {
+			if ( !typesPolyCompatible( lrets[i], rrets[i] ) ) return false;
+		}
+		return true;
+	} else if ( type_index(typeid(ast::StructInstType)) == lid ) {
+		ast::StructInstType const * l = as<ast::StructInstType>(lhs);
+		ast::StructInstType const * r = as<ast::StructInstType>(rhs);
+
+		if ( l->name != r->name ) return false;
+		return paramListsPolyCompatible( l->params, r->params );
+	} else if ( type_index(typeid(ast::UnionInstType)) == lid ) {
+		ast::UnionInstType const * l = as<ast::UnionInstType>(lhs);
+		ast::UnionInstType const * r = as<ast::UnionInstType>(rhs);
+
+		if ( l->name != r->name ) return false;
+		return paramListsPolyCompatible( l->params, r->params );
+	} else if ( type_index(typeid(ast::EnumInstType)) == lid ) {
+		ast::EnumInstType const * l = as<ast::EnumInstType>(lhs);
+		ast::EnumInstType const * r = as<ast::EnumInstType>(rhs);
+
+		return l->name == r->name;
+	} else if ( type_index(typeid(ast::TraitInstType)) == lid ) {
+		ast::TraitInstType const * l = as<ast::TraitInstType>(lhs);
+		ast::TraitInstType const * r = as<ast::TraitInstType>(rhs);
+
+		return l->name == r->name;
+	} else if ( type_index(typeid(ast::TupleType)) == lid ) {
+		ast::TupleType const * l = as<ast::TupleType>(lhs);
+		ast::TupleType const * r = as<ast::TupleType>(rhs);
+
+		std::vector<ast::ptr<ast::Type>> ltypes, rtypes;
+		flattenList( l->types, ( ltypes ) );
+		flattenList( r->types, ( rtypes ) );
+		if ( ltypes.size() != rtypes.size() ) return false;
+
+		for ( unsigned i = 0 ; i < ltypes.size() ; ++i ) {
+			if ( !typesPolyCompatible( ltypes[i], rtypes[i] ) ) return false;
+		}
+		return true;
+	// The remaining types (VoidType, VarArgsType, ZeroType & OneType)
+	// have no variation so will always be equal.
+	} else {
+		return true;
+	}
+}
+
 	namespace {
 		// temporary hack to avoid re-implementing anything related to TyVarMap
Index: src/GenPoly/GenPoly.h
===================================================================
--- src/GenPoly/GenPoly.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/GenPoly.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 22 09:22:57 2017
-// Update Count     : 7
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Aug 19 16:03:00 2022
+// Update Count     : 8
 //
 
@@ -27,5 +27,7 @@
 namespace GenPoly {
 
+	// TODO Via some tricks this works for ast::TypeDecl::Data as well.
 	typedef ErasableScopedMap< std::string, TypeDecl::Data > TyVarMap;
+
 	/// Replaces a TypeInstType by its referrent in the environment, if applicable
 	Type* replaceTypeInst( Type* type, const TypeSubstitution* env );
@@ -41,4 +43,5 @@
 	/// returns dynamic-layout type if is dynamic-layout type in tyVars, NULL otherwise; will look up substitution in env if provided
 	ReferenceToType *isDynType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 );
+	const ast::BaseInstType *isDynType( const ast::Type *type, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs = 0 );
 
 	/// true iff function has dynamic-layout return type under the given type variable map
@@ -83,4 +86,5 @@
 	/// true iff types are structurally identical, where TypeInstType's match any type.
 	bool typesPolyCompatible( Type *aty, Type *bty );
+	bool typesPolyCompatible( ast::Type const * lhs, ast::Type const * rhs );
 
 	/// true if arg requires boxing given exprTyVars
Index: src/GenPoly/InstantiateGeneric.h
===================================================================
--- src/GenPoly/InstantiateGeneric.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/InstantiateGeneric.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -19,10 +19,15 @@
 
 class Declaration;
+namespace ast {
+	class TranslationUnit;
+}
 
 namespace GenPoly {
-	/// Replaces all generic types that have static layout with concrete instantiations.
-	/// Types with concrete values for otype parameters will be template-expanded, while
-	/// dtype and ftype parameters will be replaced by the appropriate void type.
-	void instantiateGeneric( std::list< Declaration* > &translationUnit );
+/// Replaces all generic types that have static layout with concrete
+/// instantiations. Types with concrete values for otype parameters will be
+/// template-expanded, while dtype and ftype parameters will be replaced by
+/// the appropriate void type.
+void instantiateGeneric( std::list< Declaration* > &translationUnit );
+void instantiateGeneric( ast::TranslationUnit & translationUnit );
 } // namespace GenPoly
 
Index: src/GenPoly/InstantiateGenericNew.cpp
===================================================================
--- src/GenPoly/InstantiateGenericNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ src/GenPoly/InstantiateGenericNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,708 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// InstantiateGenericNew.cpp --
+//
+// Author           : Andrew Beach
+// Created On       : Tue Aug 16 10:51:00 2022
+// Last Modified By : Andrew Beach
+// Last Modified On : Tue Sep 13 16:03:00 2022
+// Update Count     : 0
+//
+
+#include "InstantiateGeneric.h"
+
+#include <cassert>                     // for assertf, assert
+#include <set>                         // for set
+#include <utility>                     // for move, pair
+#include <vector>                      // for vector
+
+#include "AST/Copy.hpp"                // for deepCopy
+#include "AST/Pass.hpp"                // for Pass, WithGuard, WithShortCi...
+#include "AST/TranslationUnit.hpp"     // for TranslationUnit
+#include "CodeGen/OperatorTable.h"     // for isAssignment
+#include "Common/ScopedMap.h"          // for ScopedMap
+#include "Common/UniqueName.h"         // for UniqueName
+#include "GenPoly/GenPoly.h"           // for isPolyType, typesPolyCompatible
+#include "GenPoly/ScrubTyVars.h"       // for scrubAll
+#include "InitTweak/InitTweak.h"       // for getFunction
+#include "ResolvExpr/typeops.h"        // for typesCompatible
+
+namespace GenPoly {
+
+namespace {
+
+// Utilities:
+
+using type_vector = std::vector< ast::ptr< ast::TypeExpr > >;
+
+/// Abstracts type equality for a list of parameter types.
+struct TypeList {
+	TypeList() : params() {}
+	TypeList( std::vector< ast::ptr< ast::Type > > const & params ) :
+		params( params ) {}
+	TypeList( std::vector< ast::ptr< ast::Type > > && params ) :
+		params( std::move( params ) ) {}
+	TypeList( TypeList const & that ) : params( that.params ) {}
+	TypeList( TypeList && that ) : params( std::move( that.params ) ) {}
+
+	TypeList( std::vector< ast::ptr< ast::TypeExpr > > const & exprs ) :
+			params() {
+		for ( auto expr : exprs ) {
+			params.emplace_back( ast::deepCopy( expr->type ) );
+		}
+	}
+
+	TypeList & operator=( TypeList const & that ) {
+		params = that.params;
+		return *this;
+	}
+
+	TypeList & operator=( TypeList && that ) {
+		params = std::move( that.params );
+		return *this;
+	}
+
+	bool operator==( TypeList const & that ) const {
+		if ( params.size() != that.params.size() ) {
+			return false;
+		}
+
+		for ( auto it = params.begin(), jt = that.params.begin() ;
+				it != params.end() ; ++it, ++jt ) {
+			if ( !typesPolyCompatible( it->get(), jt->get() ) ) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	std::vector<ast::ptr<ast::Type>> params;
+};
+
+/// Maps a key and a TypeList to a valuue. Also supports scoping.
+class InstantiationMap final {
+	/// Wraps value for a specific (AggregateDecl, TypeList) combination.
+	using Instantiation = std::pair<TypeList, ast::ptr<ast::AggregateDecl>>;
+	/// List of TypeLists paired with the appropriate values.
+	using ValueList = std::vector<Instantiation>;
+	/// Underlying map type; maps keys to a linear list of corresponding
+	/// TypeLists and values.
+	using InnerMap = ScopedMap<ast::ptr<ast::AggregateDecl>, ValueList>;
+
+	InnerMap data;
+public:
+	void beginScope() { data.beginScope(); }
+	void endScope() { data.endScope(); }
+
+	/// Gets the value for the (declaration, type list) pair,
+	/// returns null if no such value exists.
+	ast::AggregateDecl const * lookup(
+			ast::AggregateDecl const * key, type_vector const & params ) const {
+		// This type repackaging is used for the helpers.
+		ast::ptr<ast::AggregateDecl> ptr = key;
+		TypeList typeList( params );
+
+		// Scan scopes for matches to the key.
+		for ( auto insts = data.find( key ) ;
+				insts != data.end() ; insts = data.findNext( insts, ptr )) {
+			for ( auto inst = insts->second.rbegin() ;
+					inst != insts->second.rend() ; ++inst ) {
+				if ( inst->first == typeList ) {
+					return inst->second;
+				}
+			}
+		}
+		return nullptr;
+	}
+
+	/// Adds a value for a (key, type list) pair to the current scope.
+	void insert( ast::AggregateDecl const * key, type_vector const & params,
+			ast::AggregateDecl const * value ) {
+		auto it = data.findAt( data.currentScope(), key );
+		if ( it == data.end() ) {
+			data.insert( key, ValueList( 1,
+				Instantiation( TypeList( params ), value ) ) );
+		} else {
+			it->second.emplace_back(
+				Instantiation( TypeList( params ), value ) );
+		}
+	}
+};
+
+/// Possible options for a given specialization of a generic type.
+enum class GenericType {
+	/// Concrete instatiation based solely on {d,f}type-to-void conversions.
+	dtypeStatic,
+	/// Concrete instatiation requiring at least one parameters type.
+	concrete,
+	/// No concrete instantiation.
+	dynamic
+};
+
+GenericType & operator|=( GenericType & gt, const GenericType & ht ) {
+	if ( gt < ht ) gt = ht;
+	return gt;
+}
+
+bool isDtypeStatic( std::vector<ast::ptr<ast::TypeDecl>> const & baseParams ) {
+	return std::all_of( baseParams.begin(), baseParams.end(),
+		[]( ast::TypeDecl const * td ){ return !td->isComplete(); }
+	);
+}
+
+/// Makes substitutions of params into baseParams; returns dtypeStatic if
+/// there is a concrete instantiation based only on {d,f}type-to-void
+/// conversions, concrete if there is a concrete instantiation requiring at
+/// least one parameter type, and dynamic if there is no concrete instantiation.
+GenericType makeSubstitutions(
+		std::vector<ast::ptr<ast::TypeExpr>> & out,
+		std::vector<ast::ptr<ast::TypeDecl>> const & baseParams,
+		std::vector<ast::ptr<ast::Expr>> const & params ) {
+	GenericType gt = GenericType::dtypeStatic;
+
+	// Substitute concrete types for given parameters,
+	// using incomplete types for placeholders.
+	auto baseParam = baseParams.begin();
+	auto param = params.begin();
+	for ( ; baseParam != baseParams.end() && param != params.end() ;
+			++baseParam, ++param ) {
+		ast::TypeExpr const * paramExpr = param->as<ast::TypeExpr>();
+		assertf( paramExpr, "Aggregate parameters should be type expressions." );
+
+		if ( (*baseParam)->isComplete() ) {
+			// Substitute parameter for complete (otype or sized dtype) type.
+			if ( isPolyType( paramExpr->type ) ) {
+				// Substitute polymorphic parameter type in to generic type.
+				out.push_back( ast::deepCopy( paramExpr ) );
+				gt = GenericType::dynamic;
+			} else {
+				// Normalize possibly dtype-static parameter type.
+				out.emplace_back( new ast::TypeExpr( paramExpr->location,
+					scrubAllTypeVars( ast::deepCopy( paramExpr->type ) ) ) );
+				gt |= GenericType::concrete;
+			}
+		} else switch ( (*baseParam)->kind ) {
+		case ast::TypeDecl::Dtype:
+			// Here, pretend that any incomplete dtype is `void`.
+			out.emplace_back( new ast::TypeExpr( paramExpr->location,
+				new ast::VoidType() ) );
+			break;
+		case ast::TypeDecl::Ftype:
+			// Here, pretend that any ftype is `void (*)(void)`.
+			out.emplace_back( new ast::TypeExpr( paramExpr->location,
+				new ast::FunctionType() ) );
+			break;
+		case ast::TypeDecl::Ttype:
+			assertf( false, "Ttype parameters are not currently allowed as parameters to generic types." );
+			break;
+		default:
+			assertf( false, "Unhandled type parameter kind" );
+			break;
+		}
+	}
+
+	assertf( baseParam == baseParams.end(), "Base Parameters not exausted." );
+	assertf( param == params.end(), "Type parameters not exausted." );
+	return gt;
+}
+
+/// Substitutes types of members according to baseParams => typeSubs,
+/// returning the result in a new vector.
+std::vector<ast::ptr<ast::Decl>> substituteMembers(
+		std::vector<ast::ptr<ast::Decl>> const & members,
+		std::vector<ast::ptr<ast::TypeDecl>> const & baseParams,
+		std::vector<ast::ptr<ast::TypeExpr>> const & typeSubs ) {
+	std::vector<ast::ptr<ast::Decl>> out;
+	ast::TypeSubstitution subs( baseParams, typeSubs );
+	for ( ast::ptr<ast::Decl> const & member : members ) {
+		// Create a manual copy to avoid in-place mutation.
+		// If being a PureVisitor is decided to be part of apply's interface,
+		// then we can actually skip this step as it will never mutate in-
+		// place. (Then we don't need the extra guard to free temp value.)
+		ast::ptr<ast::Decl> copy = ast::deepCopy( member.get() );
+		auto result = subs.apply( copy.get() );
+		out.emplace_back( result.node );
+	}
+	return out;
+}
+
+/// Substitutes types of members according to baseParams => typeSubs,
+/// modifying them in-place.
+void substituteMembersHere(
+		std::vector<ast::ptr<ast::Decl>> & members,
+		std::vector<ast::ptr<ast::TypeDecl>> const & baseParams,
+		std::vector<ast::ptr<ast::TypeExpr>> const & typeSubs ) {
+	ast::TypeSubstitution subs( baseParams, typeSubs );
+	for ( ast::ptr<ast::Decl> & member : members ) {
+		// The member must be mutated in place to avoid breaking
+		assert( member->unique() );
+
+		auto field = member.strict_as<ast::ObjectDecl>();
+		auto result = subs.apply( field->type.get() );
+		auto copy = ast::mutate_field(
+			field, &ast::ObjectDecl::type, result.node );
+
+		// I'm not kidding, it is very important.
+		assert( copy == member.get() );
+	}
+}
+
+/// Strips the instances' type parameters.
+void stripInstParams( ast::BaseInstType * inst ) {
+	inst->params.clear();
+}
+
+// TODO: I think this should become a generic helper.
+template<typename Aggr>
+Aggr * asForward( Aggr const * decl ) {
+	if ( !decl->body ) {
+		return nullptr;
+	}
+	Aggr * mut = ast::deepCopy( decl );
+	mut->body = false;
+	mut->members.clear();
+	return mut;
+}
+
+bool isGenericType( ast::Type const * type ) {
+	if ( auto inst = dynamic_cast<ast::StructInstType const *>( type ) ) {
+		return !inst->params.empty();
+	} else if ( auto inst = dynamic_cast<ast::UnionInstType const *>( type ) ) {
+		return !inst->params.empty();
+	} else {
+		return false;
+	}
+}
+
+// The Passes:
+
+struct FixDtypeStatic final :
+		public ast::WithGuards,
+		public ast::WithVisitorRef<FixDtypeStatic>,
+		public ast::WithShortCircuiting,
+		public ast::WithStmtsToAdd<> {
+	ast::ApplicationExpr const * previsit( ast::ApplicationExpr const * expr );
+	void previsit( ast::AddressExpr const * expr );
+
+	ast::Expr const * postvisit( ast::MemberExpr const * expr );
+private:
+	template<typename Aggr>
+	ast::Expr const * fixMemberExpr(
+		Aggr const * inst, ast::MemberExpr const * memberExpr );
+
+	ast::Expr const * fixMemberExpr(
+		std::vector<ast::ptr<ast::TypeDecl>> const & baseParams,
+		ast::MemberExpr const * memberExpr );
+
+	bool isLValueArg = false;
+};
+
+ast::ApplicationExpr const * FixDtypeStatic::previsit(
+		ast::ApplicationExpr const * expr ) {
+	GuardValue( isLValueArg ) = false;
+	ast::Decl const * function = InitTweak::getFunction( expr );
+	if ( ast::Linkage::Intrinsic != function->linkage
+			|| !CodeGen::isAssignment( function->name ) ) {
+		return expr;
+	}
+
+	// Explicity visit children because only the first element must be a
+	// C lvalue (normally, it can only send info to both or neither).
+	visit_children = false;
+	expr = mutate_field( expr, &ast::ApplicationExpr::env,
+		maybe_accept( expr->env.get(), *visitor ) );
+	expr = mutate_field( expr, &ast::ApplicationExpr::result,
+		maybe_accept( expr->result.get(), *visitor ) );
+	expr = mutate_field( expr, &ast::ApplicationExpr::func,
+		maybe_accept( expr->func.get(), *visitor ) );
+	isLValueArg = true;
+	for ( unsigned i = 0; i < expr->args.size(); ++i ) {
+		ast::Expr const * newExpr = expr->args[i]->accept( *visitor );
+		// This is declared here for lifetime reasons.
+		ast::ptr<ast::CastExpr> cast;
+		if ( newExpr != expr->args[i].get() &&
+				(cast = dynamic_cast<ast::CastExpr const *>( newExpr )) ) {
+			newExpr = cast->arg.get();
+		}
+		expr = mutate_field_index( expr, &ast::ApplicationExpr::args,
+			i, newExpr );
+		isLValueArg = false;
+	}
+	return expr;
+}
+
+void FixDtypeStatic::previsit( ast::AddressExpr const * ) {
+	// The argument of an address expression (`&`) must be a C lvalue.
+	GuardValue( isLValueArg ) = true;
+}
+
+ast::Expr const * FixDtypeStatic::postvisit( ast::MemberExpr const * expr ) {
+	ast::ptr<ast::Type> const & type = expr->aggregate->result;
+	if ( !isGenericType( type ) ) {
+		return expr;
+	} else if ( auto inst = type.as<ast::StructInstType>() ) {
+		return fixMemberExpr( inst, expr );
+	} else if ( auto inst = type.as<ast::UnionInstType>() ) {
+		return fixMemberExpr( inst, expr );
+	}
+	return expr;
+}
+
+template<typename Aggr>
+ast::Expr const * FixDtypeStatic::fixMemberExpr(
+		Aggr const * inst, ast::MemberExpr const * memberExpr ) {
+	return fixMemberExpr( inst->base->params, memberExpr );
+}
+
+ast::Expr const * FixDtypeStatic::fixMemberExpr(
+		std::vector<ast::ptr<ast::TypeDecl>> const & baseParams,
+		ast::MemberExpr const * memberExpr ) {
+	// Need to cast dtype-static member expressions to their actual type
+	// before the actual type type is erased.
+	// NOTE: The casts here have the third argument (isGenerated) set to
+	// ExplicitCast so that they casts persist until Box, where they are needed.
+
+	if ( !isDtypeStatic( baseParams ) ||
+			ResolvExpr::typesCompatible(
+				memberExpr->result,
+				memberExpr->member->get_type(), ast::SymbolTable() ) ) {
+		return memberExpr;
+	}
+
+	// Type of member and type of expression differ.
+	ast::Type const * concType = ast::deepCopy( memberExpr->result );
+	CodeLocation const & location = memberExpr->location;
+	if ( isLValueArg ) {
+		// The result must be a C lvalue expression. So make a new reference
+		// variable with the correct actual type to replace the
+		// member expression.
+		//   forall(T &)
+		//   struct Ptr {
+		//     T * x;
+		//   };
+		//   Ptr(int) p;
+		//   int i;
+		//   p.x = &i;
+		// becomes
+		//   int *& _dtype_static_member_0 = (int **)&p.x;
+		//   _dtype_static_member_0 = &i;
+		static UniqueName tmpNamer( "_dtype_static_member_" );
+		ast::Expr * init = new ast::CastExpr( location,
+			new ast::AddressExpr( location, memberExpr ),
+			new ast::PointerType( ast::deepCopy( concType ) ),
+			ast::ExplicitCast
+		);
+		ast::ObjectDecl * tmp = new ast::ObjectDecl( location,
+			tmpNamer.newName(),
+			new ast::ReferenceType( concType ),
+			new ast::SingleInit( location, init ),
+			ast::Storage::Classes(),
+			ast::Linkage::C
+		);
+		stmtsToAddBefore.push_back( new ast::DeclStmt( location, tmp ) );
+		return new ast::VariableExpr( location, tmp );
+	} else {
+		// Here, it can simply add a cast to actual types.
+		return new ast::CastExpr( location,
+			memberExpr,
+			concType,
+			ast::ExplicitCast
+		);
+	}
+}
+
+struct GenericInstantiator final :
+		public ast::WithCodeLocation,
+		public ast::WithConstTypeSubstitution,
+		public ast::WithDeclsToAdd<>,
+		public ast::WithGuards,
+		public ast::WithVisitorRef<GenericInstantiator>
+{
+	/// Map of (generic type, parameter list) pairs
+	/// to concrete type instantiations.
+	InstantiationMap instantiations;
+	/// Set of types which are dtype-only generic
+	/// (and therefore have static layout).
+	std::set<ast::AggregateDecl const *> dtypeStatics;
+	/// Namer for concrete types.
+	UniqueName typeNamer;
+	/// Should not make use of type environment to replace types of function
+	/// parameter and return values.
+	bool inFunctionType = false;
+	/// Index of current member, used to recreate MemberExprs with the
+	/// member from an instantiation.
+	int memberIndex = -1;
+
+	GenericInstantiator() :
+		instantiations(), dtypeStatics(), typeNamer("_conc_") {}
+
+	ast::Type const * postvisit( ast::StructInstType const * inst );
+	ast::Type const * postvisit( ast::UnionInstType const * inst );
+
+	void previsit( ast::MemberExpr const * expr );
+	ast::Expr const * postvisit( ast::MemberExpr const * expr );
+	ast::Expr const * postvisit( ast::Expr const * expr );
+	void previsit( ast::ParseNode const * node );
+
+	void previsit( ast::FunctionType const * ) {
+		GuardValue( inFunctionType ) = true;
+	}
+	void beginScope() {
+		instantiations.beginScope();
+	}
+	void endScope() {
+		instantiations.endScope();
+	}
+private:
+	/// Wrap instantiation lookup for structures.
+	ast::StructDecl const * lookup(
+		ast::StructInstType const * inst, type_vector const & typeSubs ) const;
+	/// Wrap instantiation lookup for unions.
+	ast::UnionDecl const * lookup(
+		ast::UnionInstType const * inst, type_vector const & typeSubs ) const;
+	/// Wrap instantiation insertion for structures.
+	void insert( ast::StructInstType const * inst,
+		type_vector const & typeSubs, ast::StructDecl const * decl );
+	/// Wrap instantiation insertion for unions.
+	void insert( ast::UnionInstType const * inst,
+		type_vector const & typeSubs, ast::UnionDecl const * decl );
+
+	void replaceParametersWithConcrete( std::vector<ast::ptr<ast::Expr>> & params );
+	ast::Type const * replaceWithConcrete( ast::Type const * type, bool doClone );
+
+	template<typename AggrDecl>
+	ast::Type const * fixInstType( ast::SueInstType<AggrDecl> const * inst );
+
+	/// Strips a dtype-static aggregate decl of its type parameters,
+	/// marks it as stripped.
+	void stripDtypeParams( ast::AggregateDecl * base,
+		std::vector<ast::ptr<ast::TypeDecl>> & baseParams,
+		std::vector<ast::ptr<ast::TypeExpr>> const & typeSubs );
+};
+
+// I think this and the UnionInstType can be made into a template function.
+ast::Type const * GenericInstantiator::postvisit(
+		ast::StructInstType const * inst ) {
+	return fixInstType( inst );
+}
+
+ast::Type const * GenericInstantiator::postvisit(
+		ast::UnionInstType const * inst ) {
+	return fixInstType( inst );
+}
+
+template<typename AggrDecl>
+ast::Type const * GenericInstantiator::fixInstType(
+		ast::SueInstType<AggrDecl> const * inst ) {
+	assert( location );
+
+	// There is nothing to mutate if the params are empty.
+	if ( inst->params.empty() ) return inst;
+
+	// Need to replace type variables to ensure that generic types are
+	// instantiated for the return values of polymorphic functions (in
+	// particular, for thunks, because they are not [currently] copy
+	// constructed).
+	// (This used to be run only on structures, but I believe both need it.)
+	inst = strict_dynamic_cast<ast::SueInstType<AggrDecl> const *>(
+		replaceWithConcrete( inst, false ) );
+
+	// Check for an already-instantiatiated dtype-static type.
+	if ( dtypeStatics.find( inst->base ) != dtypeStatics.end() ) {
+		auto mutInst = ast::mutate( inst );
+		stripInstParams( mutInst );
+		return mutInst;
+	}
+
+	// Check if the type can be concretely instantiated;
+	// and put substitutions in typeSubs.
+	assertf( inst->base, "Base data-type has parameters." );
+	std::vector<ast::ptr<ast::TypeExpr>> typeSubs;
+	GenericType gt = makeSubstitutions( typeSubs, inst->base->params, inst->params );
+	switch ( gt ) {
+	case GenericType::dtypeStatic:
+	{
+		auto mutInst = ast::mutate( inst );
+		assert( mutInst->base->unique() );
+		auto mutBase = mutInst->base.get_and_mutate();
+		stripDtypeParams( mutBase, mutBase->params, typeSubs );
+		stripInstParams( mutInst );
+		return mutInst;
+	}
+	case GenericType::concrete:
+	{
+		// Make concrete instantiation of generic type.
+		AggrDecl const * concDecl = lookup( inst, typeSubs );
+		if ( !concDecl ) {
+			// Set concDecl to new type, insert type declaration
+			// into statements to add.
+			AggrDecl * newDecl = new AggrDecl( *location,
+				typeNamer.newName( inst->name )
+			);
+			newDecl->body = inst->base->body;
+			newDecl->members = substituteMembers(
+				inst->base->members,
+				inst->base->params,
+				typeSubs
+			);
+
+			// Forward declare before recursion. (TODO: Only when needed, #199.)
+			insert( inst, typeSubs, newDecl );
+			if ( AggrDecl const * forwardDecl = asForward( newDecl ) ) {
+				declsToAddBefore.push_back( forwardDecl );
+			}
+			// Recursively instantiate members:
+			concDecl = strict_dynamic_cast<AggrDecl const *>(
+				newDecl->accept( *visitor ) );
+			// Must occur before declaration is added so
+			// that member instantiation appear first.
+			declsToAddBefore.push_back( concDecl );
+		}
+		return new ast::SueInstType<AggrDecl>( concDecl, inst->qualifiers );
+	}
+	case GenericType::dynamic:
+		// Do nothing.
+	default:
+		// Should never happen.
+		return inst;
+	}
+}
+
+void GenericInstantiator::previsit( ast::MemberExpr const * expr ) {
+	GuardValue( location ) = &expr->location;
+	GuardValue( memberIndex ) = -1;
+	// Only run on expressions where the field being accessed is generic.
+	if ( isGenericType( expr->aggregate->result ) ) {
+		// Find the location of the member:
+		ast::AggregateDecl const * aggr =
+			expr->aggregate->result.strict_as<ast::BaseInstType>()->aggr();
+		std::vector<ast::ptr<ast::Decl>> const & members = aggr->members;
+		auto it = std::find( members.begin(), members.end(), expr->member );
+		memberIndex = std::distance( members.begin(), it );
+		assertf( memberIndex < (int)members.size(), "Could not find member %s in generic type %s.", toString( expr->member ).c_str(), toString( expr->aggregate ).c_str() );
+	}
+}
+
+ast::Expr const * GenericInstantiator::postvisit(
+		ast::MemberExpr const * expr ) {
+	if ( memberIndex == -1 ) {
+		return expr;
+	}
+
+	// Using the location from the generic type, find the member
+	// in the instantiation and rebuild the member expression.
+	ast::AggregateDecl const * aggr =
+		expr->aggregate->result.strict_as<ast::BaseInstType>()->aggr();
+	assertf( memberIndex < (int)aggr->members.size(), "Instantiation somehow has fewer members than the generic type." );
+	ast::Decl const * member = *std::next( aggr->members.begin(), memberIndex );
+	assertf( member->name == expr->member->name, "Instantiation has different member order than the generic type. %s / %s", toString( member ).c_str(), toString( expr->member ).c_str() );
+	auto field = strict_dynamic_cast< ast::DeclWithType const * >( member );
+	ast::MemberExpr * ret = new ast::MemberExpr( expr->location,
+		field,
+		ast::deepCopy( expr->aggregate )
+	);
+	// For pointer decay:
+	ret->result = ResolvExpr::adjustExprType(
+		ret->result,
+		ast::TypeEnvironment(),
+		ast::SymbolTable()
+	);
+	ret->env = expr->env;
+	return ret;
+}
+
+ast::Expr const * GenericInstantiator::postvisit( ast::Expr const * expr ) {
+	// We are not modifying env on MemberExpr, but that seems to work.
+	if ( expr->env ) {
+		auto newEnv = expr->env->accept( *visitor );
+		expr = ast::mutate_field( expr, &ast::Expr::env, newEnv );
+	}
+	return expr;
+}
+
+void GenericInstantiator::previsit( ast::ParseNode const * node ) {
+	GuardValue( location ) = &node->location;
+}
+
+ast::StructDecl const * GenericInstantiator::lookup(
+		ast::StructInstType const * inst,
+		type_vector const & typeSubs ) const {
+	auto ret = instantiations.lookup( inst->base, typeSubs );
+	return strict_dynamic_cast<ast::StructDecl const *, nullptr>( ret );
+}
+
+ast::UnionDecl const * GenericInstantiator::lookup(
+		ast::UnionInstType const * inst,
+		type_vector const & typeSubs ) const {
+	auto ret = instantiations.lookup( inst->base, typeSubs );
+	return strict_dynamic_cast<ast::UnionDecl const *, nullptr>( ret );
+}
+
+void GenericInstantiator::insert( ast::StructInstType const * inst,
+		type_vector const & typeSubs, ast::StructDecl const * decl ) {
+	instantiations.insert( inst->base, typeSubs, decl );
+}
+
+void GenericInstantiator::insert( ast::UnionInstType const * inst,
+		type_vector const & typeSubs, ast::UnionDecl const * decl ) {
+	instantiations.insert( inst->base, typeSubs, decl );
+}
+
+void GenericInstantiator::replaceParametersWithConcrete(
+		std::vector<ast::ptr<ast::Expr>> & params ) {
+	for ( ast::ptr<ast::Expr> & param : params ) {
+		auto paramType = param.as<ast::TypeExpr>();
+		assertf( paramType, "Aggregate parameters should be type expressions." );
+		auto type = replaceWithConcrete( paramType->type, false );
+		param = ast::mutate_field( paramType, &ast::TypeExpr::type, type );
+	}
+}
+
+ast::Type const * GenericInstantiator::replaceWithConcrete(
+		ast::Type const * type, bool doClone ) {
+	if ( auto inst = dynamic_cast<ast::TypeInstType const *>( type ) ) {
+		if ( typeSubs && !inFunctionType ) {
+			ast::Type const * concType = typeSubs->lookup( inst );
+			return ast::deepCopy( ( concType ) ? concType : inst );
+		}
+	} else if ( auto inst = dynamic_cast<ast::StructInstType const *>( type ) ) {
+		auto mut = ( doClone ) ? ast::deepCopy( inst ) : ast::mutate( inst );
+		replaceParametersWithConcrete( mut->params );
+		return mut;
+	} else if ( auto inst = dynamic_cast<ast::UnionInstType const *>( type ) ) {
+		auto mut = ( doClone ) ? ast::deepCopy( inst ) : ast::mutate( inst );
+		replaceParametersWithConcrete( mut->params );
+		return mut;
+	}
+	return type;
+}
+
+void GenericInstantiator::stripDtypeParams(
+		ast::AggregateDecl * base,
+		std::vector<ast::ptr<ast::TypeDecl>> & baseParams,
+		std::vector<ast::ptr<ast::TypeExpr>> const & typeSubs ) {
+	substituteMembersHere( base->members, baseParams, typeSubs );
+
+	baseParams.clear();
+
+	dtypeStatics.insert( base );
+}
+
+} // namespace
+
+void instantiateGeneric( ast::TranslationUnit & translationUnit ) {
+	ast::Pass<FixDtypeStatic>::run( translationUnit );
+	ast::Pass<GenericInstantiator>::run( translationUnit );
+}
+
+} // namespace GenPoly
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/GenPoly/Lvalue2.cc
===================================================================
--- src/GenPoly/Lvalue2.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/Lvalue2.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -23,4 +23,3 @@
 }
 
-
 }
Index: src/GenPoly/ScrubTyVars.cc
===================================================================
--- src/GenPoly/ScrubTyVars.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/ScrubTyVars.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,14 +9,16 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Mar 16 15:44:27 2017
-// Update Count     : 3
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Aug 19 16:10:00 2022
+// Update Count     : 4
 //
 
 #include <utility>                      // for pair
 
+#include "AST/Pass.hpp"
 #include "GenPoly.h"                    // for mangleType, TyVarMap, alignof...
 #include "GenPoly/ErasableScopedMap.h"  // for ErasableScopedMap<>::const_it...
 #include "ScrubTyVars.h"
+#include "SymTab/Mangler.h"             // for mangle, typeMode
 #include "SynTree/Declaration.h"        // for TypeDecl, TypeDecl::Data, Typ...
 #include "SynTree/Expression.h"         // for Expression (ptr only), NameExpr
@@ -112,4 +114,162 @@
 		return pointer;
 	}
+
+namespace {
+
+enum class ScrubMode {
+	FromMap,
+	DynamicFromMap,
+	All,
+};
+
+struct ScrubTypeVars :
+	public ast::WithGuards,
+	public ast::WithShortCircuiting,
+	public ast::WithVisitorRef<ScrubTypeVars> {
+
+	ScrubTypeVars( ScrubMode m, TyVarMap const * tv ) :
+			mode ( m ), typeVars( tv ) {}
+
+	void previsit( ast::TypeInstType const * ) { visit_children = false; }
+	void previsit( ast::StructInstType const * ) { visit_children = false; }
+	void previsit( ast::UnionInstType const * ) { visit_children = false; }
+	void previsit( ast::SizeofExpr const * expr ) { primeBaseScrub( expr->type ); }
+	void previsit( ast::AlignofExpr const * expr ) { primeBaseScrub( expr->type ); }
+	void previsit( ast::PointerType const * type ) { primeBaseScrub( type->base ); }
+
+	ast::Type const * postvisit( ast::TypeInstType const * type );
+	ast::Type const * postvisit( ast::StructInstType const * type );
+	ast::Type const * postvisit( ast::UnionInstType const * type );
+	ast::Expr const * postvisit( ast::SizeofExpr const * expr );
+	ast::Expr const * postvisit( ast::AlignofExpr const * expr );
+	ast::Type const * postvisit( ast::PointerType const * type );
+
+private:
+	ScrubMode const mode;
+	/// Type varriables to scrub.
+	TyVarMap const * const typeVars;
+	/// Value cached by primeBaseScrub.
+	ast::Type const * dynType = nullptr;
+
+	/// Returns the type if it should be scrubbed, nullptr otherwise.
+	ast::Type const * shouldScrub( ast::Type const * type ) {
+		switch ( mode ) {
+		case ScrubMode::FromMap:
+			return isPolyType( type, *typeVars );
+		case ScrubMode::DynamicFromMap:
+			return isDynType( type, *typeVars );
+		case ScrubMode::All:
+			return isPolyType( type );
+		default:
+			assertf( false, "Invalid ScrubMode in shouldScrub." );
+			throw;
+		}
+	}
+
+	void primeBaseScrub( ast::Type const * type ) {
+		// Need to determine whether type needs to be scrubbed to
+		// determine whether automatic recursion is necessary.
+		if ( ast::Type const * t = shouldScrub( type ) ) {
+			visit_children = false;
+			GuardValue( dynType ) = t;
+		}
+	}
+
+	ast::Type const * postvisitAggregateType(
+			ast::BaseInstType const * type ) {
+		if ( !shouldScrub( type ) ) return type;
+		return new ast::PointerType( new ast::VoidType( type->qualifiers ) );
+	}
+};
+
+ast::Type const * ScrubTypeVars::postvisit( ast::TypeInstType const * type ) {
+	// This implies that mode == ScrubMode::All.
+	if ( !typeVars ) {
+		if ( ast::TypeDecl::Ftype == type->kind ) {
+			return new ast::PointerType(
+				new ast::FunctionType( ast::FixedArgs ) );
+		} else {
+			return new ast::PointerType(
+				new ast::VoidType( type->qualifiers ) );
+		}
+	}
+
+	auto typeVar = typeVars->find( type->name );
+	if ( typeVar == typeVars->end() ) {
+		return type;
+	}
+
+	switch ( typeVar->second.kind ) {
+	case ast::TypeDecl::Dtype:
+	case ast::TypeDecl::Ttype:
+		return new ast::PointerType(
+			new ast::VoidType( type->qualifiers ) );
+	case ast::TypeDecl::Ftype:
+		return new ast::PointerType(
+			new ast::FunctionType( ast::VariableArgs ) );
+	default:
+		assertf( false,
+			"Unhandled type variable kind: %d", typeVar->second.kind );
+		throw; // Just in case the assert is removed, stop here.
+	}
+}
+
+ast::Type const * ScrubTypeVars::postvisit( ast::StructInstType const * type ) {
+	return postvisitAggregateType( type );
+}
+
+ast::Type const * ScrubTypeVars::postvisit( ast::UnionInstType const * type ) {
+	return postvisitAggregateType( type );
+}
+
+ast::Expr const * ScrubTypeVars::postvisit( ast::SizeofExpr const * expr ) {
+	// sizeof( T ) becomes the _sizeof_T parameter.
+	if ( dynType ) {
+		return new ast::NameExpr( expr->location,
+			sizeofName( Mangle::mangle( dynType, Mangle::typeMode() ) ) );
+	} else {
+		return expr;
+	}
+}
+
+ast::Expr const * ScrubTypeVars::postvisit( ast::AlignofExpr const * expr ) {
+	// alignof( T ) becomes the _alignof_T parameter.
+	if ( dynType ) {
+		return new ast::NameExpr( expr->location,
+			alignofName( Mangle::mangle( dynType, Mangle::typeMode() ) ) );
+	} else {
+		return expr;
+	}
+}
+
+ast::Type const * ScrubTypeVars::postvisit( ast::PointerType const * type ) {
+	if ( dynType ) {
+		ast::Type * ret = ast::mutate( dynType->accept( *visitor ) );
+		ret->qualifiers |= type->qualifiers;
+		return ret;
+	} else {
+		return type;
+	}
+}
+
+const ast::Node * scrubTypeVarsBase(
+		const ast::Node * target,
+		ScrubMode mode, const TyVarMap * typeVars ) {
+	if ( ScrubMode::All == mode ) {
+		assert( nullptr == typeVars );
+	} else {
+		assert( nullptr != typeVars );
+	}
+	ast::Pass<ScrubTypeVars> visitor( mode, typeVars );
+	return target->accept( visitor );
+}
+
+} // namespace
+
+template<>
+ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target ) {
+	return scrubTypeVarsBase( target, ScrubMode::All, nullptr );
+}
+
 } // namespace GenPoly
 
Index: src/GenPoly/ScrubTyVars.h
===================================================================
--- src/GenPoly/ScrubTyVars.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/ScrubTyVars.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 22 09:21:47 2017
-// Update Count     : 2
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Aug 19 14:14:00 2022
+// Update Count     : 3
 //
 
@@ -18,4 +18,5 @@
 #include <cassert>            // for assert
 
+#include "AST/Fwd.hpp"        // for Node
 #include "Common/PassVisitor.h"
 #include "GenPoly.h"          // for TyVarMap, isPolyType, isDynType
@@ -108,4 +109,14 @@
 	}
 
+/// For all polymorphic types, replaces generic types, with the appropriate
+/// void type, and sizeof/alignof expressions with the proper variable.
+template<typename node_t>
+node_t const * scrubAllTypeVars( node_t const * target ) {
+	return strict_dynamic_cast<node_t const *>( scrubAllTypeVars<ast::Node>( target ) );
+}
+
+template<>
+ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target );
+
 } // namespace GenPoly
 
Index: src/GenPoly/SpecializeNew.cpp
===================================================================
--- src/GenPoly/SpecializeNew.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/SpecializeNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -240,21 +240,19 @@
 }
 
-namespace {
-	struct TypeInstFixer : public ast::WithShortCircuiting {
-		std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
-
-		void previsit(const ast::TypeDecl *) { visit_children = false; }
-		const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) {
-			if (typeMap.count(typeInst->base)) {
-				ast::TypeInstType * newInst = mutate(typeInst);
-				auto const & pair = typeMap[typeInst->base];
-				newInst->expr_id = pair.first;
-				newInst->formal_usage = pair.second;
-				return newInst;
-			}
-			return typeInst;
-		}
-	};
-}
+struct TypeInstFixer final : public ast::WithShortCircuiting {
+	std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
+
+	void previsit(const ast::TypeDecl *) { visit_children = false; }
+	const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) {
+		if (typeMap.count(typeInst->base)) {
+			ast::TypeInstType * newInst = mutate(typeInst);
+			auto const & pair = typeMap[typeInst->base];
+			newInst->expr_id = pair.first;
+			newInst->formal_usage = pair.second;
+			return newInst;
+		}
+		return typeInst;
+	}
+};
 
 const ast::Expr * SpecializeCore::createThunkFunction(
Index: src/GenPoly/module.mk
===================================================================
--- src/GenPoly/module.mk	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/GenPoly/module.mk	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -27,4 +27,5 @@
 	GenPoly/FindFunction.cc \
 	GenPoly/FindFunction.h \
+	GenPoly/InstantiateGenericNew.cpp \
 	GenPoly/InstantiateGeneric.cc \
 	GenPoly/InstantiateGeneric.h \
Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/InitTweak/InitTweak.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -1241,5 +1241,5 @@
 	static const char * const tlsd_section = ".tdata" ASM_COMMENT;
 	void addDataSectionAttribute( ObjectDecl * objDecl ) {
-		const bool is_tls = objDecl->get_storageClasses().is_threadlocal;
+		const bool is_tls = objDecl->get_storageClasses().is_threadlocal_any();
 		const char * section = is_tls ? tlsd_section : data_section;
 		objDecl->attributes.push_back(new Attribute("section", {
@@ -1249,5 +1249,5 @@
 
 	void addDataSectionAttribute( ast::ObjectDecl * objDecl ) {
-		const bool is_tls = objDecl->storage.is_threadlocal;
+		const bool is_tls = objDecl->storage.is_threadlocal_any();
 		const char * section = is_tls ? tlsd_section : data_section;
 		objDecl->attributes.push_back(new ast::Attribute("section", {
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Makefile.am	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -71,5 +71,5 @@
 EXTRA_DIST = include/cassert include/optional BasicTypes-gen.cc
 
-AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -Werror=return-type -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
+AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -Werror=return-type -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++17 $(TCMALLOCFLAG)
 AM_LDFLAGS  = @HOST_FLAGS@ -Xlinker -export-dynamic
 ARFLAGS     = cr
Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Parser/DeclarationNode.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -262,5 +262,5 @@
 	newnode->type->enumeration.anon = name == nullptr;
 	if ( base && base->type)  {
-		newnode->type->base = base->type;	
+		newnode->type->base = base->type;
 	} // if
 
@@ -505,5 +505,5 @@
 			} // for
 			// src is the new item being added and has a single bit
-		} else if ( ! src->storageClasses.is_threadlocal ) { // conflict ?
+		} else if ( ! src->storageClasses.is_threadlocal_any() ) { // conflict ?
 			appendError( error, string( "conflicting " ) + Type::StorageClassesNames[storageClasses.ffs()] +
 						 " & " + Type::StorageClassesNames[src->storageClasses.ffs()] );
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Parser/lex.ll	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sun Jun 20 18:41:09 2021
- * Update Count     : 759
+ * Last Modified On : Tue Aug 30 18:39:54 2022
+ * Update Count     : 760
  */
 
@@ -314,5 +314,6 @@
 switch			{ KEYWORD_RETURN(SWITCH); }
 thread			{ KEYWORD_RETURN(THREAD); }				// C11
-_Thread_local	{ KEYWORD_RETURN(THREADLOCAL); }		// C11
+__thread		{ KEYWORD_RETURN(THREADLOCALGCC); }		// GCC
+_Thread_local	{ KEYWORD_RETURN(THREADLOCALC11); }		// C11
 throw			{ KEYWORD_RETURN(THROW); }				// CFA
 throwResume		{ KEYWORD_RETURN(THROWRESUME); }		// CFA
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Parser/parser.yy	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -58,5 +58,7 @@
 
 // lex uses __null in a boolean context, it's fine.
-//#pragma GCC diagnostic ignored "-Wparentheses-equality"
+#pragma GCC diagnostic ignored "-Wpragmas"
+#pragma GCC diagnostic ignored "-Wparentheses-equality"
+#pragma GCC diagnostic warning "-Wpragmas"
 
 extern DeclarationNode * parseTree;
@@ -293,5 +295,5 @@
 %token TYPEDEF
 %token EXTERN STATIC AUTO REGISTER
-%token THREADLOCAL										// C11
+%token THREADLOCALGCC THREADLOCALC11						// GCC, C11
 %token INLINE FORTRAN									// C99, extension ISO/IEC 9899:1999 Section J.5.9(1)
 %token NORETURN											// C11
@@ -1345,5 +1347,5 @@
 		{
 			if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
-			else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 
+			else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
 		}
 	| comma_expression updowneq comma_expression '~' comma_expression // CFA, anonymous loop-index
@@ -1357,5 +1359,5 @@
 		{
 			if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
-			else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 
+			else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
 		}
 	| comma_expression updowneq comma_expression '~' '@' // CFA, error
@@ -2082,6 +2084,8 @@
 	| REGISTER
 		{ $$ = DeclarationNode::newStorageClass( Type::Register ); }
-	| THREADLOCAL										// C11
-		{ $$ = DeclarationNode::newStorageClass( Type::Threadlocal ); }
+	| THREADLOCALGCC										// GCC
+		{ $$ = DeclarationNode::newStorageClass( Type::ThreadlocalGcc ); }
+	| THREADLOCALC11										// C11
+		{ $$ = DeclarationNode::newStorageClass( Type::ThreadlocalC11 ); }
 		// Put function specifiers here to simplify parsing rules, but separate them semantically.
 	| INLINE											// C99
Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -269,6 +269,6 @@
 			unsigned nextArg, unsigned tupleStart = 0, Cost cost = Cost::zero,
 			unsigned nextExpl = 0, unsigned explAlt = 0 )
-		: parent(parent), expr( expr ), cost( cost ), env( move( env ) ), need( move( need ) ),
-		  have( move( have ) ), open( move( open ) ), nextArg( nextArg ), tupleStart( tupleStart ),
+		: parent(parent), expr( expr ), cost( cost ), env( std::move( env ) ), need( std::move( need ) ),
+		  have( std::move( have ) ), open( std::move( open ) ), nextArg( nextArg ), tupleStart( tupleStart ),
 		  nextExpl( nextExpl ), explAlt( explAlt ) {}
 
@@ -276,6 +276,6 @@
 			const ArgPack & o, ast::TypeEnvironment && env, ast::AssertionSet && need,
 			ast::AssertionSet && have, ast::OpenVarSet && open, unsigned nextArg, Cost added )
-		: parent( o.parent ), expr( o.expr ), cost( o.cost + added ), env( move( env ) ),
-		  need( move( need ) ), have( move( have ) ), open( move( open ) ), nextArg( nextArg ),
+		: parent( o.parent ), expr( o.expr ), cost( o.cost + added ), env( std::move( env ) ),
+		  need( std::move( need ) ), have( std::move( have ) ), open( std::move( open ) ), nextArg( nextArg ),
 		  tupleStart( o.tupleStart ), nextExpl( 0 ), explAlt( 0 ) {}
 
@@ -301,5 +301,5 @@
 			// reset pack to appropriate tuple
 			std::vector< ast::ptr< ast::Expr > > exprv( exprs.begin(), exprs.end() );
-			expr = new ast::TupleExpr{ expr->location, move( exprv ) };
+			expr = new ast::TupleExpr{ expr->location, std::move( exprv ) };
 			tupleStart = pack->tupleStart - 1;
 			parent = pack->parent;
@@ -404,5 +404,5 @@
 								newResult.open, symtab )
 						) {
-							finalResults.emplace_back( move( newResult ) );
+							finalResults.emplace_back( std::move( newResult ) );
 						}
 
@@ -423,6 +423,6 @@
 						if ( expl.exprs.empty() ) {
 							results.emplace_back(
-								results[i], move( env ), copy( results[i].need ),
-								copy( results[i].have ), move( open ), nextArg + 1, expl.cost );
+								results[i], std::move( env ), copy( results[i].need ),
+								copy( results[i].have ), std::move( open ), nextArg + 1, expl.cost );
 
 							continue;
@@ -431,6 +431,6 @@
 						// add new result
 						results.emplace_back(
-							i, expl.exprs.front(), move( env ), copy( results[i].need ),
-							copy( results[i].have ), move( open ), nextArg + 1, nTuples,
+							i, expl.exprs.front(), std::move( env ), copy( results[i].need ),
+							copy( results[i].have ), std::move( open ), nextArg + 1, nTuples,
 							expl.cost, expl.exprs.size() == 1 ? 0 : 1, j );
 					}
@@ -444,5 +444,5 @@
 			// splice final results onto results
 			for ( std::size_t i = 0; i < finalResults.size(); ++i ) {
-				results.emplace_back( move( finalResults[i] ) );
+				results.emplace_back( std::move( finalResults[i] ) );
 			}
 			return ! finalResults.empty();
@@ -478,5 +478,5 @@
 
 					results.emplace_back(
-						i, expr, move( env ), move( need ), move( have ), move( open ), nextArg,
+						i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ), nextArg,
 						nTuples, Cost::zero, nextExpl, results[i].explAlt );
 				}
@@ -494,6 +494,6 @@
 					if ( unify( paramType, cnst->result, env, need, have, open, symtab ) ) {
 						results.emplace_back(
-							i, new ast::DefaultArgExpr{ cnst->location, cnst }, move( env ),
-							move( need ), move( have ), move( open ), nextArg, nTuples );
+							i, new ast::DefaultArgExpr{ cnst->location, cnst }, std::move( env ),
+							std::move( need ), std::move( have ), std::move( open ), nextArg, nTuples );
 					}
 				}
@@ -516,5 +516,5 @@
 				if ( expl.exprs.empty() ) {
 					results.emplace_back(
-						results[i], move( env ), move( need ), move( have ), move( open ),
+						results[i], std::move( env ), std::move( need ), std::move( have ), std::move( open ),
 						nextArg + 1, expl.cost );
 
@@ -538,5 +538,5 @@
 					// add new result
 					results.emplace_back(
-						i, expr, move( env ), move( need ), move( have ), move( open ),
+						i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ),
 						nextArg + 1, nTuples, expl.cost, expl.exprs.size() == 1 ? 0 : 1, j );
 				}
@@ -576,5 +576,5 @@
 					restructureCast( idx, toType->getComponent( i ), isGenerated ) );
 			}
-			return new ast::TupleExpr{ arg->location, move( components ) };
+			return new ast::TupleExpr{ arg->location, std::move( components ) };
 		} else {
 			// handle normally
@@ -672,5 +672,5 @@
 			}
 			std::vector< ast::ptr< ast::Expr > > vargs( args.begin(), args.end() );
-			appExpr->args = move( vargs );
+			appExpr->args = std::move( vargs );
 			// build and validate new candidate
 			auto newCand =
@@ -783,6 +783,6 @@
 							if ( expl.exprs.empty() ) {
 								results.emplace_back(
-									results[i], move( env ), copy( results[i].need ),
-									copy( results[i].have ), move( open ), nextArg + 1,
+									results[i], std::move( env ), copy( results[i].need ),
+									copy( results[i].have ), std::move( open ), nextArg + 1,
 									expl.cost );
 
@@ -792,6 +792,6 @@
 							// add new result
 							results.emplace_back(
-								i, expl.exprs.front(), move( env ), copy( results[i].need ),
-								copy( results[i].have ), move( open ), nextArg + 1, 0, expl.cost,
+								i, expl.exprs.front(), std::move( env ), copy( results[i].need ),
+								copy( results[i].have ), std::move( open ), nextArg + 1, 0, expl.cost,
 								expl.exprs.size() == 1 ? 0 : 1, j );
 						}
@@ -843,5 +843,5 @@
 				// as a member expression
 				addAnonConversions( newCand );
-				candidates.emplace_back( move( newCand ) );
+				candidates.emplace_back( std::move( newCand ) );
 			}
 		}
@@ -901,5 +901,5 @@
 							const ast::EnumDecl * enumDecl = enumInst->base;
 							if ( const ast::Type* enumType = enumDecl->base ) {
-								// instance of enum (T) is a instance of type (T) 
+								// instance of enum (T) is a instance of type (T)
 								funcFinder.otypeKeys.insert(Mangle::mangle(enumType, Mangle::NoGenericParams | Mangle::Type));
 							} else {
@@ -907,5 +907,5 @@
 								funcFinder.otypeKeys.insert(Mangle::mangle(enumDecl, Mangle::NoGenericParams | Mangle::Type));
 							}
-						} 
+						}
 						else funcFinder.otypeKeys.insert(Mangle::mangle(argType, Mangle::NoGenericParams | Mangle::Type));
 					}
@@ -986,5 +986,5 @@
 					funcE.emplace_back( *func, symtab );
 				}
-				argExpansions.emplace_front( move( funcE ) );
+				argExpansions.emplace_front( std::move( funcE ) );
 
 				for ( const CandidateRef & op : opFinder ) {
@@ -1030,8 +1030,8 @@
 				if ( cvtCost != Cost::infinity ) {
 					withFunc->cvtCost = cvtCost;
-					candidates.emplace_back( move( withFunc ) );
-				}
-			}
-			found = move( candidates );
+					candidates.emplace_back( std::move( withFunc ) );
+				}
+			}
+			found = std::move( candidates );
 
 			// use a new list so that candidates are not examined by addAnonConversions twice
@@ -1131,5 +1131,5 @@
 					CandidateRef newCand = std::make_shared<Candidate>(
 						restructureCast( cand->expr, toType, castExpr->isGenerated ),
-						copy( cand->env ), move( open ), move( need ), cand->cost,
+						copy( cand->env ), std::move( open ), std::move( need ), cand->cost,
 						cand->cost + thisCost );
 					inferParameters( newCand, matches );
@@ -1285,5 +1285,5 @@
 				// as a name expression
 				addAnonConversions( newCand );
-				candidates.emplace_back( move( newCand ) );
+				candidates.emplace_back( std::move( newCand ) );
 			}
 		}
@@ -1394,5 +1394,5 @@
 						new ast::LogicalExpr{
 							logicalExpr->location, r1->expr, r2->expr, logicalExpr->isAnd },
-						move( env ), move( open ), move( need ), r1->cost + r2->cost );
+						std::move( env ), std::move( open ), std::move( need ), r1->cost + r2->cost );
 				}
 			}
@@ -1452,5 +1452,5 @@
 							// output candidate
 							CandidateRef newCand = std::make_shared<Candidate>(
-								newExpr, move( env ), move( open ), move( need ), cost );
+								newExpr, std::move( env ), std::move( open ), std::move( need ), cost );
 							inferParameters( newCand, candidates );
 						}
@@ -1519,5 +1519,5 @@
 						// add candidate
 						CandidateRef newCand = std::make_shared<Candidate>(
-							newExpr, move( env ), move( open ), move( need ),
+							newExpr, std::move( env ), std::move( open ), std::move( need ),
 							r1->cost + r2->cost );
 						inferParameters( newCand, candidates );
@@ -1548,6 +1548,6 @@
 
 				addCandidate(
-					new ast::TupleExpr{ tupleExpr->location, move( exprs ) },
-					move( env ), move( open ), move( need ), sumCost( subs ) );
+					new ast::TupleExpr{ tupleExpr->location, std::move( exprs ) },
+					std::move( env ), std::move( open ), std::move( need ), sumCost( subs ) );
 			}
 		}
@@ -1635,5 +1635,5 @@
 								initExpr->location, restructureCast( cand->expr, toType ),
 								initAlt.designation },
-							move(env), move( open ), move( need ), cand->cost, thisCost );
+							std::move(env), std::move( open ), std::move( need ), cand->cost, thisCost );
 						inferParameters( newCand, matches );
 					}
@@ -1768,5 +1768,5 @@
 		cand->env.applyFree( newResult );
 		cand->expr = ast::mutate_field(
-			cand->expr.get(), &ast::Expr::result, move( newResult ) );
+			cand->expr.get(), &ast::Expr::result, std::move( newResult ) );
 
 		out.emplace_back( cand );
@@ -1854,5 +1854,5 @@
 
 		auto oldsize = candidates.size();
-		candidates = move( pruned );
+		candidates = std::move( pruned );
 
 		PRINT(
Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/SynTree/Statement.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -105,5 +105,5 @@
 };
 
-BranchStmt::BranchStmt( Label target, Type type ) throw ( SemanticErrorException ) :
+BranchStmt::BranchStmt( Label target, Type type ) :
 	Statement(), originalTarget( target ), target( target ), computedTarget( nullptr ), type( type ) {
 	//actually this is a syntactic error signaled by the parser
@@ -113,5 +113,5 @@
 }
 
-BranchStmt::BranchStmt( Expression * computedTarget, Type type ) throw ( SemanticErrorException ) :
+BranchStmt::BranchStmt( Expression * computedTarget, Type type ) :
 	Statement(), computedTarget( computedTarget ), type( type ) {
 	if ( type != BranchStmt::Goto || computedTarget == nullptr ) {
@@ -211,5 +211,5 @@
 }
 
-CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) throw ( SemanticErrorException ) :
+CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) :
 		Statement(), condition( condition ), stmts( statements ), _isDefault( deflt ) {
 	if ( isDefault() && condition != nullptr ) SemanticError( condition, "default case with condition: " );
@@ -575,5 +575,5 @@
 }
 
-MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs ) 
+MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs )
 	: Statement(), stmt( stmt ), mutexObjs( mutexObjs ) { }
 
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/SynTree/Statement.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -200,5 +200,5 @@
 	std::list<Statement *> stmts;
 
-	CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false ) throw (SemanticErrorException);
+	CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false );
 	CaseStmt( const CaseStmt & other );
 	virtual ~CaseStmt();
@@ -289,6 +289,6 @@
 	Type type;
 
-	BranchStmt( Label target, Type ) throw (SemanticErrorException);
-	BranchStmt( Expression * computedTarget, Type ) throw (SemanticErrorException);
+	BranchStmt( Label target, Type );
+	BranchStmt( Expression * computedTarget, Type );
 
 	Label get_originalTarget() { return originalTarget; }
Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/SynTree/Type.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -80,5 +80,5 @@
 // These must remain in the same order as the corresponding bit fields.
 const char * Type::FuncSpecifiersNames[] = { "inline", "_Noreturn", "fortran" };
-const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "_Thread_local" };
+const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "__thread", "_Thread_local" };
 const char * Type::QualifiersNames[] = { "const", "restrict", "volatile", "mutex", "_Atomic" };
 
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/SynTree/Type.h	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -84,5 +84,5 @@
 	}; // FuncSpecifiers
 
-	enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, Threadlocal = 1 << 4, NumStorageClass = 5 };
+	enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, ThreadlocalGcc = 1 << 4, ThreadlocalC11 = 1 << 5, NumStorageClass = 6 };
 	static const char * StorageClassesNames[];
 	union StorageClasses {
@@ -93,5 +93,6 @@
 			bool is_auto : 1;
 			bool is_register : 1;
-			bool is_threadlocal : 1;
+			bool is_threadlocalGcc : 1;
+			bool is_threadlocalC11 : 1;
 		};
 
@@ -100,4 +101,6 @@
 		// equality (==, !=) works implicitly on first field "val", relational operations are undefined.
 		BFCommon( StorageClasses, NumStorageClass )
+
+		bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
 	}; // StorageClasses
 
Index: src/Tuples/TupleExpansionNew.cpp
===================================================================
--- src/Tuples/TupleExpansionNew.cpp	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Tuples/TupleExpansionNew.cpp	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -101,5 +101,5 @@
 
 /// Replaces Tuple Assign & Index Expressions, and Tuple Types.
-struct TupleMainExpander :
+struct TupleMainExpander final :
 		public ast::WithGuards,
 		public ast::WithVisitorRef<TupleMainExpander>,
@@ -254,5 +254,5 @@
 }
 
-struct TupleExprExpander {
+struct TupleExprExpander final {
 	ast::Expr const * postvisit( ast::TupleExpr const * expr ) {
 		return replaceTupleExpr( expr->location,
Index: src/Virtual/ExpandCasts.cc
===================================================================
--- src/Virtual/ExpandCasts.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/Virtual/ExpandCasts.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -317,5 +317,5 @@
 };
 
-struct ExpandCastsCore {
+struct ExpandCastsCore final {
 	void previsit( ast::FunctionDecl const * decl );
 	void previsit( ast::StructDecl const * decl );
@@ -362,4 +362,5 @@
 }
 
+/// Copy newType, but give the copy the params of the oldType.
 ast::StructInstType * polyCopy(
 		ast::StructInstType const * oldType,
Index: src/config.h.in
===================================================================
--- src/config.h.in	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/config.h.in	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -27,8 +27,4 @@
 /* Location of cfa install. */
 #undef CFA_PREFIX
-
-/* Sets whether or not to use the new-ast, this is adefault value and can be
-   overrided by --old-ast and --new-ast */
-#undef CFA_USE_NEW_AST
 
 /* Major.Minor */
Index: src/main.cc
===================================================================
--- src/main.cc	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ src/main.cc	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -10,6 +10,6 @@
 // Created On       : Fri May 15 23:12:02 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Thu 11 12:18:00 2022
-// Update Count     : 677
+// Last Modified On : Thu Sep 15 13:58:00 2022
+// Update Count     : 678
 //
 
@@ -38,6 +38,4 @@
 #include "CodeGen/Generate.h"               // for generate
 #include "CodeGen/LinkOnce.h"               // for translateLinkOnce
-#include "CodeTools/DeclStats.h"            // for printDeclStats
-#include "CodeTools/ResolvProtoDump.h"      // for dumpAsResolvProto
 #include "CodeTools/TrackLoc.h"             // for fillLocations
 #include "Common/CodeLocationTools.hpp"     // for forceFillCodeLocations
@@ -45,7 +43,5 @@
 #include "Common/DeclStats.hpp"             // for printDeclStats
 #include "Common/ResolvProtoDump.hpp"       // for dumpAsResolverProto
-#include "Common/Stats.h"
-#include "Common/PassVisitor.h"
-#include "Common/SemanticError.h"           // for SemanticError
+#include "Common/Stats.h"                   // for Stats
 #include "Common/UnimplementedError.h"      // for UnimplementedError
 #include "Common/utility.h"                 // for deleteAll, filter, printAll
@@ -53,8 +49,7 @@
 #include "Concurrency/Waitfor.h"            // for generateWaitfor
 #include "ControlStruct/ExceptDecl.h"       // for translateExcept
-#include "ControlStruct/ExceptTranslate.h"  // for translateEHM
+#include "ControlStruct/ExceptTranslate.h"  // for translateThrows, translat...
 #include "ControlStruct/FixLabels.hpp"      // for fixLabels
 #include "ControlStruct/HoistControlDecls.hpp" //  hoistControlDecls
-#include "ControlStruct/Mutate.h"           // for mutate
 #include "GenPoly/Box.h"                    // for box
 #include "GenPoly/InstantiateGeneric.h"     // for instantiateGeneric
@@ -66,12 +61,8 @@
 #include "Parser/ParseNode.h"               // for DeclarationNode, buildList
 #include "Parser/TypedefTable.h"            // for TypedefTable
-#include "ResolvExpr/AlternativePrinter.h"  // for AlternativePrinter
 #include "ResolvExpr/CandidatePrinter.hpp"  // for printCandidates
 #include "ResolvExpr/Resolver.h"            // for resolve
-#include "SymTab/Validate.h"                // for validate
-#include "SymTab/ValidateType.h"            // for linkReferenceToTypes
 #include "SynTree/LinkageSpec.h"            // for Spec, Cforall, Intrinsic
 #include "SynTree/Declaration.h"            // for Declaration
-#include "SynTree/Visitor.h"                // for acceptAll
 #include "Tuples/Tuples.h"                  // for expandMemberTuples, expan...
 #include "Validate/Autogen.hpp"             // for autogenerateRoutines
@@ -330,212 +321,130 @@
 		Stats::Time::StopBlock();
 
-		if( useNewAST ) {
-			if (Stats::Counters::enabled) {
-				ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New");
-				ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New");
-			}
-			auto transUnit = convert( move( translationUnit ) );
-
-			forceFillCodeLocations( transUnit );
-
-			PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) );
-			if ( exdeclp ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			}
-
-			PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) );
-			PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) );
-			// Hoist Type Decls pulls some declarations out of contexts where
-			// locations are not tracked. Perhaps they should be, but for now
-			// the full fill solves it.
-			forceFillCodeLocations( transUnit );
-
-			PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) );
-			PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) );
-			PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) );
-
-			PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) );
-
-			PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) );
-			PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) );
-			PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) );
-			PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) );
-			PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) );
-			PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) );
-			PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) );
-			PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) );
-			PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) );
-			PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) );
-
-			PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) );
-
-			PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) );
-			PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) );
-			PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) );
-			PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) );
-			PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) );
-			PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) );
-
-			if ( symtabp ) {
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( expraltp ) {
-				ResolvExpr::printCandidates( transUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( validp ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) );
-			PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) );
-			PASS( "Fix Names", CodeGen::fixNames( transUnit ) );
-			PASS( "Gen Init", InitTweak::genInit( transUnit ) );
-			PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) );
-
-			if ( libcfap ) {
-				// Generate the bodies of cfa library functions.
-				LibCfa::makeLibCfa( transUnit );
-			} // if
-
-			if ( declstatsp ) {
-				printDeclStats( transUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( bresolvep ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( resolvprotop ) {
-				dumpAsResolverProto( transUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
-			if ( exprp ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			} // if
-
-			forceFillCodeLocations( transUnit );
-
-			PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary()));
-
-			// fix ObjectDecl - replaces ConstructorInit nodes
-			if ( ctorinitp ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			} // if
-
-			// Currently not working due to unresolved issues with UniqueExpr
-			PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
-
-			PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) );
-			PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) );
-
-			// Needs to happen before tuple types are expanded.
-			PASS( "Convert Specializations",  GenPoly::convertSpecializations( transUnit ) );
-
-			PASS( "Expand Tuples", Tuples::expandTuples( transUnit ) );
-
-			if ( tuplep ) {
-				dump( move( transUnit ) );
-				return EXIT_SUCCESS;
-			} // if
-
-			// Must come after Translate Tries.
-			PASS( "Virtual Expand Casts", Virtual::expandCasts( transUnit ) );
-
-			translationUnit = convert( move( transUnit ) );
-		} else {
-			PASS( "Translate Exception Declarations", ControlStruct::translateExcept( translationUnit ) );
-			if ( exdeclp ) {
-				dump( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			// add the assignment statement after the initialization of a type parameter
-			PASS( "Validate", SymTab::validate( translationUnit ) );
-
-			if ( symtabp ) {
-				deleteAll( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( expraltp ) {
-				PassVisitor<ResolvExpr::AlternativePrinter> printer( cout );
-				acceptAll( translationUnit, printer );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( validp ) {
-				dump( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Translate Throws", ControlStruct::translateThrows( translationUnit ) );
-			PASS( "Fix Labels", ControlStruct::fixLabels( translationUnit ) );
-			PASS( "Fix Names", CodeGen::fixNames( translationUnit ) );
-			PASS( "Gen Init", InitTweak::genInit( translationUnit ) );
-			PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( translationUnit ) );
-
-			if ( libcfap ) {
-				// Generate the bodies of cfa library functions.
-				LibCfa::makeLibCfa( translationUnit );
-			} // if
-
-			if ( declstatsp ) {
-				CodeTools::printDeclStats( translationUnit );
-				deleteAll( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			if ( bresolvep ) {
-				dump( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			CodeTools::fillLocations( translationUnit );
-
-			if ( resolvprotop ) {
-				CodeTools::dumpAsResolvProto( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
-			if ( exprp ) {
-				dump( translationUnit );
-				return EXIT_SUCCESS;
-			}
-
-			PASS( "Fix Init", InitTweak::fix( translationUnit, buildingLibrary() ) );
-
-			// fix ObjectDecl - replaces ConstructorInit nodes
-			if ( ctorinitp ) {
-				dump ( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( translationUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
-			PASS( "Translate Tries", ControlStruct::translateTries( translationUnit ) );
-			PASS( "Gen Waitfor", Concurrency::generateWaitFor( translationUnit ) );
-			PASS( "Convert Specializations",  GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded
-			PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this?
-
-			if ( tuplep ) {
-				dump( translationUnit );
-				return EXIT_SUCCESS;
-			} // if
-
-			PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM
+		if (Stats::Counters::enabled) {
+			ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New");
+			ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New");
 		}
-
-		PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) );
+		auto transUnit = convert( std::move( translationUnit ) );
+
+		forceFillCodeLocations( transUnit );
+
+		PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) );
+		if ( exdeclp ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		}
+
+		PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) );
+		PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) );
+		// Hoist Type Decls pulls some declarations out of contexts where
+		// locations are not tracked. Perhaps they should be, but for now
+		// the full fill solves it.
+		forceFillCodeLocations( transUnit );
+
+		PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) );
+		PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) );
+		PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) );
+
+		PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) );
+
+		PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) );
+		PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) );
+		PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) );
+		PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) );
+		PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) );
+		PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) );
+		PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) );
+		PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) );
+		PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) );
+		PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) );
+
+		PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) );
+
+		PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) );
+		PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) );
+		PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) );
+		PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) );
+		PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) );
+		PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) );
+
+		if ( symtabp ) {
+			return EXIT_SUCCESS;
+		} // if
+
+		if ( expraltp ) {
+			ResolvExpr::printCandidates( transUnit );
+			return EXIT_SUCCESS;
+		} // if
+
+		if ( validp ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		} // if
+
+		PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) );
+		PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) );
+		PASS( "Fix Names", CodeGen::fixNames( transUnit ) );
+		PASS( "Gen Init", InitTweak::genInit( transUnit ) );
+		PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) );
+
+		if ( libcfap ) {
+			// Generate the bodies of cfa library functions.
+			LibCfa::makeLibCfa( transUnit );
+		} // if
+
+		if ( declstatsp ) {
+			printDeclStats( transUnit );
+			return EXIT_SUCCESS;
+		} // if
+
+		if ( bresolvep ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		} // if
+
+		if ( resolvprotop ) {
+			dumpAsResolverProto( transUnit );
+			return EXIT_SUCCESS;
+		} // if
+
+		PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
+		if ( exprp ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		} // if
+
+		forceFillCodeLocations( transUnit );
+
+		PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary()));
+
+		// fix ObjectDecl - replaces ConstructorInit nodes
+		if ( ctorinitp ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		} // if
+
+		// Currently not working due to unresolved issues with UniqueExpr
+		PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
+
+		PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) );
+		PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) );
+
+		// Needs to happen before tuple types are expanded.
+		PASS( "Convert Specializations",  GenPoly::convertSpecializations( transUnit ) );
+
+		PASS( "Expand Tuples", Tuples::expandTuples( transUnit ) );
+
+		if ( tuplep ) {
+			dump( std::move( transUnit ) );
+			return EXIT_SUCCESS;
+		} // if
+
+		// Must come after Translate Tries.
+		PASS( "Virtual Expand Casts", Virtual::expandCasts( transUnit ) );
+
+		PASS( "Instantiate Generics", GenPoly::instantiateGeneric( transUnit ) );
+
+		translationUnit = convert( std::move( transUnit ) );
+
 		if ( genericsp ) {
 			dump( translationUnit );
@@ -620,5 +529,5 @@
 
 
-static const char optstring[] = ":c:ghlLmNnpdOAP:S:twW:D:";
+static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
 
 enum { PreludeDir = 128 };
@@ -634,6 +543,4 @@
 	{ "prototypes", no_argument, nullptr, 'p' },
 	{ "deterministic-out", no_argument, nullptr, 'd' },
-	{ "old-ast", no_argument, nullptr, 'O'},
-	{ "new-ast", no_argument, nullptr, 'A'},
 	{ "print", required_argument, nullptr, 'P' },
 	{ "prelude-dir", required_argument, nullptr, PreludeDir },
@@ -657,6 +564,4 @@
 	"do not generate prelude prototypes => prelude not printed", // -p
 	"only print deterministic output",                  // -d
-	"Use the old-ast",									// -O
-	"Use the new-ast",									// -A
 	"print",											// -P
 	"<directory> prelude directory for debug/nodebug",	// no flag
@@ -767,10 +672,4 @@
 			deterministic_output = true;
 			break;
-		  case 'O':                                     // don't print non-deterministic output
-			useNewAST = false;
-			break;
-		  case 'A':                                     // don't print non-deterministic output
-			useNewAST = true;
-			break;
 		  case 'P':										// print options
 			for ( int i = 0;; i += 1 ) {
@@ -889,5 +788,5 @@
 
 static void dump( ast::TranslationUnit && transUnit, ostream & out ) {
-	std::list< Declaration * > translationUnit = convert( move( transUnit ) );
+	std::list< Declaration * > translationUnit = convert( std::move( transUnit ) );
 	dump( translationUnit, out );
 }
Index: tests/.expect/KRfunctions.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/KRfunctions.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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))(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
+    {
+        ((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 __param_0, signed int __param_1);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
+    }
+
+    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: sts/.expect/KRfunctions.nast.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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))(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
-}
-signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
-    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
-    {
-        ((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 __param_0, signed int __param_1);
-    signed int _X1ai_2;
-    signed int _X1bi_2;
-    {
-        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
-    }
-
-    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: sts/.expect/KRfunctions.nast.x64.txt
===================================================================
--- tests/.expect/KRfunctions.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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))(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
-}
-signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
-    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
-    {
-        ((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 __param_0, signed int __param_1);
-    signed int _X1ai_2;
-    signed int _X1bi_2;
-    {
-        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
-    }
-
-    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: sts/.expect/KRfunctions.nast.x86.txt
===================================================================
--- tests/.expect/KRfunctions.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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))(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
-}
-signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
-    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
-    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
-    {
-        ((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 int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )10)];
-}
-signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned int )10)];
-}
-signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned 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 __param_0, signed int __param_1);
-    signed int _X1ai_2;
-    signed int _X1bi_2;
-    {
-        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
-    }
-
-    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: sts/.expect/KRfunctions.oast.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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: sts/.expect/KRfunctions.oast.x64.txt
===================================================================
--- tests/.expect/KRfunctions.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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_ret6)(signed int _X1xi_1, signed int _X1yi_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
-    }
-
-    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: sts/.expect/KRfunctions.oast.x86.txt
===================================================================
--- tests/.expect/KRfunctions.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,116 +1,0 @@
-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 int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )10)];
-}
-signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned int )10)];
-}
-signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned 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/KRfunctions.x64.txt
===================================================================
--- tests/.expect/KRfunctions.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/KRfunctions.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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))(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
+    {
+        ((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 __param_0, signed int __param_1);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
+    }
+
+    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/KRfunctions.x86.txt
===================================================================
--- tests/.expect/KRfunctions.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/KRfunctions.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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))(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_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 __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
+    {
+        ((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 int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )10)];
+}
+signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned int )10)];
+}
+signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned 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 __param_0, signed int __param_1);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
+    }
+
+    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: sts/.expect/alloc-ERROR.nast.txt
===================================================================
--- tests/.expect/alloc-ERROR.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,48 +1,0 @@
-alloc.cfa:382:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: realloc
-  ...to:
-    Name: stp
-    Applying untyped:
-      Name: ?*?
-    ...to:
-      Name: dim
-      Sizeof Expression on: Applying untyped:
-          Name: *?
-        ...to:
-          Name: stp
-
-      ... with resolved type:
-        unsigned long int
-
-
-
-alloc.cfa:383:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: memset
-  ...to:
-    Name: stp
-    Constant Expression (10: signed int)
-    ... with resolved type:
-      signed int
-
-
-alloc.cfa:384:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: memcpy
-  ...to:
-    Address of:
-      Name: st1
-    Address of:
-      Name: st
-
-
Index: sts/.expect/alloc-ERROR.oast.txt
===================================================================
--- tests/.expect/alloc-ERROR.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,48 +1,0 @@
-alloc.cfa:382:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: realloc
-  ...to:
-    Name: stp
-    Applying untyped:
-      Name: ?*?
-    ...to:
-      Name: dim
-      Sizeof Expression on: Applying untyped:
-          Name: *?
-        ...to:
-          Name: stp
-
-      with resolved type:
-        unsigned long int
-
-
-
-alloc.cfa:383:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: memset
-  ...to:
-    Name: stp
-    constant expression (10 10: signed int)
-    with resolved type:
-      signed int
-
-
-alloc.cfa:384:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?=?
-...to:
-  Name: ip
-  Applying untyped:
-    Name: memcpy
-  ...to:
-    Address of:
-      Name: st1
-    Address of:
-      Name: st
-
-
Index: tests/.expect/alloc-ERROR.txt
===================================================================
--- tests/.expect/alloc-ERROR.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/alloc-ERROR.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,48 @@
+alloc.cfa:382:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: ip
+  Applying untyped:
+    Name: realloc
+  ...to:
+    Name: stp
+    Applying untyped:
+      Name: ?*?
+    ...to:
+      Name: dim
+      Sizeof Expression on: Applying untyped:
+          Name: *?
+        ...to:
+          Name: stp
+
+      ... with resolved type:
+        unsigned long int
+
+
+
+alloc.cfa:383:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: ip
+  Applying untyped:
+    Name: memset
+  ...to:
+    Name: stp
+    Constant Expression (10: signed int)
+    ... with resolved type:
+      signed int
+
+
+alloc.cfa:384:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: ip
+  Applying untyped:
+    Name: memcpy
+  ...to:
+    Address of:
+      Name: st1
+    Address of:
+      Name: st
+
+
Index: tests/.expect/attributes.arm64.txt
===================================================================
--- tests/.expect/attributes.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/attributes.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1376 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __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;
+}
+__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
+    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
+    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
+__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+}
+__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
+__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
+}
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((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_object3)(signed int (*__param_0)(signed int __param_0)));
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
+    __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 [5]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        return (*_X4_dstM12__anonymous4_2);
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
+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: sts/.expect/attributes.nast.arm64.txt
===================================================================
--- tests/.expect/attributes.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1376 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __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;
-}
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
-    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
-    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
-__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
-}
-__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
-__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((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_object3)(signed int (*__param_0)(signed int __param_0)));
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
-    __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 [5]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
-        }
-
-        return (*_X4_dstM12__anonymous4_2);
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
-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: sts/.expect/attributes.nast.x64.txt
===================================================================
--- tests/.expect/attributes.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1376 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __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;
-}
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
-    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
-    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
-__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
-}
-__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
-__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((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_object3)(signed int (*__param_0)(signed int __param_0)));
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
-    __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 [5]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
-        }
-
-        return (*_X4_dstM12__anonymous4_2);
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
-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: sts/.expect/attributes.nast.x86.txt
===================================================================
--- tests/.expect/attributes.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1376 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __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;
-}
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
-    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
-    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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 int )5)];
-__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)];
-__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
-__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
-__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
-}
-__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
-__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
-}
-__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
-    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
-}
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((unsigned 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_object3)(signed int (*__param_0)(signed int __param_0)));
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned 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 [5]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
-        }
-
-        return (*_X4_dstM12__anonymous4_2);
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
-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: sts/.expect/attributes.oast.arm64.txt
===================================================================
--- tests/.expect/attributes.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,807 +1,0 @@
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
-    __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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
-    __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: sts/.expect/attributes.oast.x64.txt
===================================================================
--- tests/.expect/attributes.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1376 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __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;
-}
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
-    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
-    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
-__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
-}
-__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __anonymous_object2);
-__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object3){
-    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __anonymous_object4);
-}
-__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object5){
-    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __anonymous_object6);
-}
-__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object7){
-    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __anonymous_object8);
-}
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object9)(__attribute__ ((unused,unused)) signed int __anonymous_object10[((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_object11)(__attribute__ ((unused)) signed int (*__anonymous_object12)(__attribute__ ((unused,unused)) signed int __anonymous_object13)));
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
-    __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){
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
-        }
-
-        return (*_X4_dstM12__anonymous4_2);
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object16, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object17);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object18, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object19);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(__attribute__ ((unused)) signed int __anonymous_object23), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object27)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object28)(__attribute__ ((unused)) signed int __anonymous_object29), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object30)(__attribute__ ((unused)) signed int __anonymous_object31));
-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: sts/.expect/attributes.oast.x86.txt
===================================================================
--- tests/.expect/attributes.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1377 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __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;
-}
-__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
-    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
-    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
-    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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 int )5)];
-__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)];
-__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
-__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
-__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
-}
-__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __anonymous_object2);
-__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object3){
-    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __anonymous_object4);
-}
-__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object5){
-    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __anonymous_object6);
-}
-__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object7){
-    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __anonymous_object8);
-}
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object9)(__attribute__ ((unused,unused)) signed int __anonymous_object10[((unsigned 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_object11)(__attribute__ ((unused)) signed int (*__anonymous_object12)(__attribute__ ((unused,unused)) signed int __anonymous_object13)));
-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;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned 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 int )5)]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[((unsigned 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));
-        }
-
-        return _X4_retM12__anonymous4_2;
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object16, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object17);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object18, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object19);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(__attribute__ ((unused)) signed int __anonymous_object23), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object27)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object28)(__attribute__ ((unused)) signed int __anonymous_object29), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object30)(__attribute__ ((unused)) signed int __anonymous_object31));
-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/attributes.x64.txt
===================================================================
--- tests/.expect/attributes.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/attributes.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1376 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __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;
+}
+__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
+    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
+    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
+__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+}
+__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
+__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
+}
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((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_object3)(signed int (*__param_0)(signed int __param_0)));
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
+    __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 [5]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        return (*_X4_dstM12__anonymous4_2);
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
+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/attributes.x86.txt
===================================================================
--- tests/.expect/attributes.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/attributes.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1376 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __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;
+}
+__attribute__ ((unused)) struct __anonymous0 _X5DummyS12__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)) signed int *_X2f9Pi_1;
+    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
+    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
+    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_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)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X4_srcS3Fdl_1._X3f10Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X4_srcS3Fdl_1._X3f11Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X4_srcS3Fdl_1._X3f12Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X4_srcS3Fdl_1._X3f13Pi_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X4_srcS3Fdl_1._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_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)) 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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_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)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_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) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_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 int )5)];
+__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)];
+__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
+__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___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,used,unused,unused)) signed int (*_X2f4FPA0i_i__1(signed int __anonymous_object1))[];
+__attribute__ ((unused,unused)) signed int (*_X2f5FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f5PA0i_1)[];
+}
+__attribute__ ((unused,unused)) signed int (*_X2f6FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
+__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
+}
+__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
+}
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___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_object2)(signed int __param_0[((unsigned 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_object3)(signed int (*__param_0)(signed int __param_0)));
+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;
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned 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 [5]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed 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){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        return (*_X4_dstM12__anonymous4_2);
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object4, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object5);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(signed int __param_0));
+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: sts/.expect/bitmanip2.nast.x86.txt
===================================================================
--- tests/.expect/bitmanip2.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1348 +1,0 @@
-
-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
-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 long 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 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
-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 long int
-0b00000000000000000000000000000000 0
-0b00000000000000000000000000000000 1
-0b00000000000000000000000000000000 2
-0b00000000000000000000000000000000 3
-0b00000000000000000000000000000000 4
-0b00000000000000000000000000000000 5
-0b00000000000000000000000000000000 6
-0b00000000000000000000000000000000 7
-0b00000000000000000000000000000000 8
-0b00000000000000000000000000000000 9
-0b00000000000000000000000000000000 10
-0b00000000000000000000000000000000 11
-0b00000000000000000000000000000000 12
-0b00000000000000000000000000000000 13
-0b00000000000000000000000000000000 14
-0b00000000000000000000000000000000 15
-0b00000000000000000000000000000000 16
-0b00000000000000000000000000000000 17
-0b00000000000000000000000000000000 18
-0b00000000000000000000000000000000 19
-0b00000000000000000000000000000000 20
-0b00000000000000000000000000000000 21
-0b00000000000000000000000000000000 22
-0b00000000000000000000000000000000 23
-0b00000000000000000000000000000000 24
-0b00000000000000000000000000000000 25
-0b00000000000000000000000000000000 26
-0b00000000000000000000000000000000 27
-0b00000000000000000000000000000000 28
-0b00000000000000000000000000000000 29
-0b00000000000000000000000000000000 30
-0b00000000000000000000000000000000 31
-0b00000000000000000000000000000000 32
-
-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
-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 long 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 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
-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 long 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 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/bitmanip2.x86.txt
===================================================================
--- tests/.expect/bitmanip2.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/bitmanip2.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1348 @@
+
+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
+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 long 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 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
+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 long int
+0b00000000000000000000000000000000 0
+0b00000000000000000000000000000000 1
+0b00000000000000000000000000000000 2
+0b00000000000000000000000000000000 3
+0b00000000000000000000000000000000 4
+0b00000000000000000000000000000000 5
+0b00000000000000000000000000000000 6
+0b00000000000000000000000000000000 7
+0b00000000000000000000000000000000 8
+0b00000000000000000000000000000000 9
+0b00000000000000000000000000000000 10
+0b00000000000000000000000000000000 11
+0b00000000000000000000000000000000 12
+0b00000000000000000000000000000000 13
+0b00000000000000000000000000000000 14
+0b00000000000000000000000000000000 15
+0b00000000000000000000000000000000 16
+0b00000000000000000000000000000000 17
+0b00000000000000000000000000000000 18
+0b00000000000000000000000000000000 19
+0b00000000000000000000000000000000 20
+0b00000000000000000000000000000000 21
+0b00000000000000000000000000000000 22
+0b00000000000000000000000000000000 23
+0b00000000000000000000000000000000 24
+0b00000000000000000000000000000000 25
+0b00000000000000000000000000000000 26
+0b00000000000000000000000000000000 27
+0b00000000000000000000000000000000 28
+0b00000000000000000000000000000000 29
+0b00000000000000000000000000000000 30
+0b00000000000000000000000000000000 31
+0b00000000000000000000000000000000 32
+
+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
+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 long 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 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
+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 long 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 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: sts/.expect/castError.nast.txt
===================================================================
--- tests/.expect/castError.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,112 +1,0 @@
-castError.cfa:23:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: f
-... to:
-  char
-... with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: double
-      ... with resolved type:
-        double
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      ... with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: signed int
-      ... with resolved type:
-        signed int
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
-castError.cfa:28:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Comma Expression:
-    Constant Expression (3: signed int)
-    ... with resolved type:
-      signed int
-    Name: v
-... to: nothing
-... with resolved type:
-  void Alternatives are:
-Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
-      Comma Expression:
-        Constant Expression (3: signed int)
-        ... with resolved type:
-          signed int
-        Variable Expression: v: signed short int
-        ... with resolved type:
-          signed short int
-      ... with resolved type:
-        signed short int
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:
-
-Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
-      Comma Expression:
-        Constant Expression (3: signed int)
-        ... with resolved type:
-          signed int
-        Variable Expression: v: unsigned char
-        ... with resolved type:
-          unsigned char
-      ... with resolved type:
-        unsigned char
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:
-
-
-castError.cfa:30:1 error: Invalid application of existing declaration(s) in expression Explicit Cast of:
-  Name: sint
-... to:
-  instance of struct S with body
-  ... with parameters
-    char
-
-... with resolved type:
-  instance of struct S with body
-  ... with parameters
-    char
-
Index: sts/.expect/castError.oast.txt
===================================================================
--- tests/.expect/castError.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,112 +1,0 @@
-castError.cfa:23:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: f
-... to:
-  char
-with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: double
-      with resolved type:
-        double
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: f: signed int
-      with resolved type:
-        signed int
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
-castError.cfa:28:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Comma Expression:
-    constant expression (3 3: signed int)
-    with resolved type:
-      signed int
-    Name: v
-... to: nothing
-with resolved type:
-  void  Alternatives are:
-Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
-      Comma Expression:
-        constant expression (3 3: signed int)
-        with resolved type:
-          signed int
-        Variable Expression: v: signed short int
-        with resolved type:
-          signed short int
-      with resolved type:
-        signed short int
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:
-
-Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
-      Comma Expression:
-        constant expression (3 3: signed int)
-        with resolved type:
-          signed int
-        Variable Expression: v: unsigned char
-        with resolved type:
-          unsigned char
-      with resolved type:
-        unsigned char
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:
-
-
-castError.cfa:30:1 error: No reasonable alternatives for expression Explicit Cast of:
-  Name: sint
-... to:
-  instance of struct S with body 1
-  ... with parameters
-    char
-
-with resolved type:
-  instance of struct S with body 1
-  ... with parameters
-    char
-
Index: tests/.expect/castError.txt
===================================================================
--- tests/.expect/castError.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/castError.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,112 @@
+castError.cfa:23:1 error: Cannot choose between 3 alternatives for expression
+Explicit Cast of:
+  Name: f
+... to:
+  char
+... with resolved type:
+  char Alternatives are:
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: f: double
+      ... with resolved type:
+        double
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: f: function
+        accepting unspecified arguments
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: f: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+
+castError.cfa:28:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Comma Expression:
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+    Name: v
+... to: nothing
+... with resolved type:
+  void Alternatives are:
+Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
+      Comma Expression:
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Variable Expression: v: signed short int
+        ... with resolved type:
+          signed short int
+      ... with resolved type:
+        signed short int
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
+      Comma Expression:
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Variable Expression: v: unsigned char
+        ... with resolved type:
+          unsigned char
+      ... with resolved type:
+        unsigned char
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+
+castError.cfa:30:1 error: Invalid application of existing declaration(s) in expression Explicit Cast of:
+  Name: sint
+... to:
+  instance of struct S with body
+  ... with parameters
+    char
+
+... with resolved type:
+  instance of struct S with body
+  ... with parameters
+    char
+
Index: tests/.expect/declarationSpecifier.arm64.txt
===================================================================
--- tests/.expect/declarationSpecifier.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/.expect/declarationSpecifier.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -735,4 +735,6 @@
 }
 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+_Thread_local signed int _X3x37i_1;
+__thread signed int _X3x38i_1;
 static inline volatile const signed int _X3f11Fi___1();
 static inline volatile const signed int _X3f12Fi___1();
Index: tests/.expect/declarationSpecifier.x64.txt
===================================================================
--- tests/.expect/declarationSpecifier.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/.expect/declarationSpecifier.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -735,4 +735,6 @@
 }
 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+_Thread_local signed int _X3x37i_1;
+__thread signed int _X3x38i_1;
 static inline volatile const signed int _X3f11Fi___1();
 static inline volatile const signed int _X3f12Fi___1();
Index: tests/.expect/declarationSpecifier.x86.txt
===================================================================
--- tests/.expect/declarationSpecifier.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/.expect/declarationSpecifier.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -735,4 +735,6 @@
 }
 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
+_Thread_local signed int _X3x37i_1;
+__thread signed int _X3x38i_1;
 static inline volatile const signed int _X3f11Fi___1();
 static inline volatile const signed int _X3f12Fi___1();
Index: tests/.expect/functions.arm64.txt
===================================================================
--- tests/.expect/functions.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/functions.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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_object4);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
+    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
+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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
+    __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_object12, 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_object13, 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_object14);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object15);
+const double _X4bar3Fd_d__1(double __anonymous_object16);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object17);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
+    __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_object19){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
+    __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 __param_0);
+}
+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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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: sts/.expect/functions.nast.arm64.txt
===================================================================
--- tests/.expect/functions.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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_object4);
-signed int _X1fFi___1(void){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
-    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
-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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
-    __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_object12, 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_object13, 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_object14);
-signed int _X3f12Fi___1(void);
-const double _X4bar1Fd___1();
-const double _X4bar2Fd_i__1(signed int __anonymous_object15);
-const double _X4bar3Fd_d__1(double __anonymous_object16);
-const double _X3fooFd___1(void);
-const double _X3fooFd_i__1(signed int __anonymous_object17);
-const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
-    __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_object19){
-    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
-}
-signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
-    __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 __param_0);
-}
-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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
-signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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: sts/.expect/functions.nast.x64.txt
===================================================================
--- tests/.expect/functions.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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_object4);
-signed int _X1fFi___1(void){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
-    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
-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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
-    __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_object12, 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_object13, 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_object14);
-signed int _X3f12Fi___1(void);
-const double _X4bar1Fd___1();
-const double _X4bar2Fd_i__1(signed int __anonymous_object15);
-const double _X4bar3Fd_d__1(double __anonymous_object16);
-const double _X3fooFd___1(void);
-const double _X3fooFd_i__1(signed int __anonymous_object17);
-const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
-    __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_object19){
-    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
-}
-signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
-    __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 __param_0);
-}
-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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
-signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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: sts/.expect/functions.nast.x86.txt
===================================================================
--- tests/.expect/functions.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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 int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)];
-}
-signed int (*_X3f12FPA0A0i___1())[][((unsigned int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned 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_object4);
-signed int _X1fFi___1(void){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
-    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
-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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
-    __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_object12, 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_object13, 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_object14);
-signed int _X3f12Fi___1(void);
-const double _X4bar1Fd___1();
-const double _X4bar2Fd_i__1(signed int __anonymous_object15);
-const double _X4bar3Fd_d__1(double __anonymous_object16);
-const double _X3fooFd___1(void);
-const double _X3fooFd_i__1(signed int __anonymous_object17);
-const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
-    __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_object19){
-    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
-}
-signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)];
-    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)];
-    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
-}
-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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
-signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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: sts/.expect/functions.oast.arm64.txt
===================================================================
--- tests/.expect/functions.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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: sts/.expect/functions.oast.x64.txt
===================================================================
--- tests/.expect/functions.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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: sts/.expect/functions.oast.x86.txt
===================================================================
--- tests/.expect/functions.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,283 +1,0 @@
-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 int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)];
-}
-signed int (*_X3f12FPA0A0i___1())[][((unsigned int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned 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 int )10)])[][((unsigned int )3)];
-    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned 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 int )10)], signed int **__anonymous_object34, signed int *__anonymous_object35[((unsigned int )10)], signed int ***__anonymous_object36, signed int **__anonymous_object37[((unsigned int )10)], signed int *const **__anonymous_object38, signed int *const *__anonymous_object39[((unsigned int )10)], signed int *const *const *__anonymous_object40, signed int *const *const __anonymous_object41[((unsigned 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 int )10)], __attribute__ ((unused)) signed int **__anonymous_object49, __attribute__ ((unused)) signed int *__anonymous_object50[((unsigned int )10)], __attribute__ ((unused)) signed int ***__anonymous_object51, __attribute__ ((unused)) signed int **__anonymous_object52[((unsigned int )10)], __attribute__ ((unused)) signed int *const **__anonymous_object53, __attribute__ ((unused)) signed int *const *__anonymous_object54[((unsigned int )10)], __attribute__ ((unused)) signed int *const *const *__anonymous_object55, __attribute__ ((unused)) signed int *const *const __anonymous_object56[((unsigned 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/functions.x64.txt
===================================================================
--- tests/.expect/functions.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/functions.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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_object4);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
+    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
+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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
+    __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_object12, 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_object13, 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_object14);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object15);
+const double _X4bar3Fd_d__1(double __anonymous_object16);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object17);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
+    __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_object19){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
+    __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 __param_0);
+}
+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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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/functions.x86.txt
===================================================================
--- tests/.expect/functions.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/functions.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -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 __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), 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 int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)];
+}
+signed int (*_X3f12FPA0A0i___1())[][((unsigned int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned 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_object4);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
+    __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_object6, 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_object7, 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_object8, signed int _X1xi_1, signed int __anonymous_object9);
+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_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
+    __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_object12, 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_object13, 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_object14);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object15);
+const double _X4bar3Fd_d__1(double __anonymous_object16);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object17);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
+    __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_object19){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)];
+    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)];
+    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
+}
+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_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[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: sts/.expect/init1-ERROR.nast.txt
===================================================================
--- tests/.expect/init1-ERROR.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,66 +1,0 @@
-init1.cfa:134:25: warning: Compiled
-init1.cfa:56:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
-  Name: rx  InitAlternative: reference to signed int
-init1.cfa:57:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
-  Name: px  InitAlternative: pointer to signed int
-init1.cfa:60:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
-  Name: crx  InitAlternative: reference to float
-init1.cfa:61:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
-  Name: cpx  InitAlternative: pointer to float
-init1.cfa:104:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
-  Name: rx
-... to:
-  reference to signed int
-... with resolved type:
-  reference to signed int
-init1.cfa:107:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py: pointer to signed int
-    ... with resolved type:
-      pointer to signed int
-  ... to:
-    reference to pointer to signed int
-  ... with resolved type:
-    reference to pointer to signed int
-  Name: px
-
-init1.cfa:114:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
-  Name: crx
-... to:
-  reference to float
-... with resolved type:
-  reference to float
-init1.cfa:117:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py2: pointer to float
-    ... with resolved type:
-      pointer to float
-  ... to:
-    reference to pointer to float
-  ... with resolved type:
-    reference to pointer to float
-  Name: cpx
-
-init1.cfa:124:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
-  Name: s
-... to:
-  reference to instance of type T (not function type)
-... with resolved type:
-  reference to instance of type T (not function type)
-init1.cfa:128:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
-    ... with resolved type:
-      pointer to instance of type T (not function type)
-  ... to:
-    reference to pointer to instance of type T (not function type)
-  ... with resolved type:
-    reference to pointer to instance of type T (not function type)
-  Name: s
-
Index: sts/.expect/init1-ERROR.oast.txt
===================================================================
--- tests/.expect/init1-ERROR.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,65 +1,0 @@
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: cpx  InitAlternative: pointer to float
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: crx  InitAlternative: reference to float
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: px  InitAlternative: pointer to signed int
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: rx  InitAlternative: reference to signed int
-init1.cfa:104:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: rx
-... to:
-  reference to signed int
-with resolved type:
-  reference to signed int
-init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py: pointer to signed int
-    with resolved type:
-      pointer to signed int
-  ... to:
-    reference to pointer to signed int
-  with resolved type:
-    reference to pointer to signed int
-  Name: px
-
-init1.cfa:114:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: crx
-... to:
-  reference to float
-with resolved type:
-  reference to float
-init1.cfa:117:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py2: pointer to float
-    with resolved type:
-      pointer to float
-  ... to:
-    reference to pointer to float
-  with resolved type:
-    reference to pointer to float
-  Name: cpx
-
-init1.cfa:124:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: s
-... to:
-  reference to instance of type T (not function type)
-with resolved type:
-  reference to instance of type T (not function type)
-init1.cfa:128:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
-    with resolved type:
-      pointer to instance of type T (not function type)
-  ... to:
-    reference to pointer to instance of type T (not function type)
-  with resolved type:
-    reference to pointer to instance of type T (not function type)
-  Name: s
-
Index: tests/.expect/init1-ERROR.txt
===================================================================
--- tests/.expect/init1-ERROR.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/init1-ERROR.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,66 @@
+init1.cfa:134:25: warning: Compiled
+init1.cfa:56:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: rx  InitAlternative: reference to signed int
+init1.cfa:57:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: px  InitAlternative: pointer to signed int
+init1.cfa:60:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: crx  InitAlternative: reference to float
+init1.cfa:61:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: cpx  InitAlternative: pointer to float
+init1.cfa:104:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
+  Name: rx
+... to:
+  reference to signed int
+... with resolved type:
+  reference to signed int
+init1.cfa:107:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_f_py: pointer to signed int
+    ... with resolved type:
+      pointer to signed int
+  ... to:
+    reference to pointer to signed int
+  ... with resolved type:
+    reference to pointer to signed int
+  Name: px
+
+init1.cfa:114:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
+  Name: crx
+... to:
+  reference to float
+... with resolved type:
+  reference to float
+init1.cfa:117:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_f_py2: pointer to float
+    ... with resolved type:
+      pointer to float
+  ... to:
+    reference to pointer to float
+  ... with resolved type:
+    reference to pointer to float
+  Name: cpx
+
+init1.cfa:124:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
+  Name: s
+... to:
+  reference to instance of type T (not function type)
+... with resolved type:
+  reference to instance of type T (not function type)
+init1.cfa:128:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
+    ... with resolved type:
+      pointer to instance of type T (not function type)
+  ... to:
+    reference to pointer to instance of type T (not function type)
+  ... with resolved type:
+    reference to pointer to instance of type T (not function type)
+  Name: s
+
Index: tests/.expect/math.arm64.txt
===================================================================
--- tests/.expect/math.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/math.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,71 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.1
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904523536028747135266 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.4686939399158851571389675973266+2.2873552871788423912081719067005i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904523536028747135266
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098870780956742879583+0.705394566961838155200168314152112i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
+log2:10 17 23
+log2:10 17 23
+log2:10 17 23
+log2:10. 17. 23.
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309417232121458177
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780996603980119524068+0.455089860562227341304357757822469i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.4142135623730950488016887242097
+sin:0.841471 0.841470984807897 0.841470984807896506652502321630299 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729482604236580782+0.63496391478473610825508220299151i
+cos:0.540302 0.54030230586814 0.540302305868139717400936607442977 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149048883885394335094-0.988897705762865096382129540892686i
+tan:1.55741 1.5574077246549 1.55740772465490223050697480745836 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511716528843722498589+1.08392332733869454347575206121197i
+asin:1.5708 1.5707963267949 1.57079632679489661923132169163975 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255104004895977793+1.06127506190503565203301891621357i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364127316795661959-1.06127506190503565203301891621357i
+atan:0.785398 0.785398163397448 0.785398163397448309615660845819876 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785136772278896155048+0.402359478108525093650189833306547i
+atan2:0.785398 0.785398163397448 0.785398163397448309615660845819876 atan:0.785398 0.785398163397448 0.785398163397448309615660845819876
+sinh:1.1752 1.1752011936438 1.1752011936438014568823818505956 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.63496391478473610825508220299151+1.29845758141597729482604236580782i
+cosh:1.54308 1.54308063481524 1.54308063481524377847790562075706 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149048883885394335094+0.988897705762865096382129540892686i
+tanh:0.761594 0.761594155955765 0.761594155955764888119458282604794 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454347575206121197+0.271752585319511716528843722498589i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565203301891621357+0.904556894302381364127316795661959i
+asinh:0.881374 0.881373587019543 0.881373587019543025232609324979792 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565203301891621357+0.666239432492515255104004895977793i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525093650189833306547+1.01722196789785136772278896155048i
+erf:0.842701 0.842700792949715 0.842700792949714869341220635082609
+erfc:0.157299 0.157299207050285 0.157299207050285130658779364917391
+lgamma:1.79176 1.79175946922805 1.7917594692280550008124773583807
+lgamma:1.79176 1 1.79175946922805 1 1.7917594692280550008124773583807 1
+tgamma:6. 6. 6.
+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: sts/.expect/math.nast.arm64.txt
===================================================================
--- tests/.expect/math.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,71 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.1
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904523536028747135266 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.4686939399158851571389675973266+2.2873552871788423912081719067005i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904523536028747135266
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098870780956742879583+0.705394566961838155200168314152112i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
-log2:10 17 23
-log2:10 17 23
-log2:10 17 23
-log2:10. 17. 23.
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309417232121458177
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780996603980119524068+0.455089860562227341304357757822469i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.4142135623730950488016887242097
-sin:0.841471 0.841470984807897 0.841470984807896506652502321630299 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729482604236580782+0.63496391478473610825508220299151i
-cos:0.540302 0.54030230586814 0.540302305868139717400936607442977 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149048883885394335094-0.988897705762865096382129540892686i
-tan:1.55741 1.5574077246549 1.55740772465490223050697480745836 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511716528843722498589+1.08392332733869454347575206121197i
-asin:1.5708 1.5707963267949 1.57079632679489661923132169163975 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255104004895977793+1.06127506190503565203301891621357i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364127316795661959-1.06127506190503565203301891621357i
-atan:0.785398 0.785398163397448 0.785398163397448309615660845819876 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785136772278896155048+0.402359478108525093650189833306547i
-atan2:0.785398 0.785398163397448 0.785398163397448309615660845819876 atan:0.785398 0.785398163397448 0.785398163397448309615660845819876
-sinh:1.1752 1.1752011936438 1.1752011936438014568823818505956 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.63496391478473610825508220299151+1.29845758141597729482604236580782i
-cosh:1.54308 1.54308063481524 1.54308063481524377847790562075706 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149048883885394335094+0.988897705762865096382129540892686i
-tanh:0.761594 0.761594155955765 0.761594155955764888119458282604794 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454347575206121197+0.271752585319511716528843722498589i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565203301891621357+0.904556894302381364127316795661959i
-asinh:0.881374 0.881373587019543 0.881373587019543025232609324979792 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565203301891621357+0.666239432492515255104004895977793i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525093650189833306547+1.01722196789785136772278896155048i
-erf:0.842701 0.842700792949715 0.842700792949714869341220635082609
-erfc:0.157299 0.157299207050285 0.157299207050285130658779364917391
-lgamma:1.79176 1.79175946922805 1.7917594692280550008124773583807
-lgamma:1.79176 1 1.79175946922805 1 1.7917594692280550008124773583807 1
-tgamma:6. 6. 6.
-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: sts/.expect/math.nast.x64.txt
===================================================================
--- tests/.expect/math.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,71 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:10 17 23
-log2:10 17 23
-log2:10 17 23
-log2:10. 17. 23.
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
-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: sts/.expect/math.nast.x86.txt
===================================================================
--- tests/.expect/math.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,70 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:10 17 23
-log2:10 17 23
-log2:10 17 23
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
-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/.expect/math.x64.txt
===================================================================
--- tests/.expect/math.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/math.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,71 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:10 17 23
+log2:10 17 23
+log2:10 17 23
+log2:10. 17. 23.
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
+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/.expect/math.x86.txt
===================================================================
--- tests/.expect/math.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/math.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,70 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:10 17 23
+log2:10 17 23
+log2:10 17 23
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
+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: sts/.expect/math1.oast.arm64.txt
===================================================================
--- tests/.expect/math1.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,17 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.1
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904523536028747135266 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.4686939399158851571389675973266+2.2873552871788423912081719067005i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904523536028747135266
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098870780956742879583+0.705394566961838155200168314152112i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
Index: sts/.expect/math1.oast.x64.txt
===================================================================
--- tests/.expect/math1.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,17 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
Index: sts/.expect/math1.oast.x86.txt
===================================================================
--- tests/.expect/math1.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,17 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
Index: sts/.expect/math2.oast.arm64.txt
===================================================================
--- tests/.expect/math2.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,16 +1,0 @@
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309417232121458177
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780996603980119524068+0.455089860562227341304357757822469i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.4142135623730950488016887242097
-sin:0.841471 0.841470984807897 0.841470984807896506652502321630299 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729482604236580782+0.63496391478473610825508220299151i
-cos:0.540302 0.54030230586814 0.540302305868139717400936607442977 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149048883885394335094-0.988897705762865096382129540892686i
-tan:1.55741 1.5574077246549 1.55740772465490223050697480745836 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511716528843722498589+1.08392332733869454347575206121197i
-asin:1.5708 1.5707963267949 1.57079632679489661923132169163975 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255104004895977793+1.06127506190503565203301891621357i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364127316795661959-1.06127506190503565203301891621357i
-atan:0.785398 0.785398163397448 0.785398163397448309615660845819876 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785136772278896155048+0.402359478108525093650189833306547i
-atan2:0.785398 0.785398163397448 0.785398163397448309615660845819876 atan:0.785398 0.785398163397448 0.785398163397448309615660845819876
Index: sts/.expect/math2.oast.x64.txt
===================================================================
--- tests/.expect/math2.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,16 +1,0 @@
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: sts/.expect/math2.oast.x86.txt
===================================================================
--- tests/.expect/math2.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,16 +1,0 @@
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: sts/.expect/math3.oast.arm64.txt
===================================================================
--- tests/.expect/math3.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,11 +1,0 @@
-sinh:1.1752 1.1752011936438 1.1752011936438014568823818505956 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.63496391478473610825508220299151+1.29845758141597729482604236580782i
-cosh:1.54308 1.54308063481524 1.54308063481524377847790562075706 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149048883885394335094+0.988897705762865096382129540892686i
-tanh:0.761594 0.761594155955765 0.761594155955764888119458282604794 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454347575206121197+0.271752585319511716528843722498589i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565203301891621357+0.904556894302381364127316795661959i
-asinh:0.881374 0.881373587019543 0.881373587019543025232609324979792 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565203301891621357+0.666239432492515255104004895977793i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525093650189833306547+1.01722196789785136772278896155048i
-erf:0.842701 0.842700792949715 0.842700792949714869341220635082609
-erfc:0.157299 0.157299207050285 0.157299207050285130658779364917391
-lgamma:1.79176 1.79175946922805 1.7917594692280550008124773583807
-lgamma:1.79176 1 1.79175946922805 1 1.7917594692280550008124773583807 1
-tgamma:6. 6. 6.
Index: sts/.expect/math3.oast.x64.txt
===================================================================
--- tests/.expect/math3.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,11 +1,0 @@
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
Index: sts/.expect/math3.oast.x86.txt
===================================================================
--- tests/.expect/math3.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,11 +1,0 @@
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
Index: sts/.expect/math4.oast.arm64.txt
===================================================================
--- tests/.expect/math4.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1196 +1,0 @@
-
-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: sts/.expect/math4.oast.x64.txt
===================================================================
--- tests/.expect/math4.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1196 +1,0 @@
-
-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: sts/.expect/math4.oast.x86.txt
===================================================================
--- tests/.expect/math4.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1004 +1,0 @@
-
-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(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
-
-unsigned long 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 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) = -1, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
-
-unsigned long 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 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) = -1073741824, ceiling(-1073741826, 1073741824) = 0
-ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
-
-unsigned long 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 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/.expect/mathX.arm64.txt
===================================================================
--- tests/.expect/mathX.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/mathX.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1173 @@
+
+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
+
Index: sts/.expect/mathX.nast.arm64.txt
===================================================================
--- tests/.expect/mathX.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1173 +1,0 @@
-
-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
-
Index: sts/.expect/mathX.nast.x64.txt
===================================================================
--- tests/.expect/mathX.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1173 +1,0 @@
-
-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
-
Index: sts/.expect/mathX.nast.x86.txt
===================================================================
--- tests/.expect/mathX.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,981 +1,0 @@
-
-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(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
-
-unsigned long 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 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) = -1, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
-
-unsigned long 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 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) = -1073741824, ceiling(-1073741826, 1073741824) = 0
-ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
-
-unsigned long 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 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
-
Index: tests/.expect/mathX.x64.txt
===================================================================
--- tests/.expect/mathX.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/mathX.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1173 @@
+
+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
+
Index: tests/.expect/mathX.x86.txt
===================================================================
--- tests/.expect/mathX.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/mathX.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,981 @@
+
+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(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
+
+unsigned long 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 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) = -1, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
+
+unsigned long 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 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) = -1073741824, ceiling(-1073741826, 1073741824) = 0
+ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
+
+unsigned long 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 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
+
Index: sts/.expect/nested-types-ERR2.nast.txt
===================================================================
--- tests/.expect/nested-types-ERR2.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,7 +1,0 @@
-nested-types.cfa:100:25: warning: Compiled
-nested-types.cfa:86:1 error: Use of undefined global type Z
-nested-types.cfa:87:1 error: Qualified type requires an aggregate on the left, but has: signed int
-nested-types.cfa:88:1 error: Undefined type in qualified type: Qualified Type:
-  instance of struct S with body
-  instance of type Z (not function type)
-
Index: sts/.expect/nested-types-ERR2.oast.txt
===================================================================
--- tests/.expect/nested-types-ERR2.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,7 +1,0 @@
-nested-types.cfa:100:25: warning: Compiled
-nested-types.cfa:86:1 error: Use of undefined global type Z
-nested-types.cfa:87:1 error: Qualified type requires an aggregate on the left, but has: signed int
-nested-types.cfa:88:1 error: Undefined type in qualified type: Qualified Type:
-  instance of struct S with body 1
-  instance of type Z (not function type)
-
Index: tests/.expect/nested-types-ERR2.txt
===================================================================
--- tests/.expect/nested-types-ERR2.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/.expect/nested-types-ERR2.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,7 @@
+nested-types.cfa:100:25: warning: Compiled
+nested-types.cfa:86:1 error: Use of undefined global type Z
+nested-types.cfa:87:1 error: Qualified type requires an aggregate on the left, but has: signed int
+nested-types.cfa:88:1 error: Undefined type in qualified type: Qualified Type:
+  instance of struct S with body
+  instance of type Z (not function type)
+
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/Makefile.am	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -54,5 +54,5 @@
 
 # adjust CC to current flags
-CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
+CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS})
 CFACC = $(CC)
 
@@ -61,5 +61,5 @@
 
 # adjusted CC but without the actual distcc call
-CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
+CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS})
 CFACCLINK = $(CFACCLOCAL) -quiet $(if $(test), 2> $(test), ) $($(shell echo "${@}_FLAGSLD" | sed 's/-\|\//_/g'))
 
Index: sts/array-container/.expect/language-dim-mismatch.nast.txt
===================================================================
--- tests/array-container/.expect/language-dim-mismatch.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,10 +1,0 @@
-array-container/language-dim-mismatch.cfa:12:1 error: Type argument given for value parameter: instance of struct SN with body
-... with parameters
-  float
-
-array-container/language-dim-mismatch.cfa:13:1 error: Expression argument given for type parameter: instance of struct ST with body
-... with parameters
-  Constant Expression (42: signed int)
-  ... with resolved type:
-    signed int
-
Index: sts/array-container/.expect/language-dim-mismatch.oast.txt
===================================================================
--- tests/array-container/.expect/language-dim-mismatch.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,10 +1,0 @@
-array-container/language-dim-mismatch.cfa:12:1 error: Type argument given for value parameter: instance of struct SN with body 1
-... with parameters
-  float
-
-array-container/language-dim-mismatch.cfa:13:1 error: Expression argument given for type parameter: instance of struct ST with body 1
-... with parameters
-  constant expression (42 42: signed int)
-  with resolved type:
-    signed int
-
Index: tests/array-container/.expect/language-dim-mismatch.txt
===================================================================
--- tests/array-container/.expect/language-dim-mismatch.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/array-container/.expect/language-dim-mismatch.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,10 @@
+array-container/language-dim-mismatch.cfa:12:1 error: Type argument given for value parameter: instance of struct SN with body
+... with parameters
+  float
+
+array-container/language-dim-mismatch.cfa:13:1 error: Expression argument given for type parameter: instance of struct ST with body
+... with parameters
+  Constant Expression (42: signed int)
+  ... with resolved type:
+    signed int
+
Index: sts/concurrent/.expect/keywordErrors.nast.txt
===================================================================
--- tests/concurrent/.expect/keywordErrors.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,6 +1,0 @@
-concurrent/keywordErrors.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread A with body
-
-concurrent/keywordErrors.cfa:6:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread B with body
-
Index: sts/concurrent/.expect/keywordErrors.oast.txt
===================================================================
--- tests/concurrent/.expect/keywordErrors.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,6 +1,0 @@
-concurrent/keywordErrors.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread A: with body 1
-
-concurrent/keywordErrors.cfa:6:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread B: with body 1
-
Index: tests/concurrent/.expect/keywordErrors.txt
===================================================================
--- tests/concurrent/.expect/keywordErrors.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/concurrent/.expect/keywordErrors.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,6 @@
+concurrent/keywordErrors.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
+thread A with body
+
+concurrent/keywordErrors.cfa:6:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
+thread B with body
+
Index: sts/concurrent/.expect/mainError.nast.txt
===================================================================
--- tests/concurrent/.expect/mainError.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,11 +1,0 @@
-concurrent/mainError.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread Test with body
-
-concurrent/mainError.cfa:2:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-main: function
-... with parameters
-  reference to instance of struct Test with body
-... returning nothing
- with body
-  Compound Statement:
-
Index: sts/concurrent/.expect/mainError.oast.txt
===================================================================
--- tests/concurrent/.expect/mainError.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,11 +1,0 @@
-concurrent/mainError.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-thread Test: with body 1
-
-concurrent/mainError.cfa:2:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
-main: function
-... with parameters
-  reference to instance of struct Test with body 1
-... returning nothing
-... with body
-  CompoundStmt
-
Index: tests/concurrent/.expect/mainError.txt
===================================================================
--- tests/concurrent/.expect/mainError.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/concurrent/.expect/mainError.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,11 @@
+concurrent/mainError.cfa:1:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
+thread Test with body
+
+concurrent/mainError.cfa:2:1 error: thread keyword requires threads to be in scope, add #include <thread.hfa>
+main: function
+... with parameters
+  reference to instance of struct Test with body
+... returning nothing
+ with body
+  Compound Statement:
+
Index: tests/concurrent/clib.c
===================================================================
--- tests/concurrent/clib.c	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/concurrent/clib.c	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -8,5 +8,5 @@
 }
 
-thread_local struct drand48_data buffer = { 0 };
+_Thread_local struct drand48_data buffer = { 0 };
 int myrand() {
 	long int result;
Index: tests/concurrent/clib_tls.c
===================================================================
--- tests/concurrent/clib_tls.c	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/concurrent/clib_tls.c	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -14,5 +14,5 @@
 
 
-thread_local int checkval = 0xBAADF00D;
+__thread int checkval = 0xBAADF00D;
 
 void init(void * ) {
Index: tests/concurrent/park/contention.cfa
===================================================================
--- tests/concurrent/park/contention.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/concurrent/park/contention.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -2,5 +2,5 @@
 #include <thread.hfa>
 
-thread_local drand48_data buffer = { 0 };
+__thread drand48_data buffer = { 0 };
 int myrand() {
 	long int result;
Index: tests/config.py.in
===================================================================
--- tests/config.py.in	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/config.py.in	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -9,3 +9,2 @@
 HOSTARCH = "@host_cpu@"
 DISTRIBUTE = @HAS_DISTCC@
-NEWAST = @DEFAULT_NEW_AST@
Index: tests/declarationSpecifier.cfa
===================================================================
--- tests/declarationSpecifier.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/declarationSpecifier.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -1,10 +1,10 @@
-// 
+//
 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
 //
 // The contents of this file are covered under the licence agreement in the
 // file "LICENCE" distributed with Cforall.
-// 
-// declarationSpecifier.cfa -- 
-// 
+//
+// declarationSpecifier.cfa --
+//
 // Author           : Peter A. Buhr
 // Created On       : Wed Aug 17 08:21:04 2016
@@ -12,5 +12,5 @@
 // Last Modified On : Tue Apr 30 18:20:36 2019
 // Update Count     : 4
-// 
+//
 
 typedef short int Int;
@@ -51,4 +51,7 @@
 struct { Int i; } const static volatile x35;
 struct { Int i; } const volatile static x36;
+
+_Thread_local int x37;
+__thread int x38;
 
 static inline const volatile int f11();
Index: tests/errors/.expect/completeType.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/errors/.expect/completeType.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,259 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing
+... with resolved type:
+  void Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct A without body
+        ... with resolved type:
+          pointer to instance of struct A without body
+
+      ... with resolved type:
+        reference to instance of struct A without body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct A without body (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body
+        ... with resolved type:
+          pointer to instance of struct B with body
+
+      ... with resolved type:
+        reference to instance of struct B with body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct B with body (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
+              instance of type T (not function type)
+              with assertions
+              Variable Expression: ?=?: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning
+                instance of type T (not function type)
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ^?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                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
+
+            ... with resolved type:
+              pointer to forall
+                instance of type [unbound] (not function type)
+                with assertions
+                Variable Expression: ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning
+                    instance of type [unbound] (not function type)
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                function
+              ... with parameters
+                pointer to instance of type [unbound] (not function type)
+              ... returning nothing
+
+            ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+            ... with resolved type:
+              pointer to instance of type T (not function type)
+          with 1 pending inference slots
+
+          ... with resolved type:
+            void
+        (types:
+          void
+        )
+        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+Variable Expression: ?=?: pointer to function
+        ... with parameters
+          reference to instance of type T (not function type)
+          instance of type T (not function type)
+        ... returning
+          instance of type T (not function type)
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type [unbound] (not function type)
+            instance of type [unbound] (not function type)
+          ... returning
+            instance of type [unbound] (not function type)
+
Index: sts/errors/.expect/completeType.nast.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,259 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-... with resolved type:
-  void Alternatives are:
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct A without body
-        ... with resolved type:
-          pointer to instance of struct A without body
-
-      ... with resolved type:
-        reference to instance of struct A without body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct A without body (no widening)
-
-
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body
-        ... with resolved type:
-          pointer to instance of struct B with body
-
-      ... with resolved type:
-        reference to instance of struct B with body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct B with body (no widening)
-
-
-
-errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: foo
-...to:
-  Name: v
-
-errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: v
-
-errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: quux
-...to:
-  Name: v
-
-errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: y
-
-errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
-              instance of type T (not function type)
-              with assertions
-              Variable Expression: ?=?: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning
-                instance of type T (not function type)
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ^?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                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
-
-            ... with resolved type:
-              pointer to forall
-                instance of type [unbound] (not function type)
-                with assertions
-                Variable Expression: ?=?: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    instance of type [unbound] (not function type)
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ^?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-            ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            ... with resolved type:
-              pointer to instance of type T (not function type)
-          with 1 pending inference slots
-
-          ... with resolved type:
-            void
-        (types:
-          void
-        )
-        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-Variable Expression: ?=?: pointer to function
-        ... with parameters
-          reference to instance of type T (not function type)
-          instance of type T (not function type)
-        ... returning
-          instance of type T (not function type)
-
-        ... with resolved type:
-          pointer to function
-          ... with parameters
-            reference to instance of type [unbound] (not function type)
-            instance of type [unbound] (not function type)
-          ... returning
-            instance of type [unbound] (not function type)
-
Index: sts/errors/.expect/completeType.nast.x64.txt
===================================================================
--- tests/errors/.expect/completeType.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,259 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-... with resolved type:
-  void Alternatives are:
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct A without body
-        ... with resolved type:
-          pointer to instance of struct A without body
-
-      ... with resolved type:
-        reference to instance of struct A without body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct A without body (no widening)
-
-
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body
-        ... with resolved type:
-          pointer to instance of struct B with body
-
-      ... with resolved type:
-        reference to instance of struct B with body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct B with body (no widening)
-
-
-
-errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: foo
-...to:
-  Name: v
-
-errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: v
-
-errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: quux
-...to:
-  Name: v
-
-errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: y
-
-errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
-              instance of type T (not function type)
-              with assertions
-              Variable Expression: ?=?: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning
-                instance of type T (not function type)
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ^?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                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
-
-            ... with resolved type:
-              pointer to forall
-                instance of type [unbound] (not function type)
-                with assertions
-                Variable Expression: ?=?: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    instance of type [unbound] (not function type)
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ^?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-            ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            ... with resolved type:
-              pointer to instance of type T (not function type)
-          with 1 pending inference slots
-
-          ... with resolved type:
-            void
-        (types:
-          void
-        )
-        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-Variable Expression: ?=?: pointer to function
-        ... with parameters
-          reference to instance of type T (not function type)
-          instance of type T (not function type)
-        ... returning
-          instance of type T (not function type)
-
-        ... with resolved type:
-          pointer to function
-          ... with parameters
-            reference to instance of type [unbound] (not function type)
-            instance of type [unbound] (not function type)
-          ... returning
-            instance of type [unbound] (not function type)
-
Index: sts/errors/.expect/completeType.nast.x86.txt
===================================================================
--- tests/errors/.expect/completeType.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,259 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-... with resolved type:
-  void Alternatives are:
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct A without body
-        ... with resolved type:
-          pointer to instance of struct A without body
-
-      ... with resolved type:
-        reference to instance of struct A without body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct A without body (no widening)
-
-
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          instance of type DT (not function type)
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            instance of type [unbound] (not function type)
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body
-        ... with resolved type:
-          pointer to instance of struct B with body
-
-      ... with resolved type:
-        reference to instance of struct B with body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]DT) -> instance of struct B with body (no widening)
-
-
-
-errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: foo
-...to:
-  Name: v
-
-errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: v
-
-errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: quux
-...to:
-  Name: v
-
-errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
-  Name: baz
-...to:
-  Name: y
-
-errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
-              instance of type T (not function type)
-              with assertions
-              Variable Expression: ?=?: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning
-                instance of type T (not function type)
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-                instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-              Variable Expression: ^?{}: pointer to function
-              ... with parameters
-                reference to instance of type T (not function type)
-              ... returning nothing
-
-              ... with resolved type:
-                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
-
-            ... with resolved type:
-              pointer to forall
-                instance of type [unbound] (not function type)
-                with assertions
-                Variable Expression: ?=?: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  instance of type T (not function type)
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    instance of type [unbound] (not function type)
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                Variable Expression: ^?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ... with resolved type:
-                  pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-            ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            ... with resolved type:
-              pointer to instance of type T (not function type)
-          with 1 pending inference slots
-
-          ... with resolved type:
-            void
-        (types:
-          void
-        )
-        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-Variable Expression: ?=?: pointer to function
-        ... with parameters
-          reference to instance of type T (not function type)
-          instance of type T (not function type)
-        ... returning
-          instance of type T (not function type)
-
-        ... with resolved type:
-          pointer to function
-          ... with parameters
-            reference to instance of type [unbound] (not function type)
-            instance of type [unbound] (not function type)
-          ... returning
-            instance of type [unbound] (not function type)
-
Index: sts/errors/.expect/completeType.oast.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,219 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-with resolved type:
-  void  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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct A with body 0
-        with resolved type:
-          pointer to instance of struct A with body 0
-
-      with resolved type:
-        reference to instance of struct A with body 0
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body 1
-        with resolved type:
-          pointer to instance of struct B with body 1
-
-      with resolved type:
-        reference to instance of struct B with body 1
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-            with resolved type:
-              pointer to forall
-                [unbound]:sized data type
-                ... with assertions
-                  ?=?: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    _retval__operator_assign: instance of type [unbound] (not function type)
-                    ... with attributes:
-                      Attribute with name: unused
-
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ^?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-          ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            with resolved type:
-              pointer to instance of type T (not function type)
-
-          with resolved type:
-            void 
-        (types:
-          void 
-        )
-        Environment:([unbound]) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-?=?: pointer to function
-        ... with parameters
-          reference to instance of type [unbound] (not function type)
-          instance of type [unbound] (not function type)
-        ... returning
-          _retval__operator_assign: instance of type [unbound] (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
Index: sts/errors/.expect/completeType.oast.x64.txt
===================================================================
--- tests/errors/.expect/completeType.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,219 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-with resolved type:
-  void  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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct A with body 0
-        with resolved type:
-          pointer to instance of struct A with body 0
-
-      with resolved type:
-        reference to instance of struct A with body 0
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body 1
-        with resolved type:
-          pointer to instance of struct B with body 1
-
-      with resolved type:
-        reference to instance of struct B with body 1
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-            with resolved type:
-              pointer to forall
-                [unbound]:sized data type
-                ... with assertions
-                  ?=?: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    _retval__operator_assign: instance of type [unbound] (not function type)
-                    ... with attributes:
-                      Attribute with name: unused
-
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ^?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-          ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            with resolved type:
-              pointer to instance of type T (not function type)
-
-          with resolved type:
-            void 
-        (types:
-          void 
-        )
-        Environment:([unbound]) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-?=?: pointer to function
-        ... with parameters
-          reference to instance of type [unbound] (not function type)
-          instance of type [unbound] (not function type)
-        ... returning
-          _retval__operator_assign: instance of type [unbound] (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
Index: sts/errors/.expect/completeType.oast.x86.txt
===================================================================
--- tests/errors/.expect/completeType.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,219 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing
-with resolved type:
-  void  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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct A with body 0
-        with resolved type:
-          pointer to instance of struct A with body 0
-
-      with resolved type:
-        reference to instance of struct A with body 0
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-
-        with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type [unbound] (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type [unbound] (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body 1
-        with resolved type:
-          pointer to instance of struct B with body 1
-
-      with resolved type:
-        reference to instance of struct B with body 1
-    ... to: nothing
-    with resolved type:
-      void 
-  (types:
-    void 
-  )
-  Environment:([unbound]) -> 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
-
-            with resolved type:
-              pointer to forall
-                [unbound]:sized data type
-                ... with assertions
-                  ?=?: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning
-                    _retval__operator_assign: instance of type [unbound] (not function type)
-                    ... with attributes:
-                      Attribute with name: unused
-
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                    instance of type [unbound] (not function type)
-                  ... returning nothing
-
-                  ^?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type [unbound] (not function type)
-                  ... returning nothing
-
-
-                function
-              ... with parameters
-                pointer to instance of type [unbound] (not function type)
-              ... returning nothing
-
-          ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-            with resolved type:
-              pointer to instance of type T (not function type)
-
-          with resolved type:
-            void 
-        (types:
-          void 
-        )
-        Environment:([unbound]) -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-?=?: pointer to function
-        ... with parameters
-          reference to instance of type [unbound] (not function type)
-          instance of type [unbound] (not function type)
-        ... returning
-          _retval__operator_assign: instance of type [unbound] (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
Index: tests/errors/.expect/completeType.x64.txt
===================================================================
--- tests/errors/.expect/completeType.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/errors/.expect/completeType.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,259 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing
+... with resolved type:
+  void Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct A without body
+        ... with resolved type:
+          pointer to instance of struct A without body
+
+      ... with resolved type:
+        reference to instance of struct A without body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct A without body (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body
+        ... with resolved type:
+          pointer to instance of struct B with body
+
+      ... with resolved type:
+        reference to instance of struct B with body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct B with body (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
+              instance of type T (not function type)
+              with assertions
+              Variable Expression: ?=?: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning
+                instance of type T (not function type)
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ^?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                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
+
+            ... with resolved type:
+              pointer to forall
+                instance of type [unbound] (not function type)
+                with assertions
+                Variable Expression: ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning
+                    instance of type [unbound] (not function type)
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                function
+              ... with parameters
+                pointer to instance of type [unbound] (not function type)
+              ... returning nothing
+
+            ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+            ... with resolved type:
+              pointer to instance of type T (not function type)
+          with 1 pending inference slots
+
+          ... with resolved type:
+            void
+        (types:
+          void
+        )
+        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+Variable Expression: ?=?: pointer to function
+        ... with parameters
+          reference to instance of type T (not function type)
+          instance of type T (not function type)
+        ... returning
+          instance of type T (not function type)
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type [unbound] (not function type)
+            instance of type [unbound] (not function type)
+          ... returning
+            instance of type [unbound] (not function type)
+
Index: tests/errors/.expect/completeType.x86.txt
===================================================================
--- tests/errors/.expect/completeType.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/errors/.expect/completeType.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,259 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing
+... with resolved type:
+  void Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct A without body
+        ... with resolved type:
+          pointer to instance of struct A without body
+
+      ... with resolved type:
+        reference to instance of struct A without body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct A without body (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body
+        ... with resolved type:
+          pointer to instance of struct B with body
+
+      ... with resolved type:
+        reference to instance of struct B with body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct B with body (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in 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
+              instance of type T (not function type)
+              with assertions
+              Variable Expression: ?=?: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning
+                instance of type T (not function type)
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ^?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                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
+
+            ... with resolved type:
+              pointer to forall
+                instance of type [unbound] (not function type)
+                with assertions
+                Variable Expression: ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning
+                    instance of type [unbound] (not function type)
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                Variable Expression: ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                function
+              ... with parameters
+                pointer to instance of type [unbound] (not function type)
+              ... returning nothing
+
+            ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+            ... with resolved type:
+              pointer to instance of type T (not function type)
+          with 1 pending inference slots
+
+          ... with resolved type:
+            void
+        (types:
+          void
+        )
+        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+Variable Expression: ?=?: pointer to function
+        ... with parameters
+          reference to instance of type T (not function type)
+          instance of type T (not function type)
+        ... returning
+          instance of type T (not function type)
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type [unbound] (not function type)
+            instance of type [unbound] (not function type)
+          ... returning
+            instance of type [unbound] (not function type)
+
Index: sts/errors/.expect/scope.nast.txt
===================================================================
--- tests/errors/.expect/scope.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,9 +1,0 @@
-errors/scope.cfa:2:1 error: duplicate object definition for thisIsAnError: signed int
-errors/scope.cfa:20:1 error: duplicate function definition for butThisIsAnError: function
-... with parameters
-  double
-... returning
-  double
- with body
-  Compound Statement:
-
Index: sts/errors/.expect/scope.oast.txt
===================================================================
--- tests/errors/.expect/scope.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,12 +1,0 @@
-errors/scope.cfa:2:1 error: duplicate object definition for thisIsAnError: signed int
-errors/scope.cfa:20:1 error: duplicate function definition for butThisIsAnError: function
-... with parameters
-  double
-... returning
-  _retval_butThisIsAnError: double
-  ... with attributes:
-    Attribute with name: unused
-
-... with body
-  CompoundStmt
-
Index: tests/errors/.expect/scope.txt
===================================================================
--- tests/errors/.expect/scope.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/errors/.expect/scope.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,9 @@
+errors/scope.cfa:2:1 error: duplicate object definition for thisIsAnError: signed int
+errors/scope.cfa:20:1 error: duplicate function definition for butThisIsAnError: function
+... with parameters
+  double
+... returning
+  double
+ with body
+  Compound Statement:
+
Index: sts/include/.expect/includes.nast.txt
===================================================================
--- tests/include/.expect/includes.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1 +1,0 @@
-include/includes.cfa:173:25: warning: Compiled
Index: tests/include/.expect/includes.txt
===================================================================
--- tests/include/.expect/includes.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/include/.expect/includes.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1 @@
+include/includes.cfa:173:25: warning: Compiled
Index: tests/io/.expect/comp_basic.txt
===================================================================
--- tests/io/.expect/comp_basic.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/io/.expect/comp_basic.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,12 @@
+starting
+100
+200
+300
+400
+500
+600
+700
+800
+900
+1000
+done
Index: sts/io/.expect/io.nast.txt
===================================================================
--- tests/io/.expect/io.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,88 +1,0 @@
-opening delimiters
-x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
-
-closing delimiters
-1, x 2. x 3; x 4! x 5? x 6% x 7¢ x 8» x 9) x 10] x 11} x
-
-opening/closing delimiters
-x`1`x'2'x"3"x:4:x 5 x	6	x
-7
-x
-8
-x
-9
-x
-10
-x
-
-override opening/closing delimiters
-x ( 1 ) x 2 , x 3 :x: 4
-
-spacing
-0 1 2 3
-0123
-0123
-
-expressions
-9 6 28 0 7 1 2
-
-input bacis types
-
-output basic types
-false
-A 23 93
-1 2 3 4 5 6 7 8
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-
-tuples
-1, 2, 3 4, 5, 6
-
-toggle separator
-1.11.21.3
-1.1+2.3i1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-1.1+2.3i1.1-2.3i 1.1-2.3i
-abcxyz
-abcxyz
-
-change separator
-from " " to ", $"
-1.1, $1.2, $1.3
-1.1+2.3i, $1.1-2.3i, $1.1-2.3i
-abc, $xyz
-1, 2, 3, $4, 5, 6
-
-from ", $" to " "
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-abc xyz
-1, 2, 3 4, 5, 6
-
-check sepOn/sepOff
-1 2 3
-12 3
-1 2 3
-1 2 3
-
-1 2 3
-
-check enable/disable
-123
-1 23
-1 2 3
-123
-1 2 3
-123
-1 2 3
-
-1 2 3 4 5 6 " "
-1, 2, 3 4, 5, 6 " "
-1, 2, 3 4, 5, 6
-
-3, 4, a, 7.2
-3, 4, a, 7.2
-3 4 a 7.2
-3 4 a 7.234a7.23 4 a 7.2
-3-4-a-7.2^3^4^3-4-a-7.2
Index: tests/io/.expect/io.txt
===================================================================
--- tests/io/.expect/io.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/io/.expect/io.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,88 @@
+opening delimiters
+x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
+
+closing delimiters
+1, x 2. x 3; x 4! x 5? x 6% x 7¢ x 8» x 9) x 10] x 11} x
+
+opening/closing delimiters
+x`1`x'2'x"3"x:4:x 5 x	6	x
+7
+x
+8
+x
+9
+x
+10
+x
+
+override opening/closing delimiters
+x ( 1 ) x 2 , x 3 :x: 4
+
+spacing
+0 1 2 3
+0123
+0123
+
+expressions
+9 6 28 0 7 1 2
+
+input bacis types
+
+output basic types
+false
+A 23 93
+1 2 3 4 5 6 7 8
+1.1 1.2 1.3
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+
+tuples
+1, 2, 3 4, 5, 6
+
+toggle separator
+1.11.21.3
+1.1+2.3i1.1-2.3i1.1-2.3i
+1.1+2.3i 1.1-2.3i1.1-2.3i
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+1.1+2.3i1.1-2.3i 1.1-2.3i
+abcxyz
+abcxyz
+
+change separator
+from " " to ", $"
+1.1, $1.2, $1.3
+1.1+2.3i, $1.1-2.3i, $1.1-2.3i
+abc, $xyz
+1, 2, 3, $4, 5, 6
+
+from ", $" to " "
+1.1 1.2 1.3
+1.1+2.3i 1.1-2.3i 1.1-2.3i
+abc xyz
+1, 2, 3 4, 5, 6
+
+check sepOn/sepOff
+1 2 3
+12 3
+1 2 3
+1 2 3
+
+1 2 3
+
+check enable/disable
+123
+1 23
+1 2 3
+123
+1 2 3
+123
+1 2 3
+
+1 2 3 4 5 6 " "
+1, 2, 3 4, 5, 6 " "
+1, 2, 3 4, 5, 6
+
+3, 4, a, 7.2
+3, 4, a, 7.2
+3 4 a 7.2
+3 4 a 7.234a7.23 4 a 7.2
+3-4-a-7.2^3^4^3-4-a-7.2
Index: sts/io/.expect/io1.oast.txt
===================================================================
--- tests/io/.expect/io1.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,27 +1,0 @@
-opening delimiters
-x (1 x [2 x {3 x =4 x $5 x £6 x ¥7 x ¡8 x ¿9 x «10
-
-closing delimiters
-1, x 2. x 3; x 4! x 5? x 6% x 7¢ x 8» x 9) x 10] x 11} x
-
-opening/closing delimiters
-x`1`x'2'x"3"x:4:x 5 x	6	x
-7
-x
-8
-x
-9
-x
-10
-x
-
-override opening/closing delimiters
-x ( 1 ) x 2 , x 3 :x: 4
-
-spacing
-0 1 2 3
-0123
-0123
-
-expressions
-9 6 28 0 7 1 2
Index: sts/io/.expect/io2.oast.txt
===================================================================
--- tests/io/.expect/io2.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,60 +1,0 @@
-input bacis types
-
-output basic types
-false
-A 23 93
-1 2 3 4 5 6 7 8
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-
-tuples
-1, 2, 3 4, 5, 6
-
-toggle separator
-1.11.21.3
-1.1+2.3i1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i1.1-2.3i
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-1.1+2.3i1.1-2.3i 1.1-2.3i
-abcxyz
-abcxyz
-
-change separator
-from " " to ", $"
-1.1, $1.2, $1.3
-1.1+2.3i, $1.1-2.3i, $1.1-2.3i
-abc, $xyz
-1, 2, 3, $4, 5, 6
-
-from ", $" to " "
-1.1 1.2 1.3
-1.1+2.3i 1.1-2.3i 1.1-2.3i
-abc xyz
-1, 2, 3 4, 5, 6
-
-check sepOn/sepOff
-1 2 3
-12 3
-1 2 3
-1 2 3
-
-1 2 3
-
-check enable/disable
-123
-1 23
-1 2 3
-123
-1 2 3
-123
-1 2 3
-
-1 2 3 4 5 6 " "
-1, 2, 3 4, 5, 6 " "
-1, 2, 3 4, 5, 6
-
-3, 4, a, 7.2
-3, 4, a, 7.2
-3 4 a 7.2
-3 4 a 7.234a7.23 4 a 7.2
-3-4-a-7.2^3^4^3-4-a-7.2
Index: tests/io/comp_basic.cfa
===================================================================
--- tests/io/comp_basic.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/io/comp_basic.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,106 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2022 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// comp_basic.cfa -- Test that simple completions work correctly
+//                   even when mixing io_uring and regular calls
+//
+// Author           : Thierry Delisle
+// Created On       : Thu Sep 01 11:27:08 2022
+// Last Modified By :
+// Last Modified On :
+// Update Count     :
+//
+
+
+#include <concurrency/barrier.hfa>
+#include <fstream.hfa>
+#include <iofwd.hfa>
+#include <kernel.hfa>
+#include <thread.hfa>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+struct {
+	barrier & bar;
+	int pipe[2];
+
+} globals;
+
+Duration default_preemption() {
+	return 0;
+}
+
+enum { TIMES = 1000 };
+
+volatile unsigned counter = 0;
+
+
+// ----- Reader -----
+// Reader from the pipe to test completion doesn't starve
+thread Reader {};
+void main(Reader & this) {
+	char thrash[1];
+	bool do_read = has_user_level_blocking( (fptr_t)async_read );
+
+	for(TIMES) {
+		io_future_t f;
+		if ( do_read ) {
+			async_read(f, globals.pipe[0], thrash, 1, 0);
+		} else {
+			fulfil(f, 0); // If we don't have user-level blocking just play along
+		}
+
+		block( globals.bar );
+
+		yield( prng( this, 15 ) );
+
+		unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
+		if(0 == (i % 100)) sout | i;
+
+		wait( f );
+
+		if(f.result < 0)
+			abort | "Read error" | -f.result | ":" | strerror(-f.result);
+
+		block( globals.bar );
+	}
+}
+
+// ----- Writer -----
+// Writes to the pipe so the Reader can unblock
+// takes its sweet time so the Reader has to block
+thread Writer {};
+void main(Writer & this) {
+	for(TIMES) {
+		block( globals.bar );
+
+		sleep( 1`us );
+
+		char buf[1] = { '+' };
+		int ret = write( globals.pipe[1], buf, 1 );
+		if(ret < 0)
+			abort | "Write error" | errno | ":" | strerror(errno);
+
+		block( globals.bar );
+	}
+}
+
+int main() {
+	barrier bar = { 2 };
+	&globals.bar = &bar;
+	int ret = pipe(globals.pipe);
+	if(ret != 0)
+		abort | "Pipe error" | errno | ":" | strerror(errno);
+
+     	sout | "starting";
+	{
+		Reader ior;
+		Writer iow;
+	}
+	sout | "done";
+}
Index: tests/io/comp_fair.cfa
===================================================================
--- tests/io/comp_fair.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/io/comp_fair.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -27,6 +27,6 @@
 
 struct {
-      barrier & bar;
-      int pipe[2];
+	barrier & bar;
+	int pipe[2];
 
 } globals;
@@ -65,29 +65,29 @@
 thread Reader {};
 void main(Reader & this) {
-      bool do_read = has_user_level_blocking( (fptr_t)async_read );
+	char thrash[1];
+	bool do_read = has_user_level_blocking( (fptr_t)async_read );
 
-      for(TIMES) {
-            io_future_t f;
-            if ( do_read ) {
-                  char thrash[1];
-                  async_read(f, globals.pipe[0], thrash, 1, 0);
-            } else {
-                  fulfil(f, 0); // If we don't have user-level blocking just play along
-            }
+	for(TIMES) {
+		io_future_t f;
+		if ( do_read ) {
+			async_read(f, globals.pipe[0], thrash, 1, 0);
+		} else {
+			fulfil(f, 0); // If we don't have user-level blocking just play along
+		}
 
-            block( globals.bar );
+		block( globals.bar );
 
 		yield( prng( this, 15 ) );
 
-            unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
+		unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
 		if(0 == (i % 100)) sout | i;
 
-            wait( f );
+		wait( f );
 
-            if(f.result < 0)
-                  abort | "Read error" | -f.result | ":" | strerror(-f.result);
+		if(f.result < 0)
+			abort | "Read error" | -f.result | ":" | strerror(-f.result);
 
-            block( globals.bar );
-      }
+		block( globals.bar );
+	}
 }
 
@@ -97,16 +97,16 @@
 thread Writer {};
 void main(Writer & this) {
-      for(TIMES) {
-            block( globals.bar );
+	for(TIMES) {
+		block( globals.bar );
 
-            sleep( 1`us );
+		sleep( 1`us );
 
-            char buf[1] = { '+' };
-            int ret = write( globals.pipe[1], buf, 1 );
-            if(ret < 0)
-                  abort | "Write error" | errno | ":" | strerror(errno);
+		char buf[1] = { '+' };
+		int ret = write( globals.pipe[1], buf, 1 );
+		if(ret < 0)
+			abort | "Write error" | errno | ":" | strerror(errno);
 
-            block( globals.bar );
-      }
+		block( globals.bar );
+	}
 }
 
@@ -122,9 +122,9 @@
 
 int main() {
-      barrier bar = { 2 };
-      &globals.bar = &bar;
-      int ret = pipe(globals.pipe);
-      if(ret != 0)
-            abort | "Pipe error" | errno | ":" | strerror(errno);
+	barrier bar = { 2 };
+	&globals.bar = &bar;
+	int ret = pipe(globals.pipe);
+	if(ret != 0)
+		abort | "Pipe error" | errno | ":" | strerror(errno);
 
      	processor p;
@@ -134,5 +134,5 @@
 		Spinner s;
 		Reader ior;
-            Writer iow;
+		Writer iow;
 	}
 	sout | "done";
Index: sts/io/io1.cfa
===================================================================
--- tests/io/io1.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,77 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// io1.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Wed Mar  2 16:56:02 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Feb 21 10:07:07 2021
-// Update Count     : 119
-//
-
-#include <fstream.hfa>
-
-int main() {
-	sout | nlOff;										// auto nl off
-
-	sout | "opening delimiters" | nl;
-	sout | "x (" | 1;
-	sout | "x [" | 2;
-	sout | "x {" | 3;
-	sout | "x =" | 4;
-	sout | "x $" | 5;
-	sout | "x £" | 6;
-	sout | "x ¥" | 7;
-	sout | "x ¡" | 8;
-	sout | "x ¿" | 9;
-	sout | "x «" | 10;
-	sout | nl | nl;
-
-	sout | "closing delimiters" | nl;
-	sout | 1 | ", x";
-	sout | 2 | ". x";
-	sout | 3 | "; x";
-	sout | 4 | "! x";
-	sout | 5 | "? x";
-	sout | 6 | "% x";
-	sout | 7 | "¢ x";
-	sout | 8 | "» x";
-	sout | 9 | ") x";
-	sout | 10 | "] x";
-	sout | 11 | "} x";
-	sout | nl | nl;
-
-	sout | "opening/closing delimiters" | nl;
-	sout | "x`" | 1 | "`x'" | 2;
-	sout | "'x\"" | 3 | "\"x:" | 4;
-	sout | ":x " | 5 | " x\t" | 6;
-	sout | "\tx\f" | 7 | "\fx\v" | 8;
-	sout | "\vx\n" | 9 | "\nx\r" | 10;
-	sout | "\rx";
-	sout | nl | nl;
-
-	sout | nlOn;										// auto nl on
-
-	sout | "override opening/closing delimiters";
-	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
-	sout | nl;
-
-	sout | "spacing";
-	sout | 0 | 1 | 2 | 3;
-	sout | '0' | '1' | '2' | '3';
-	sout | 0 | "" | 1 | "" | 2 | "" | 3;
-	sout | nl;
-
-	sout | "expressions";
-	int x = 3, y = 5, z = 7;
-	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa io1.cfa" //
-// End: //
Index: sts/io/io2.cfa
===================================================================
--- tests/io/io2.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,136 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// io2.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Wed Mar  2 16:56:02 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun 13 16:43:14 2019
-// Update Count     : 120
-//
-
-#include <fstream.hfa>
-
-#define xstr(s) str(s)
-#define str(s) #s
-
-int main() {
-	_Bool b;											// basic types
-	char c;
-	signed char sc;
-	unsigned char usc;
-	short int si;
-	unsigned short int usi;
-	int i;
-	unsigned int ui;
-	long int li;
-	unsigned long int uli;
-	long long int lli;
-	unsigned long long int ulli;
-	float f;
-	double d;
-	long double ld;
-	float _Complex fc;
-	double _Complex dc;
-	long double _Complex ldc;
-	enum { size = 10 };
-	char s1[size], s2[size];
-
-	ifstream in = { xstr(IN_DIR) "io.data" };			// create / open file
-
-	sout | "input bacis types";
-	in	 | b;											// boolean
-	in	 | c | sc | usc;								// character
-	in	 | si | usi | i | ui | li | uli | lli | ulli;	// integral
-	in	 | f | d | ld;									// floating point
-	in	 | fc | dc | ldc;								// floating-point complex
-	in	 | s1 | wdi( size, s2 );						// C string, length unchecked and checked
-	sout | nl;
-
-	sout | "output basic types";
-	sout | b;											// boolean
-	sout | c | ' ' | sc | ' ' | usc;					// character
-	sout | si | usi | i | ui | li | uli | lli | ulli;	// integral
-	sout | f | d | ld;									// floating point
-	sout | fc | dc | ldc;								// complex
-	sout | nl;
-
-	sout | "tuples";
-	[int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	sout | "toggle separator";
-	sout | f | "" | d | "" | ld;						// floating point without separator
-	sout | sepDisable | fc | dc | ldc;					// complex without separator
-	sout | fc | sepOn | dc | ldc;						// local separator add
-	sout | sepEnable | fc | dc | ldc;					// complex with separator
-	sout | fc | sepOff | dc | ldc;						// local separator removal
-	sout | s1 | sepOff | s2;							// local separator removal
-	sout | s1 | "" | s2;								// local separator removal
-	sout | nl;
-
-	sout | "change separator";
-	sout | "from \"" | sep | "\"" | nonl;
-	sepSet( sout, ", $" );								// change separator, maximum of 15 characters
-	sout | " to \"" | sep | "\"";
-	sout | f | d | ld;
-	sout | fc | dc | ldc;
-	sout | s1 | s2;
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-	sout | "from \"" | sep | "\" " | nonl;
-	sepSet( sout, " " );								// restore separator
-	sout | "to \"" | sep | "\"";
-	sout | f | d | ld;
-	sout | fc | dc | ldc;
-	sout | s1 | s2;
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	sout | "check sepOn/sepOff";
-	sout | sepOn | 1 | 2 | 3 | sepOn;					// no separator at start/end of line
-	sout | 1 | sepOff | 2 | 3;							// locally turn off implicit separator
-	sout | sepOn | sepOn | 1 | 2 | 3 | sepOn | sepOff | sepOn | '\n' | nonl; // no separator at start/end of line
-	sout | 1 | 2 | 3 | "\n\n" | sepOn | nonl;			// no separator at start of next line
-	sout | 1 | 2 | 3;
-	sout | nl;
-
-	sout | "check enable/disable";
-	sout | sepDisable | 1 | 2 | 3;						// globally turn off implicit separation
-	sout | 1 | sepOn | 2 | 3;							// locally turn on implicit separator
-	sout | sepEnable | 1 | 2 | 3 | sepDisable;			// globally turn on/off implicit separation
-	sout | 1 | 2 | 3 | sepEnable;						// globally turn on implicit separation
-	sout | 1 | 2 | 3 | sepOn | sepDisable;				// ignore seperate at end of line
-	sout | 1 | 2 | 3 | sepOn | sepEnable;				// separator at end of line
-	sout | 1 | 2 | 3;
-	sout | nl;
-
-//	sout | fmt( d, "%8.3f" );
-
-	sepSetTuple( sout, " " );							// set tuple separator from ", " to " "
-	sout | t1 | t2 | " \"" | sep | "\"";
-	sepSetTuple( sout, ", " );							// reset tuple separator to ", "
-	sout | t1 | t2 | " \"" | sep | "\"";
-	sout | t1 | t2;										// print tuple
-	sout | nl;
-
-	[int, int, const char *, double] t3 = { 3, 4, "a", 7.2 };
-	sout | [ 3, 4, (const char*)"a", 7.2 ];             // workaround trac#207: the const cast should not be needed
-	sout | t3;
-	sepSetTuple( sout, " " );
-	sout | t3;
-	sout | sepOn | t3 | sepDisable | t3 | sepEnable | t3;
-	sepSet( sout, "^" );
-	sepSetTuple( sout, "-" );
-	sout | t3 | 3 | 4 | t3;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -DIN_DIR=\".in/\" io2.cfa" //
-// End: //
Index: sts/math1.cfa
===================================================================
--- tests/math1.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,71 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// math1.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Fri Apr 22 14:59:21 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jul 14 10:16:45 2019
-// Update Count     : 112
-//
-
-#include <fstream.hfa>
-#include <math.hfa>
-
-int main( void ) {
-	float f;
-	double d;
-	long double l;
-
-	sout | "fmod:" | 5.0F % -2.0F | fmod( 5.0F, -2.0F ) | 5.0D % -2.0D | nonl;
-	sout | fmod( 5.0D, -2.0D ) | 5.0L % -2.0L | fmod( 5.0L, -2.0L );
-	sout | "remainder:" | remainder( 2.0F, 3.0F ) | remainder( 2.0D, 3.0D ) | remainder( 2.0L, 3.0L );
-	int quot;
-	f = remquo( 3.6F, 0.5F, &quot );
-	sout | "remquo:" | quot | f | nonl;
-	d = remquo( 3.6D, 0.5F, &quot );
-	sout | quot | d | nonl;
-	l = remquo( 3.6L, 0.5L, &quot );
-	sout | quot | l;
-	sout | "div:" | div( 3.6F, 0.5F ) | div( 3.6D, 0.5D ) | div( 3.6L, 0.5L );
-	sout | "fma:" | fma( 3.0F, -1.0F, 1.0F ) | fma( 3.0D, -1.0D, 1.0D ) | fma( 3.0L, -1.0L, 1.0L );
-	sout | "fdim:" | fdim( 1.0F, -1.0F ) | fdim( 1.0D, -1.0D ) | fdim( 1.0L, -1.0L );
-	sout | "nan:" | (float)nan( "" ) | (double)nan( "" ) | (long double)nan( "" );
-
-	//---------------------- Exponential ----------------------
-
-	sout | "exp:" | exp( 1.0F ) | exp( 1.0D ) | exp( 1.0L ) | nonl;
-	sout | exp( 1.0F+1.0FI ) | exp( 1.0D+1.0DI ) | exp( 1.0DL+1.0LI );
-	sout | "exp2:" | exp2( 1.0F ) | exp2( 1.0D ) | exp2( 1.0L );
-	sout | "expm1:" | expm1( 1.0F ) | expm1( 1.0D ) | expm1( 1.0L );
-	sout | "pow:" | pow( 1.0F, 1.0F ) | pow( 1.0D, 1.0D ) | pow( 1.0L, 1.0L ) | nonl;
-	sout | pow( 1.0F+1.0FI, 1.0F+1.0FI ) | pow( 1.0D+1.0DI, 1.0D+1.0DI ) | pow( 1.5DL+1.5LI, 1.5DL+1.5LI );
-
-	int b = 4;
-	unsigned int e = 2;
-    b \= e;
-    sout | b | "\\" | e | "= " | b \ e;
-    sout | 'a' \ 3 | 2 \ 8 | 4 \ 3 | -4 \ 3 | 4 \ -3 | -4 \ -3;
-	sout | 4.0 \ -3 | -4.0 \ -3 | 4.0 \ 2.1 | (1.0f+2.0fi) \ (3.0f+2.0fi);
-	sout | 4 \ -3 | -4 \ -3 | 4.0 \ 2.1 | (1.0f+2.0fi) \ (3.0f+2.0fi);
-
-	struct S { int i; };
-	double ?*?( double d, S s ) { return d * s.i; }
-	double ?/?( double d, S s ) { return d / s.i; }
-	S ?\?( S s, unsigned long y ) { return (S){ s.i \ y }; }
-	ofstream & ?|?( ofstream & os, S s ) { return os | s.i; }
-	void ?|?( ofstream & os, S s ) { (ofstream &)(os | s); ends( os ); }
-	S s = { 4 };
-	S x = s \ 2;
-	sout | x;
-	sout | s.i | s \ 2u;
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa math1.cfa" //
-// End: //
Index: sts/math2.cfa
===================================================================
--- tests/math2.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,60 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// math2.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Fri Apr 22 14:59:21 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 16:11:35 2018
-// Update Count     : 87
-//
-
-#include <fstream.hfa>
-#include <math.hfa>
-
-int main( void ) {
-	float f;
-	double d;
-	long double l;
-
-	//---------------------- Logarithm ----------------------
-
-	sout | "log:" | log( 1.0F ) | log( 1.0D ) | log( 1.0L ) | nonl;
-	sout | log( 1.0F+1.0FI ) | log( 1.0D+1.0DI ) | log( 1.0DL+1.0LI );
-	sout | "log2:" | log2( 8.0F ) | log2( 8.0D ) | log2( 8.0L );
-	sout | "log10:" | log10( 100.0F ) | log10( 100.0D ) | log10( 100.0L );
-	sout | "log1p:" | log1p( 1.0F ) | log1p( 1.0D ) | log1p( 1.0L );
-	sout | "ilogb:" | ilogb( 1.0F ) | ilogb( 1.0D ) | ilogb( 1.0L );
-	sout | "logb:" | logb( 8.0F ) | logb( 8.0D ) | logb( 8.0L );
-
-	sout | "sqrt:" | sqrt( 1.0F ) | sqrt( 1.0D ) | sqrt( 1.0L ) | nonl;
-	sout | sqrt( 1.0F+1.0FI ) | sqrt( 1.0D+1.0DI ) | sqrt( 1.0DL+1.0LI );
-	sout | "cbrt:" | cbrt( 27.0F ) | cbrt( 27.0D ) | cbrt( 27.0L );
-	sout | "hypot:" | hypot( 1.0F, -1.0F ) | hypot( 1.0D, -1.0D ) | hypot( 1.0L, -1.0L );
-
-	//---------------------- Trigonometric ----------------------
-
-	sout | "sin:" | sin( 1.0F ) | sin( 1.0D ) | sin( 1.0L ) | nonl;
-	sout | sin( 1.0F+1.0FI ) | sin( 1.0D+1.0DI ) | sin( 1.0DL+1.0LI );
-	sout | "cos:" | cos( 1.0F ) | cos( 1.0D ) | cos( 1.0L ) | nonl;
-	sout | cos( 1.0F+1.0FI ) | cos( 1.0D+1.0DI ) | cos( 1.0DL+1.0LI );
-	sout | "tan:" | tan( 1.0F ) | tan( 1.0D ) | tan( 1.0L ) | nonl;
-	sout | tan( 1.0F+1.0FI ) | tan( 1.0D+1.0DI ) | tan( 1.0DL+1.0LI );
-	sout | "asin:" | asin( 1.0F ) | asin( 1.0D ) | asin( 1.0L ) | nonl;
-	sout | asin( 1.0F+1.0FI ) | asin( 1.0D+1.0DI ) | asin( 1.0DL+1.0LI );
-	sout | "acos:" | acos( 1.0F ) | acos( 1.0D ) | acos( 1.0L ) | nonl;
-	sout | acos( 1.0F+1.0FI ) | acos( 1.0D+1.0DI ) | acos( 1.0DL+1.0LI );
-	sout | "atan:" | atan( 1.0F ) | atan( 1.0D ) | atan( 1.0L ) | nonl;
-	sout | atan( 1.0F+1.0FI ) | atan( 1.0D+1.0DI ) | atan( 1.0DL+1.0LI );
-	sout | "atan2:" | atan2( 1.0F, 1.0F ) | atan2( 1.0D, 1.0D ) | atan2( 1.0L, 1.0L ) | nonl;
-	sout | "atan:" | atan( 1.0F, 1.0F ) | atan( 1.0D, 1.0D ) | atan( 1.0L, 1.0L );
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa math2.cfa" //
-// End: //
Index: sts/math3.cfa
===================================================================
--- tests/math3.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,57 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// math3.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Fri Apr 22 14:59:21 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 16:30:41 2018
-// Update Count     : 86
-//
-
-#include <fstream.hfa>
-#include <math.hfa>
-
-int main( void ) {
-	float f;
-	double d;
-	long double l;
-
-	//---------------------- Hyperbolic ----------------------
-
-	sout | "sinh:" | sinh( 1.0F ) | sinh( 1.0D ) | sinh( 1.0L ) | nonl;
-	sout | sinh( 1.0F+1.0FI ) | sinh( 1.0D+1.0DI ) | sinh( 1.0DL+1.0LI );
-	sout | "cosh:" | cosh( 1.0F ) | cosh( 1.0D ) | cosh( 1.0L ) | nonl;
-	sout | cosh( 1.0F+1.0FI ) | cosh( 1.0D+1.0DI ) | cosh( 1.0DL+1.0LI );
-	sout | "tanh:" | tanh( 1.0F ) | tanh( 1.0D ) | tanh( 1.0L ) | nonl;
-	sout | tanh( 1.0F+1.0FI ) | tanh( 1.0D+1.0DI ) | tanh( 1.0DL+1.0LI );
-	sout | "acosh:" | acosh( 1.0F ) | acosh( 1.0D ) | acosh( 1.0L ) | nonl;
-	sout | acosh( 1.0F+1.0FI ) | acosh( 1.0D+1.0DI ) | acosh( 1.0DL+1.0LI );
-	sout | "asinh:" | asinh( 1.0F ) | asinh( 1.0D ) | asinh( 1.0L ) | nonl;
-	sout | asinh( 1.0F+1.0FI ) | asinh( 1.0D+1.0DI ) | asinh( 1.0DL+1.0LI );
-	sout | "atanh:" | atanh( 1.0F ) | atanh( 1.0D ) | atanh( 1.0L ) | nonl;
-	sout | atanh( 1.0F+1.0FI ) | atanh( 1.0D+1.0DI ) | atanh( 1.0DL+1.0LI );
-
-	//---------------------- Error / Gamma ----------------------
-
-	sout | "erf:" | erf( 1.0F ) | erf( 1.0D ) | erf( 1.0L );
-	sout | "erfc:" | erfc( 1.0F ) | erfc( 1.0D ) | erfc( 1.0L );
-	sout | "lgamma:" | lgamma( 4.0F ) | lgamma( 4.0D ) | lgamma( 4.0L );
-	int sign;
-	f = lgamma( 4.0F, &sign );
-	sout | "lgamma:" | f | sign | nonl;
-	d = lgamma( 4.0D, &sign );
-	sout | d | sign | nonl;
-	l = lgamma( 4.0L, &sign );
-	sout | l | sign;
-	sout | "tgamma:" | tgamma( 4.0F ) | tgamma( 4.0D ) | tgamma( 4.0L );
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa math3.cfa" //
-// End: //
Index: sts/math4.cfa
===================================================================
--- tests/math4.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,306 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// math4.cfa --
-//
-// Author           : Peter A. Buhr
-// Created On       : Thu May 24 20:56:54 2018
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug 25 17:56:45 2020
-// Update Count     : 7
-//
-
-#include <fstream.hfa>
-#include <math.hfa>
-
-int main( void ) {
-	signed char sc, scr1, scr2, scr3;
-	unsigned char uc, ucr1, ucr2, ucr3;
-	short int si, sir1, sir2, sir3;
-	unsigned short int usi, usir1, usir2, usir3;
-	int i, ir1, ir2, ir3;
-	unsigned int ui, uir1, uir2, uir3;
-	long int li, lir1, lir2, lir3;
-	unsigned long int uli, ulir1, ulir2, ulir3;
-	long long int lli, llir1, llir2, llir3;
-	unsigned long long int ulli, ullir1, ullir2, ullir3;
-
-	float f;
-	double d;
-	long double l;
-
-	//---------------------- Nearest Integer ----------------------
-
-	//============================================================
-#if 1
-	sout | nl | "floor" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = floor( sc, sc ); scr2 = floor( sc + 2hh, sc ); scr3 = floor( -sc - 2hh, sc );
-		printf( "floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = floor( uc, uc ); ucr2 = floor( uc + 2hh, uc ); ucr3 = floor( -uc - 2hh, uc );
-		printf( "floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = floor( si, si ); sir2 = floor( si + 2hh, si ); sir3 = floor( -si - 2hh, si );
-		printf( "floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = floor( usi, usi ); usir2 = floor( usi + 2hh, usi ); usir3 = floor( -usi - 2hh, usi );
-		printf( "floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = floor( i, i ); ir2 = floor( i + 2hh, i ); ir3 = floor( -i - 2hh, i );
-		printf( "floor(%d, %d) = %d, floor(%d, %d) = %d, floor(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = floor( ui, ui ); uir2 = floor( ui + 2hh, ui ); uir3 = floor( -ui - 2hh, ui );
-		printf( "floor(%u, %u) = %u, floor(%u, %u) = %u, floor(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = floor( li, li ); lir2 = floor( li + 2hh, li ); lir3 = floor( -li - 2hh, li );
-		printf( "floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = floor( uli, uli ); ulir2 = floor( uli + 2hh, uli ); ulir3 = floor( -uli - 2hh, uli );
-		printf( "floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = floor( lli, lli ); llir2 = floor( lli + 2hh, lli ); llir3 = floor( -lli - 2hh, lli );
-		printf( "floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = floor( ulli, ulli ); ullir2 = floor( ulli + 2hh, ulli ); ullir3 = floor( -ulli - 2hh, ulli );
-		printf( "floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-	//============================================================
-#if 1
-	sout | nl | "ceiling_div" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = ceiling_div( sc, sc ); scr2 = ceiling_div( sc + 2hh, sc ); scr3 = ceiling_div( -sc - 2hh, sc );
-		printf( "ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = ceiling_div( uc, uc ); ucr2 = ceiling_div( uc + 2hh, uc ); ucr3 = ceiling_div( -uc - 2hh, uc );
-		printf( "ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = ceiling_div( si, si ); sir2 = ceiling_div( si + 2hh, si ); sir3 = ceiling_div( -si - 2hh, si );
-		printf( "ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = ceiling_div( usi, usi ); usir2 = ceiling_div( usi + 2hh, usi ); usir3 = ceiling_div( -usi - 2hh, usi );
-		printf( "ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = ceiling_div( i, i ); ir2 = ceiling_div( i + 2hh, i ); ir3 = ceiling_div( -i - 2hh, i );
-		printf( "ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = ceiling_div( ui, ui ); uir2 = ceiling_div( ui + 2hh, ui ); uir3 = ceiling_div( -ui - 2hh, ui );
-		printf( "ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = ceiling_div( li, li ); lir2 = ceiling_div( li + 2hh, li ); lir3 = ceiling_div( -li - 2hh, li );
-		printf( "ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = ceiling_div( uli, uli ); ulir2 = ceiling_div( uli + 2hh, uli ); ulir3 = ceiling_div( -uli - 2hh, uli );
-		printf( "ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = ceiling_div( lli, lli ); llir2 = ceiling_div( lli + 2hh, lli ); llir3 = ceiling_div( -lli - 2hh, lli );
-		printf( "ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = ceiling_div( ulli, ulli ); ullir2 = ceiling_div( ulli + 2hh, ulli ); ullir3 = ceiling_div( -ulli - 2hh, ulli );
-		printf( "ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-	//============================================================
-#if 1
-	sout | nl | "ceiling" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = ceiling( sc, sc ); scr2 = ceiling( sc + 2hh, sc ); scr3 = ceiling( -sc - 2hh, sc );
-		printf( "ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = ceiling( uc, uc ); ucr2 = ceiling( uc + 2hh, uc ); ucr3 = ceiling( -uc - 2hh, uc );
-		printf( "ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = ceiling( si, si ); sir2 = ceiling( si + 2hh, si ); sir3 = ceiling( -si - 2hh, si );
-		printf( "ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = ceiling( usi, usi ); usir2 = ceiling( usi + 2hh, usi ); usir3 = ceiling( -usi - 2hh, usi );
-		printf( "ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = ceiling( i, i ); ir2 = ceiling( i + 2hh, i ); ir3 = ceiling( -i - 2hh, i );
-		printf( "ceiling(%d, %d) = %d, ceiling(%d, %d) = %d, ceiling(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = ceiling( ui, ui ); uir2 = ceiling( ui + 2hh, ui ); uir3 = ceiling( -ui - 2hh, ui );
-		printf( "ceiling(%u, %u) = %u, ceiling(%u, %u) = %u, ceiling(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = ceiling( li, li ); lir2 = ceiling( li + 2hh, li ); lir3 = ceiling( -li - 2hh, li );
-		printf( "ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = ceiling( uli, uli ); ulir2 = ceiling( uli + 2hh, uli ); ulir3 = ceiling( -uli - 2hh, uli );
-		printf( "ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = ceiling( lli, lli ); llir2 = ceiling( lli + 2hh, lli ); llir3 = ceiling( -lli - 2hh, lli );
-		printf( "ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = ceiling( ulli, ulli ); ullir2 = ceiling( ulli + 2hh, ulli ); ullir3 = ceiling( -ulli - 2hh, ulli );
-		printf( "ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-
-	sout | "floor:" | floor( 1.2F ) | floor( 1.2D ) | floor( 1.2L );
-	sout | "ceil:" | ceil( 1.6F ) | ceil( 1.6D ) | ceil( 1.6L );
-	sout | "trunc:" | trunc( 3.5F ) | trunc( 3.5D ) | trunc( 3.5L );
-	sout | "rint:" | (float)rint( 1.5F ) | (double)rint( 1.5D ) | (long double)rint( 1.5L );
-	sout | "rint:" | (long int)rint( 1.5F ) | (long int)rint( 1.5D ) | (long int)rint( 1.5L );
-	sout | "rint:" | (long long int)rint( 1.5F ) | (long long int)rint( 1.5D ) | (long long int)rint( 1.5L );
-	sout | "lrint:" | lrint( 1.5F ) | lrint( 1.5D ) | lrint( 1.5L );
-	sout | "llrint:" | llrint( 1.5F ) | llrint( 1.5D ) | llrint( 1.5L );
-	sout | "nearbyint:" | nearbyint( 3.5F ) | nearbyint( 3.5D ) | nearbyint( 3.5L );
-	sout | "round:" | (float)round( 1.5F ) | (double)round( 1.5D ) | (long double)round( 1.5L );
-	sout | "round:" | (long int)round( 1.5F ) | (long int)round( 1.5D ) | (long int)round( 1.5L );
-	sout | "round:" | (long long int)round( 1.5F ) | (long long int)round( 1.5D ) | (long long int)round( 1.5L );
-	sout | "lround:" | lround( 1.5F ) | lround( 1.5D ) | lround( 1.5L );
-	sout | "llround:" | llround( 1.5F ) | llround( 1.5D ) | llround( 1.5L );
-
-	//---------------------- Manipulation ----------------------
-
-	sout | "copysign:" | copysign( 1.0F, -1.0F ) | copysign( 1.0D, -1.0D ) | copysign( 1.0L, -1.0L );
-	int exp;
-	f = frexp( 4.0F, &exp );
-	sout | "frexp:" | f | exp | nonl;
-	d = frexp( 4.0D, &exp );
-	sout | d | exp | nonl;
-	l = frexp( 4.0L, &exp );
-	sout | l | exp;
-	sout | "ldexp:" | ldexp( 2.0F, 2 ) | ldexp( 2.0D, 2 ) | ldexp( 2.0L, 2 );
-	float fi;
-	double di;
-	long double ldi;
-	f = modf( 2.3F, &fi );
-	sout | "modf:" | fi | f | nonl;
-	d = modf( 2.3D, &di );
-	sout | di | d | nonl;
-	l = modf( 2.3L, &ldi );
-	sout | ldi | l;
-	sout | "modf:" | modf( 2.3F ) | modf( 2.3D ) | modf( 2.3L );
-	sout | "nextafter:" | nextafter( 2.0F, 3.0F ) | nextafter( 2.0D, 3.0D ) | nextafter( 2.0L, 3.0L );
-	sout | "nexttoward:" | nexttoward( 2.0F, 3.0F ) | nexttoward( 2.0D, 3.0D ) | nexttoward( 2.0L, 3.0L );
-
-	sout | "scalbn:" | scalbn( 2.0F, 3 ) | scalbn( 2.0D, 3 ) | scalbn( 2.0L, 3 );
-	sout | "scalbln:" | scalbln( 2.0F, 3L ) | scalbln( 2.0D, 3L ) | scalbln( 2.0L, 3L );
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa math4.cfa" //
-// End: //
Index: tests/meta/.expect/arch.arm64.txt
===================================================================
--- tests/meta/.expect/arch.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/meta/.expect/arch.arm64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,53 @@
+meta/arch.cfa:28:1 error: Cannot choose between 3 alternatives for expression
+Explicit Cast of:
+  Name: FA64
+... to:
+  char
+... with resolved type:
+  char Alternatives are:
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FA64: double
+      ... with resolved type:
+        double
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FA64: function
+        accepting unspecified arguments
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FA64: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+
Index: tests/meta/.expect/arch.x64.txt
===================================================================
--- tests/meta/.expect/arch.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/meta/.expect/arch.x64.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,53 @@
+meta/arch.cfa:28:1 error: Cannot choose between 3 alternatives for expression
+Explicit Cast of:
+  Name: FX64
+... to:
+  char
+... with resolved type:
+  char Alternatives are:
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX64: double
+      ... with resolved type:
+        double
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX64: function
+        accepting unspecified arguments
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX64: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+
Index: tests/meta/.expect/arch.x86.txt
===================================================================
--- tests/meta/.expect/arch.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/meta/.expect/arch.x86.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,53 @@
+meta/arch.cfa:28:1 error: Cannot choose between 3 alternatives for expression
+Explicit Cast of:
+  Name: FX86
+... to:
+  char
+... with resolved type:
+  char Alternatives are:
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX86: double
+      ... with resolved type:
+        double
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX86: function
+        accepting unspecified arguments
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
+      Variable Expression: FX86: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      char
+    ... with resolved type:
+      char
+  (types:
+    char
+  )
+  Environment:
+
+
Index: sts/meta/.expect/archVast.nast.arm64.txt
===================================================================
--- tests/meta/.expect/archVast.nast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FA64
-... to:
-  char
-... with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: double
-      ... with resolved type:
-        double
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      ... with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: signed int
-      ... with resolved type:
-        signed int
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: sts/meta/.expect/archVast.nast.x64.txt
===================================================================
--- tests/meta/.expect/archVast.nast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FX64
-... to:
-  char
-... with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: double
-      ... with resolved type:
-        double
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      ... with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: signed int
-      ... with resolved type:
-        signed int
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: sts/meta/.expect/archVast.nast.x86.txt
===================================================================
--- tests/meta/.expect/archVast.nast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FX86
-... to:
-  char
-... with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: double
-      ... with resolved type:
-        double
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      ... with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: signed int
-      ... with resolved type:
-        signed int
-    ... to:
-      char
-    ... with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: sts/meta/.expect/archVast.oast.arm64.txt
===================================================================
--- tests/meta/.expect/archVast.oast.arm64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FA64
-... to:
-  char
-with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: double
-      with resolved type:
-        double
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: signed int
-      with resolved type:
-        signed int
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: sts/meta/.expect/archVast.oast.x64.txt
===================================================================
--- tests/meta/.expect/archVast.oast.x64.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FX64
-... to:
-  char
-with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: double
-      with resolved type:
-        double
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX64: signed int
-      with resolved type:
-        signed int
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: sts/meta/.expect/archVast.oast.x86.txt
===================================================================
--- tests/meta/.expect/archVast.oast.x86.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,53 +1,0 @@
-meta/archVast.cfa:28:1 error: Cannot choose between 3 alternatives for expression
-Explicit Cast of:
-  Name: FX86
-... to:
-  char
-with resolved type:
-  char Alternatives are:
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: double
-      with resolved type:
-        double
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: function
-        accepting unspecified arguments
-      ... returning nothing
-
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FX86: signed int
-      with resolved type:
-        signed int
-    ... to:
-      char
-    with resolved type:
-      char
-  (types:
-    char
-  )
-  Environment:
-
-
Index: tests/meta/arch.cfa
===================================================================
--- tests/meta/arch.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/meta/arch.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,32 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// arch.cfa -- Check if all architectures are properly distinguished by the test suite
+//
+// Author           : Thierry Delisle
+// Created On       : Tue Nov 03 15:04:53 2020
+// Last Modified By :
+// Last Modified On :
+// Update Count     :
+//
+
+#if defined( __i386 )
+#define NAME FX86
+#elif defined( __x86_64 )
+#define NAME FX64
+#elif defined( __aarch64__ )
+#define NAME FA64
+#endif
+
+int NAME;
+void NAME() {
+	int NAME;
+	double NAME;
+	(char)NAME;
+	(int(*)())NAME;
+}
+
+int main() {}
Index: sts/meta/archVast.cfa
===================================================================
--- tests/meta/archVast.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,32 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// archVast.cfa -- Check if all combinations are of ast/arch are properly distinguished
-//
-// Author           : Thierry Delisle
-// Created On       : Tue Nov 03 15:04:53 2020
-// Last Modified By :
-// Last Modified On :
-// Update Count     :
-//
-
-#if defined( __i386 )
-#define NAME FX86
-#elif defined( __x86_64 )
-#define NAME FX64
-#elif defined( __aarch64__ )
-#define NAME FA64
-#endif
-
-int NAME;
-void NAME() {
-	int NAME;
-	double NAME;
-	(char)NAME;
-	(int(*)())NAME;
-}
-
-int main() {}
Index: tests/pybin/settings.py
===================================================================
--- tests/pybin/settings.py	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/pybin/settings.py	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -97,26 +97,4 @@
 		self.path   = "debug" if value else "nodebug"
 
-class AST:
-	def __init__(self, ast):
-		if ast == "new":
-			self.target = ast
-			self.string = "New AST"
-			self.flags  = """AST_FLAGS=-XCFA,--new-ast"""
-		elif ast == "old":
-			self.target = ast
-			self.string = "Old AST"
-			self.flags  = """AST_FLAGS=-XCFA,--old-ast"""
-		elif ast == None:
-			self.target = "new" if config.NEWAST else "old"
-			self.string = "Default AST (%s)" % self.target
-			self.flags  = """AST_FLAGS="""
-		else:
-			print("""ERROR: Invalid ast configuration, must be "old", "new" or left unspecified, was %s""" % (value), file=sys.stderr)
-			sys.exit(1)
-
-	def filter(self, tests):
-
-		return [test for test in tests if not test.astv or self.target == test.astv]
-
 class Install:
 	def __init__(self, value):
@@ -141,9 +119,7 @@
 
 def init( options ):
-	global all_ast
 	global all_arch
 	global all_debug
 	global all_install
-	global ast
 	global arch
 	global debug
@@ -160,5 +136,4 @@
 	global timeout2gdb
 
-	all_ast      = [AST(o)          for o in list(dict.fromkeys(options.ast    ))] if options.ast  else [AST(None)]
 	all_arch     = [Architecture(o) for o in list(dict.fromkeys(options.arch   ))] if options.arch else [Architecture(None)]
 	all_debug    = [Debug(o)        for o in list(dict.fromkeys(options.debug  ))]
Index: tests/pybin/test_run.py
===================================================================
--- tests/pybin/test_run.py	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/pybin/test_run.py	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -11,8 +11,7 @@
 		self.path = ''
 		self.arch = ''
-		self.astv = ''
 
 	def toString(self):
-		return "{:25s} ({:5s} arch, {:s} ast: {:s})".format( self.name, self.arch if self.arch else "Any", self.astv if self.astv else "Any", self.target() )
+		return "{:25s} ({:5s} arch: {:s})".format( self.name, self.arch if self.arch else "Any", self.target() )
 
 	def prepare(self):
@@ -22,6 +21,5 @@
 	def expect(self):
 		arch = '' if not self.arch else ".%s" % self.arch
-		astv = '' if not self.astv else ".nast" if self.astv == "new" else ".oast"
-		return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s%s.txt" % (self.name,astv,arch)) )
+		return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s.txt" % (self.name,arch)) )
 
 	def error_log(self):
@@ -58,10 +56,9 @@
 
 	@staticmethod
-	def new_target(target, arch, astv):
+	def new_target(target, arch):
 		test = Test()
 		test.name = os.path.basename(target)
 		test.path = os.path.relpath (os.path.dirname(target), settings.SRCDIR)
 		test.arch = arch.target if arch else ''
-		test.astv = astv.target if astv else ''
 		return test
 
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/pybin/tools.py	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -182,5 +182,4 @@
 		'-s' if silent else None,
 		test_param,
-		settings.ast.flags,
 		settings.arch.flags,
 		settings.debug.flags,
Index: tests/quotedKeyword.cfa
===================================================================
--- tests/quotedKeyword.cfa	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/quotedKeyword.cfa	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -31,5 +31,5 @@
 	``__int128, ``__label__, ``long, ``lvalue, ``_Noreturn, ``__builtin_offsetof, ``otype, ``register, ``restrict,
 	``__restrict, ``__restrict__, ``return, ``short, ``signed, ``__signed, ``__signed__, ``sizeof, ``static,
-	``_Static_assert, ``struct, ``switch, ``_Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,
+	``_Static_assert, ``struct, ``switch, ``_thread, ``_Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,
 	``typeof, ``__typeof, ``__typeof__, ``union, ``unsigned, ``__builtin_va_list, ``void, ``volatile, ``__volatile,
 	``__volatile__, ``while;
Index: sts/raii/.expect/ctor-autogen-ERR1.nast.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,91 +1,0 @@
-raii/ctor-autogen.cfa:102:1 error: Unique best alternative includes deleted identifier in Generated Cast of:
-  Application of
-    Deleted Expression
-      Variable Expression: ?{}: static inline function
-      ... with parameters
-        reference to instance of struct Managed with body
-        signed int
-      ... returning nothing
-
-      ... with resolved type:
-        function
-        ... with parameters
-          reference to instance of struct Managed with body
-          signed int
-        ... returning nothing
-
-      ... deleted by: ?{}: function
-      ... with parameters
-        reference to instance of struct Managed with body
-      ... returning nothing
- with body
-        Compound Statement:
-          Expression Statement:
-            Application of
-              Variable Expression: ?=?: function
-              ... with parameters
-                reference to signed int
-                signed int
-              ... returning
-                signed int
-
-              ... with resolved type:
-                pointer to function
-                ... with parameters
-                  reference to signed int
-                  signed int
-                ... returning
-                  signed int
-
-              ... to arguments
-              Generated Cast of:
-                Member Expression, with field:
-                  x: signed int
-                ... from aggregate:
-                  Generated Cast of:
-                    Variable Expression: m: reference to instance of struct Managed with body
-                    ... with resolved type:
-                      reference to instance of struct Managed with body
-                  ... to:
-                    instance of struct Managed with body
-                  ... with resolved type:
-                    instance of struct Managed with body
-                ... with resolved type:
-                  signed int
-              ... to:
-                reference to signed int
-              ... with resolved type:
-                reference to signed int
-              Generated Cast of:
-                Constant Expression (0: zero_t)
-                ... with resolved type:
-                  zero_t
-              ... to:
-                signed int
-              ... with resolved type:
-                signed int
-
-            ... with resolved type:
-              signed int
-            ... with environment:
-              Types:
-
-
-    ... to arguments
-    Generated Cast of:
-      Variable Expression: x: instance of struct Managed with body
-      ... with resolved type:
-        instance of struct Managed with body
-    ... to:
-      reference to instance of struct Managed with body
-    ... with resolved type:
-      reference to instance of struct Managed with body
-    Constant Expression (123: signed int)
-    ... with resolved type:
-      signed int
-
-  ... with resolved type:
-    void
-... to: nothing
-... with resolved type:
-  void
Index: sts/raii/.expect/ctor-autogen-ERR1.oast.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,98 +1,0 @@
-raii/ctor-autogen.cfa:102:1 error: Unique best alternative includes deleted identifier in Generated Cast of:
-  Application of
-    Deleted Expression
-      Variable Expression: ?{}: static inline function
-      ... with parameters
-        _dst: reference to instance of struct Managed with body 1
-        x: signed int
-      ... returning nothing
-
-      with resolved type:
-        function
-        ... with parameters
-          _dst: reference to instance of struct Managed with body 1
-          x: signed int
-        ... returning nothing
-
-      ... deleted by: ?{}: function
-      ... with parameters
-        m: reference to instance of struct Managed with body 1
-      ... returning nothing
-      ... with body
-        CompoundStmt
-          Expression Statement:
-            Application of
-              Variable Expression: ?=?: function
-              ... with parameters
-                intrinsic reference to signed int
-                intrinsic signed int
-              ... returning
-                _retval__operator_assign: signed int
-                ... with attributes:
-                  Attribute with name: unused
-
-
-              with resolved type:
-                pointer to function
-                ... with parameters
-                  intrinsic reference to signed int
-                  intrinsic signed int
-                ... returning
-                  _retval__operator_assign: signed int
-                  ... with attributes:
-                    Attribute with name: unused
-
-
-            ... to arguments
-              Generated Cast of:
-                Member Expression, with field:
-                  x: signed int
-                ... from aggregate:
-                  Generated Cast of:
-                    Variable Expression: m: reference to instance of struct Managed with body 1
-                    with resolved type:
-                      reference to instance of struct Managed with body 1
-                  ... to:
-                    instance of struct Managed with body 1
-                  with resolved type:
-                    instance of struct Managed with body 1
-                with resolved type:
-                  signed int
-              ... to:
-                reference to signed int
-              with resolved type:
-                reference to signed int
-              Generated Cast of:
-                constant expression (0 0: zero_t)
-                with resolved type:
-                  zero_t
-              ... to:
-                signed int
-              with resolved type:
-                signed int
-
-            with resolved type:
-              signed int
-            ... with environment:
-              Types:
-              Non-types:
-
-
-  ... to arguments
-    Generated Cast of:
-      Variable Expression: x: instance of struct Managed with body 1
-      with resolved type:
-        instance of struct Managed with body 1
-    ... to:
-      reference to instance of struct Managed with body 1
-    with resolved type:
-      reference to instance of struct Managed with body 1
-    constant expression (123 123: signed int)
-    with resolved type:
-      signed int
-
-  with resolved type:
-    void 
-... to: nothing
-with resolved type:
-  void 
Index: tests/raii/.expect/ctor-autogen-ERR1.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,91 @@
+raii/ctor-autogen.cfa:102:1 error: Unique best alternative includes deleted identifier in Generated Cast of:
+  Application of
+    Deleted Expression
+      Variable Expression: ?{}: static inline function
+      ... with parameters
+        reference to instance of struct Managed with body
+        signed int
+      ... returning nothing
+
+      ... with resolved type:
+        function
+        ... with parameters
+          reference to instance of struct Managed with body
+          signed int
+        ... returning nothing
+
+      ... deleted by: ?{}: function
+      ... with parameters
+        reference to instance of struct Managed with body
+      ... returning nothing
+ with body
+        Compound Statement:
+          Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+              ... with parameters
+                reference to signed int
+                signed int
+              ... returning
+                signed int
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to signed int
+                  signed int
+                ... returning
+                  signed int
+
+              ... to arguments
+              Generated Cast of:
+                Member Expression, with field:
+                  x: signed int
+                ... from aggregate:
+                  Generated Cast of:
+                    Variable Expression: m: reference to instance of struct Managed with body
+                    ... with resolved type:
+                      reference to instance of struct Managed with body
+                  ... to:
+                    instance of struct Managed with body
+                  ... with resolved type:
+                    instance of struct Managed with body
+                ... with resolved type:
+                  signed int
+              ... to:
+                reference to signed int
+              ... with resolved type:
+                reference to signed int
+              Generated Cast of:
+                Constant Expression (0: zero_t)
+                ... with resolved type:
+                  zero_t
+              ... to:
+                signed int
+              ... with resolved type:
+                signed int
+
+            ... with resolved type:
+              signed int
+            ... with environment:
+              Types:
+
+
+    ... to arguments
+    Generated Cast of:
+      Variable Expression: x: instance of struct Managed with body
+      ... with resolved type:
+        instance of struct Managed with body
+    ... to:
+      reference to instance of struct Managed with body
+    ... with resolved type:
+      reference to instance of struct Managed with body
+    Constant Expression (123: signed int)
+    ... with resolved type:
+      signed int
+
+  ... with resolved type:
+    void
+... to: nothing
+... with resolved type:
+  void
Index: sts/raii/.expect/memberCtors-ERR1.nast.txt
===================================================================
--- tests/raii/.expect/memberCtors-ERR1.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1 +1,0 @@
-raii/memberCtors.cfa:92:1 error: in ?{}, field a2 used before being constructed
Index: sts/raii/.expect/memberCtors-ERR1.oast.txt
===================================================================
--- tests/raii/.expect/memberCtors-ERR1.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,1 +1,0 @@
-raii/memberCtors.cfa:92:1 error: in void ?{}(B &b), field a2 used before being constructed
Index: tests/raii/.expect/memberCtors-ERR1.txt
===================================================================
--- tests/raii/.expect/memberCtors-ERR1.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/raii/.expect/memberCtors-ERR1.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,1 @@
+raii/memberCtors.cfa:92:1 error: in ?{}, field a2 used before being constructed
Index: tests/test.py
===================================================================
--- tests/test.py	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ tests/test.py	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -23,19 +23,10 @@
 
 	def match_test(path):
-		match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.nast|\.oast)?(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
+		match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
 		if match :
 			test = Test()
 			test.name = match.group(2)
 			test.path = match.group(1)
-			test.arch = match.group(4)[1:] if match.group(4) else None
-
-			astv = match.group(3)[1:] if match.group(3) else None
-			if astv == 'oast':
-				test.astv = 'old'
-			elif astv == 'nast':
-				test.astv = 'new'
-			elif astv:
-				print('ERROR: "%s", expect file has astv but it is not "nast" or "oast"' % testname, file=sys.stderr)
-				sys.exit(1)
+			test.arch = match.group(3)[1:] if match.group(3) else None
 
 			expected.append(test)
@@ -81,19 +72,17 @@
 				# this is a valid name, let's check if it already exists
 				found = [test for test in all_tests if canonical_path( test.target() ) == testname]
-				setup = itertools.product(settings.all_arch if options.arch else [None], settings.all_ast if options.ast else [None])
+				setup = itertools.product(settings.all_arch if options.arch else [None])
 				if not found:
-					# it's a new name, create it according to the name and specified architecture/ast version
-					tests.extend( [Test.new_target(testname, arch, ast) for arch, ast in setup] )
+					# it's a new name, create it according to the name and specified architecture
+					tests.extend( [Test.new_target(testname, arch) for arch in setup] )
 				elif len(found) == 1 and not found[0].arch:
 					# we found a single test, the user better be wanting to create a cross platform test
 					if options.arch:
 						print('ERROR: "%s", test has no specified architecture but --arch was specified, ignoring it' % testname, file=sys.stderr)
-					elif options.ast:
-						print('ERROR: "%s", test has no specified ast version but --ast was specified, ignoring it' % testname, file=sys.stderr)
 					else:
 						tests.append( found[0] )
 				else:
 					# this test is already cross platform, just add a test for each platform the user asked
-					tests.extend( [Test.new_target(testname, arch, ast) for arch, ast in setup] )
+					tests.extend( [Test.new_target(testname, arch) for arch in setup] )
 
 					# print a warning if it users didn't ask for a specific architecture
@@ -102,10 +91,4 @@
 						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
-					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)
-
 			else :
 				print('ERROR: "%s", tests are not allowed to end with a C/C++/CFA extension, ignoring it' % testname, file=sys.stderr)
@@ -127,5 +110,4 @@
 	# create a parser with the arguments for the tests script
 	parser = argparse.ArgumentParser(description='Script which runs cforall tests')
-	parser.add_argument('--ast', help='Test for specific ast', type=comma_separated(str), default=None)
 	parser.add_argument('--arch', help='Test for specific architecture', type=comma_separated(str), default=None)
 	parser.add_argument('--debug', help='Run all tests in debug or release', type=comma_separated(yes_no), default='yes')
@@ -351,5 +333,5 @@
 
 		# print the possible options
-		print("-h --help --debug --dry-run --list --ast=new --ast=old --arch --all --regenerate-expected --archive-errors --install --timeout --global-timeout --timeout-with-gdb -j --jobs -I --include -E --exclude --continue ", end='')
+		print("-h --help --debug --dry-run --list --arch --all --regenerate-expected --archive-errors --install --timeout --global-timeout --timeout-with-gdb -j --jobs -I --include -E --exclude --continue ", end='')
 		print(" ".join(map(lambda t: "%s" % (t.target()), tests)))
 
@@ -422,6 +404,5 @@
 	# for each build configurations, run the test
 	with Timed() as total_dur:
-		for ast, arch, debug, install in itertools.product(settings.all_ast, settings.all_arch, settings.all_debug, settings.all_install):
-			settings.ast     = ast
+		for arch, debug, install in itertools.product(settings.all_arch, settings.all_debug, settings.all_install):
 			settings.arch    = arch
 			settings.debug   = debug
@@ -430,6 +411,5 @@
 			# filter out the tests for a different architecture
 			# tests are the same across debug/install
-			local_tests = settings.ast.filter( tests )
-			local_tests = settings.arch.filter( local_tests )
+			local_tests = settings.arch.filter( tests )
 
 			# check the build configuration works
@@ -438,9 +418,8 @@
 
 			# print configuration
-			print('%s %i tests on %i cores (%s:%s - %s)' % (
+			print('%s %i tests on %i cores (%s - %s)' % (
 				'Regenerating' if settings.generating else 'Running',
 				len(local_tests),
 				jobs,
-				settings.ast.string,
 				settings.arch.string,
 				settings.debug.string
Index: sts/warnings/.expect/self-assignment.nast.txt
===================================================================
--- tests/warnings/.expect/self-assignment.nast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,48 +1,0 @@
-warnings/self-assignment.cfa:34:25: warning: Compiled
-warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
-  Variable Expression: j: signed int
-  ... with resolved type:
-    signed int
-... to:
-  reference to signed int
-... with resolved type:
-  reference to signed int
-warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
-  Variable Expression: s: instance of struct S with body
-  ... with resolved type:
-    instance of struct S with body
-... to:
-  reference to instance of struct S with body
-... with resolved type:
-  reference to instance of struct S with body
-warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
-  Member Expression, with field:
-    i: signed int
-  ... from aggregate:
-    Variable Expression: s: instance of struct S with body
-    ... with resolved type:
-      instance of struct S with body
-  ... with resolved type:
-    signed int
-... to:
-  reference to signed int
-... with resolved type:
-  reference to signed int
-warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
-  Member Expression, with field:
-    i: signed int
-  ... from aggregate:
-    Member Expression, with field:
-      s: instance of struct S with body
-    ... from aggregate:
-      Variable Expression: t: instance of struct T with body
-      ... with resolved type:
-        instance of struct T with body
-    ... with resolved type:
-      instance of struct S with body
-  ... with resolved type:
-    signed int
-... to:
-  reference to signed int
-... with resolved type:
-  reference to signed int
Index: sts/warnings/.expect/self-assignment.oast.txt
===================================================================
--- tests/warnings/.expect/self-assignment.oast.txt	(revision ebf8ca5fd2d4a1e12022556c0cc689ccac0d0414)
+++ 	(revision )
@@ -1,49 +1,0 @@
-warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
-  Variable Expression: j: signed int
-  with resolved type:
-    signed int
-... to:
-  reference to signed int
-with resolved type:
-  reference to signed int
-warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
-  Variable Expression: s: instance of struct S with body 1
-  with resolved type:
-    instance of struct S with body 1
-... to:
-  reference to instance of struct S with body 1
-with resolved type:
-  reference to instance of struct S with body 1
-warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
-  Member Expression, with field:
-    i: signed int
-  ... from aggregate:
-    Variable Expression: s: instance of struct S with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
-... to:
-  reference to signed int
-with resolved type:
-  reference to signed int
-warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
-  Member Expression, with field:
-    i: signed int
-  ... from aggregate:
-    Member Expression, with field:
-      s: instance of struct S with body 1
-    ... from aggregate:
-      Variable Expression: t: instance of struct T with body 1
-      with resolved type:
-        instance of struct T with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
-... to:
-  reference to signed int
-with resolved type:
-  reference to signed int
-warnings/self-assignment.cfa: In function '_X4mainFi___1':
-warnings/self-assignment.cfa:36:9: note: #pragma message: Compiled
Index: tests/warnings/.expect/self-assignment.txt
===================================================================
--- tests/warnings/.expect/self-assignment.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
+++ tests/warnings/.expect/self-assignment.txt	(revision 23a08aa0632e10eefd0b98b0e8dbba78191b5702)
@@ -0,0 +1,48 @@
+warnings/self-assignment.cfa:34:25: warning: Compiled
+warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
+  Variable Expression: j: signed int
+  ... with resolved type:
+    signed int
+... to:
+  reference to signed int
+... with resolved type:
+  reference to signed int
+warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
+  Variable Expression: s: instance of struct S with body
+  ... with resolved type:
+    instance of struct S with body
+... to:
+  reference to instance of struct S with body
+... with resolved type:
+  reference to instance of struct S with body
+warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
+  Member Expression, with field:
+    i: signed int
+  ... from aggregate:
+    Variable Expression: s: instance of struct S with body
+    ... with resolved type:
+      instance of struct S with body
+  ... with resolved type:
+    signed int
+... to:
+  reference to signed int
+... with resolved type:
+  reference to signed int
+warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
+  Member Expression, with field:
+    i: signed int
+  ... from aggregate:
+    Member Expression, with field:
+      s: instance of struct S with body
+    ... from aggregate:
+      Variable Expression: t: instance of struct T with body
+      ... with resolved type:
+        instance of struct T with body
+    ... with resolved type:
+      instance of struct S with body
+  ... with resolved type:
+    signed int
+... to:
+  reference to signed int
+... with resolved type:
+  reference to signed int
