Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mon, 7 Mar 2011 16:05:35 +0000 (16:05 +0000)
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mon, 7 Mar 2011 16:05:35 +0000 (16:05 +0000)
side components. (Florian Krohm <britzel@acm.org> and Christian
Borntraeger <borntraeger@de.ibm.com>).  Fixes #243404.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9

221 files changed:
Makefile.all.am
Makefile.tool.am
Makefile.vex.am
README.s390 [new file with mode: 0644]
cachegrind/Makefile.am
cachegrind/cg-s390x.c [new file with mode: 0644]
cachegrind/cg_branchpred.c
cachegrind/tests/filter_stderr
callgrind/Makefile.am
callgrind/tests/filter_stderr
configure.in
coregrind/Makefile.am
coregrind/launcher-linux.c
coregrind/m_aspacemgr/aspacemgr-common.c
coregrind/m_aspacemgr/aspacemgr-linux.c
coregrind/m_coredump/coredump-elf.c
coregrind/m_debugger.c
coregrind/m_debuginfo/d3basics.c
coregrind/m_debuginfo/debuginfo.c
coregrind/m_debuginfo/priv_storage.h
coregrind/m_debuginfo/readdwarf.c
coregrind/m_debuginfo/readelf.c
coregrind/m_debuginfo/storage.c
coregrind/m_debuglog.c
coregrind/m_dispatch/dispatch-s390x-linux.S [new file with mode: 0644]
coregrind/m_initimg/initimg-linux.c
coregrind/m_libcassert.c
coregrind/m_libcfile.c
coregrind/m_libcproc.c
coregrind/m_machine.c
coregrind/m_main.c
coregrind/m_redir.c
coregrind/m_scheduler/scheduler.c
coregrind/m_sigframe/sigframe-s390x-linux.c [new file with mode: 0644]
coregrind/m_signals.c
coregrind/m_stacktrace.c
coregrind/m_syscall.c
coregrind/m_syswrap/priv_types_n_macros.h
coregrind/m_syswrap/syscall-s390x-linux.S [new file with mode: 0644]
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-main.c
coregrind/m_syswrap/syswrap-s390x-linux.c [new file with mode: 0644]
coregrind/m_trampoline.S
coregrind/m_translate.c
coregrind/m_transtab.c
coregrind/pub_core_basics.h
coregrind/pub_core_debuginfo.h
coregrind/pub_core_machine.h
coregrind/pub_core_mallocfree.h
coregrind/pub_core_syscall.h
coregrind/pub_core_threadstate.h
coregrind/pub_core_trampoline.h
coregrind/pub_core_transtab_asm.h
drd/drd_bitmap.h
drd/drd_load_store.c
exp-ptrcheck/h_main.c
exp-ptrcheck/pc_main.c
exp-ptrcheck/tests/is_arch_supported
helgrind/tests/annotate_hbefore.c
helgrind/tests/tc07_hbl1.c
helgrind/tests/tc08_hbl2.c
helgrind/tests/tc11_XCHG.c
include/Makefile.am
include/pub_tool_basics.h
include/pub_tool_machine.h
include/pub_tool_vkiscnums_asm.h
include/valgrind.h
include/vki/vki-linux.h
include/vki/vki-posixtypes-s390x-linux.h [new file with mode: 0644]
include/vki/vki-s390x-linux.h [new file with mode: 0644]
include/vki/vki-scnums-s390x-linux.h [new file with mode: 0644]
lackey/lk_main.c
memcheck/mc_machine.c
memcheck/mc_translate.c
memcheck/tests/Makefile.am
memcheck/tests/atomic_incs.c
memcheck/tests/badjump.stderr.exp-s390x [new file with mode: 0644]
memcheck/tests/badjump2.stderr.exp-s390x [new file with mode: 0644]
memcheck/tests/linux/capget.c
memcheck/tests/linux/capget.stderr.exp2 [new file with mode: 0644]
memcheck/tests/linux/timerfd-syscall.c
memcheck/tests/origin5-bz2.stderr.exp-glibc212-s390x [new file with mode: 0644]
memcheck/tests/partiallydefinedeq.c
memcheck/tests/partiallydefinedeq.stderr.exp3 [new file with mode: 0644]
memcheck/tests/partiallydefinedeq.stderr.exp4 [new file with mode: 0644]
memcheck/tests/sigprocmask.c
memcheck/tests/supp_unknown.stderr.exp-s390x [new file with mode: 0644]
memcheck/tests/supp_unknown.supp
none/tests/Makefile.am
none/tests/s390x/Makefile.am [new file with mode: 0644]
none/tests/s390x/add.c [new file with mode: 0644]
none/tests/s390x/add.h [new file with mode: 0644]
none/tests/s390x/add.stderr.exp [new file with mode: 0644]
none/tests/s390x/add.stdout.exp [new file with mode: 0644]
none/tests/s390x/add.vgtest [new file with mode: 0644]
none/tests/s390x/add_EI.c [new file with mode: 0644]
none/tests/s390x/add_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/add_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/add_EI.vgtest [new file with mode: 0644]
none/tests/s390x/add_GE.c [new file with mode: 0644]
none/tests/s390x/add_GE.stderr.exp [new file with mode: 0644]
none/tests/s390x/add_GE.stdout.exp [new file with mode: 0644]
none/tests/s390x/add_GE.vgtest [new file with mode: 0644]
none/tests/s390x/and.c [new file with mode: 0644]
none/tests/s390x/and.h [new file with mode: 0644]
none/tests/s390x/and.stderr.exp [new file with mode: 0644]
none/tests/s390x/and.stdout.exp [new file with mode: 0644]
none/tests/s390x/and.vgtest [new file with mode: 0644]
none/tests/s390x/and_EI.c [new file with mode: 0644]
none/tests/s390x/and_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/and_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/and_EI.vgtest [new file with mode: 0644]
none/tests/s390x/clc.c [new file with mode: 0644]
none/tests/s390x/clc.stderr.exp [new file with mode: 0644]
none/tests/s390x/clc.stdout.exp [new file with mode: 0644]
none/tests/s390x/clc.vgtest [new file with mode: 0644]
none/tests/s390x/clcle.c [new file with mode: 0644]
none/tests/s390x/clcle.stderr.exp [new file with mode: 0644]
none/tests/s390x/clcle.stdout.exp [new file with mode: 0644]
none/tests/s390x/clcle.vgtest [new file with mode: 0644]
none/tests/s390x/cvb.c [new file with mode: 0644]
none/tests/s390x/cvb.stderr.exp [new file with mode: 0644]
none/tests/s390x/cvb.stdout.exp [new file with mode: 0644]
none/tests/s390x/cvb.vgtest [new file with mode: 0644]
none/tests/s390x/cvd.c [new file with mode: 0644]
none/tests/s390x/cvd.stderr.exp [new file with mode: 0644]
none/tests/s390x/cvd.stdout.exp [new file with mode: 0644]
none/tests/s390x/cvd.vgtest [new file with mode: 0644]
none/tests/s390x/div.c [new file with mode: 0644]
none/tests/s390x/div.h [new file with mode: 0644]
none/tests/s390x/div.stderr.exp [new file with mode: 0644]
none/tests/s390x/div.stdout.exp [new file with mode: 0644]
none/tests/s390x/div.vgtest [new file with mode: 0644]
none/tests/s390x/ex_clone.c [new file with mode: 0644]
none/tests/s390x/ex_clone.stderr.exp [new file with mode: 0644]
none/tests/s390x/ex_clone.stdout.exp [new file with mode: 0644]
none/tests/s390x/ex_clone.vgtest [new file with mode: 0644]
none/tests/s390x/ex_sig.c [new file with mode: 0644]
none/tests/s390x/ex_sig.stderr.exp [new file with mode: 0644]
none/tests/s390x/ex_sig.stdout.exp [new file with mode: 0644]
none/tests/s390x/ex_sig.vgtest [new file with mode: 0644]
none/tests/s390x/filter_stderr [new file with mode: 0644]
none/tests/s390x/flogr.c [new file with mode: 0644]
none/tests/s390x/flogr.stderr.exp [new file with mode: 0644]
none/tests/s390x/flogr.vgtest [new file with mode: 0644]
none/tests/s390x/icm.c [new file with mode: 0644]
none/tests/s390x/icm.stderr.exp [new file with mode: 0644]
none/tests/s390x/icm.stdout.exp [new file with mode: 0644]
none/tests/s390x/icm.vgtest [new file with mode: 0644]
none/tests/s390x/insert.c [new file with mode: 0644]
none/tests/s390x/insert.h [new file with mode: 0644]
none/tests/s390x/insert.stderr.exp [new file with mode: 0644]
none/tests/s390x/insert.stdout.exp [new file with mode: 0644]
none/tests/s390x/insert.vgtest [new file with mode: 0644]
none/tests/s390x/insert_EI.c [new file with mode: 0644]
none/tests/s390x/insert_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/insert_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/insert_EI.vgtest [new file with mode: 0644]
none/tests/s390x/lam_stam.c [new file with mode: 0644]
none/tests/s390x/lam_stam.stderr.exp [new file with mode: 0644]
none/tests/s390x/lam_stam.stdout.exp [new file with mode: 0644]
none/tests/s390x/lam_stam.vgtest [new file with mode: 0644]
none/tests/s390x/lpr.c [new file with mode: 0644]
none/tests/s390x/lpr.stderr.exp [new file with mode: 0644]
none/tests/s390x/lpr.stdout.exp [new file with mode: 0644]
none/tests/s390x/lpr.vgtest [new file with mode: 0644]
none/tests/s390x/mul.c [new file with mode: 0644]
none/tests/s390x/mul.h [new file with mode: 0644]
none/tests/s390x/mul.stderr.exp [new file with mode: 0644]
none/tests/s390x/mul.stdout.exp [new file with mode: 0644]
none/tests/s390x/mul.vgtest [new file with mode: 0644]
none/tests/s390x/mul_GE.c [new file with mode: 0644]
none/tests/s390x/mul_GE.stderr.exp [new file with mode: 0644]
none/tests/s390x/mul_GE.stdout.exp [new file with mode: 0644]
none/tests/s390x/mul_GE.vgtest [new file with mode: 0644]
none/tests/s390x/mvst.c [new file with mode: 0644]
none/tests/s390x/mvst.stderr.exp [new file with mode: 0644]
none/tests/s390x/mvst.stdout.exp [new file with mode: 0644]
none/tests/s390x/mvst.vgtest [new file with mode: 0644]
none/tests/s390x/or.c [new file with mode: 0644]
none/tests/s390x/or.h [new file with mode: 0644]
none/tests/s390x/or.stderr.exp [new file with mode: 0644]
none/tests/s390x/or.stdout.exp [new file with mode: 0644]
none/tests/s390x/or.vgtest [new file with mode: 0644]
none/tests/s390x/or_EI.c [new file with mode: 0644]
none/tests/s390x/or_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/or_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/or_EI.vgtest [new file with mode: 0644]
none/tests/s390x/srst.c [new file with mode: 0644]
none/tests/s390x/srst.stderr.exp [new file with mode: 0644]
none/tests/s390x/srst.stdout.exp [new file with mode: 0644]
none/tests/s390x/srst.vgtest [new file with mode: 0644]
none/tests/s390x/sub.c [new file with mode: 0644]
none/tests/s390x/sub.h [new file with mode: 0644]
none/tests/s390x/sub.stderr.exp [new file with mode: 0644]
none/tests/s390x/sub.stdout.exp [new file with mode: 0644]
none/tests/s390x/sub.vgtest [new file with mode: 0644]
none/tests/s390x/sub_EI.c [new file with mode: 0644]
none/tests/s390x/sub_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/sub_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/sub_EI.vgtest [new file with mode: 0644]
none/tests/s390x/tcxb.c [new file with mode: 0644]
none/tests/s390x/tcxb.stderr.exp [new file with mode: 0644]
none/tests/s390x/tcxb.stdout.exp [new file with mode: 0644]
none/tests/s390x/tcxb.vgtest [new file with mode: 0644]
none/tests/s390x/test.h [new file with mode: 0644]
none/tests/s390x/xc.c [new file with mode: 0644]
none/tests/s390x/xc.stderr.exp [new file with mode: 0644]
none/tests/s390x/xc.stdout.exp [new file with mode: 0644]
none/tests/s390x/xc.vgtest [new file with mode: 0644]
none/tests/s390x/xor.c [new file with mode: 0644]
none/tests/s390x/xor.h [new file with mode: 0644]
none/tests/s390x/xor.stderr.exp [new file with mode: 0644]
none/tests/s390x/xor.stdout.exp [new file with mode: 0644]
none/tests/s390x/xor.vgtest [new file with mode: 0644]
none/tests/s390x/xor_EI.c [new file with mode: 0644]
none/tests/s390x/xor_EI.stderr.exp [new file with mode: 0644]
none/tests/s390x/xor_EI.stdout.exp [new file with mode: 0644]
none/tests/s390x/xor_EI.vgtest [new file with mode: 0644]
tests/arch_test.c

index 789e2a76535a26cae6c2d402984cbad06982d159..1b09e30b1b2d496716187cedf9d1c7a9778e1c86 100644 (file)
@@ -178,6 +178,11 @@ AM_CFLAGS_AMD64_DARWIN     = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
                            -mmacosx-version-min=10.5 -fno-stack-protector
 AM_CCASFLAGS_AMD64_DARWIN  = $(AM_CPPFLAGS_AMD64_DARWIN) -arch x86_64 -g
 
+AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@
+AM_CFLAGS_S390X_LINUX     = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_S390X_LINUX  = $(AM_CPPFLAGS_S390X_LINUX) -mzarch -march=z900 \
+                            @FLAG_M64@ -g
+
 # Flags for the primary target.  These must be used to build the
 # regtests and performance tests.  In fact, these must be used to
 # build anything which is built only once on a dual-arch build.
@@ -209,4 +214,5 @@ PRELOAD_LDFLAGS_PPC32_AIX5   = $(PRELOAD_LDFLAGS_COMMON_AIX5)  @FLAG_MAIX32@
 PRELOAD_LDFLAGS_PPC64_AIX5   = $(PRELOAD_LDFLAGS_COMMON_AIX5)  @FLAG_MAIX64@
 PRELOAD_LDFLAGS_X86_DARWIN   = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
 PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
+PRELOAD_LDFLAGS_S390X_LINUX  = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
 
index 6ac08cfbaa09240a55ff27b574f710399fd44bf4..77f8214cf5a6ee1516d56630f179cd28fe75ac8a 100644 (file)
@@ -52,6 +52,9 @@ TOOL_LDFLAGS_PPC64_LINUX = \
 TOOL_LDFLAGS_ARM_LINUX = \
        $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
 
+TOOL_LDFLAGS_S390X_LINUX = \
+       $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
 TOOL_LDFLAGS_PPC32_AIX5 = \
        $(TOOL_LDFLAGS_COMMON_AIX5) @FLAG_MAIX32@
 
@@ -104,6 +107,9 @@ LIBREPLACEMALLOC_X86_DARWIN = \
 LIBREPLACEMALLOC_AMD64_DARWIN = \
        $(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-darwin.a
 
+LIBREPLACEMALLOC_S390X_LINUX = \
+       $(top_builddir)/coregrind/libreplacemalloc_toolpreload-s390x-linux.a
+
 
 LIBREPLACEMALLOC_LDFLAGS_X86_LINUX = \
        -Wl,--whole-archive \
@@ -142,6 +148,11 @@ LIBREPLACEMALLOC_LDFLAGS_X86_DARWIN = \
 LIBREPLACEMALLOC_LDFLAGS_AMD64_DARWIN = \
        $(LIBREPLACEMALLOC_AMD64_DARWIN)
 
+LIBREPLACEMALLOC_LDFLAGS_S390X_LINUX = \
+       -Wl,--whole-archive \
+       $(LIBREPLACEMALLOC_S390X_LINUX) \
+       -Wl,--no-whole-archive
+
 #----------------------------------------------------------------------------
 # General stuff
 #----------------------------------------------------------------------------
index b84ba4e7f1f9f197083c08e4aa5cec4390a1ee61..26b02788ea1678612b464c92adb8fed7937756a0 100644 (file)
@@ -24,6 +24,7 @@ pkginclude_HEADERS = \
        pub/libvex_guest_ppc32.h \
        pub/libvex_guest_ppc64.h \
        pub/libvex_guest_arm.h \
+       pub/libvex_guest_s390x.h \
        pub/libvex_ir.h \
        pub/libvex_trc_values.h
 
@@ -38,13 +39,16 @@ noinst_HEADERS = \
        priv/guest_amd64_defs.h \
        priv/guest_ppc_defs.h \
        priv/guest_arm_defs.h \
+       priv/guest_s390_defs.h \
        priv/host_generic_regs.h \
        priv/host_generic_simd64.h \
        priv/host_generic_simd128.h \
        priv/host_x86_defs.h \
        priv/host_amd64_defs.h \
        priv/host_ppc_defs.h \
-       priv/host_arm_defs.h
+       priv/host_arm_defs.h \
+       priv/host_s390_defs.h \
+       priv/host_s390_disasm.h
 
 BUILT_SOURCES = pub/libvex_guest_offsets.h
 CLEANFILES    = pub/libvex_guest_offsets.h
@@ -58,7 +62,8 @@ pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \
                            pub/libvex_guest_amd64.h \
                            pub/libvex_guest_ppc32.h \
                            pub/libvex_guest_ppc64.h \
-                           pub/libvex_guest_arm.h
+                           pub/libvex_guest_arm.h \
+                           pub/libvex_guest_s390x.h
        rm -f auxprogs/genoffsets.s
        $(CC) $(LIBVEX_CFLAGS) \
              $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
@@ -97,6 +102,8 @@ LIBVEX_SOURCES_COMMON = \
        priv/guest_ppc_toIR.c \
        priv/guest_arm_helpers.c \
        priv/guest_arm_toIR.c \
+       priv/guest_s390_helpers.c \
+       priv/guest_s390_toIR.c \
        priv/host_generic_regs.c \
        priv/host_generic_simd64.c \
        priv/host_generic_simd128.c \
@@ -108,7 +115,10 @@ LIBVEX_SOURCES_COMMON = \
        priv/host_ppc_defs.c \
        priv/host_ppc_isel.c \
        priv/host_arm_defs.c \
-       priv/host_arm_isel.c
+       priv/host_arm_isel.c \
+       priv/host_s390_defs.c \
+       priv/host_s390_isel.c \
+       priv/host_s390_disasm.c
 
 LIBVEX_CFLAGS = \
        -Wbad-function-cast \
diff --git a/README.s390 b/README.s390
new file mode 100644 (file)
index 0000000..6a91a5b
--- /dev/null
@@ -0,0 +1,36 @@
+Requirements
+------------
+- You need GCC 3.4 or later to compile the s390 port.
+- A working combination of autotools is required.
+- To run valgrind a z900 machine or any later model is needed.
+- The long displacement facility must be installed on the host machine.
+
+
+Limitations
+-----------
+- 31-bit client programs are not supported.
+- Hexadecimal floating point is not supported.
+- Decimal floating point is not supported yet.
+- Currently, only memcheck, massif, lackey, and none are supported
+- helgrind and drd seem to work on SLES10,11 and RHEL5,6 on z9,z10 and z196
+  but might fail on other hardware/software combinations.
+- Some gcc versions use mvc to copy 4/8 byte values. This will affect some
+  debug messages. Valgrind will complain about 4 or 8 one-byte reads/writes
+  instead of just 1 read/write.
+- exp-ptrcheck and callgrind are not supported.
+
+
+Recommendations
+---------------
+Applications should be compiled with -fno-builtin to avoid
+false positives due to builtin string operations when running memcheck.
+
+
+Reading Material
+----------------
+(1) Linux for zSeries ELF ABI Supplement
+    http://refspecs.linuxfoundation.org/ELF/zSeries/index.html
+(2) z/Architecture Principles of Operation
+    http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr008.pdf
+(3) z/Architecture Reference Summary
+    http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs006.pdf
index 816808139e33ed94847652e3d38696051ab7c59f..1263653709a3c770f410c46d939b428379acb6c0 100644 (file)
@@ -44,7 +44,8 @@ CACHEGRIND_SOURCES_COMMON = \
        cg-x86-amd64.c \
        cg-ppc32.c \
        cg-ppc64.c \
-       cg-arm.c
+       cg-arm.c   \
+       cg-s390x.c
 
 cachegrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES      = \
        $(CACHEGRIND_SOURCES_COMMON)
diff --git a/cachegrind/cg-s390x.c b/cachegrind/cg-s390x.c
new file mode 100644 (file)
index 0000000..905a15f
--- /dev/null
@@ -0,0 +1,73 @@
+
+/*--------------------------------------------------------------------*/
+/*--- s390x-specific definitions.                       cg-s390x.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Cachegrind, a Valgrind tool for cache
+   profiling programs.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Christian Borntraeger */
+
+#if defined(VGA_s390x)
+
+#include "pub_tool_basics.h"
+#include "pub_tool_libcbase.h"
+#include "pub_tool_libcassert.h"
+#include "pub_tool_libcprint.h"
+
+#include "cg_arch.h"
+
+void VG_(configure_caches)(cache_t* I1c, cache_t* D1c, cache_t* L2c,
+                           Bool all_caches_clo_defined)
+{
+   // Set caches to z10 default.
+   // See IBM Journal of Research and Development
+   // Issue Date: Jan. 2009
+   // Volume: 53 Issue:1
+   // fixs390: have a table for all available models and check /proc/cpuinfo
+   *I1c = (cache_t) {   65536,  4, 256 };
+   *D1c = (cache_t) {  131072,  8, 256 };
+   *L2c = (cache_t) { 3145728, 12, 256 };
+
+   // Warn if config not completely specified from cmd line.  Note that
+   // this message is slightly different from the one we give on x86/AMD64
+   // when auto-detection fails;  this lets us filter out this one (which is
+   // not important) in the regression test suite without filtering the
+   // x86/AMD64 one (which we want to see if it ever occurs in the
+   // regression test suite).
+   //
+   // If you change this message, please update
+   // cachegrind/tests/filter_stderr!
+   //
+   if (!all_caches_clo_defined) {
+      VG_(dmsg)("Warning: Cannot auto-detect cache config on s390x, using one "
+                "or more defaults \n");
+   }
+}
+
+#endif
+
+/*--------------------------------------------------------------------*/
+/*--- end                                               cg-s390x.c ---*/
+/*--------------------------------------------------------------------*/
index 4eb6982a0af82a94b4fc1604f2660c6558114350..9bd6b2ee01aa426d7c074e9f2f56adafb291a983 100644 (file)
@@ -48,6 +48,8 @@
 #  define N_IADDR_LO_ZERO_BITS 2
 #elif defined(VGA_x86) || defined(VGA_amd64)
 #  define N_IADDR_LO_ZERO_BITS 0
+#elif defined(VGA_s390x)
+#  define N_IADDR_LO_ZERO_BITS 1
 #else
 #  error "Unsupported architecture"
 #endif
index 9209dd578b295b4d712554033371d55c3de96fbb..46340c93d77932df957e44b005a8d33db32db571 100755 (executable)
@@ -18,4 +18,6 @@ sed "/warning: Pentium 4 with 12 KB micro-op instruction trace cache/d" |
 sed "/Simulating a 16 KB I-cache with 32 B lines/d"   |
 sed "/warning: L3 cache found, using its data for the LL simulation./d" |
 sed "/Warning: Cannot auto-detect cache config on PPC.., using one or more defaults/d" |
-sed "/Warning: Cannot auto-detect cache config on ARM, using one or more defaults/d"
+sed "/Warning: Cannot auto-detect cache config on ARM, using one or more defaults/d" |
+sed "/Warning: Cannot auto-detect cache config on s390x, using one or more defaults/d"
+
index 74f3597ab02aad86da4adfd6231cf04cd82b693a..86e93133ca6f09fa41271d7c6897b656ef06bf75 100644 (file)
@@ -49,7 +49,8 @@ CALLGRIND_SOURCES_COMMON = \
        ../cachegrind/cg-x86-amd64.c \
        ../cachegrind/cg-ppc32.c \
        ../cachegrind/cg-ppc64.c \
-       ../cachegrind/cg-arm.c
+       ../cachegrind/cg-arm.c   \
+       ../cachegrind/cg-s390x.c
 
 CALLGRIND_CFLAGS_COMMON = -I$(top_srcdir)/cachegrind
 
index 3114b47208fb3f142d7f4dd27d46ac6fd0386ce4..c791b6495b91f45a03bd0df1e7ff270dcd259ea5 100755 (executable)
@@ -27,4 +27,5 @@ sed "/warning: Pentium 4 with 12 KB micro-op instruction trace cache/d" |
 sed "/Simulating a 16 KB I-cache with 32 B lines/d"   |
 sed "/warning: L3 cache found, using its data for the LL simulation./d" |
 sed "/Warning: Cannot auto-detect cache config on PPC.., using one or more defaults/d" |
-sed "/Warning: Cannot auto-detect cache config on ARM, using one or more defaults/d"
+sed "/Warning: Cannot auto-detect cache config on ARM, using one or more defaults/d" |
+sed "/Warning: Cannot auto-detect cache config on s390x, using one or more defaults/d"
index 3793e1b6c2f0dcf937df7b2875c50480872f1248..49488f41c43e4c4a0f4b3aa18b391f42001ba52f 100644 (file)
@@ -158,6 +158,11 @@ case "${host_cpu}" in
         esac
         ;;
 
+     s390x)
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="s390x"
+        ;;
+
      armv7*)
        AC_MSG_RESULT([ok (${host_cpu})])
        ARCH_MAX="arm"
@@ -519,6 +524,18 @@ case "$ARCH_MAX-$VGCONF_OS" in
         valt_load_address_sec_inner="0xUNSET"
        AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
        ;;
+     s390x-linux)
+        VGCONF_ARCH_PRI="s390x"
+        VGCONF_ARCH_SEC=""
+        VGCONF_PLATFORM_PRI_CAPS="S390X_LINUX"
+        VGCONF_PLATFORM_SEC_CAPS=""
+        # we want to have the generated code close to the dispatcher
+        valt_load_address_pri_norml="0x401000000"
+        valt_load_address_pri_inner="0x410000000"
+        valt_load_address_sec_norml="0xUNSET"
+        valt_load_address_sec_inner="0xUNSET"
+        AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
+        ;;
     *)
         VGCONF_ARCH_PRI="unknown"
         VGCONF_ARCH_SEC="unknown"
@@ -555,6 +572,8 @@ AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC64,
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_AIX5 )
 AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_ARM,   
                test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX )
+AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_S390X,
+               test x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX )
 
 # Set up VGCONF_PLATFORMS_INCLUDE_<platform>.  Either one or two of these
 # become defined.
@@ -570,6 +589,9 @@ AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX,
                test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX)
 AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_ARM_LINUX, 
                test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX)
+AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_S390X_LINUX,
+               test x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX \
+                 -o x$VGCONF_PLATFORM_SEC_CAPS = xS390X_LINUX)
 
 AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5, 
                test x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_AIX5 \ 
@@ -592,7 +614,8 @@ AM_CONDITIONAL(VGCONF_OS_IS_LINUX,
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
-                 -o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX )
+                 -o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
+                 -o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX)
 AM_CONDITIONAL(VGCONF_OS_IS_AIX5,
                test x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_AIX5 \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_AIX5)
@@ -1374,6 +1397,36 @@ if test x$ac_have_as_ppc_mftocrf = xyes ; then
 fi
 
 
+# what facilities does the s390 assembler support?
+AC_MSG_CHECKING([if s390 as supports extended immediate])
+CFLAGS=-march=z9-109
+AC_TRY_COMPILE(, [
+__asm__ __volatile__("flogr 1,2");
+],
+[
+ac_have_as_s390_ei=yes
+AC_MSG_RESULT([yes])
+], [
+ac_have_as_s390_ei=no
+AC_MSG_RESULT([no])
+])
+AM_CONDITIONAL(S390_BUILDS_EI, test x$ac_have_as_s390_ei = xyes)
+
+AC_MSG_CHECKING([if s390 as supports general instruction extension])
+CFLAGS=-march=z10
+AC_TRY_COMPILE(, [
+__asm__ __volatile__("chsi 1,0");
+],
+[
+ac_have_as_s390_ge=yes
+AC_MSG_RESULT([yes])
+], [
+ac_have_as_s390_ge=no
+AC_MSG_RESULT([no])
+])
+AM_CONDITIONAL(S390_BUILDS_GE, test x$ac_have_as_s390_ge = xyes)
+CFLAGS=$safe_CFLAGS
+
 # does the x86/amd64 assembler understand SSE3 instructions?
 # Note, this doesn't generate a C-level symbol.  It generates a
 # automake-level symbol (BUILD_SSE3_TESTS), used in test Makefile.am's
@@ -1617,7 +1670,8 @@ if test x$VGCONF_PLATFORM_PRI_CAPS = xX86_LINUX \
      -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX ; then
   mflag_primary=$FLAG_M32
 elif test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-       -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX ; then
+       -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+       -o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX ; then
   mflag_primary=$FLAG_M64
 elif test x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_AIX5 ; then
   mflag_primary=-q32
@@ -1864,6 +1918,7 @@ AC_CONFIG_FILES([
    none/tests/ppc64/Makefile
    none/tests/x86/Makefile
    none/tests/arm/Makefile
+   none/tests/s390x/Makefile
    none/tests/linux/Makefile
    none/tests/darwin/Makefile
    none/tests/x86-linux/Makefile
index d9d1bca7c096b5614911445cf7cca21f9db22ef8..5b50c4e1f3b2863c4d78ff80e346b87c8597ae1e 100644 (file)
@@ -289,7 +289,8 @@ COREGRIND_SOURCES_COMMON = \
        m_dispatch/dispatch-amd64-linux.S \
        m_dispatch/dispatch-ppc32-linux.S \
        m_dispatch/dispatch-ppc64-linux.S \
-       m_dispatch/dispatch-arm-linux.S \
+       m_dispatch/dispatch-arm-linux.S \
+       m_dispatch/dispatch-s390x-linux.S \
        m_dispatch/dispatch-ppc32-aix5.S \
        m_dispatch/dispatch-ppc64-aix5.S \
        m_dispatch/dispatch-x86-darwin.S \
@@ -309,7 +310,8 @@ COREGRIND_SOURCES_COMMON = \
        m_sigframe/sigframe-amd64-linux.c \
        m_sigframe/sigframe-ppc32-linux.c \
        m_sigframe/sigframe-ppc64-linux.c \
-       m_sigframe/sigframe-arm-linux.c \
+       m_sigframe/sigframe-arm-linux.c \
+       m_sigframe/sigframe-s390x-linux.c \
        m_sigframe/sigframe-ppc32-aix5.c \
        m_sigframe/sigframe-ppc64-aix5.c \
        m_sigframe/sigframe-x86-darwin.c \
@@ -318,7 +320,8 @@ COREGRIND_SOURCES_COMMON = \
        m_syswrap/syscall-amd64-linux.S \
        m_syswrap/syscall-ppc32-linux.S \
        m_syswrap/syscall-ppc64-linux.S \
-       m_syswrap/syscall-arm-linux.S \
+       m_syswrap/syscall-arm-linux.S \
+       m_syswrap/syscall-s390x-linux.S \
        m_syswrap/syscall-ppc32-aix5.S \
        m_syswrap/syscall-ppc64-aix5.S \
        m_syswrap/syscall-x86-darwin.S \
@@ -333,7 +336,8 @@ COREGRIND_SOURCES_COMMON = \
        m_syswrap/syswrap-amd64-linux.c \
        m_syswrap/syswrap-ppc32-linux.c \
        m_syswrap/syswrap-ppc64-linux.c \
-       m_syswrap/syswrap-arm-linux.c \
+       m_syswrap/syswrap-arm-linux.c \
+       m_syswrap/syswrap-s390x-linux.c \
        m_syswrap/syswrap-ppc32-aix5.c \
        m_syswrap/syswrap-ppc64-aix5.c \
        m_syswrap/syswrap-x86-darwin.c \
index e7c9c7f7e0cdc54d0dfe5524fb445d0fe2562dfc..e70152dcef37c8ac8220886ebe08aed7c3fc1d28 100644 (file)
@@ -205,6 +205,10 @@ static const char *select_platform(const char *clientname)
                 (ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
                  ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
                platform = "ppc64-linux";
+            } else if (ehdr->e_machine == EM_S390 &&
+                       (ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
+                        ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
+               platform = "s390x-linux";
             }
          }
       }
@@ -278,7 +282,8 @@ int main(int argc, char** argv, char** envp)
        (0==strcmp(VG_PLATFORM,"amd64-linux")) ||
        (0==strcmp(VG_PLATFORM,"ppc32-linux")) ||
        (0==strcmp(VG_PLATFORM,"ppc64-linux")) ||
-       (0==strcmp(VG_PLATFORM,"arm-linux")))
+       (0==strcmp(VG_PLATFORM,"arm-linux"))   ||
+       (0==strcmp(VG_PLATFORM,"s390x-linux")))
       default_platform = VG_PLATFORM;
    else
       barf("Unknown VG_PLATFORM '%s'", VG_PLATFORM);
index b7a51d6e4ad234b75fa6ebb9969866a968bcab44..1d917df3cb1b7051a4f9865c843dd5ada157fcc6 100644 (file)
@@ -159,7 +159,8 @@ SysRes VG_(am_do_mmap_NO_NOTIFY)( Addr start, SizeT length, UInt prot,
    res = VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
                           prot, flags, fd, offset / 4096);
 #  elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
-        || defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
+        || defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) \
+        || defined(VGP_s390x_linux)
    res = VG_(do_syscall6)(__NR_mmap, (UWord)start, length, 
                          prot, flags, fd, offset);
 #  elif defined(VGP_x86_darwin)
index 8ed8b840f2a393ead92b1be1e792883e4e8165bf..cc092cec474d1062662a2fe520c34d463653db6e 100644 (file)
@@ -900,10 +900,10 @@ static void sync_check_mapping_callback ( Addr addr, SizeT len, UInt prot,
       These kernels report which mappings are really executable in
       the /proc/self/maps output rather than mirroring what was asked
       for when each mapping was created. In order to cope with this we
-      have a sloppyXcheck mode which we enable on x86 - in this mode we
-      allow the kernel to report execute permission when we weren't
+      have a sloppyXcheck mode which we enable on x86 and s390 - in this
+      mode we allow the kernel to report execute permission when we weren't
       expecting it but not vice versa. */
-#  if defined(VGA_x86)
+#  if defined(VGA_x86) || defined (VGA_s390x)
    sloppyXcheck = True;
 #  else
    sloppyXcheck = False;
index c47562ed71be76a9b89a5a48bc9d5bcb5e4ca920..ef27bb5a9331c63be830fdfb14a4516e47ad4a84 100644 (file)
@@ -233,9 +233,14 @@ static void fill_prstatus(const ThreadState *tst,
    prs->pr_pgrp = VG_(getpgrp)();
    prs->pr_sid = VG_(getpgrp)();
    
+#ifdef VGP_s390x_linux
+   /* prs->pr_reg has struct type. Need to take address. */
+   regs = (struct vki_user_regs_struct *)&(prs->pr_reg);
+#else
    regs = (struct vki_user_regs_struct *)prs->pr_reg;
 
    vg_assert(sizeof(*regs) == sizeof(prs->pr_reg));
+#endif
 
 #if defined(VGP_x86_linux)
    regs->eflags = LibVEX_GuestX86_get_eflags( &arch->vex );
@@ -343,6 +348,16 @@ static void fill_prstatus(const ThreadState *tst,
    regs->ARM_pc   = arch->vex.guest_R15T;
    regs->ARM_cpsr = LibVEX_GuestARM_get_cpsr( &((ThreadArchState*)arch)->vex );
 
+#elif defined(VGP_s390x_linux)
+#  define DO(n)  regs->gprs[n] = arch->vex.guest_r##n
+   DO(0);  DO(1);  DO(2);  DO(3);  DO(4);  DO(5);  DO(6);  DO(7);
+   DO(8);  DO(9);  DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
+#  undef DO
+#  define DO(n)  regs->acrs[n] = arch->vex.guest_a##n
+   DO(0);  DO(1);  DO(2);  DO(3);  DO(4);  DO(5);  DO(6);  DO(7);
+   DO(8);  DO(9);  DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
+#  undef DO
+   regs->orig_gpr2 = arch->vex.guest_r2;
 #else
 #  error Unknown ELF platform
 #endif
@@ -415,6 +430,11 @@ static void fill_fpu(const ThreadState *tst, vki_elf_fpregset_t *fpu)
 #elif defined(VGP_arm_linux)
    // umm ...
 
+#elif defined(VGP_s390x_linux)
+#  define DO(n)  fpu->fprs[n].ui = arch->vex.guest_f##n
+   DO(0);  DO(1);  DO(2);  DO(3);  DO(4);  DO(5);  DO(6);  DO(7);
+   DO(8);  DO(9);  DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
+# undef DO
 #else
 #  error Unknown ELF platform
 #endif
index eaf80d1892269267622cf3b71b13daeab99316d7..0638755c219d8b6f986690530685c69d1a5102cd 100644 (file)
@@ -242,6 +242,76 @@ static Int ptrace_setregs(Int pid, VexGuestArchState* vex)
 #elif defined(VGP_amd64_darwin)
    I_die_here;
 
+#elif defined(VGP_s390x_linux)
+   struct vki_user_regs_struct regs;
+   vki_ptrace_area pa;
+
+   /* We don't set the psw mask and start at offset 8 */
+   pa.vki_len = (unsigned long) &regs.per_info - (unsigned long) &regs.psw.addr;
+   pa.vki_process_addr = (unsigned long) &regs.psw.addr;
+   pa.vki_kernel_addr = 8;
+
+   VG_(memset)(&regs, 0, sizeof(regs));
+   regs.psw.addr = vex->guest_IA;
+
+   /* We don't set the mask */
+   regs.gprs[0] = vex->guest_r0;
+   regs.gprs[1] = vex->guest_r1;
+   regs.gprs[2] = vex->guest_r2;
+   regs.gprs[3] = vex->guest_r3;
+   regs.gprs[4] = vex->guest_r4;
+   regs.gprs[5] = vex->guest_r5;
+   regs.gprs[6] = vex->guest_r6;
+   regs.gprs[7] = vex->guest_r7;
+   regs.gprs[8] = vex->guest_r8;
+   regs.gprs[9] = vex->guest_r9;
+   regs.gprs[10] = vex->guest_r10;
+   regs.gprs[11] = vex->guest_r11;
+   regs.gprs[12] = vex->guest_r12;
+   regs.gprs[13] = vex->guest_r13;
+   regs.gprs[14] = vex->guest_r14;
+   regs.gprs[15] = vex->guest_r15;
+
+   regs.acrs[0] = vex->guest_a0;
+   regs.acrs[1] = vex->guest_a1;
+   regs.acrs[2] = vex->guest_a2;
+   regs.acrs[3] = vex->guest_a3;
+   regs.acrs[4] = vex->guest_a4;
+   regs.acrs[5] = vex->guest_a5;
+   regs.acrs[6] = vex->guest_a6;
+   regs.acrs[7] = vex->guest_a7;
+   regs.acrs[8] = vex->guest_a8;
+   regs.acrs[9] = vex->guest_a9;
+   regs.acrs[10] = vex->guest_a10;
+   regs.acrs[11] = vex->guest_a11;
+   regs.acrs[12] = vex->guest_a12;
+   regs.acrs[13] = vex->guest_a13;
+   regs.acrs[14] = vex->guest_a14;
+   regs.acrs[15] = vex->guest_a15;
+
+   /* only used for system call restart and friends, just use r2 */
+   regs.orig_gpr2 = vex->guest_r2;
+
+   regs.fp_regs.fprs[0].ui = vex->guest_f0;
+   regs.fp_regs.fprs[1].ui = vex->guest_f1;
+   regs.fp_regs.fprs[2].ui = vex->guest_f2;
+   regs.fp_regs.fprs[3].ui = vex->guest_f3;
+   regs.fp_regs.fprs[4].ui = vex->guest_f4;
+   regs.fp_regs.fprs[5].ui = vex->guest_f5;
+   regs.fp_regs.fprs[6].ui = vex->guest_f6;
+   regs.fp_regs.fprs[7].ui = vex->guest_f7;
+   regs.fp_regs.fprs[8].ui = vex->guest_f8;
+   regs.fp_regs.fprs[9].ui = vex->guest_f9;
+   regs.fp_regs.fprs[10].ui = vex->guest_f10;
+   regs.fp_regs.fprs[11].ui = vex->guest_f11;
+   regs.fp_regs.fprs[12].ui = vex->guest_f12;
+   regs.fp_regs.fprs[13].ui = vex->guest_f13;
+   regs.fp_regs.fprs[14].ui = vex->guest_f14;
+   regs.fp_regs.fprs[15].ui = vex->guest_f15;
+   regs.fp_regs.fpc = vex->guest_fpc;
+
+   return VG_(ptrace)(VKI_PTRACE_POKEUSR_AREA, pid,  &pa, NULL);
+
 #else
 #  error Unknown arch
 #endif
index e6de809ee9d40dd42bbd0fa1eebc3d2a8b795efe..956fc2f17feadddcc68fc31cc263354a6a24a4f4 100644 (file)
@@ -409,6 +409,9 @@ static Bool get_Dwarf_Reg( /*OUT*/Addr* a, Word regno, RegSummary* regs )
    if (regno == 11) { *a = regs->fp; return True; } 
 #  elif defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
    vg_assert(0); /* this function should never be called */
+#  elif defined(VGP_s390x_linux)
+   if (regno == 15) { *a = regs->sp; return True; }
+   if (regno == 11) { *a = regs->fp; return True; }
 #  else
 #    error "Unknown platform"
 #  endif
index 90f1bdf9f8304471fe92dea2e4341a6e94f5ccb1..e59b228629a9b45f4f3e3379c05a9b459558a5c9 100644 (file)
@@ -703,6 +703,15 @@ ULong VG_(di_notify_mmap)( Addr a, Bool allow_SkFileV )
 
       2009 Aug 16: apply similar kludge to ppc32-linux.
       See http://bugs.kde.org/show_bug.cgi?id=190820
+
+      There are two modes on s390x: with and without the noexec kernel
+      parameter. Together with some older kernels, this leads to several
+      variants:
+      executable: r and x
+      data:       r and w and x
+      or
+      executable: r and x
+      data:       r and w
    */
    is_rx_map = False;
    is_rw_map = False;
@@ -712,6 +721,9 @@ ULong VG_(di_notify_mmap)( Addr a, Bool allow_SkFileV )
 #  elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_arm)
    is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
    is_rw_map = seg->hasR && seg->hasW && !seg->hasX;
+#  elif defined(VGP_s390x_linux)
+   is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
+   is_rw_map = seg->hasR && seg->hasW;
 #  else
 #    error "Unknown platform"
 #  endif
@@ -2000,6 +2012,11 @@ UWord evalCfiExpr ( XArray* exprs, Int ix,
             case Creg_ARM_R14: return eec->uregs->r14;
             case Creg_ARM_R13: return eec->uregs->r13;
             case Creg_ARM_R12: return eec->uregs->r12;
+#           elif defined(VGA_s390x)
+            case Creg_IA_IP: return eec->uregs->ia;
+            case Creg_IA_SP: return eec->uregs->sp;
+            case Creg_IA_BP: return eec->uregs->fp;
+            case Creg_S390_R14: return eec->uregs->lr;
 #           elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #           else
 #             error "Unsupported arch"
@@ -2210,6 +2227,24 @@ static Addr compute_cfa ( D3UnwindRegs* uregs,
       case CFIC_ARM_R7REL: 
          cfa = cfsi->cfa_off + uregs->r7;
          break;
+#     elif defined(VGA_s390x)
+      case CFIC_IA_SPREL:
+         cfa = cfsi->cfa_off + uregs->sp;
+         break;
+      case CFIR_MEMCFAREL:
+      {
+         Addr a = uregs->sp + cfsi->cfa_off;
+         if (a < min_accessible || a > max_accessible-sizeof(Addr))
+            break;
+         cfa = *(Addr*)a;
+         break;
+      }
+      case CFIR_SAME:
+         cfa = uregs->fp;
+         break;
+      case CFIC_IA_BPREL:
+         cfa = cfsi->cfa_off + uregs->fp;
+         break;
 #     elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #     else
 #       error "Unsupported arch"
@@ -2262,6 +2297,15 @@ Addr ML_(get_CFA) ( Addr ip, Addr sp, Addr fp,
      return compute_cfa(&uregs,
                         min_accessible,  max_accessible, di, cfsi);
    }
+#elif defined(VGA_s390x)
+   { D3UnwindRegs uregs;
+     uregs.ia = ip;
+     uregs.sp = sp;
+     uregs.fp = fp;
+     return compute_cfa(&uregs,
+                        min_accessible,  max_accessible, di, cfsi);
+   }
+
 #  else
    return 0; /* indicates failure */
 #  endif
@@ -2294,6 +2338,8 @@ Bool VG_(use_CF_info) ( /*MOD*/D3UnwindRegs* uregsHere,
    ipHere = uregsHere->xip;
 #  elif defined(VGA_arm)
    ipHere = uregsHere->r15;
+#  elif defined(VGA_s390x)
+   ipHere = uregsHere->ia;
 #  elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #  else
 #    error "Unknown arch"
@@ -2366,6 +2412,10 @@ Bool VG_(use_CF_info) ( /*MOD*/D3UnwindRegs* uregsHere,
    COMPUTE(uregsPrev.r12, uregsHere->r12, cfsi->r12_how, cfsi->r12_off);
    COMPUTE(uregsPrev.r11, uregsHere->r11, cfsi->r11_how, cfsi->r11_off);
    COMPUTE(uregsPrev.r7,  uregsHere->r7,  cfsi->r7_how,  cfsi->r7_off);
+#  elif defined(VGA_s390x)
+   COMPUTE(uregsPrev.ia, uregsHere->ia, cfsi->ra_how, cfsi->ra_off);
+   COMPUTE(uregsPrev.sp, uregsHere->sp, cfsi->sp_how, cfsi->sp_off);
+   COMPUTE(uregsPrev.fp, uregsHere->fp, cfsi->fp_how, cfsi->fp_off);
 #  elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #  else
 #    error "Unknown arch"
index e2725296090106fcd28cd5625f747331a8214bdf..9abff6d3bfeeba2316e07a840341fc36fd96434a 100644 (file)
@@ -140,6 +140,22 @@ typedef
               CFIR_CFAREL    -> cfa + r14/r13/r12/r11/r7/ra_off
               CFIR_MEMCFAREL -> *( cfa + r14/r13/r12/r11/r7/ra_off )
               CFIR_EXPR      -> expr whose index is in r14/r13/r12/r11/r7/ra_off
+
+   On s390x we have a similar logic as x86 or amd64. We need the stack pointer
+   (r15), the frame pointer r11 (like BP) and together with the instruction
+   address in the PSW we can calculate the previous values:
+     cfa = case cfa_how of
+              CFIC_IA_SPREL -> r15 + cfa_off
+              CFIC_IA_BPREL -> r11 + cfa_off
+              CFIR_IA_EXPR  -> expr whose index is in cfa_off
+
+     old_sp/fp/ra
+         = case sp/fp/ra_how of
+              CFIR_UNKNOWN   -> we don't know, sorry
+              CFIR_SAME      -> same as it was before (sp/fp only)
+              CFIR_CFAREL    -> cfa + sp/fp/ra_off
+              CFIR_MEMCFAREL -> *( cfa + sp/fp/ra_off )
+              CFIR_EXPR      -> expr whose index is in sp/fp/ra_off
 */
 
 #define CFIC_IA_SPREL     ((UChar)1)
@@ -208,6 +224,21 @@ typedef
       Int   ra_off;
    }
    DiCfSI;
+#elif defined(VGA_s390x)
+typedef
+   struct {
+      Addr  base;
+      UInt  len;
+      UChar cfa_how; /* a CFIC_ value */
+      UChar sp_how;  /* a CFIR_ value */
+      UChar ra_how;  /* a CFIR_ value */
+      UChar fp_how;  /* a CFIR_ value */
+      Int   cfa_off;
+      Int   sp_off;
+      Int   ra_off;
+      Int   fp_off;
+   }
+   DiCfSI;
 #else
 #  error "Unknown arch"
 #endif
@@ -230,7 +261,8 @@ typedef
       Creg_ARM_R13,
       Creg_ARM_R12,
       Creg_ARM_R15,
-      Creg_ARM_R14
+      Creg_ARM_R14,
+      Creg_S390_R14
    }
    CfiReg;
 
index 24829b6984e0baba97c3a5a29e2074e06f1497fb..5f1d2cea4e74ad76ec0df29c6b5a3167969f4ff9 100644 (file)
@@ -1832,6 +1832,10 @@ void ML_(read_debuginfo_dwarf1) (
 #  define FP_REG         6
 #  define SP_REG         7
 #  define RA_REG_DEFAULT 16
+#elif defined(VGP_s390x_linux)
+#  define FP_REG         11    // sometimes s390 has a frame pointer in r11
+#  define SP_REG         15    // stack is always r15
+#  define RA_REG_DEFAULT 14    // the return address is in r14
 #else
 #  error "Unknown platform"
 #endif
@@ -2139,7 +2143,7 @@ static Bool summarise_context( /*OUT*/DiCfSI* si,
    else
    if (ctxs->cfa_is_regoff && ctxs->cfa_reg == SP_REG) {
       si->cfa_off = ctxs->cfa_off;
-#     if defined(VGA_x86) || defined(VGA_amd64)
+#     if defined(VGA_x86) || defined(VGA_amd64) || defined(VGA_s390x)
       si->cfa_how = CFIC_IA_SPREL;
 #     elif defined(VGA_arm)
       si->cfa_how = CFIC_ARM_R13REL;
@@ -2150,7 +2154,7 @@ static Bool summarise_context( /*OUT*/DiCfSI* si,
    else
    if (ctxs->cfa_is_regoff && ctxs->cfa_reg == FP_REG) {
       si->cfa_off = ctxs->cfa_off;
-#     if defined(VGA_x86) || defined(VGA_amd64)
+#     if defined(VGA_x86) || defined(VGA_amd64) || defined(VGA_s390x)
       si->cfa_how = CFIC_IA_BPREL;
 #     elif defined(VGA_arm)
       si->cfa_how = CFIC_ARM_R12REL;
@@ -2303,6 +2307,55 @@ static Bool summarise_context( /*OUT*/DiCfSI* si,
    return True;
 
 
+#  elif defined(VGA_s390x)
+
+   SUMMARISE_HOW(si->ra_how, si->ra_off,
+                             ctxs->reg[ctx->ra_reg] );
+   SUMMARISE_HOW(si->fp_how, si->fp_off,
+                             ctxs->reg[FP_REG] );
+   SUMMARISE_HOW(si->sp_how, si->sp_off,
+                             ctxs->reg[SP_REG] );
+
+   /* change some defaults to consumable values */
+   if (si->sp_how == CFIR_UNKNOWN)
+      si->sp_how = CFIR_SAME;
+
+   if (si->fp_how == CFIR_UNKNOWN)
+      si->fp_how = CFIR_SAME;
+
+   if (si->cfa_how == CFIR_UNKNOWN) {
+      si->cfa_how = CFIC_IA_SPREL;
+      si->cfa_off = 160;
+   }
+   if (si->ra_how == CFIR_UNKNOWN) {
+      if (!debuginfo->cfsi_exprs)
+         debuginfo->cfsi_exprs = VG_(newXA)( ML_(dinfo_zalloc),
+                                             "di.ccCt.2a",
+                                             ML_(dinfo_free),
+                                             sizeof(CfiExpr) );
+      si->ra_how = CFIR_EXPR;
+      si->ra_off = ML_(CfiExpr_CfiReg)( debuginfo->cfsi_exprs,
+                                        Creg_S390_R14);
+   }
+
+   /* knock out some obviously stupid cases */
+   if (si->ra_how == CFIR_SAME)
+      { why = 3; goto failed; }
+
+   /* bogus looking range?  Note, we require that the difference is
+      representable in 32 bits. */
+   if (loc_start >= ctx->loc)
+      { why = 4; goto failed; }
+   if (ctx->loc - loc_start > 10000000 /* let's say */)
+      { why = 5; goto failed; }
+
+   si->base = loc_start + ctx->initloc;
+   si->len  = (UInt)(ctx->loc - loc_start);
+
+   return True;
+
+
+
 #  elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #  else
 #    error "Unknown arch"
@@ -2376,6 +2429,13 @@ static Int copy_convert_CfiExpr_tree ( XArray*        dstxa,
             return ML_(CfiExpr_CfiReg)( dstxa, Creg_ARM_R12 );
          if (dwreg == srcuc->ra_reg)
            return ML_(CfiExpr_CfiReg)( dstxa, Creg_ARM_R15 ); /* correct? */
+#        elif defined(VGA_s390x)
+         if (dwreg == SP_REG)
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_SP );
+         if (dwreg == FP_REG)
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_BP );
+         if (dwreg == srcuc->ra_reg)
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_IP ); /* correct? */
 #        elif defined(VGA_ppc32) || defined(VGA_ppc64)
 #        else
 #           error "Unknown arch"
index 7cf8ceb05de975a6cdcc250e087b9edd7ffc11df..ea4288236613b430bf5755a05a219ecf9960f6ce 100644 (file)
@@ -1739,7 +1739,7 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di )
 
       /* PLT is different on different platforms, it seems. */
 #     if defined(VGP_x86_linux) || defined(VGP_amd64_linux) \
-         || defined(VGP_arm_linux)
+         || defined(VGP_arm_linux) || defined (VGP_s390x_linux)
       /* Accept .plt where mapped as rx (code) */
       if (0 == VG_(strcmp)(name, ".plt")) {
          if (inrx && size > 0 && !di->plt_present) {
@@ -2187,8 +2187,9 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di )
 
       /* Read the stabs and/or dwarf2 debug information, if any.  It
          appears reading stabs stuff on amd64-linux doesn't work, so
-         we ignore it. */
-#     if !defined(VGP_amd64_linux)
+         we ignore it. On s390x stabs also doesnt work and we always
+         have the dwarf info in the eh_frame. */
+#     if !defined(VGP_amd64_linux)  && !defined(VGP_s390x_linux)
       if (stab_img && stabstr_img) {
          ML_(read_debuginfo_stabs) ( di, stab_img, stab_sz, 
                                          stabstr_img, stabstr_sz );
index 52aec793760d4e106ad5b203f71eefec7a26a6a2..eda421bf9334b13e686934397843b7cf1cf35a4b 100644 (file)
@@ -141,6 +141,9 @@ void ML_(ppDiCfSI) ( XArray* /* of CfiExpr */ exprs, DiCfSI* si )
       case CFIC_ARM_R11REL: 
          VG_(printf)("let cfa=oldR11+%d", si->cfa_off); 
          break;
+      case CFIR_SAME:
+         VG_(printf)("let cfa=Same");
+         break;
       case CFIC_ARM_R7REL: 
          VG_(printf)("let cfa=oldR7+%d", si->cfa_off); 
          break;
@@ -172,6 +175,11 @@ void ML_(ppDiCfSI) ( XArray* /* of CfiExpr */ exprs, DiCfSI* si )
    VG_(printf)(" R7=");
    SHOW_HOW(si->r7_how, si->r7_off);
 #  elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#  elif defined(VGA_s390x)
+   VG_(printf)(" SP=");
+   SHOW_HOW(si->sp_how, si->sp_off);
+   VG_(printf)(" FP=");
+   SHOW_HOW(si->fp_how, si->fp_off);
 #  else
 #    error "Unknown arch"
 #  endif
index 473771b1c604f12e51c76aa8d6808280d1d1a3e2..5ec7a90f75907e385fb673c1daa170aec6e10d3e 100644 (file)
@@ -516,6 +516,48 @@ static UInt local_sys_getpid ( void )
    return __res;
 }
 
+#elif defined(VGP_s390x_linux)
+static UInt local_sys_write_stderr ( HChar* buf, Int n )
+{
+   register Int    r2     asm("2") = 2;      /* file descriptor STDERR */
+   register HChar* r3     asm("3") = buf;
+   register ULong  r4     asm("4") = n;
+   register ULong  r2_res asm("2");
+   ULong __res;
+
+   __asm__ __volatile__ (
+      "svc %b1\n"
+      : "=d" (r2_res)
+      : "i" (__NR_write),
+        "0" (r2),
+        "d" (r3),
+        "d" (r4)
+      : "cc", "memory");
+   __res = r2_res;
+
+   if (__res >= (ULong)(-125))
+      __res = -1;
+   return (UInt)(__res);
+}
+
+static UInt local_sys_getpid ( void )
+{
+   register ULong r2 asm("2");
+   ULong __res;
+
+   __asm__ __volatile__ (
+      "svc %b1\n"
+      : "=d" (r2)
+      : "i" (__NR_getpid)
+      : "cc", "memory");
+   __res = r2;
+
+   if (__res >= (ULong)(-125))
+      __res = -1;
+   return (UInt)(__res);
+}
+
+
 #else
 # error Unknown platform
 #endif
diff --git a/coregrind/m_dispatch/dispatch-s390x-linux.S b/coregrind/m_dispatch/dispatch-s390x-linux.S
new file mode 100644 (file)
index 0000000..4b9a800
--- /dev/null
@@ -0,0 +1,397 @@
+
+/*--------------------------------------------------------------------*/
+/*--- The core dispatch loop, for jumping to a code address.       ---*/
+/*---                                       dispatch-s390x-linux.S ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+  This file is part of Valgrind, a dynamic binary instrumentation
+  framework.
+
+  Copyright IBM Corp. 2010-2011
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU General Public License as
+  published by the Free Software Foundation; either version 2 of the
+  License, or (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+  02111-1307, USA.
+
+  The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Florian Krohm and Christian Borntraeger */
+
+#include "pub_core_basics_asm.h"
+#include "pub_core_dispatch_asm.h"
+#include "pub_core_transtab_asm.h"
+#include "libvex_guest_offsets.h"
+#include "libvex_s390x_common.h"
+
+#if defined(VGA_s390x)
+
+/*------------------------------------------------------------*/
+/*---                                                      ---*/
+/*--- The dispatch loop.  VG_(run_innerloop) is used to    ---*/
+/*--- run all translations except no-redir ones.           ---*/
+/*---                                                      ---*/
+/*------------------------------------------------------------*/
+
+/* Convenience definitions for readability */
+#undef  SP
+#define SP S390_REGNO_STACK_POINTER
+
+#undef  LR
+#define LR S390_REGNO_LINK_REGISTER
+
+/* Location of valgrind's saved FPC register */
+#define S390_LOC_SAVED_FPC_V S390_OFFSET_SAVED_FPC_V(SP)
+
+/* Location of saved guest state pointer */
+#define S390_LOC_SAVED_GSP S390_OFFSET_SAVED_GSP(SP)
+
+/*----------------------------------------------------*/
+/*--- Preamble (set everything up)                 ---*/
+/*----------------------------------------------------*/
+
+/* signature:
+UWord VG_(run_innerloop) ( void* guest_state, UWord do_profiling );
+*/
+
+.text
+.align   4
+.globl VG_(run_innerloop)
+VG_(run_innerloop):
+        /* r2 holds address of guest_state */
+        /* r3 holds do_profiling (a flag) */
+
+        /* Save gprs   ABI: r6...r13 and r15 */
+        stmg %r6,%r15,48(SP)
+
+        /* New stack frame */
+        aghi SP,-S390_INNERLOOP_FRAME_SIZE
+
+        /* Save fprs:   ABI: f8...f15 */
+        std  %f8,160+0(SP)
+        std  %f9,160+8(SP)
+        std  %f10,160+16(SP)
+        std  %f11,160+24(SP)
+        std  %f12,160+32(SP)
+        std  %f13,160+40(SP)
+        std  %f14,160+48(SP)
+        std  %f15,160+56(SP)
+
+        /* Load address of guest state into guest state register (r13) */
+        lgr  %r13,%r2
+
+        /* Store address of guest state pointer on stack.
+           It will be needed later because upon return from a VEX translation
+           r13 may contain a special value. So the old value will be used to
+           determine whether r13 contains a special value. */
+        stg  %r13,S390_LOC_SAVED_GSP
+
+        /* Save valgrind's FPC on stack so run_innerloop_exit can restore
+           it later . */
+        stfpc S390_LOC_SAVED_FPC_V
+
+        /* Load the FPC the way the client code wants it. I.e. pull the
+           value from the guest state.
+        lfpc OFFSET_s390x_fpc(%r13)
+
+        /* Get the IA from the guest state */
+        lg   %r2,OFFSET_s390x_IA(%r13)
+
+        /* Get VG_(dispatch_ctr) -- a 32-bit value -- and store it in a reg */
+        larl %r6,VG_(dispatch_ctr)
+        l    S390_REGNO_DISPATCH_CTR,0(%r6)
+
+        /* Fall into main loop (the right one) */
+
+        /* r3 = 1 --> do_profiling. We may trash r3 later on. That's OK,
+           because it's a volatile register (does not need to be preserved). */
+        ltgr %r3,%r3
+        je   run_innerloop__dispatch_unprofiled
+        j    run_innerloop__dispatch_profiled
+
+/*----------------------------------------------------*/
+/*--- NO-PROFILING (standard) dispatcher           ---*/
+/*----------------------------------------------------*/
+
+run_innerloop__dispatch_unprofiled:
+        /* This is the story:
+
+           r2  = IA = next guest address
+           r12 = VG_(dispatch_ctr)
+           r13 = guest state pointer or (upon return from guest code) some
+                 special value
+           r15 = stack pointer (as usual)
+        */
+
+       /* Has the guest state pointer been messed with?  If yes, exit. */
+        cg   %r13,S390_LOC_SAVED_GSP    /* r13 = actual guest state pointer */
+        larl %r8, VG_(tt_fast)
+        jne  gsp_changed
+
+        /* Save the jump address in the guest state */
+        stg  %r2,OFFSET_s390x_IA(%r13)
+
+
+       /* Try a fast lookup in the translation cache:
+           Compute offset (not index) into VT_(tt_fast):
+
+           offset = VG_TT_FAST_HASH(addr) * sizeof(FastCacheEntry)
+
+           with VG_TT_FAST_HASH(addr) == (addr >> 1) & VG_TT_FAST_MASK
+           and  sizeof(FastCacheEntry) == 16
+
+           offset = ((addr >> 1) & VG_TT_FAST_MASK) << 4
+        */
+        lghi %r5,VG_TT_FAST_MASK
+        srlg %r7, %r2,1              /* next guest addr >> 1*/
+        ngr  %r7,%r5
+        sllg %r7,%r7,4
+
+        /* Set the return address to the beginning of the loop here to
+           have some instruction between setting r7 and using it as an
+           address */
+       larl LR,run_innerloop__dispatch_unprofiled
+
+       /* Are we out of timeslice?  If yes, defer to scheduler. */
+        ahi  S390_REGNO_DISPATCH_CTR,-1
+        jz   counter_is_zero
+
+
+        lg   %r10, 0(%r8,%r7)      /* .guest */
+        lg   %r11, 8(%r8,%r7)      /* .host */
+        cgr  %r2, %r10
+        jne  fast_lookup_failed
+
+        /* Found a match.  Call .host.
+           r11 is an address. There we will find the instrumented client code.
+           That code may modify the guest state register r13. The client code
+           will return to the beginning of this loop start by issuing br LR.
+           We can simply branch to the host code */
+        br %r11
+
+
+/*----------------------------------------------------*/
+/*--- PROFILING dispatcher (can be much slower)    ---*/
+/*----------------------------------------------------*/
+
+run_innerloop__dispatch_profiled:
+
+       /* Has the guest state pointer been messed with?  If yes, exit. */
+        cg   %r13,S390_LOC_SAVED_GSP    /* r13 = actual guest state pointer */
+        larl %r8, VG_(tt_fast)
+        jne  gsp_changed
+
+        /* Save the jump address in the guest state */
+        stg  %r2,OFFSET_s390x_IA(%r13)
+
+       /* Try a fast lookup in the translation cache:
+           Compute offset (not index) into VT_(tt_fast):
+
+           offset = VG_TT_FAST_HASH(addr) * sizeof(FastCacheEntry)
+
+           with VG_TT_FAST_HASH(addr) == (addr >> 1) & VG_TT_FAST_MASK
+           and  sizeof(FastCacheEntry) == 16
+
+           offset = ((addr >> 1) & VG_TT_FAST_MASK) << 4
+        */
+        lghi %r5,VG_TT_FAST_MASK
+        srlg %r7,%r2,1              /* next guest addr >> 1*/
+        ngr  %r7,%r5
+        sllg %r7,%r7,4
+
+        /* Set the return address to the beginning of the loop here to
+           have some instruction between setting r7 and using it as an
+           address */
+       larl LR,run_innerloop__dispatch_profiled
+
+       /* Are we out of timeslice?  If yes, defer to scheduler. */
+        ahi  S390_REGNO_DISPATCH_CTR,-1
+        jz   counter_is_zero
+
+        lg   %r10, 0(%r8,%r7)      /* .guest */
+        lg   %r11, 8(%r8,%r7)      /* .host */
+        cgr  %r2, %r10
+        jne  fast_lookup_failed
+
+        /* sizeof(FastCacheEntry) == 16, sizeof(*UInt)==8 */
+        srlg %r7,%r7,1
+
+        /* we got a hit: VG_(tt_fastN) is guaranteed to point to count */
+        larl %r8, VG_(tt_fastN)
+
+        /* increment bb profile counter */
+        lg   %r9,0(%r8,%r7)
+        l    %r10,0(%r9)
+        ahi  %r10,1
+        st   %r10,0(%r9)
+
+        /* Found a match.  Call .host.
+           r11 is an address. There we will find the instrumented client code.
+           That code may modify the guest state register r13. The client code
+           will return to the beginning of this loop start by issuing br LR.
+           We can simply branch to the host code */
+        br %r11
+
+/*----------------------------------------------------*/
+/*--- exit points                                  ---*/
+/*----------------------------------------------------*/
+
+gsp_changed:
+       /* Someone messed with the gsp (in r13).  Have to
+           defer to scheduler to resolve this.  The register
+           holding VG_(dispatch_ctr) is not yet decremented,
+           so no need to increment. */
+
+        /* Update the IA in the guest state */
+        lg  %r6,S390_LOC_SAVED_GSP       /* r6 = original guest state pointer */
+        stg %r2,OFFSET_s390x_IA(%r6)
+
+        /* Return the special guest state pointer value */
+        lgr %r2, %r13
+       j   run_innerloop_exit
+
+
+counter_is_zero:
+       /* IA is up to date */
+
+       /* Back out decrement of the dispatch counter */
+        ahi S390_REGNO_DISPATCH_CTR,1
+
+        /* Set return value for the scheduler */
+        lghi %r2,VG_TRC_INNER_COUNTERZERO
+        j    run_innerloop_exit
+
+
+fast_lookup_failed:
+       /* IA is up to date */
+
+       /* Back out decrement of the dispatch counter */
+        ahi S390_REGNO_DISPATCH_CTR,1
+
+        /* Set return value for the scheduler */
+        lghi %r2,VG_TRC_INNER_FASTMISS
+        j    run_innerloop_exit
+
+
+        /* All exits from the dispatcher go through here.
+           When we come here r2 holds the return value. */
+run_innerloop_exit:
+
+       /* Restore valgrind's FPC, as client code may have changed it. */
+        lfpc S390_LOC_SAVED_FPC_V
+
+        /* Write ctr to VG_(dispatch_ctr) (=32bit value) */
+        larl %r6,VG_(dispatch_ctr)
+        st   S390_REGNO_DISPATCH_CTR,0(%r6)
+
+        /* Restore callee-saved registers... */
+
+        /* Floating-point regs */
+        ld  %f8,160+0(SP)
+        ld  %f9,160+8(SP)
+        ld  %f10,160+16(SP)
+        ld  %f11,160+24(SP)
+        ld  %f12,160+32(SP)
+        ld  %f13,160+40(SP)
+        ld  %f14,160+48(SP)
+        ld  %f15,160+56(SP)
+
+        /* Remove atack frame */
+        aghi SP,S390_INNERLOOP_FRAME_SIZE
+
+        /* General-purpose regs. This also restores the original link
+           register (r14) and stack pointer (r15). */
+        lmg %r6,%r15,48(SP)
+
+        /* Return */
+        br  LR
+
+/*------------------------------------------------------------*/
+/*---                                                      ---*/
+/*--- A special dispatcher, for running no-redir           ---*/
+/*--- translations.  Just runs the given translation once. ---*/
+/*---                                                      ---*/
+/*------------------------------------------------------------*/
+
+/* signature:
+void VG_(run_a_noredir_translation) ( UWord* argblock );
+*/
+
+/* Run a no-redir translation.  argblock points to 4 UWords, 2 to carry args
+   and 2 to carry results:
+      0: input:  ptr to translation
+      1: input:  ptr to guest state
+      2: output: next guest PC
+      3: output: guest state pointer afterwards (== thread return code)
+*/
+.text
+.align   4
+.globl VG_(run_a_noredir_translation)
+VG_(run_a_noredir_translation):
+        stmg %r6,%r15,48(SP)
+        aghi SP,-S390_INNERLOOP_FRAME_SIZE
+        std  %f8,160+0(SP)
+        std  %f9,160+8(SP)
+        std  %f10,160+16(SP)
+        std  %f11,160+24(SP)
+        std  %f12,160+32(SP)
+        std  %f13,160+40(SP)
+        std  %f14,160+48(SP)
+        std  %f15,160+56(SP)
+
+        /* Load address of guest state into guest state register (r13) */
+        lg   %r13,8(%r2)
+
+        /* Get the IA */
+        lg   %r11,0(%r2)
+
+        /* save r2 (argblock) as it is clobbered */
+       stg  %r2,160+64(SP)
+
+        /* the call itself */
+        basr LR,%r11
+
+        /* restore argblock */
+       lg   %r1,160+64(SP)
+       /* save the next guest PC */
+       stg  %r2,16(%r1)
+
+       /* save the guest state */
+       stg  %r13,24(%r1)
+
+        /* Restore Floating-point regs */
+        ld  %f8,160+0(SP)
+        ld  %f9,160+8(SP)
+        ld  %f10,160+16(SP)
+        ld  %f11,160+24(SP)
+        ld  %f12,160+32(SP)
+        ld  %f13,160+40(SP)
+        ld  %f14,160+48(SP)
+        ld  %f15,160+56(SP)
+
+        aghi SP,S390_INNERLOOP_FRAME_SIZE
+
+        lmg %r6,%r15,48(SP)
+       br  %r14
+
+
+/* Let the linker know we don't need an executable stack */
+.section .note.GNU-stack,"",@progbits
+
+#endif /* VGA_s390x */
+
+/*--------------------------------------------------------------------*/
+/*--- end                                   dispatch-s390x-linux.S ---*/
+/*--------------------------------------------------------------------*/
index ad7dedd213ec03fe10b26a9dff1fe624226d5377..14532fbfbc87a779e75b2a41d5973f7edef5f459 100644 (file)
@@ -1040,6 +1040,21 @@ void VG_(ii_finalise_image)( IIFinaliseImageInfo iifii )
    // FIXME jrs: what's this for?
    arch->vex.guest_R1 =  iifii.initial_client_SP;
 
+#  elif defined(VGP_s390x_linux)
+   vg_assert(0 == sizeof(VexGuestS390XState) % 16);
+
+   /* Zero out the initial state. This also sets the guest_fpc to 0, which
+      is also done by the kernel for the fpc during execve. */
+   LibVEX_GuestS390X_initialise(&arch->vex);
+
+   /* Zero out the shadow area. */
+   VG_(memset)(&arch->vex_shadow1, 0, sizeof(VexGuestS390XState));
+   VG_(memset)(&arch->vex_shadow2, 0, sizeof(VexGuestS390XState));
+
+   /* Put essential stuff into the new state. */
+   arch->vex.guest_SP = iifii.initial_client_SP;
+   arch->vex.guest_IA = iifii.initial_client_IP;
+
 #  else
 #    error Unknown platform
 #  endif
index 731864ff26000838b39aac322131b6d65dda7e79..63e3f1cd7d86c74b009459b46000da315f80e5e1 100644 (file)
         (srP)->misc.ARM.r11 = block[4];                   \
         (srP)->misc.ARM.r7  = block[5];                   \
       }
+#elif defined(VGP_s390x_linux)
+#  define GET_STARTREGS(srP)                              \
+      { ULong ia, sp, fp, lr;                             \
+        __asm__ __volatile__(                             \
+           "bras %0,0f;"                                  \
+           "0: lgr %1,15;"                                \
+           "lgr %2,11;"                                   \
+           "lgr %3,14;"                                   \
+           : "=r" (ia), "=r" (sp),"=r" (fp),"=r" (lr)     \
+           /* no read & clobber */                        \
+        );                                                \
+        (srP)->r_pc = ia;                                 \
+        (srP)->r_sp = sp;                                 \
+        (srP)->misc.S390X.r_fp = fp;                      \
+        (srP)->misc.S390X.r_lr = lr;                      \
+      }
 #else
 #  error Unknown platform
 #endif
index 9c1847be95586450292069211d9e9b172610a9d0..8c1dbc9950b8bf9ef55acc24f4ce62996d20193b 100644 (file)
@@ -795,7 +795,7 @@ static Int parse_inet_addr_and_port ( UChar* str, UInt* ip_addr, UShort* port )
 Int VG_(socket) ( Int domain, Int type, Int protocol )
 {
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[3];
    args[0] = domain;
@@ -836,7 +836,7 @@ static
 Int my_connect ( Int sockfd, struct vki_sockaddr_in* serv_addr, Int addrlen )
 {
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[3];
    args[0] = sockfd;
@@ -876,7 +876,7 @@ Int VG_(write_socket)( Int sd, void *msg, Int count )
       SIGPIPE */
 
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[4];
    args[0] = sd;
@@ -908,7 +908,7 @@ Int VG_(write_socket)( Int sd, void *msg, Int count )
 Int VG_(getsockname) ( Int sd, struct vki_sockaddr *name, Int *namelen)
 {
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[3];
    args[0] = sd;
@@ -940,7 +940,7 @@ Int VG_(getsockname) ( Int sd, struct vki_sockaddr *name, Int *namelen)
 Int VG_(getpeername) ( Int sd, struct vki_sockaddr *name, Int *namelen)
 {
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[3];
    args[0] = sd;
@@ -973,7 +973,7 @@ Int VG_(getsockopt) ( Int sd, Int level, Int optname, void *optval,
                       Int *optlen)
 {
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
-      || defined(VGP_ppc64_linux)
+      || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
    SysRes res;
    UWord  args[5];
    args[0] = sd;
index 61441d7d346c4d3b7aed64a62249c1651b911f11..e01f6129df5151275803af165c75e6758ca7faf3 100644 (file)
@@ -545,7 +545,7 @@ Int VG_(getgroups)( Int size, UInt* list )
 #  elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux)  \
         || defined(VGP_arm_linux)                             \
         || defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) \
-        || defined(VGO_darwin)
+        || defined(VGO_darwin) || defined(VGP_s390x_linux)
    SysRes sres;
    sres = VG_(do_syscall2)(__NR_getgroups, size, (Addr)list);
    if (sr_isError(sres))
index 8dc3e17dbef4894574641f8578c48829930d1700..d832d307d2d178d773cb524f64845bda2bba8de6 100644 (file)
@@ -94,6 +94,13 @@ void VG_(get_UnwindStartRegs) ( /*OUT*/UnwindStartRegs* regs,
       = VG_(threads)[tid].arch.vex.guest_R11;
    regs->misc.ARM.r7
       = VG_(threads)[tid].arch.vex.guest_R7;
+#  elif defined(VGA_s390x)
+   regs->r_pc = (ULong)VG_(threads)[tid].arch.vex.guest_IA;
+   regs->r_sp = (ULong)VG_(threads)[tid].arch.vex.guest_SP;
+   regs->misc.S390X.r_fp
+      = VG_(threads)[tid].arch.vex.guest_r11;
+   regs->misc.S390X.r_lr
+      = VG_(threads)[tid].arch.vex.guest_r14;
 #  else
 #    error "Unknown arch"
 #  endif
@@ -125,6 +132,9 @@ void VG_(set_syscall_return_shadows) ( ThreadId tid,
    VG_(threads)[tid].arch.vex_shadow2.guest_GPR4 = s2err;
 #  elif defined(VGO_darwin)
    // GrP fixme darwin syscalls may return more values (2 registers plus error)
+#  elif defined(VGP_s390x_linux)
+   VG_(threads)[tid].arch.vex_shadow1.guest_r2 = s1res;
+   VG_(threads)[tid].arch.vex_shadow2.guest_r2 = s2res;
 #  else
 #    error "Unknown plat"
 #  endif
@@ -257,6 +267,23 @@ static void apply_to_GPs_of_tid(VexGuestArchState* vex, void (*f)(Addr))
    (*f)(vex->guest_R12);
    (*f)(vex->guest_R13);
    (*f)(vex->guest_R14);
+#elif defined(VGA_s390x)
+   (*f)(vex->guest_r0);
+   (*f)(vex->guest_r1);
+   (*f)(vex->guest_r2);
+   (*f)(vex->guest_r3);
+   (*f)(vex->guest_r4);
+   (*f)(vex->guest_r5);
+   (*f)(vex->guest_r6);
+   (*f)(vex->guest_r7);
+   (*f)(vex->guest_r8);
+   (*f)(vex->guest_r9);
+   (*f)(vex->guest_r10);
+   (*f)(vex->guest_r11);
+   (*f)(vex->guest_r12);
+   (*f)(vex->guest_r13);
+   (*f)(vex->guest_r14);
+   (*f)(vex->guest_r15);
 #else
 #  error Unknown arch
 #endif
@@ -357,6 +384,11 @@ SizeT VG_(thread_get_altstack_size)(ThreadId tid)
           then safe to use VG_(machine_get_VexArchInfo) 
                        and VG_(machine_ppc64_has_VMX)
 
+   -------------
+   s390x: initially:  call VG_(machine_get_hwcaps)
+
+          then safe to use VG_(machine_get_VexArchInfo)
+
    VG_(machine_get_hwcaps) may use signals (although it attempts to
    leave signal state unchanged) and therefore should only be
    called before m_main sets up the client's signal state.
@@ -383,10 +415,11 @@ ULong VG_(machine_ppc64_has_VMX) = 0;
 Int VG_(machine_arm_archlevel) = 4;
 #endif
 
+/* fixs390: anything for s390x here ? */
 
 /* For hwcaps detection on ppc32/64 and arm we'll need to do SIGILL
    testing, so we need a jmp_buf. */
-#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_arm)
+#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_arm) || defined(VGA_s390x)
 #include <setjmp.h> // For jmp_buf
 static jmp_buf env_unsup_insn;
 static void handler_unsup_insn ( Int x ) { __builtin_longjmp(env_unsup_insn,1); }
@@ -835,6 +868,96 @@ Bool VG_(machine_get_hwcaps)( void )
      return True;
    }
 
+#elif defined(VGA_s390x)
+   {
+     /* Instruction set detection code borrowed from ppc above. */
+     vki_sigset_t          saved_set, tmp_set;
+     vki_sigaction_fromK_t saved_sigill_act;
+     vki_sigaction_toK_t     tmp_sigill_act;
+
+     volatile Bool have_LDISP, have_EIMM, have_GIE, have_DFP;
+     Int r;
+
+     /* Unblock SIGILL and stash away the old action for that signal */
+     VG_(sigemptyset)(&tmp_set);
+     VG_(sigaddset)(&tmp_set, VKI_SIGILL);
+
+     r = VG_(sigprocmask)(VKI_SIG_UNBLOCK, &tmp_set, &saved_set);
+     vg_assert(r == 0);
+
+     r = VG_(sigaction)(VKI_SIGILL, NULL, &saved_sigill_act);
+     vg_assert(r == 0);
+     tmp_sigill_act = saved_sigill_act;
+
+     /* NODEFER: signal handler does not return (from the kernel's point of
+        view), hence if it is to successfully catch a signal more than once,
+        we need the NODEFER flag. */
+     tmp_sigill_act.sa_flags &= ~VKI_SA_RESETHAND;
+     tmp_sigill_act.sa_flags &= ~VKI_SA_SIGINFO;
+     tmp_sigill_act.sa_flags |=  VKI_SA_NODEFER;
+     tmp_sigill_act.ksa_handler = handler_unsup_insn;
+     VG_(sigaction)(VKI_SIGILL, &tmp_sigill_act, NULL);
+
+     /* Determine hwcaps. Note, we cannot use the stfle insn because it
+        is not supported on z900. */
+
+     have_LDISP = True;
+     if (__builtin_setjmp(env_unsup_insn)) {
+        have_LDISP = False;
+     } else {
+       /* BASR loads the address of the next insn into r1. Needed to avoid
+          a segfault in XY. */
+        __asm__ __volatile__("basr %%r1,%%r0\n\t"
+                             ".long  0xe3001000\n\t"  /* XY  0,0(%r1) */
+                             ".short 0x0057" : : : "r0", "r1", "cc", "memory");
+     }
+
+     have_EIMM = True;
+     if (__builtin_setjmp(env_unsup_insn)) {
+        have_EIMM = False;
+     } else {
+        __asm__ __volatile__(".long  0xc0090000\n\t"  /* iilf r0,0 */
+                             ".short 0x0000" : : : "r0", "memory");
+     }
+
+     have_GIE = True;
+     if (__builtin_setjmp(env_unsup_insn)) {
+        have_GIE = False;
+     } else {
+        __asm__ __volatile__(".long  0xc2010000\n\t"  /* msfi r0,0 */
+                             ".short 0x0000" : : : "r0", "memory");
+     }
+
+     have_DFP = True;
+     if (__builtin_setjmp(env_unsup_insn)) {
+        have_DFP = False;
+     } else {
+        __asm__ __volatile__(".long 0xb3d20000"
+                               : : : "r0", "cc", "memory");  /* adtr r0,r0,r0 */
+     }
+
+     /* Restore signals */
+     r = VG_(sigaction)(VKI_SIGILL, &saved_sigill_act, NULL);
+     vg_assert(r == 0);
+     r = VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
+     vg_assert(r == 0);
+     VG_(debugLog)(1, "machine", "LDISP %d EIMM %d GIE %d DFP %d\n",
+                   have_LDISP, have_EIMM, have_GIE, have_DFP);
+
+     /* Check for long displacement facility which is required */
+     if (! have_LDISP) return False;
+
+     va = VexArchS390X;
+
+     vai.hwcaps = 0;
+     if (have_LDISP) vai.hwcaps |= VEX_HWCAPS_S390X_LDISP;
+     if (have_EIMM)  vai.hwcaps |= VEX_HWCAPS_S390X_EIMM;
+     if (have_GIE)   vai.hwcaps |= VEX_HWCAPS_S390X_GIE;
+     if (have_DFP)   vai.hwcaps |= VEX_HWCAPS_S390X_DFP;
+
+     return True;
+   }
+
 #elif defined(VGA_arm)
    {
      /* Same instruction set detection algorithm as for ppc32. */
@@ -1017,7 +1140,8 @@ void* VG_(fnptr_to_fnentry)( void* f )
 {
 #if defined(VGP_x86_linux) || defined(VGP_amd64_linux)  \
     || defined(VGP_arm_linux)                           \
-    || defined(VGP_ppc32_linux) || defined(VGO_darwin)
+    || defined(VGP_ppc32_linux) || defined(VGO_darwin)  \
+    || defined(VGP_s390x_linux)
    return f;
 #elif defined(VGP_ppc64_linux) || defined(VGP_ppc32_aix5) \
                                || defined(VGP_ppc64_aix5)
index d5e762dcb276bcefa7a82c549af9d4b1815d2717..acfcdda78f60f4ecdbca8437e2cf6d543a91d15f 100644 (file)
@@ -1626,6 +1626,7 @@ Int valgrind_main ( Int argc, HChar **argv, HChar **envp )
                     "AMD Athlon or above)\n");
         VG_(printf)("   * AMD Athlon64/Opteron\n");
         VG_(printf)("   * PowerPC (most; ppc405 and above)\n");
+        VG_(printf)("   * System z (64bit only - s390x; z900 and above)\n");
         VG_(printf)("\n");
         VG_(exit)(1);
      }
@@ -1937,6 +1938,8 @@ Int valgrind_main ( Int argc, HChar **argv, HChar **envp )
       iters = 5;
 #     elif defined(VGP_arm_linux)
       iters = 1;
+#     elif defined(VGP_s390x_linux)
+      iters = 10;
 #     elif defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
       iters = 4;
 #     elif defined(VGO_darwin)
@@ -2777,6 +2780,47 @@ asm("\n"
     "\tnop\n"
     "\ttrap\n"
 );
+#elif defined(VGP_s390x_linux)
+/*
+    This is the canonical entry point, usually the first thing in the text
+    segment. Most registers' values are unspecified, except for:
+
+    %r14         Contains a function pointer to be registered with `atexit'.
+                 This is how the dynamic linker arranges to have DT_FINI
+                 functions called for shared libraries that have been loaded
+                 before this code runs.
+
+    %r15         The stack contains the arguments and environment:
+                 0(%r15)              argc
+                 8(%r15)              argv[0]
+                 ...
+                 (8*argc)(%r15)       NULL
+                 (8*(argc+1))(%r15)   envp[0]
+                 ...
+                                      NULL
+*/
+asm("\n\t"
+    ".text\n\t"
+    ".globl _start\n\t"
+    ".type  _start,@function\n\t"
+    "_start:\n\t"
+    /* set up the new stack in %r1 */
+    "larl   %r1,  vgPlain_interim_stack\n\t"
+    "larl   %r5,  1f\n\t"
+    "ag     %r1,  0(%r5)\n\t"
+    "ag     %r1,  2f-1f(%r5)\n\t"
+    "nill   %r1,  0xFFF0\n\t"
+    /* install it, and collect the original one */
+    "lgr    %r2,  %r15\n\t"
+    "lgr    %r15, %r1\n\t"
+    /* call _start_in_C_linux, passing it the startup %r15 */
+    "brasl  %r14, _start_in_C_linux\n\t"
+    /* trigger execution of an invalid opcode -> halt machine */
+    "j      .+2\n\t"
+    "1:   .quad "VG_STRINGIFY(VG_STACK_GUARD_SZB)"\n\t"
+    "2:   .quad "VG_STRINGIFY(VG_STACK_ACTIVE_SZB)"\n\t"
+    ".previous\n"
+);
 #elif defined(VGP_arm_linux)
 asm("\n"
     "\t.align 2\n"
index db7131f95dc28c9d59490499945727aff85df273..065b61aa07cdeeab8e1513f514fb9b8f1379130f 100644 (file)
@@ -1078,6 +1078,9 @@ void VG_(redir_initialise) ( void )
                          (Addr)&VG_(amd64_darwin_REDIR_FOR_arc4random), NULL);
    }
 
+#  elif defined(VGP_s390x_linux)
+   /* nothing so far */
+
 #  else
 #    error Unknown platform
 #  endif
index c95c6a30fee7e0f99d5771ef37c9b6b2dc7fc97e..fb25c9be8622d9bf7b78ffbd51effa3663095ef9 100644 (file)
@@ -677,6 +677,10 @@ static void do_pre_run_checks ( ThreadState* tst )
    vg_assert(VG_IS_8_ALIGNED(& tst->arch.vex_shadow1.guest_D1));
    vg_assert(VG_IS_8_ALIGNED(& tst->arch.vex_shadow2.guest_D1));
 #  endif
+
+#  if defined(VGA_s390x)
+   /* no special requirements */
+#  endif
 }
 
 
@@ -1311,6 +1315,9 @@ void VG_(nuke_all_threads_except) ( ThreadId me, VgSchedReturnCode src )
 #elif defined(VGA_arm)
 #  define VG_CLREQ_ARGS       guest_R4
 #  define VG_CLREQ_RET        guest_R3
+#elif defined (VGA_s390x)
+#  define VG_CLREQ_ARGS       guest_r2
+#  define VG_CLREQ_RET        guest_r3
 #else
 #  error Unknown arch
 #endif
diff --git a/coregrind/m_sigframe/sigframe-s390x-linux.c b/coregrind/m_sigframe/sigframe-s390x-linux.c
new file mode 100644 (file)
index 0000000..e5e3801
--- /dev/null
@@ -0,0 +1,570 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Create/destroy signal delivery frames.                       ---*/
+/*---                                       sigframe-s390x-linux.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Christian Borntraeger */
+
+#include "pub_core_basics.h"
+#include "pub_core_vki.h"
+#include "pub_core_vkiscnums.h"
+#include "pub_core_threadstate.h"
+#include "pub_core_aspacemgr.h"
+#include "pub_core_libcbase.h"
+#include "pub_core_libcassert.h"
+#include "pub_core_libcprint.h"
+#include "pub_core_machine.h"
+#include "pub_core_options.h"
+#include "pub_core_sigframe.h"
+#include "pub_core_signals.h"
+#include "pub_core_tooliface.h"
+#include "pub_core_trampoline.h"
+
+#if defined(VGA_s390x)
+
+/* This module creates and removes signal frames for signal deliveries
+   on s390x-linux.
+
+   Note, this file contains kernel-specific knowledge in the form of
+   'struct sigframe' and 'struct rt_sigframe'.
+
+   Either a 'struct sigframe' or a 'struct rtsigframe' is pushed
+   onto the client's stack.  This contains a subsidiary
+   vki_ucontext.  That holds the vcpu's state across the signal,
+   so that the sighandler can mess with the vcpu state if it
+   really wants.
+*/
+
+#define SET_SIGNAL_GPR(zztst, zzn, zzval)                    \
+   do { zztst->arch.vex.guest_r##zzn = (unsigned long)(zzval);              \
+      VG_TRACK( post_reg_write, Vg_CoreSignal, zztst->tid,     \
+                offsetof(VexGuestS390XState,guest_r##zzn), \
+                sizeof(UWord) );                             \
+   } while (0)
+
+/*------------------------------------------------------------*/
+/*--- Signal frame layouts                                 ---*/
+/*------------------------------------------------------------*/
+
+// A structure in which to save the application's registers
+// during the execution of signal handlers.
+
+// Linux has 2 signal frame structures: one for normal signal
+// deliveries, and one for SA_SIGINFO deliveries (also known as RT
+// signals).
+//
+// In theory, so long as we get the arguments to the handler function
+// right, it doesn't matter what the exact layout of the rest of the
+// frame is.  Unfortunately, things like gcc's exception unwinding
+// make assumptions about the locations of various parts of the frame,
+// so we need to duplicate it exactly.
+
+/* Valgrind-specific parts of the signal frame */
+struct vg_sigframe
+{
+   /* Sanity check word. */
+   UInt magicPI;
+
+   UInt handlerflags;  /* flags for signal handler */
+
+
+   /* Safely-saved version of sigNo, as described above. */
+   Int  sigNo_private;
+
+   /* XXX This is wrong.  Surely we should store the shadow values
+      into the shadow memory behind the actual values? */
+   VexGuestS390XState vex_shadow1;
+   VexGuestS390XState vex_shadow2;
+
+   /* HACK ALERT */
+   VexGuestS390XState vex;
+   /* end HACK ALERT */
+
+   /* saved signal mask to be restored when handler returns */
+   vki_sigset_t        mask;
+
+   /* Sanity check word.  Is the highest-addressed word; do not
+      move!*/
+   UInt magicE;
+};
+
+#define S390_SYSCALL_SIZE 2
+
+struct sigframe
+{
+   UChar callee_used_stack[__VKI_SIGNAL_FRAMESIZE];
+   struct vki_sigcontext sc;
+   _vki_sigregs sregs;
+   Int sigNo;
+   UChar retcode[S390_SYSCALL_SIZE];
+
+   struct vg_sigframe vg;
+};
+
+struct rt_sigframe
+{
+   UChar callee_used_stack[__VKI_SIGNAL_FRAMESIZE];
+   UChar retcode[S390_SYSCALL_SIZE];
+   struct vki_siginfo info;
+   struct vki_ucontext uc;
+
+   struct vg_sigframe vg;
+};
+
+/*------------------------------------------------------------*/
+/*--- Creating signal frames                               ---*/
+/*------------------------------------------------------------*/
+
+/* Saves all user-controlled register into a _vki_sigregs structure */
+static void save_sigregs(ThreadState *tst, _vki_sigregs *sigregs)
+{
+   sigregs->regs.gprs[0]  = tst->arch.vex.guest_r0;
+   sigregs->regs.gprs[1]  = tst->arch.vex.guest_r1;
+   sigregs->regs.gprs[2]  = tst->arch.vex.guest_r2;
+   sigregs->regs.gprs[3]  = tst->arch.vex.guest_r3;
+   sigregs->regs.gprs[4]  = tst->arch.vex.guest_r4;
+   sigregs->regs.gprs[5]  = tst->arch.vex.guest_r5;
+   sigregs->regs.gprs[6]  = tst->arch.vex.guest_r6;
+   sigregs->regs.gprs[7]  = tst->arch.vex.guest_r7;
+   sigregs->regs.gprs[8]  = tst->arch.vex.guest_r8;
+   sigregs->regs.gprs[9]  = tst->arch.vex.guest_r9;
+   sigregs->regs.gprs[10] = tst->arch.vex.guest_r10;
+   sigregs->regs.gprs[11] = tst->arch.vex.guest_r11;
+   sigregs->regs.gprs[12] = tst->arch.vex.guest_r12;
+   sigregs->regs.gprs[13] = tst->arch.vex.guest_r13;
+   sigregs->regs.gprs[14] = tst->arch.vex.guest_r14;
+   sigregs->regs.gprs[15] = tst->arch.vex.guest_r15;
+
+   sigregs->regs.acrs[0]  = tst->arch.vex.guest_a0;
+   sigregs->regs.acrs[1]  = tst->arch.vex.guest_a1;
+   sigregs->regs.acrs[2]  = tst->arch.vex.guest_a2;
+   sigregs->regs.acrs[3]  = tst->arch.vex.guest_a3;
+   sigregs->regs.acrs[4]  = tst->arch.vex.guest_a4;
+   sigregs->regs.acrs[5]  = tst->arch.vex.guest_a5;
+   sigregs->regs.acrs[6]  = tst->arch.vex.guest_a6;
+   sigregs->regs.acrs[7]  = tst->arch.vex.guest_a7;
+   sigregs->regs.acrs[8]  = tst->arch.vex.guest_a8;
+   sigregs->regs.acrs[9]  = tst->arch.vex.guest_a9;
+   sigregs->regs.acrs[10] = tst->arch.vex.guest_a10;
+   sigregs->regs.acrs[11] = tst->arch.vex.guest_a11;
+   sigregs->regs.acrs[12] = tst->arch.vex.guest_a12;
+   sigregs->regs.acrs[13] = tst->arch.vex.guest_a13;
+   sigregs->regs.acrs[14] = tst->arch.vex.guest_a14;
+   sigregs->regs.acrs[15] = tst->arch.vex.guest_a15;
+
+   sigregs->fpregs.fprs[0] = tst->arch.vex.guest_f0;
+   sigregs->fpregs.fprs[1] = tst->arch.vex.guest_f1;
+   sigregs->fpregs.fprs[2] = tst->arch.vex.guest_f2;
+   sigregs->fpregs.fprs[3] = tst->arch.vex.guest_f3;
+   sigregs->fpregs.fprs[4] = tst->arch.vex.guest_f4;
+   sigregs->fpregs.fprs[5] = tst->arch.vex.guest_f5;
+   sigregs->fpregs.fprs[6] = tst->arch.vex.guest_f6;
+   sigregs->fpregs.fprs[7] = tst->arch.vex.guest_f7;
+   sigregs->fpregs.fprs[8] = tst->arch.vex.guest_f8;
+   sigregs->fpregs.fprs[9] = tst->arch.vex.guest_f9;
+   sigregs->fpregs.fprs[10] = tst->arch.vex.guest_f10;
+   sigregs->fpregs.fprs[11] = tst->arch.vex.guest_f11;
+   sigregs->fpregs.fprs[12] = tst->arch.vex.guest_f12;
+   sigregs->fpregs.fprs[13] = tst->arch.vex.guest_f13;
+   sigregs->fpregs.fprs[14] = tst->arch.vex.guest_f14;
+   sigregs->fpregs.fprs[15] = tst->arch.vex.guest_f15;
+   sigregs->fpregs.fpc      = tst->arch.vex.guest_fpc;
+
+   sigregs->regs.psw.addr = tst->arch.vex.guest_IA;
+   /* save a sane dummy mask */
+   sigregs->regs.psw.mask = 0x0705000180000000UL;
+}
+
+static void restore_sigregs(ThreadState *tst, _vki_sigregs *sigregs)
+{
+   tst->arch.vex.guest_r0  = sigregs->regs.gprs[0];
+   tst->arch.vex.guest_r1  = sigregs->regs.gprs[1];
+   tst->arch.vex.guest_r2  = sigregs->regs.gprs[2];
+   tst->arch.vex.guest_r3  = sigregs->regs.gprs[3];
+   tst->arch.vex.guest_r4  = sigregs->regs.gprs[4];
+   tst->arch.vex.guest_r5  = sigregs->regs.gprs[5];
+   tst->arch.vex.guest_r6  = sigregs->regs.gprs[6];
+   tst->arch.vex.guest_r7  = sigregs->regs.gprs[7];
+   tst->arch.vex.guest_r8  = sigregs->regs.gprs[8];
+   tst->arch.vex.guest_r9  = sigregs->regs.gprs[9];
+   tst->arch.vex.guest_r10 = sigregs->regs.gprs[10];
+   tst->arch.vex.guest_r11 = sigregs->regs.gprs[11];
+   tst->arch.vex.guest_r12 = sigregs->regs.gprs[12];
+   tst->arch.vex.guest_r13 = sigregs->regs.gprs[13];
+   tst->arch.vex.guest_r14 = sigregs->regs.gprs[14];
+   tst->arch.vex.guest_r15 = sigregs->regs.gprs[15];
+
+   tst->arch.vex.guest_a0  = sigregs->regs.acrs[0];
+   tst->arch.vex.guest_a1  = sigregs->regs.acrs[1];
+   tst->arch.vex.guest_a2  = sigregs->regs.acrs[2];
+   tst->arch.vex.guest_a3  = sigregs->regs.acrs[3];
+   tst->arch.vex.guest_a4  = sigregs->regs.acrs[4];
+   tst->arch.vex.guest_a5  = sigregs->regs.acrs[5];
+   tst->arch.vex.guest_a6  = sigregs->regs.acrs[6];
+   tst->arch.vex.guest_a7  = sigregs->regs.acrs[7];
+   tst->arch.vex.guest_a8  = sigregs->regs.acrs[8];
+   tst->arch.vex.guest_a9  = sigregs->regs.acrs[9];
+   tst->arch.vex.guest_a10 = sigregs->regs.acrs[10];
+   tst->arch.vex.guest_a11 = sigregs->regs.acrs[11];
+   tst->arch.vex.guest_a12 = sigregs->regs.acrs[12];
+   tst->arch.vex.guest_a13 = sigregs->regs.acrs[13];
+   tst->arch.vex.guest_a14 = sigregs->regs.acrs[14];
+   tst->arch.vex.guest_a15 = sigregs->regs.acrs[15];
+
+   tst->arch.vex.guest_f0  = sigregs->fpregs.fprs[0];
+   tst->arch.vex.guest_f1  = sigregs->fpregs.fprs[1];
+   tst->arch.vex.guest_f2  = sigregs->fpregs.fprs[2];
+   tst->arch.vex.guest_f3  = sigregs->fpregs.fprs[3];
+   tst->arch.vex.guest_f4  = sigregs->fpregs.fprs[4];
+   tst->arch.vex.guest_f5  = sigregs->fpregs.fprs[5];
+   tst->arch.vex.guest_f6  = sigregs->fpregs.fprs[6];
+   tst->arch.vex.guest_f7  = sigregs->fpregs.fprs[7];
+   tst->arch.vex.guest_f8  = sigregs->fpregs.fprs[8];
+   tst->arch.vex.guest_f9  = sigregs->fpregs.fprs[9];
+   tst->arch.vex.guest_f10 = sigregs->fpregs.fprs[10];
+   tst->arch.vex.guest_f11 = sigregs->fpregs.fprs[11];
+   tst->arch.vex.guest_f12 = sigregs->fpregs.fprs[12];
+   tst->arch.vex.guest_f13 = sigregs->fpregs.fprs[13];
+   tst->arch.vex.guest_f14 = sigregs->fpregs.fprs[14];
+   tst->arch.vex.guest_f15 = sigregs->fpregs.fprs[15];
+   tst->arch.vex.guest_fpc = sigregs->fpregs.fpc;
+
+   tst->arch.vex.guest_IA = sigregs->regs.psw.addr;
+}
+
+/* Extend the stack segment downwards if needed so as to ensure the
+   new signal frames are mapped to something.  Return a Bool
+   indicating whether or not the operation was successful.
+*/
+static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
+{
+   ThreadId        tid = tst->tid;
+   NSegment const* stackseg = NULL;
+
+   if (VG_(extend_stack)(addr, tst->client_stack_szB)) {
+      stackseg = VG_(am_find_nsegment)(addr);
+      if (0 && stackseg)
+        VG_(printf)("frame=%#lx seg=%#lx-%#lx\n",
+                    addr, stackseg->start, stackseg->end);
+   }
+
+   if (stackseg == NULL || !stackseg->hasR || !stackseg->hasW) {
+      VG_(message)(
+         Vg_UserMsg,
+         "Can't extend stack to %#lx during signal delivery for thread %d:\n",
+         addr, tid);
+      if (stackseg == NULL)
+         VG_(message)(Vg_UserMsg, "  no stack segment\n");
+      else
+         VG_(message)(Vg_UserMsg, "  too small or bad protection modes\n");
+
+      /* set SIGSEGV to default handler */
+      VG_(set_default_handler)(VKI_SIGSEGV);
+      VG_(synth_fault_mapping)(tid, addr);
+
+      /* The whole process should be about to die, since the default
+        action of SIGSEGV to kill the whole process. */
+      return False;
+   }
+
+   /* For tracking memory events, indicate the entire frame has been
+      allocated. */
+   VG_TRACK( new_mem_stack_signal, addr - VG_STACK_REDZONE_SZB,
+             size + VG_STACK_REDZONE_SZB, tid );
+
+   return True;
+}
+
+
+/* Build the Valgrind-specific part of a signal frame. */
+
+static void build_vg_sigframe(struct vg_sigframe *frame,
+                             ThreadState *tst,
+                             UInt flags,
+                             Int sigNo)
+{
+   frame->sigNo_private = sigNo;
+   frame->magicPI       = 0x31415927;
+   frame->vex_shadow1   = tst->arch.vex_shadow1;
+   frame->vex_shadow2   = tst->arch.vex_shadow2;
+   /* HACK ALERT */
+   frame->vex           = tst->arch.vex;
+   /* end HACK ALERT */
+   frame->mask          = tst->sig_mask;
+   frame->handlerflags  = flags;
+   frame->magicE        = 0x27182818;
+}
+
+
+static Addr build_sigframe(ThreadState *tst,
+                          Addr sp_top_of_frame,
+                          const vki_siginfo_t *siginfo,
+                          const struct vki_ucontext *siguc,
+                          UInt flags,
+                          const vki_sigset_t *mask,
+                          void *restorer)
+{
+   struct sigframe *frame;
+   Addr sp = sp_top_of_frame;
+
+   vg_assert((flags & VKI_SA_SIGINFO) == 0);
+   vg_assert((sizeof(*frame) & 7) == 0);
+   vg_assert((sp & 7) == 0);
+
+   sp -= sizeof(*frame);
+   frame = (struct sigframe *)sp;
+
+   if (!extend(tst, sp, sizeof(*frame)))
+      return sp_top_of_frame;
+
+   /* retcode, sigNo, sc, sregs fields are to be written */
+   VG_TRACK( pre_mem_write, Vg_CoreSignal, tst->tid, "signal handler frame",
+            sp, offsetof(struct sigframe, vg) );
+
+   save_sigregs(tst, &frame->sregs);
+
+   frame->sigNo = siginfo->si_signo;
+   frame->sc.sregs = &frame->sregs;
+   VG_(memcpy)(frame->sc.oldmask, mask->sig, sizeof(frame->sc.oldmask));
+
+   if (flags & VKI_SA_RESTORER) {
+      SET_SIGNAL_GPR(tst, 14, restorer);
+   } else {
+      frame->retcode[0] = 0x0a;
+      frame->retcode[1] = __NR_sigreturn;
+      /* This normally should be &frame->recode. but since there
+         might be problems with non-exec stack and we must discard
+         the translation for the on-stack sigreturn we just use the
+         trampoline like x86,ppc. We still fill in the retcode, lets
+         just hope that nobody actually jumps here */
+      SET_SIGNAL_GPR(tst, 14, (Addr)&VG_(s390x_linux_SUBST_FOR_sigreturn));
+   }
+
+   SET_SIGNAL_GPR(tst, 2, siginfo->si_signo);
+   SET_SIGNAL_GPR(tst, 3, &frame->sc);
+   /* fixs390: we dont fill in trapno and prot_addr in r4 and r5*/
+
+   /* Set up backchain. */
+   *((Addr *) sp) = sp_top_of_frame;
+
+   VG_TRACK( post_mem_write, Vg_CoreSignal, tst->tid,
+             sp, offsetof(struct sigframe, vg) );
+
+   build_vg_sigframe(&frame->vg, tst, flags, siginfo->si_signo);
+
+   return sp;
+}
+
+static Addr build_rt_sigframe(ThreadState *tst,
+                             Addr sp_top_of_frame,
+                             const vki_siginfo_t *siginfo,
+                             const struct vki_ucontext *siguc,
+                             UInt flags,
+                             const vki_sigset_t *mask,
+                             void *restorer)
+{
+   struct rt_sigframe *frame;
+   Addr sp = sp_top_of_frame;
+   Int sigNo = siginfo->si_signo;
+
+   vg_assert((flags & VKI_SA_SIGINFO) != 0);
+   vg_assert((sizeof(*frame) & 7) == 0);
+   vg_assert((sp & 7) == 0);
+
+   sp -= sizeof(*frame);
+   frame = (struct rt_sigframe *)sp;
+
+   if (!extend(tst, sp, sizeof(*frame)))
+      return sp_top_of_frame;
+
+   /* retcode, sigNo, sc, sregs fields are to be written */
+   VG_TRACK( pre_mem_write, Vg_CoreSignal, tst->tid, "signal handler frame",
+            sp, offsetof(struct rt_sigframe, vg) );
+
+   save_sigregs(tst, &frame->uc.uc_mcontext);
+
+   if (flags & VKI_SA_RESTORER) {
+      frame->retcode[0] = 0;
+      frame->retcode[1] = 0;
+      SET_SIGNAL_GPR(tst, 14, restorer);
+   } else {
+      frame->retcode[0] = 0x0a;
+      frame->retcode[1] = __NR_rt_sigreturn;
+      /* This normally should be &frame->recode. but since there
+         might be problems with non-exec stack and we must discard
+         the translation for the on-stack sigreturn we just use the
+         trampoline like x86,ppc. We still fill in the retcode, lets
+         just hope that nobody actually jumps here */
+      SET_SIGNAL_GPR(tst, 14, (Addr)&VG_(s390x_linux_SUBST_FOR_rt_sigreturn));
+   }
+
+   VG_(memcpy)(&frame->info, siginfo, sizeof(vki_siginfo_t));
+   frame->uc.uc_flags = 0;
+   frame->uc.uc_link = 0;
+   frame->uc.uc_sigmask = *mask;
+   frame->uc.uc_stack = tst->altstack;
+
+   SET_SIGNAL_GPR(tst, 2, siginfo->si_signo);
+   SET_SIGNAL_GPR(tst, 3, &frame->info);
+   SET_SIGNAL_GPR(tst, 4, &frame->uc);
+
+   /* Set up backchain. */
+   *((Addr *) sp) = sp_top_of_frame;
+
+   VG_TRACK( post_mem_write, Vg_CoreSignal, tst->tid,
+             sp, offsetof(struct rt_sigframe, vg) );
+
+   build_vg_sigframe(&frame->vg, tst, flags, sigNo);
+   return sp;
+}
+
+/* EXPORTED */
+void VG_(sigframe_create)( ThreadId tid,
+                          Addr sp_top_of_frame,
+                          const vki_siginfo_t *siginfo,
+                          const struct vki_ucontext *siguc,
+                          void *handler,
+                          UInt flags,
+                          const vki_sigset_t *mask,
+                          void *restorer )
+{
+   Addr sp;
+   ThreadState* tst = VG_(get_ThreadState)(tid);
+
+   if (flags & VKI_SA_SIGINFO)
+      sp = build_rt_sigframe(tst, sp_top_of_frame, siginfo, siguc,
+                            flags, mask, restorer);
+   else
+      sp = build_sigframe(tst, sp_top_of_frame, siginfo, siguc,
+                         flags, mask, restorer);
+
+   /* Set the thread so it will next run the handler. */
+   VG_(set_SP)(tid, sp);
+   VG_TRACK( post_reg_write, Vg_CoreSignal, tid, VG_O_STACK_PTR, sizeof(Addr));
+
+   tst->arch.vex.guest_IA = (Addr) handler;
+   /* We might have interrupted a repeating instruction that uses the guest
+      counter. Since our VEX requires that a new instruction will see a
+      guest counter == 0, we have to set it here. The old value will be
+      restored by restore_vg_sigframe. */
+   tst->arch.vex.guest_counter = 0;
+   /* This thread needs to be marked runnable, but we leave that the
+      caller to do. */
+}
+
+
+/*------------------------------------------------------------*/
+/*--- Destroying signal frames                             ---*/
+/*------------------------------------------------------------*/
+
+/* Return False and don't do anything, just set the client to take a
+   segfault, if it looks like the frame is corrupted. */
+static
+Bool restore_vg_sigframe ( ThreadState *tst,
+                           struct vg_sigframe *frame, Int *sigNo )
+{
+   if (frame->magicPI != 0x31415927 ||
+       frame->magicE  != 0x27182818) {
+      VG_(message)(Vg_UserMsg, "Thread %d return signal frame "
+                              "corrupted.  Killing process.\n",
+                  tst->tid);
+      VG_(set_default_handler)(VKI_SIGSEGV);
+      VG_(synth_fault)(tst->tid);
+      *sigNo = VKI_SIGSEGV;
+      return False;
+   }
+   tst->sig_mask         = frame->mask;
+   tst->tmp_sig_mask     = frame->mask;
+   tst->arch.vex_shadow1 = frame->vex_shadow1;
+   tst->arch.vex_shadow2 = frame->vex_shadow2;
+   /* HACK ALERT */
+   tst->arch.vex         = frame->vex;
+   /* end HACK ALERT */
+   *sigNo                = frame->sigNo_private;
+   return True;
+}
+
+static
+SizeT restore_sigframe ( ThreadState *tst,
+                         struct sigframe *frame, Int *sigNo )
+{
+   if (restore_vg_sigframe(tst, &frame->vg, sigNo))
+      restore_sigregs(tst, frame->sc.sregs);
+
+   return sizeof(*frame);
+}
+
+static
+SizeT restore_rt_sigframe ( ThreadState *tst,
+                            struct rt_sigframe *frame, Int *sigNo )
+{
+   if (restore_vg_sigframe(tst, &frame->vg, sigNo)) {
+      restore_sigregs(tst, &frame->uc.uc_mcontext);
+   }
+   return sizeof(*frame);
+}
+
+
+/* EXPORTED */
+void VG_(sigframe_destroy)( ThreadId tid, Bool isRT )
+{
+   Addr          sp;
+   ThreadState*  tst;
+   SizeT         size;
+   Int            sigNo;
+
+   tst = VG_(get_ThreadState)(tid);
+
+   /* Correctly reestablish the frame base address. */
+   sp   = tst->arch.vex.guest_SP;
+
+   if (!isRT)
+      size = restore_sigframe(tst, (struct sigframe *)sp, &sigNo);
+   else
+      size = restore_rt_sigframe(tst, (struct rt_sigframe *)sp, &sigNo);
+
+   /* same as for creation: we must announce the full memory (including
+      alignment), otherwise massif might fail on longjmp */
+   VG_TRACK( die_mem_stack_signal, sp - VG_STACK_REDZONE_SZB,
+             size + VG_STACK_REDZONE_SZB );
+
+   if (VG_(clo_trace_signals))
+      VG_(message)(
+         Vg_DebugMsg,
+         "VG_(sigframe_destroy) (thread %d): isRT=%d valid magic; IP=%#llx\n",
+         tid, isRT, tst->arch.vex.guest_IA);
+
+   /* tell the tools */
+   VG_TRACK( post_deliver_signal, tid, sigNo );
+}
+
+#endif /* VGA_s390x */
+
+/*--------------------------------------------------------------------*/
+/*--- end                                   sigframe-s390x-linux.c ---*/
+/*--------------------------------------------------------------------*/
index a3b7690a58d7e57df3f3e5cf9638e766930e9cb0..417176209f0efa83db6e8ea3736b9851f9e5a385 100644 (file)
@@ -523,6 +523,23 @@ typedef struct SigQueue {
       I_die_here;
    }
 
+#elif defined(VGP_s390x_linux)
+
+#  define VG_UCONTEXT_INSTR_PTR(uc)       ((uc)->uc_mcontext.regs.psw.addr)
+#  define VG_UCONTEXT_STACK_PTR(uc)       ((uc)->uc_mcontext.regs.gprs[15])
+#  define VG_UCONTEXT_FRAME_PTR(uc)       ((uc)->uc_mcontext.regs.gprs[11])
+#  define VG_UCONTEXT_SYSCALL_SYSRES(uc)                        \
+      VG_(mk_SysRes_s390x_linux)((uc)->uc_mcontext.regs.gprs[2])
+#  define VG_UCONTEXT_LINK_REG(uc) ((uc)->uc_mcontext.regs.gprs[14])
+
+#  define VG_UCONTEXT_TO_UnwindStartRegs(srP, uc)        \
+      { (srP)->r_pc = (ULong)((uc)->uc_mcontext.regs.psw.addr);    \
+        (srP)->r_sp = (ULong)((uc)->uc_mcontext.regs.gprs[15]);    \
+        (srP)->misc.S390X.r_fp = (uc)->uc_mcontext.regs.gprs[11];  \
+        (srP)->misc.S390X.r_lr = (uc)->uc_mcontext.regs.gprs[14];  \
+      }
+
+
 #else 
 #  error Unknown platform
 #endif
@@ -852,6 +869,13 @@ extern void my_sigreturn(void);
    "my_sigreturn:\n" \
    "ud2\n"
 
+#elif defined(VGP_s390x_linux)
+#  define _MY_SIGRETURN(name) \
+   ".text\n" \
+   "my_sigreturn:\n" \
+   " svc " #name "\n" \
+   ".previous\n"
+
 #else
 #  error Unknown platform
 #endif
@@ -1862,6 +1886,7 @@ void VG_(synth_sigtrap)(ThreadId tid)
    uc.uc_mcontext->__es.__err = 0;
 #  endif
 
+   /* fixs390: do we need to do anything here for s390 ? */
    resume_scheduler(tid);
    deliver_signal(tid, &info, &uc);
 }
@@ -2210,6 +2235,19 @@ void sync_signalhandler_from_user ( ThreadId tid,
    }
 }
 
+/* Returns the reported fault address for an exact address */
+static Addr fault_mask(Addr in)
+{
+   /*  We have to use VG_PGROUNDDN because faults on s390x only deliver
+       the page address but not the address within a page.
+    */
+#  if defined(VGA_s390x)
+   return VG_PGROUNDDN(in);
+#  else
+   return in;
+#endif
+}
+
 /* Returns True if the sync signal was due to the stack requiring extension
    and the extension was successful.
 */
@@ -2247,7 +2285,7 @@ static Bool extend_stack_if_appropriate(ThreadId tid, vki_siginfo_t* info)
        && seg_next
        && seg_next->kind == SkAnonC
        && seg->end+1 == seg_next->start
-       && fault >= (esp - VG_STACK_REDZONE_SZB)) {
+       && fault >= fault_mask(esp - VG_STACK_REDZONE_SZB)) {
       /* If the fault address is above esp but below the current known
          stack segment base, and it was a fault because there was
          nothing mapped there (as opposed to a permissions fault),
index 489f6d71d8d49076ceb86ea2a2aae930fd7b4106..707b470d6076d6c784f928c2b6f190e4bdc9dab4 100644 (file)
@@ -670,6 +670,85 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
 
 #endif
 
+/* ------------------------ s390x ------------------------- */
+#if defined(VGP_s390x_linux)
+UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
+                               /*OUT*/Addr* ips, UInt max_n_ips,
+                               /*OUT*/Addr* sps, /*OUT*/Addr* fps,
+                               UnwindStartRegs* startRegs,
+                               Addr fp_max_orig )
+{
+   Bool  debug = False;
+   Int   i;
+   Addr  fp_max;
+   UInt  n_found = 0;
+
+   vg_assert(sizeof(Addr) == sizeof(UWord));
+   vg_assert(sizeof(Addr) == sizeof(void*));
+
+   D3UnwindRegs uregs;
+   uregs.ia = startRegs->r_pc;
+   uregs.sp = startRegs->r_sp;
+   Addr fp_min = uregs.sp;
+   uregs.fp = startRegs->misc.S390X.r_fp;
+   uregs.lr = startRegs->misc.S390X.r_lr;
+
+   fp_max = VG_PGROUNDUP(fp_max_orig);
+   if (fp_max >= sizeof(Addr))
+      fp_max -= sizeof(Addr);
+
+   if (debug)
+      VG_(printf)("max_n_ips=%d fp_min=0x%lx fp_max_orig=0x%lx, "
+                  "fp_max=0x%lx IA=0x%lx SP=0x%lx FP=0x%lx\n",
+                  max_n_ips, fp_min, fp_max_orig, fp_max,
+                  uregs.ia, uregs.sp,uregs.fp);
+
+   /* The first frame is pretty obvious */
+   ips[0] = uregs.ia;
+   if (sps) sps[0] = uregs.sp;
+   if (fps) fps[0] = uregs.fp;
+   i = 1;
+
+   /* for everything else we have to rely on the eh_frame. gcc defaults to
+      not create a backchain and all the other  tools (like gdb) also have
+      to use the CFI. */
+   while (True) {
+      if (i >= max_n_ips)
+         break;
+
+      if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) {
+         if (sps) sps[i] = uregs.sp;
+         if (fps) fps[i] = uregs.fp;
+         ips[i++] = uregs.ia - 1;
+         uregs.ia = uregs.ia - 1;
+         continue;
+      }
+      /* A problem on the first frame? Lets assume it was a bad jump.
+         We will use the link register and the current stack and frame
+         pointers and see if we can use the CFI in the next round. */
+      if (i == 1) {
+         if (sps) {
+            sps[i] = sps[0];
+            uregs.sp = sps[0];
+         }
+         if (fps) {
+            fps[i] = fps[0];
+            uregs.fp = fps[0];
+         }
+         uregs.ia = uregs.lr - 1;
+         ips[i++] = uregs.lr - 1;
+         continue;
+      }
+
+      /* No luck.  We have to give up. */
+      break;
+   }
+
+   n_found = i;
+   return n_found;
+}
+#endif
+
 /*------------------------------------------------------------*/
 /*---                                                      ---*/
 /*--- END platform-dependent unwinder worker functions     ---*/
index 531d3e0ea2220b28addc8211af86052855cd4c67..296a74daad83b9b25065972f20e7cd6d21f75bd3 100644 (file)
@@ -100,6 +100,17 @@ SysRes VG_(mk_SysRes_ppc64_linux) ( ULong val, ULong cr0so ) {
    return res;
 }
 
+SysRes VG_(mk_SysRes_s390x_linux) ( Long val ) {
+   SysRes res;
+   res._isError = val >= -4095 && val <= -1;
+   if (res._isError) {
+      res._val = -val;
+   } else {
+      res._val = val;
+   }
+   return res;
+}
+
 SysRes VG_(mk_SysRes_arm_linux) ( Int val ) {
    SysRes res;
    res._isError = val >= -4095 && val <= -1;
@@ -719,6 +730,38 @@ asm(".private_extern _do_syscall_mach_WRK\n"
     "        retq                     \n"
     );
 
+#elif defined(VGP_s390x_linux)
+
+static UWord do_syscall_WRK (
+   UWord syscall_no,
+   UWord arg1, UWord arg2, UWord arg3,
+   UWord arg4, UWord arg5, UWord arg6
+   )
+{
+   register UWord __arg1 asm("2") = arg1;
+   register UWord __arg2 asm("3") = arg2;
+   register UWord __arg3 asm("4") = arg3;
+   register UWord __arg4 asm("5") = arg4;
+   register UWord __arg5 asm("6") = arg5;
+   register UWord __arg6 asm("7") = arg6;
+   register ULong __svcres asm("2");
+
+   __asm__ __volatile__ (
+                 "lgr %%r1,%1\n\t"
+                 "svc 0\n\t"
+               : "=d" (__svcres)
+               : "a" (syscall_no),
+                 "0" (__arg1),
+                 "d" (__arg2),
+                 "d" (__arg3),
+                 "d" (__arg4),
+                 "d" (__arg5),
+                 "d" (__arg6)
+               : "1", "cc", "memory");
+
+   return (UWord) (__svcres);
+}
+
 #else
 #  error Unknown platform
 #endif
@@ -846,6 +889,24 @@ SysRes VG_(do_syscall) ( UWord sysno, UWord a1, UWord a2, UWord a3,
    }
    return VG_(mk_SysRes_amd64_darwin)( scclass, err ? True : False, wHI, wLO );
   
+#elif defined(VGP_s390x_linux)
+   UWord val;
+
+   if (sysno == __NR_mmap) {
+     ULong argbuf[6];
+
+     argbuf[0] = a1;
+     argbuf[1] = a2;
+     argbuf[2] = a3;
+     argbuf[3] = a4;
+     argbuf[4] = a5;
+     argbuf[5] = a6;
+     val = do_syscall_WRK(sysno,(UWord)&argbuf[0],0,0,0,0,0);
+   } else {
+     val = do_syscall_WRK(sysno,a1,a2,a3,a4,a5,a6);
+   }
+
+   return VG_(mk_SysRes_s390x_linux)( val );
 #else
 #  error Unknown platform
 #endif
index a1455942960dadc49d6c46a4979122c0901ed091..0887b9c09d0d3be688cb603721eb5dbff7110dbf 100644 (file)
@@ -89,7 +89,7 @@ typedef
       Int o_sysno;
 #     if defined(VGP_x86_linux) || defined(VGP_amd64_linux) \
          || defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
-         || defined(VGP_arm_linux)
+         || defined(VGP_arm_linux) || defined(VGP_s390x_linux)
       Int o_arg1;
       Int o_arg2;
       Int o_arg3;
diff --git a/coregrind/m_syswrap/syscall-s390x-linux.S b/coregrind/m_syswrap/syscall-s390x-linux.S
new file mode 100644 (file)
index 0000000..72cf740
--- /dev/null
@@ -0,0 +1,172 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Support for doing system calls.        syscall-s390x-linux.S ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Christian Borntraeger */
+
+#include "pub_core_basics_asm.h"
+#include "pub_core_vkiscnums_asm.h"
+#include "libvex_guest_offsets.h"
+
+#if defined(VGA_s390x)
+
+/*----------------------------------------------------------------*/
+/*
+        Perform a syscall for the client.  This will run a syscall
+        with the client's specific per-thread signal mask.
+
+        The structure of this function is such that, if the syscall is
+        interrupted by a signal, we can determine exactly what
+        execution state we were in with respect to the execution of
+        the syscall by examining the value of NIP in the signal
+        handler.  This means that we can always do the appropriate
+        thing to precisely emulate the kernel's signal/syscall
+        interactions.
+
+        The syscall number is taken from the argument, since the syscall
+        number can be encoded in the svc instruction itself.
+        The syscall result is written back to guest register r2.
+
+        Returns 0 if the syscall was successfully called (even if the
+        syscall itself failed), or a nonzero error code in the lowest
+       8 bits if one of the sigprocmasks failed (there's no way to
+       determine which one failed).  And there's no obvious way to
+       recover from that either, but nevertheless we want to know.
+
+        VG_(fixup_guest_state_after_syscall_interrupted) does the
+       thread state fixup in the case where we were interrupted by a
+       signal.
+
+        Prototype:
+
+       UWord ML_(do_syscall_for_client_WRK)(
+                                 Int syscallno,                // r2
+                                 void* guest_state,            // r3
+                                 const vki_sigset_t *sysmask,  // r4
+                                 const vki_sigset_t *postmask, // r5
+                                 Int nsigwords)                // r6
+*/
+/* from vki_arch.h */
+#define VKI_SIG_SETMASK 2
+
+#define SP_SAVE 16
+#define SP_R2  SP_SAVE + 0*8
+#define SP_R3  SP_SAVE + 1*8
+#define SP_R4  SP_SAVE + 2*8
+#define SP_R5  SP_SAVE + 3*8
+#define SP_R6  SP_SAVE + 4*8
+#define SP_R7  SP_SAVE + 5*8
+#define SP_R8  SP_SAVE + 6*8
+#define SP_R9  SP_SAVE + 7*8
+
+.align 4
+.globl ML_(do_syscall_for_client_WRK)
+ML_(do_syscall_for_client_WRK):
+1:     /* Even though we can't take a signal until the sigprocmask completes,
+       start the range early.
+       If IA is in the range [1,2), the syscall hasn't been started yet */
+
+       /* Set the signal mask which should be current during the syscall. */
+       /* Save and restore all the parameters and all the registers that
+          we clobber (r6-r9) */
+       stmg    %r2,%r9, SP_R2(%r15)
+
+       lghi    %r2, VKI_SIG_SETMASK            /* how */
+       lgr     %r3, %r4                        /* sysmask */
+       lgr     %r4, %r5                        /* postmask */
+       lgr     %r5, %r6                        /* nsigwords */
+       svc     __NR_rt_sigprocmask
+       cghi    %r2, 0x0
+       jne     7f                              /* sigprocmask failed */
+
+       /* OK, that worked.  Now do the syscall proper. */
+       lg      %r9, SP_R3(%r15)                /* guest state --> r9 */
+       lg      %r2, OFFSET_s390x_r2(%r9)       /* guest r2 --> real r2 */
+       lg      %r3, OFFSET_s390x_r3(%r9)       /* guest r3 --> real r3 */
+       lg      %r4, OFFSET_s390x_r4(%r9)       /* guest r4 --> real r4 */
+       lg      %r5, OFFSET_s390x_r5(%r9)       /* guest r5 --> real r5 */
+       lg      %r6, OFFSET_s390x_r6(%r9)       /* guest r6 --> real r6 */
+       lg      %r7, OFFSET_s390x_r7(%r9)       /* guest r7 --> real r7 */
+       lg      %r1, SP_R2(%r15)                /* syscallno -> r1 */
+
+2:     svc     0
+
+3:
+       stg     %r2, OFFSET_s390x_r2(%r9)
+
+4:     /* Re-block signals.  If IA is in [4,5), then the syscall
+          is complete and we needn't worry about it. */
+       lghi    %r2, VKI_SIG_SETMASK            /* how */
+       lg      %r3, SP_R5(%r15)                /* postmask */
+       lghi    %r4, 0x0                        /* NULL */
+       lg      %r5, SP_R6(%r15)                /* nsigwords */
+       svc     __NR_rt_sigprocmask
+       cghi    %r2, 0x0
+       jne     7f                              /* sigprocmask failed */
+
+5:     /* Everyting ok. Return 0 and restore the call-saved
+          registers, that we have clobbered */
+       lghi    %r2, 0x0
+       lmg     %r6,%r9, SP_R6(%r15)
+       br      %r14
+
+7:     /* Some problem. Return 0x8000 | error and restore the call-saved
+          registers we have clobbered. */
+       nill    %r2, 0x7fff
+       oill    %r2, 0x8000
+       lmg     %r6,%r9, SP_R6(%r15)
+       br      %r14
+
+.section .rodata
+/* Export the ranges so that
+   VG_(fixup_guest_state_after_syscall_interrupted) can do the
+   right thing */
+
+.globl ML_(blksys_setup)
+.globl ML_(blksys_restart)
+.globl ML_(blksys_complete)
+.globl ML_(blksys_committed)
+.globl ML_(blksys_finished)
+
+/* The compiler can assume that 8 byte data elements are aligned on 8 byte */
+.align 8
+ML_(blksys_setup):     .quad 1b
+ML_(blksys_restart):   .quad 2b
+ML_(blksys_complete):  .quad 3b
+ML_(blksys_committed): .quad 4b
+ML_(blksys_finished):  .quad 5b
+.previous
+
+/* Let the linker know we don't need an executable stack */
+.section .note.GNU-stack,"",@progbits
+
+#endif /* VGA_s390x */
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
index 1fbd1fe9404c77aee08502e70257606a68765490..9f4025c4eeb4833d941d424c4edfe3a13b81c3b0 100644 (file)
@@ -1958,6 +1958,11 @@ ML_(generic_POST_sys_shmctl) ( ThreadId tid,
  *   call, mmap (aka sys_mmap)  which takes the arguments in the
  *   normal way and the offset in bytes.
  *
+ * - On s390x-linux there is mmap (aka old_mmap) which takes the
+ *   arguments in a memory block and the offset in bytes. mmap2
+ *   is also available (but not exported via unistd.h) with
+ *   arguments in a memory block and the offset in pages.
+ *
  * To cope with all this we provide a generic handler function here
  * and then each platform implements one or more system call handlers
  * which call this generic routine after extracting and normalising
index b0e5ca3ed9054c4d5d13259684709a6e7a1c04dd..35f8ee63780dc99975fbd0fb5e9e0f2540846d94 100644 (file)
@@ -206,6 +206,14 @@ static void run_a_thread_NORETURN ( Word tidW )
          "svc  0x00000000\n"  /* exit(tst->os_state.exitcode) */
          : "=m" (tst->status)
          : "r" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcode));
+#elif defined(VGP_s390x_linux)
+      asm volatile (
+         "st   %1, %0\n"        /* set tst->status = VgTs_Empty */
+         "lg   2, %3\n"         /* set r2 = tst->os_state.exitcode */
+         "svc %2\n"             /* exit(tst->os_state.exitcode) */
+         : "=m" (tst->status)
+         : "d" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcode)
+         : "2");
 #else
 # error Unknown platform
 #endif
@@ -288,6 +296,11 @@ void VG_(main_thread_wrapper_NORETURN)(ThreadId tid)
    sp -= 112;
    sp &= ~((Addr)0xF);
    *(UWord *)sp = 0;
+#elif defined(VGP_s390x_linux)
+   /* make a stack frame */
+   sp -= 160;
+   sp &= ~((Addr)0xF);
+   *(UWord *)sp = 0;
 #endif
 
    /* If we can't even allocate the first thread's stack, we're hosed.
@@ -342,6 +355,10 @@ SysRes ML_(do_fork_clone) ( ThreadId tid, UInt flags,
    res = VG_(do_syscall5)( __NR_clone, flags, 
                            (UWord)NULL, (UWord)parent_tidptr, 
                            (UWord)child_tidptr, (UWord)NULL );
+#elif defined(VGP_s390x_linux)
+   /* Note that s390 has the stack first and then the flags */
+   res = VG_(do_syscall4)( __NR_clone, (UWord) NULL, flags,
+                          (UWord)parent_tidptr, (UWord)child_tidptr);
 #else
 # error Unknown platform
 #endif
@@ -3566,7 +3583,7 @@ POST(sys_lookup_dcookie)
 }
 #endif
 
-#if defined(VGP_amd64_linux)
+#if defined(VGP_amd64_linux) || defined(VGP_s390x_linux)
 PRE(sys_lookup_dcookie)
 {
    *flags |= SfMayBlock;
index 21f0f88d0b0d2fb2607400bf6d31f3047ace5cab..4d33eb8d6dee684470b60b3d5d00dfa7198d06ec 100644 (file)
 /* Useful info which needs to be recorded somewhere:
    Use of registers in syscalls is:
 
-          NUM ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7 ARG8 RESULT
+          NUM   ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7 ARG8 RESULT
    LINUX:
-   x86    eax ebx  ecx  edx  esi  edi  ebp  n/a  n/a  eax       (== NUM)
-   amd64  rax rdi  rsi  rdx  r10  r8   r9   n/a  n/a  rax       (== NUM)
-   ppc32  r0  r3   r4   r5   r6   r7   r8   n/a  n/a  r3+CR0.SO (== ARG1)
-   ppc64  r0  r3   r4   r5   r6   r7   r8   n/a  n/a  r3+CR0.SO (== ARG1)
-   arm    r7  r0   r1   r2   r3   r4   r5   n/a  n/a  r0        (== ARG1)
-
+   x86    eax   ebx  ecx  edx  esi  edi  ebp  n/a  n/a  eax       (== NUM)
+   amd64  rax   rdi  rsi  rdx  r10  r8   r9   n/a  n/a  rax       (== NUM)
+   ppc32  r0    r3   r4   r5   r6   r7   r8   n/a  n/a  r3+CR0.SO (== ARG1)
+   ppc64  r0    r3   r4   r5   r6   r7   r8   n/a  n/a  r3+CR0.SO (== ARG1)
+   arm    r7    r0   r1   r2   r3   r4   r5   n/a  n/a  r0        (== ARG1)
+   On s390x the svc instruction is used for system calls. The system call
+   number is encoded in the instruction (8 bit immediate field). Since Linux
+   2.6 it is also allowed to use svc 0 with the system call number in r1.
+   This was introduced for system calls >255, but works for all. It is
+   also possible to see the svc 0 together with an EXecute instruction, that
+   fills in the immediate field.
+   s390x r1/SVC r2   r3   r4   r5   r6   r7   n/a  n/a  r2        (== ARG1)
    AIX:
    ppc32  r2  r3   r4   r5   r6   r7   r8   r9   r10  r3(res),r4(err)
    ppc64  r2  r3   r4   r5   r6   r7   r8   r9   r10  r3(res),r4(err)
      x86:    Success(N) ==>  edx:eax = N, cc = 0
              Fail(N)    ==>  edx:eax = N, cc = 1
 
+     s390x:  Success(N) ==>  r2 = N
+             Fail(N)    ==>  r2 = -N
+
    * The post wrapper is called if:
 
      - it exists, and
@@ -611,6 +620,17 @@ void getSyscallArgsFromGuestState ( /*OUT*/SyscallArgs*       canonical,
 
    // no canonical->sysno adjustment needed
 
+#elif defined(VGP_s390x_linux)
+   VexGuestS390XState* gst = (VexGuestS390XState*)gst_vanilla;
+   canonical->sysno = gst->guest_SYSNO;
+   canonical->arg1  = gst->guest_r2;
+   canonical->arg2  = gst->guest_r3;
+   canonical->arg3  = gst->guest_r4;
+   canonical->arg4  = gst->guest_r5;
+   canonical->arg5  = gst->guest_r6;
+   canonical->arg6  = gst->guest_r7;
+   canonical->arg7  = 0;
+   canonical->arg8  = 0;
 #else
 #  error "getSyscallArgsFromGuestState: unknown arch"
 #endif
@@ -728,6 +748,16 @@ void putSyscallArgsIntoGuestState ( /*IN*/ SyscallArgs*       canonical,
    stack[1]       = canonical->arg7;
    stack[2]       = canonical->arg8;
 
+#elif defined(VGP_s390x_linux)
+   VexGuestS390XState* gst = (VexGuestS390XState*)gst_vanilla;
+   gst->guest_SYSNO  = canonical->sysno;
+   gst->guest_r2     = canonical->arg1;
+   gst->guest_r3     = canonical->arg2;
+   gst->guest_r4     = canonical->arg3;
+   gst->guest_r5     = canonical->arg4;
+   gst->guest_r6     = canonical->arg5;
+   gst->guest_r7     = canonical->arg6;
+
 #else
 #  error "putSyscallArgsIntoGuestState: unknown arch"
 #endif
@@ -842,6 +872,11 @@ void getSyscallStatusFromGuestState ( /*OUT*/SyscallStatus*     canonical,
                      );
    canonical->what = SsComplete;
 
+#  elif defined(VGP_s390x_linux)
+   VexGuestS390XState* gst   = (VexGuestS390XState*)gst_vanilla;
+   canonical->sres = VG_(mk_SysRes_s390x_linux)( gst->guest_r2 );
+   canonical->what = SsComplete;
+
 #  else
 #    error "getSyscallStatusFromGuestState: unknown arch"
 #  endif
@@ -1016,6 +1051,15 @@ void putSyscallStatusIntoGuestState ( /*IN*/ ThreadId tid,
          break;
    }
    
+#  elif defined(VGP_s390x_linux)
+   VexGuestS390XState* gst = (VexGuestS390XState*)gst_vanilla;
+   vg_assert(canonical->what == SsComplete);
+   if (sr_isError(canonical->sres)) {
+      gst->guest_r2 = - (Long)sr_Err(canonical->sres);
+   } else {
+      gst->guest_r2 = sr_Res(canonical->sres);
+   }
+
 #  else
 #    error "putSyscallStatusIntoGuestState: unknown arch"
 #  endif
@@ -1129,6 +1173,16 @@ void getSyscallArgLayout ( /*OUT*/SyscallArgLayout* layout )
    layout->s_arg7   = sizeof(UWord) * 1;
    layout->s_arg8   = sizeof(UWord) * 2;
 
+#elif defined(VGP_s390x_linux)
+   layout->o_sysno  = OFFSET_s390x_SYSNO;
+   layout->o_arg1   = OFFSET_s390x_r2;
+   layout->o_arg2   = OFFSET_s390x_r3;
+   layout->o_arg3   = OFFSET_s390x_r4;
+   layout->o_arg4   = OFFSET_s390x_r5;
+   layout->o_arg5   = OFFSET_s390x_r6;
+   layout->o_arg6   = OFFSET_s390x_r7;
+   layout->uu_arg7  = -1; /* impossible value */
+   layout->uu_arg8  = -1; /* impossible value */
 #else
 #  error "getSyscallLayout: unknown arch"
 #endif
@@ -1957,6 +2011,23 @@ void ML_(fixup_guest_state_to_restart_syscall) ( ThreadArchState* arch )
    // DDD: #warning GrP fixme amd64 restart unimplemented
    vg_assert(0);
    
+#elif defined(VGP_s390x_linux)
+   arch->vex.guest_IA -= 2;             // sizeof(syscall)
+
+   /* Make sure our caller is actually sane, and we're really backing
+      back over a syscall.
+
+      syscall == 0A <num>
+   */
+   {
+      UChar *p = (UChar *)arch->vex.guest_IA;
+      if (p[0] != 0x0A)
+         VG_(message)(Vg_DebugMsg,
+                      "?! restarting over syscall at %#llx %02x %02x\n",
+                      arch->vex.guest_IA, p[0], p[1]);
+
+      vg_assert(p[0] == 0x0A);
+   }
 #else
 #  error "ML_(fixup_guest_state_to_restart_syscall): unknown plat"
 #endif
diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
new file mode 100644 (file)
index 0000000..eb2f290
--- /dev/null
@@ -0,0 +1,1527 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Platform-specific syscalls stuff.      syswrap-s390x-linux.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Christian Borntraeger */
+
+#if defined(VGP_s390x_linux)
+
+#include "pub_core_basics.h"
+#include "pub_core_vki.h"
+#include "pub_core_vkiscnums.h"
+#include "pub_core_threadstate.h"
+#include "pub_core_aspacemgr.h"
+#include "pub_core_debuglog.h"
+#include "pub_core_libcbase.h"
+#include "pub_core_libcassert.h"
+#include "pub_core_libcprint.h"
+#include "pub_core_libcproc.h"
+#include "pub_core_libcsignal.h"
+#include "pub_core_mallocfree.h"
+#include "pub_core_options.h"
+#include "pub_core_scheduler.h"
+#include "pub_core_sigframe.h"      // For VG_(sigframe_destroy)()
+#include "pub_core_signals.h"
+#include "pub_core_syscall.h"
+#include "pub_core_syswrap.h"
+#include "pub_core_tooliface.h"
+#include "pub_core_stacks.h"        // VG_(register_stack)
+
+#include "priv_types_n_macros.h"
+#include "priv_syswrap-generic.h"    /* for decls of generic wrappers */
+#include "priv_syswrap-linux.h"      /* for decls of linux-ish wrappers */
+#include "priv_syswrap-linux-variants.h" /* decls of linux variant wrappers */
+#include "priv_syswrap-main.h"
+
+
+/* ---------------------------------------------------------------------
+   clone() handling
+   ------------------------------------------------------------------ */
+
+/* Call f(arg1), but first switch stacks, using 'stack' as the new
+   stack, and use 'retaddr' as f's return-to address.  Also, clear all
+   the integer registers before entering f.
+   Thought: Why are we clearing the GPRs ? The callee pointed to by f
+   is a regular C function which will play by the ABI rules. So there is
+   no need to zero out the GPRs. If we assumed that f accesses registers at
+   will, then it would make sense to create a defined register state.
+   But then, why only for the GPRs and not the FPRs ? */
+__attribute__((noreturn))
+void ML_(call_on_new_stack_0_1) ( Addr stack,
+                                  Addr retaddr,
+                                  void (*f)(Word),
+                                  Word arg1 );
+/* Upon entering this function we have the following setup:
+     r2 = stack
+     r3 = retaddr
+     r4 = f_desc
+     r5 = arg1
+*/
+asm(
+    ".text\n"
+    ".align 4\n"
+    ".globl vgModuleLocal_call_on_new_stack_0_1\n"
+    ".type vgModuleLocal_call_on_new_stack_0_1, @function\n"
+    "vgModuleLocal_call_on_new_stack_0_1:\n"
+    "   lgr %r15,%r2\n"     // stack to r15
+    "   lgr %r14,%r3\n"     // retaddr to r14
+    "   lgr %r2,%r5\n"      // arg1 to r2
+    // zero all gprs to get a defined state
+    "   lghi  %r0,0\n"
+    "   lghi  %r1,0\n"
+    // r2 holds the argument for the callee
+    "   lghi  %r3,0\n"
+    // r4 holds the callee address
+    "   lghi  %r5,0\n"
+    "   lghi  %r6,0\n"
+    "   lghi  %r7,0\n"
+    "   lghi  %r8,0\n"
+    "   lghi  %r9,0\n"
+    "   lghi  %r10,0\n"
+    "   lghi  %r11,0\n"
+    "   lghi  %r12,0\n"
+    "   lghi  %r13,0\n"
+    // r14 holds the return address for the callee
+    // r15 is the stack pointer
+    "   br  %r4\n"          // jump to f
+    ".previous\n"
+    );
+
+/*
+        Perform a clone system call.  clone is strange because it has
+        fork()-like return-twice semantics, so it needs special
+        handling here.
+
+        Upon entry, we have:
+            void*  child_stack   in r2
+            long   flags         in r3
+            int*   parent_tid    in r4
+            int*   child_tid     in r5
+            int*   child_tid     in r6
+            Word   (*fn)(void *) 160(r15)
+            void   *arg          168(r15)
+
+        System call requires:
+            void*  child_stack  in r2  (sc arg1)
+            long   flags        in r3  (sc arg2)
+            int*   parent_tid   in r4  (sc arg3)
+            int*   child_tid    in r5  (sc arg4)
+            void*  tlsaddr      in r6  (sc arg5)
+
+        Returns a ULong encoded as: top half is %cr following syscall,
+        low half is syscall return value (r3).
+ */
+#define __NR_CLONE        VG_STRINGIFY(__NR_clone)
+#define __NR_EXIT         VG_STRINGIFY(__NR_exit)
+
+extern
+ULong do_syscall_clone_s390x_linux ( void  *stack,
+                                     ULong flags,
+                                     Int   *child_tid,
+                                     Int   *parent_tid,
+                                     Addr  tlsaddr,
+                                     Word (*fn)(void *),
+                                     void  *arg);
+asm(
+   "   .text\n"
+   "   .align  4\n"
+   "do_syscall_clone_s390x_linux:\n"
+   "   lg    %r1, 160(%r15)\n"   // save fn from parent stack into r1
+   "   lg    %r0, 168(%r15)\n"   // save arg from parent stack into r0
+   "   aghi  %r2, -160\n"        // create stack frame for child
+   // all syscall parameters are already in place (r2-r6)
+   "   svc " __NR_CLONE"\n"        // clone()
+   "   ltgr  %r2,%r2\n"           // child if retval == 0
+   "   jne   1f\n"
+
+   // CHILD - call thread function
+   "   lgr   %r2, %r0\n"            // get arg from r0
+   "   basr  %r14,%r1\n"            // call fn
+
+   // exit. The result is already in r2
+   "   svc " __NR_EXIT"\n"
+
+   // Exit returned?!
+   "   j +2\n"
+
+   "1:\n"  // PARENT or ERROR
+   "   br %r14\n"
+   ".previous\n"
+);
+
+#undef __NR_CLONE
+#undef __NR_EXIT
+
+void VG_(cleanup_thread) ( ThreadArchState* arch )
+{
+  /* only used on x86 for descriptor tables */
+}
+
+static void setup_child ( /*OUT*/ ThreadArchState *child,
+                   /*IN*/  ThreadArchState *parent )
+{
+   /* We inherit our parent's guest state. */
+   child->vex = parent->vex;
+   child->vex_shadow1 = parent->vex_shadow1;
+   child->vex_shadow2 = parent->vex_shadow2;
+}
+
+
+/*
+   When a client clones, we need to keep track of the new thread.  This means:
+   1. allocate a ThreadId+ThreadState+stack for the the thread
+
+   2. initialize the thread's new VCPU state
+
+   3. create the thread using the same args as the client requested,
+   but using the scheduler entrypoint for IP, and a separate stack
+   for SP.
+ */
+static SysRes do_clone ( ThreadId ptid,
+                         Addr sp, ULong flags,
+                         Int *parent_tidptr,
+                         Int *child_tidptr,
+                         Addr tlsaddr)
+{
+   static const Bool debug = False;
+
+   ThreadId     ctid = VG_(alloc_ThreadState)();
+   ThreadState* ptst = VG_(get_ThreadState)(ptid);
+   ThreadState* ctst = VG_(get_ThreadState)(ctid);
+   UWord*       stack;
+   NSegment const* seg;
+   SysRes       res;
+   ULong        r2;
+   vki_sigset_t blockall, savedmask;
+
+   VG_(sigfillset)(&blockall);
+
+   vg_assert(VG_(is_running_thread)(ptid));
+   vg_assert(VG_(is_valid_tid)(ctid));
+
+   stack = (UWord*)ML_(allocstack)(ctid);
+   if (stack == NULL) {
+      res = VG_(mk_SysRes_Error)( VKI_ENOMEM );
+      goto out;
+   }
+
+   /* Copy register state
+
+      Both parent and child return to the same place, and the code
+      following the clone syscall works out which is which, so we
+      don't need to worry about it.
+
+      The parent gets the child's new tid returned from clone, but the
+      child gets 0.
+
+      If the clone call specifies a NULL sp for the new thread, then
+      it actually gets a copy of the parent's sp.
+   */
+   setup_child( &ctst->arch, &ptst->arch );
+
+   /* Make sys_clone appear to have returned Success(0) in the
+      child. */
+   ctst->arch.vex.guest_r2 = 0;
+
+   if (sp != 0)
+      ctst->arch.vex.guest_r15 = sp;
+
+   ctst->os_state.parent = ptid;
+
+   /* inherit signal mask */
+   ctst->sig_mask = ptst->sig_mask;
+   ctst->tmp_sig_mask = ptst->sig_mask;
+
+   /* have the parents thread group */
+   ctst->os_state.threadgroup = ptst->os_state.threadgroup;
+
+   /* We don't really know where the client stack is, because its
+      allocated by the client.  The best we can do is look at the
+      memory mappings and try to derive some useful information.  We
+      assume that esp starts near its highest possible value, and can
+      only go down to the start of the mmaped segment. */
+   seg = VG_(am_find_nsegment)((Addr)sp);
+   if (seg && seg->kind != SkResvn) {
+      ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
+      ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
+
+      VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
+
+      if (debug)
+        VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
+                    ctid, seg->start, VG_PGROUNDUP(sp));
+   } else {
+      VG_(message)(Vg_UserMsg,
+                   "!? New thread %d starts with SP(%#lx) unmapped\n",
+                  ctid, sp);
+      ctst->client_stack_szB  = 0;
+   }
+
+   /* Assume the clone will succeed, and tell any tool that wants to
+      know that this thread has come into existence.  If the clone
+      fails, we'll send out a ll_exit notification for it at the out:
+      label below, to clean up. */
+   VG_TRACK ( pre_thread_ll_create, ptid, ctid );
+
+   if (flags & VKI_CLONE_SETTLS) {
+      if (debug)
+        VG_(printf)("clone child has SETTLS: tls at %#lx\n", tlsaddr);
+      ctst->arch.vex.guest_a0 = (UInt) (tlsaddr >> 32);
+      ctst->arch.vex.guest_a1 = (UInt) tlsaddr;
+   }
+   flags &= ~VKI_CLONE_SETTLS;
+
+   /* start the thread with everything blocked */
+   VG_(sigprocmask)(VKI_SIG_SETMASK, &blockall, &savedmask);
+
+   /* Create the new thread */
+   r2 = do_syscall_clone_s390x_linux(
+            stack, flags, child_tidptr, parent_tidptr, tlsaddr,
+            ML_(start_thread_NORETURN), &VG_(threads)[ctid]);
+
+   res = VG_(mk_SysRes_s390x_linux)( r2 );
+
+   VG_(sigprocmask)(VKI_SIG_SETMASK, &savedmask, NULL);
+
+  out:
+   if (sr_isError(res)) {
+      /* clone failed */
+      ctst->status = VgTs_Empty;
+      /* oops.  Better tell the tool the thread exited in a hurry :-) */
+      VG_TRACK( pre_thread_ll_exit, ctid );
+   }
+
+   return res;
+
+}
+
+
+
+/* ---------------------------------------------------------------------
+   PRE/POST wrappers for s390x/Linux-specific syscalls
+   ------------------------------------------------------------------ */
+
+#define PRE(name)       DEFN_PRE_TEMPLATE(s390x_linux, name)
+#define POST(name)      DEFN_POST_TEMPLATE(s390x_linux, name)
+
+/* Add prototypes for the wrappers declared here, so that gcc doesn't
+   harass us for not having prototypes.  Really this is a kludge --
+   the right thing to do is to make these wrappers 'static' since they
+   aren't visible outside this file, but that requires even more macro
+   magic. */
+
+DECL_TEMPLATE(s390x_linux, sys_ptrace);
+DECL_TEMPLATE(s390x_linux, sys_socketcall);
+DECL_TEMPLATE(s390x_linux, sys_mmap);
+DECL_TEMPLATE(s390x_linux, sys_ipc);
+DECL_TEMPLATE(s390x_linux, sys_clone);
+DECL_TEMPLATE(s390x_linux, sys_sigreturn);
+DECL_TEMPLATE(s390x_linux, sys_rt_sigreturn);
+DECL_TEMPLATE(s390x_linux, sys_fadvise64);
+
+// PEEK TEXT,DATA and USER are common to all architectures
+// PEEKUSR_AREA and POKEUSR_AREA are special, having a memory area
+// containing the real addr, data, and len field pointed to by ARG3
+// instead of ARG4
+PRE(sys_ptrace)
+{
+   PRINT("sys_ptrace ( %ld, %ld, %#lx, %#lx )", ARG1,ARG2,ARG3,ARG4);
+   PRE_REG_READ4(int, "ptrace",
+                 long, request, long, pid, long, addr, long, data);
+   switch (ARG1) {
+   case VKI_PTRACE_PEEKTEXT:
+   case VKI_PTRACE_PEEKDATA:
+   case VKI_PTRACE_PEEKUSR:
+      PRE_MEM_WRITE( "ptrace(peek)", ARG4,
+                    sizeof (long));
+      break;
+   case VKI_PTRACE_GETEVENTMSG:
+      PRE_MEM_WRITE( "ptrace(geteventmsg)", ARG4, sizeof(unsigned long));
+      break;
+   case VKI_PTRACE_GETSIGINFO:
+      PRE_MEM_WRITE( "ptrace(getsiginfo)", ARG4, sizeof(vki_siginfo_t));
+      break;
+   case VKI_PTRACE_SETSIGINFO:
+      PRE_MEM_READ( "ptrace(setsiginfo)", ARG4, sizeof(vki_siginfo_t));
+      break;
+   case VKI_PTRACE_PEEKUSR_AREA:
+      {
+         vki_ptrace_area *pa;
+
+         /* Reads a part of the user area into memory at pa->process_addr */
+        pa = (vki_ptrace_area *) ARG3;
+         PRE_MEM_READ("ptrace(peekusrarea ptrace_area->len)",
+                      (unsigned long) &pa->vki_len, sizeof(pa->vki_len));
+         PRE_MEM_READ("ptrace(peekusrarea ptrace_area->kernel_addr)",
+                      (unsigned long) &pa->vki_kernel_addr, sizeof(pa->vki_kernel_addr));
+         PRE_MEM_READ("ptrace(peekusrarea ptrace_area->process_addr)",
+                      (unsigned long) &pa->vki_process_addr, sizeof(pa->vki_process_addr));
+         PRE_MEM_WRITE("ptrace(peekusrarea *(ptrace_area->process_addr))",
+                       pa->vki_process_addr, pa->vki_len);
+         break;
+      }
+   case VKI_PTRACE_POKEUSR_AREA:
+      {
+         vki_ptrace_area *pa;
+
+         /* Updates a part of the user area from memory at pa->process_addr */
+        pa = (vki_ptrace_area *) ARG3;
+         PRE_MEM_READ("ptrace(pokeusrarea ptrace_area->len)",
+                      (unsigned long) &pa->vki_len, sizeof(pa->vki_len));
+         PRE_MEM_READ("ptrace(pokeusrarea ptrace_area->kernel_addr)",
+                      (unsigned long) &pa->vki_kernel_addr,
+                      sizeof(pa->vki_kernel_addr));
+         PRE_MEM_READ("ptrace(pokeusrarea ptrace_area->process_addr)",
+                      (unsigned long) &pa->vki_process_addr,
+                      sizeof(pa->vki_process_addr));
+         PRE_MEM_READ("ptrace(pokeusrarea *(ptrace_area->process_addr))",
+                       pa->vki_process_addr, pa->vki_len);
+         break;
+      }
+   default:
+      break;
+   }
+}
+
+POST(sys_ptrace)
+{
+   switch (ARG1) {
+   case VKI_PTRACE_PEEKTEXT:
+   case VKI_PTRACE_PEEKDATA:
+   case VKI_PTRACE_PEEKUSR:
+      POST_MEM_WRITE( ARG4, sizeof (long));
+      break;
+   case VKI_PTRACE_GETEVENTMSG:
+      POST_MEM_WRITE( ARG4, sizeof(unsigned long));
+      break;
+   case VKI_PTRACE_GETSIGINFO:
+      /* XXX: This is a simplification. Different parts of the
+       * siginfo_t are valid depending on the type of signal.
+       */
+      POST_MEM_WRITE( ARG4, sizeof(vki_siginfo_t));
+      break;
+   case VKI_PTRACE_PEEKUSR_AREA:
+      {
+         vki_ptrace_area *pa;
+
+        pa = (vki_ptrace_area *) ARG3;
+         POST_MEM_WRITE(pa->vki_process_addr, pa->vki_len);
+      }
+   default:
+      break;
+   }
+}
+
+
+PRE(sys_socketcall)
+{
+#  define ARG2_0  (((UWord*)ARG2)[0])
+#  define ARG2_1  (((UWord*)ARG2)[1])
+#  define ARG2_2  (((UWord*)ARG2)[2])
+#  define ARG2_3  (((UWord*)ARG2)[3])
+#  define ARG2_4  (((UWord*)ARG2)[4])
+#  define ARG2_5  (((UWord*)ARG2)[5])
+
+   *flags |= SfMayBlock;
+   PRINT("sys_socketcall ( %ld, %#lx )",ARG1,ARG2);
+   PRE_REG_READ2(long, "socketcall", int, call, unsigned long *, args);
+
+   switch (ARG1 /* request */) {
+
+   case VKI_SYS_SOCKETPAIR:
+     /* int socketpair(int d, int type, int protocol, int sv[2]); */
+      PRE_MEM_READ( "socketcall.socketpair(args)", ARG2, 4*sizeof(Addr) );
+      if (!ML_(valid_client_addr)(ARG2, 4*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+      }
+      ML_(generic_PRE_sys_socketpair)( tid, ARG2_0, ARG2_1, ARG2_2, ARG2_3 );
+      break;
+
+   case VKI_SYS_SOCKET:
+     /* int socket(int domain, int type, int protocol); */
+      PRE_MEM_READ( "socketcall.socket(args)", ARG2, 3*sizeof(Addr) );
+      if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+      }
+      break;
+
+   case VKI_SYS_BIND:
+     /* int bind(int sockfd, struct sockaddr *my_addr,
+       int addrlen); */
+      PRE_MEM_READ( "socketcall.bind(args)", ARG2, 3*sizeof(Addr) );
+      if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+      }
+      ML_(generic_PRE_sys_bind)( tid, ARG2_0, ARG2_1, ARG2_2 );
+      break;
+
+   case VKI_SYS_LISTEN:
+     /* int listen(int s, int backlog); */
+      PRE_MEM_READ( "socketcall.listen(args)", ARG2, 2*sizeof(Addr) );
+      if (!ML_(valid_client_addr)(ARG2, 2*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+      }
+      break;
+
+   case VKI_SYS_ACCEPT: {
+     /* int accept(int s, struct sockaddr *addr, int *addrlen); */
+      PRE_MEM_READ( "socketcall.accept(args)", ARG2, 3*sizeof(Addr) );
+      if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+      }
+      ML_(generic_PRE_sys_accept)( tid, ARG2_0, ARG2_1, ARG2_2 );
+      break;
+   }
+
+   case VKI_SYS_SENDTO:
+     /* int sendto(int s, const void *msg, int len,
+                    unsigned int flags,
+                    const struct sockaddr *to, int tolen); */
+     PRE_MEM_READ( "socketcall.sendto(args)", ARG2, 6*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 6*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_sendto)( tid, ARG2_0, ARG2_1, ARG2_2,
+                                 ARG2_3, ARG2_4, ARG2_5 );
+     break;
+
+   case VKI_SYS_SEND:
+     /* int send(int s, const void *msg, size_t len, int flags); */
+     PRE_MEM_READ( "socketcall.send(args)", ARG2, 4*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 4*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_send)( tid, ARG2_0, ARG2_1, ARG2_2 );
+     break;
+
+   case VKI_SYS_RECVFROM:
+     /* int recvfrom(int s, void *buf, int len, unsigned int flags,
+       struct sockaddr *from, int *fromlen); */
+     PRE_MEM_READ( "socketcall.recvfrom(args)", ARG2, 6*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 6*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_recvfrom)( tid, ARG2_0, ARG2_1, ARG2_2,
+                                   ARG2_3, ARG2_4, ARG2_5 );
+     break;
+
+   case VKI_SYS_RECV:
+     /* int recv(int s, void *buf, int len, unsigned int flags); */
+     /* man 2 recv says:
+         The  recv call is normally used only on a connected socket
+         (see connect(2)) and is identical to recvfrom with a  NULL
+         from parameter.
+     */
+     PRE_MEM_READ( "socketcall.recv(args)", ARG2, 4*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 4*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_recv)( tid, ARG2_0, ARG2_1, ARG2_2 );
+     break;
+
+   case VKI_SYS_CONNECT:
+     /* int connect(int sockfd,
+       struct sockaddr *serv_addr, int addrlen ); */
+     PRE_MEM_READ( "socketcall.connect(args)", ARG2, 3*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_connect)( tid, ARG2_0, ARG2_1, ARG2_2 );
+     break;
+
+   case VKI_SYS_SETSOCKOPT:
+     /* int setsockopt(int s, int level, int optname,
+       const void *optval, int optlen); */
+     PRE_MEM_READ( "socketcall.setsockopt(args)", ARG2, 5*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 5*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_setsockopt)( tid, ARG2_0, ARG2_1, ARG2_2,
+                                     ARG2_3, ARG2_4 );
+     break;
+
+   case VKI_SYS_GETSOCKOPT:
+     /* int getsockopt(int s, int level, int optname,
+       void *optval, socklen_t *optlen); */
+     PRE_MEM_READ( "socketcall.getsockopt(args)", ARG2, 5*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 5*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(linux_PRE_sys_getsockopt)( tid, ARG2_0, ARG2_1, ARG2_2,
+                                     ARG2_3, ARG2_4 );
+     break;
+
+   case VKI_SYS_GETSOCKNAME:
+     /* int getsockname(int s, struct sockaddr* name, int* namelen) */
+     PRE_MEM_READ( "socketcall.getsockname(args)", ARG2, 3*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_getsockname)( tid, ARG2_0, ARG2_1, ARG2_2 );
+     break;
+
+   case VKI_SYS_GETPEERNAME:
+     /* int getpeername(int s, struct sockaddr* name, int* namelen) */
+     PRE_MEM_READ( "socketcall.getpeername(args)", ARG2, 3*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_getpeername)( tid, ARG2_0, ARG2_1, ARG2_2 );
+     break;
+
+   case VKI_SYS_SHUTDOWN:
+     /* int shutdown(int s, int how); */
+     PRE_MEM_READ( "socketcall.shutdown(args)", ARG2, 2*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 2*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     break;
+
+   case VKI_SYS_SENDMSG: {
+     /* int sendmsg(int s, const struct msghdr *msg, int flags); */
+     PRE_MEM_READ( "socketcall.sendmsg(args)", ARG2, 3*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_sendmsg)( tid, ARG2_0, ARG2_1 );
+     break;
+   }
+
+   case VKI_SYS_RECVMSG: {
+     /* int recvmsg(int s, struct msghdr *msg, int flags); */
+     PRE_MEM_READ("socketcall.recvmsg(args)", ARG2, 3*sizeof(Addr) );
+     if (!ML_(valid_client_addr)(ARG2, 3*sizeof(Addr), tid, NULL)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         break;
+     }
+     ML_(generic_PRE_sys_recvmsg)( tid, ARG2_0, ARG2_1 );
+     break;
+   }
+
+   default:
+     VG_(message)(Vg_DebugMsg,"Warning: unhandled socketcall 0x%lx\n",ARG1);
+     SET_STATUS_Failure( VKI_EINVAL );
+     break;
+   }
+#  undef ARG2_0
+#  undef ARG2_1
+#  undef ARG2_2
+#  undef ARG2_3
+#  undef ARG2_4
+#  undef ARG2_5
+}
+
+POST(sys_socketcall)
+{
+#  define ARG2_0  (((UWord*)ARG2)[0])
+#  define ARG2_1  (((UWord*)ARG2)[1])
+#  define ARG2_2  (((UWord*)ARG2)[2])
+#  define ARG2_3  (((UWord*)ARG2)[3])
+#  define ARG2_4  (((UWord*)ARG2)[4])
+#  define ARG2_5  (((UWord*)ARG2)[5])
+
+  SysRes r;
+  vg_assert(SUCCESS);
+  switch (ARG1 /* request */) {
+
+  case VKI_SYS_SOCKETPAIR:
+    r = ML_(generic_POST_sys_socketpair)(
+                                        tid, VG_(mk_SysRes_Success)(RES),
+                                        ARG2_0, ARG2_1, ARG2_2, ARG2_3
+                                        );
+    SET_STATUS_from_SysRes(r);
+    break;
+
+  case VKI_SYS_SOCKET:
+    r = ML_(generic_POST_sys_socket)( tid, VG_(mk_SysRes_Success)(RES) );
+    SET_STATUS_from_SysRes(r);
+    break;
+
+  case VKI_SYS_BIND:
+    /* int bind(int sockfd, struct sockaddr *my_addr,
+       int addrlen); */
+    break;
+
+  case VKI_SYS_LISTEN:
+    /* int listen(int s, int backlog); */
+    break;
+
+  case VKI_SYS_ACCEPT:
+    /* int accept(int s, struct sockaddr *addr, int *addrlen); */
+    r = ML_(generic_POST_sys_accept)( tid, VG_(mk_SysRes_Success)(RES),
+                                     ARG2_0, ARG2_1, ARG2_2 );
+    SET_STATUS_from_SysRes(r);
+    break;
+
+  case VKI_SYS_SENDTO:
+    break;
+
+  case VKI_SYS_SEND:
+    break;
+
+  case VKI_SYS_RECVFROM:
+    ML_(generic_POST_sys_recvfrom)( tid, VG_(mk_SysRes_Success)(RES),
+                                   ARG2_0, ARG2_1, ARG2_2,
+                                   ARG2_3, ARG2_4, ARG2_5 );
+    break;
+
+  case VKI_SYS_RECV:
+    ML_(generic_POST_sys_recv)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+    break;
+
+  case VKI_SYS_CONNECT:
+    break;
+
+  case VKI_SYS_SETSOCKOPT:
+    break;
+
+  case VKI_SYS_GETSOCKOPT:
+    ML_(linux_POST_sys_getsockopt)( tid, VG_(mk_SysRes_Success)(RES),
+                                     ARG2_0, ARG2_1,
+                                     ARG2_2, ARG2_3, ARG2_4 );
+    break;
+
+  case VKI_SYS_GETSOCKNAME:
+    ML_(generic_POST_sys_getsockname)( tid, VG_(mk_SysRes_Success)(RES),
+                                      ARG2_0, ARG2_1, ARG2_2 );
+    break;
+
+  case VKI_SYS_GETPEERNAME:
+    ML_(generic_POST_sys_getpeername)( tid, VG_(mk_SysRes_Success)(RES),
+                                      ARG2_0, ARG2_1, ARG2_2 );
+    break;
+
+  case VKI_SYS_SHUTDOWN:
+    break;
+
+  case VKI_SYS_SENDMSG:
+    break;
+
+  case VKI_SYS_RECVMSG:
+    ML_(generic_POST_sys_recvmsg)( tid, ARG2_0, ARG2_1 );
+    break;
+
+  default:
+    VG_(message)(Vg_DebugMsg,"FATAL: unhandled socketcall 0x%lx\n",ARG1);
+    VG_(core_panic)("... bye!\n");
+    break; /*NOTREACHED*/
+  }
+#  undef ARG2_0
+#  undef ARG2_1
+#  undef ARG2_2
+#  undef ARG2_3
+#  undef ARG2_4
+#  undef ARG2_5
+}
+
+PRE(sys_mmap)
+{
+   UWord a0, a1, a2, a3, a4, a5;
+   SysRes r;
+
+   UWord* args = (UWord*)ARG1;
+   PRE_REG_READ1(long, "sys_mmap", struct mmap_arg_struct *, args);
+   PRE_MEM_READ( "sys_mmap(args)", (Addr) args, 6*sizeof(UWord) );
+
+   a0 = args[0];
+   a1 = args[1];
+   a2 = args[2];
+   a3 = args[3];
+   a4 = args[4];
+   a5 = args[5];
+
+   PRINT("sys_mmap ( %#lx, %llu, %ld, %ld, %ld, %ld )",
+         a0, (ULong)a1, a2, a3, a4, a5 );
+
+   r = ML_(generic_PRE_sys_mmap)( tid, a0, a1, a2, a3, a4, (Off64T)a5 );
+   SET_STATUS_from_SysRes(r);
+}
+
+static Addr deref_Addr ( ThreadId tid, Addr a, Char* s )
+{
+   Addr* a_p = (Addr*)a;
+   PRE_MEM_READ( s, (Addr)a_p, sizeof(Addr) );
+   return *a_p;
+}
+
+PRE(sys_ipc)
+{
+  PRINT("sys_ipc ( %ld, %ld, %ld, %ld, %#lx, %ld )",
+        ARG1,ARG2,ARG3,ARG4,ARG5,ARG6);
+  // XXX: this is simplistic -- some args are not used in all circumstances.
+  PRE_REG_READ6(int, "ipc",
+               vki_uint, call, int, first, int, second, int, third,
+               void *, ptr, long, fifth)
+
+    switch (ARG1 /* call */) {
+    case VKI_SEMOP:
+      ML_(generic_PRE_sys_semop)( tid, ARG2, ARG5, ARG3 );
+      *flags |= SfMayBlock;
+      break;
+    case VKI_SEMGET:
+      break;
+    case VKI_SEMCTL:
+      {
+       UWord arg = deref_Addr( tid, ARG5, "semctl(arg)" );
+       ML_(generic_PRE_sys_semctl)( tid, ARG2, ARG3, ARG4, arg );
+       break;
+      }
+    case VKI_SEMTIMEDOP:
+      ML_(generic_PRE_sys_semtimedop)( tid, ARG2, ARG5, ARG3, ARG6 );
+      *flags |= SfMayBlock;
+      break;
+    case VKI_MSGSND:
+      ML_(linux_PRE_sys_msgsnd)( tid, ARG2, ARG5, ARG3, ARG4 );
+      if ((ARG4 & VKI_IPC_NOWAIT) == 0)
+       *flags |= SfMayBlock;
+      break;
+    case VKI_MSGRCV:
+      {
+       Addr msgp;
+       Word msgtyp;
+
+       msgp = deref_Addr( tid,
+                          (Addr) (&((struct vki_ipc_kludge *)ARG5)->msgp),
+                          "msgrcv(msgp)" );
+       msgtyp = deref_Addr( tid,
+                            (Addr) (&((struct vki_ipc_kludge *)ARG5)->msgtyp),
+                            "msgrcv(msgp)" );
+
+       ML_(linux_PRE_sys_msgrcv)( tid, ARG2, msgp, ARG3, msgtyp, ARG4 );
+
+       if ((ARG4 & VKI_IPC_NOWAIT) == 0)
+         *flags |= SfMayBlock;
+       break;
+      }
+    case VKI_MSGGET:
+      break;
+    case VKI_MSGCTL:
+      ML_(linux_PRE_sys_msgctl)( tid, ARG2, ARG3, ARG5 );
+      break;
+    case VKI_SHMAT:
+      {
+       UWord w;
+       PRE_MEM_WRITE( "shmat(raddr)", ARG4, sizeof(Addr) );
+       w = ML_(generic_PRE_sys_shmat)( tid, ARG2, ARG5, ARG3 );
+       if (w == 0)
+         SET_STATUS_Failure( VKI_EINVAL );
+       else
+         ARG5 = w;
+       break;
+      }
+    case VKI_SHMDT:
+      if (!ML_(generic_PRE_sys_shmdt)(tid, ARG5))
+       SET_STATUS_Failure( VKI_EINVAL );
+      break;
+    case VKI_SHMGET:
+      break;
+    case VKI_SHMCTL: /* IPCOP_shmctl */
+      ML_(generic_PRE_sys_shmctl)( tid, ARG2, ARG3, ARG5 );
+      break;
+    default:
+      VG_(message)(Vg_DebugMsg, "FATAL: unhandled syscall(ipc) %ld", ARG1 );
+      VG_(core_panic)("... bye!\n");
+      break; /*NOTREACHED*/
+    }
+}
+
+POST(sys_ipc)
+{
+  vg_assert(SUCCESS);
+  switch (ARG1 /* call */) {
+  case VKI_SEMOP:
+  case VKI_SEMGET:
+    break;
+  case VKI_SEMCTL:
+    {
+      UWord arg = deref_Addr( tid, ARG5, "semctl(arg)" );
+      ML_(generic_PRE_sys_semctl)( tid, ARG2, ARG3, ARG4, arg );
+      break;
+    }
+  case VKI_SEMTIMEDOP:
+  case VKI_MSGSND:
+    break;
+  case VKI_MSGRCV:
+    {
+      Addr msgp;
+      Word msgtyp;
+
+      msgp = deref_Addr( tid,
+                         (Addr) (&((struct vki_ipc_kludge *)ARG5)->msgp),
+                         "msgrcv(msgp)" );
+      msgtyp = deref_Addr( tid,
+                           (Addr) (&((struct vki_ipc_kludge *)ARG5)->msgtyp),
+                           "msgrcv(msgp)" );
+
+      ML_(linux_POST_sys_msgrcv)( tid, RES, ARG2, msgp, ARG3, msgtyp, ARG4 );
+      break;
+    }
+  case VKI_MSGGET:
+    break;
+  case VKI_MSGCTL:
+    ML_(linux_POST_sys_msgctl)( tid, RES, ARG2, ARG3, ARG5 );
+    break;
+  case VKI_SHMAT:
+    {
+      Addr addr;
+
+      /* force readability. before the syscall it is
+       * indeed uninitialized, as can be seen in
+       * glibc/sysdeps/unix/sysv/linux/shmat.c */
+      POST_MEM_WRITE( ARG4, sizeof( Addr ) );
+
+      addr = deref_Addr ( tid, ARG4, "shmat(addr)" );
+      ML_(generic_POST_sys_shmat)( tid, addr, ARG2, ARG5, ARG3 );
+      break;
+    }
+  case VKI_SHMDT:
+    ML_(generic_POST_sys_shmdt)( tid, RES, ARG5 );
+    break;
+  case VKI_SHMGET:
+    break;
+  case VKI_SHMCTL:
+    ML_(generic_POST_sys_shmctl)( tid, RES, ARG2, ARG3, ARG5 );
+    break;
+  default:
+    VG_(message)(Vg_DebugMsg,
+                "FATAL: unhandled syscall(ipc) %ld",
+                ARG1 );
+    VG_(core_panic)("... bye!\n");
+    break; /*NOTREACHED*/
+  }
+}
+
+PRE(sys_clone)
+{
+   UInt cloneflags;
+
+   PRINT("sys_clone ( %lx, %#lx, %#lx, %#lx, %#lx )",ARG1,ARG2,ARG3,ARG4, ARG5);
+   PRE_REG_READ4(int, "clone",
+                 void *,        child_stack,
+                 unsigned long, flags,
+                 int *,         parent_tidptr,
+                 int *,         child_tidptr);
+
+   if (ARG2 & VKI_CLONE_PARENT_SETTID) {
+      PRE_MEM_WRITE("clone(parent_tidptr)", ARG3, sizeof(Int));
+      if (!VG_(am_is_valid_for_client)(ARG3, sizeof(Int),
+                                             VKI_PROT_WRITE)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         return;
+      }
+   }
+   if (ARG2 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID)) {
+      PRE_MEM_WRITE("clone(child_tidptr)", ARG4, sizeof(Int));
+      if (!VG_(am_is_valid_for_client)(ARG4, sizeof(Int),
+                                             VKI_PROT_WRITE)) {
+         SET_STATUS_Failure( VKI_EFAULT );
+         return;
+      }
+   }
+
+   cloneflags = ARG2;
+
+   if (!ML_(client_signal_OK)(ARG2 & VKI_CSIGNAL)) {
+      SET_STATUS_Failure( VKI_EINVAL );
+      return;
+   }
+
+   /* Only look at the flags we really care about */
+   switch (cloneflags & (VKI_CLONE_VM | VKI_CLONE_FS
+                         | VKI_CLONE_FILES | VKI_CLONE_VFORK)) {
+   case VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES:
+      /* thread creation */
+      SET_STATUS_from_SysRes(
+         do_clone(tid,
+                  (Addr)ARG1,   /* child SP */
+                  ARG2,         /* flags */
+                  (Int *)ARG3,  /* parent_tidptr */
+                  (Int *)ARG4, /* child_tidptr */
+                  (Addr)ARG5)); /*  tlsaddr */
+      break;
+
+   case VKI_CLONE_VFORK | VKI_CLONE_VM: /* vfork */
+      /* FALLTHROUGH - assume vfork == fork */
+      cloneflags &= ~(VKI_CLONE_VFORK | VKI_CLONE_VM);
+
+   case 0: /* plain fork */
+      SET_STATUS_from_SysRes(
+         ML_(do_fork_clone)(tid,
+                       cloneflags,      /* flags */
+                       (Int *)ARG3,     /* parent_tidptr */
+                       (Int *)ARG4));   /* child_tidptr */
+      break;
+
+   default:
+      /* should we just ENOSYS? */
+      VG_(message)(Vg_UserMsg, "Unsupported clone() flags: 0x%lx", ARG2);
+      VG_(message)(Vg_UserMsg, "");
+      VG_(message)(Vg_UserMsg, "The only supported clone() uses are:");
+      VG_(message)(Vg_UserMsg, " - via a threads library (NPTL)");
+      VG_(message)(Vg_UserMsg, " - via the implementation of fork or vfork");
+      VG_(unimplemented)
+         ("Valgrind does not support general clone().");
+   }
+
+   if (SUCCESS) {
+      if (ARG2 & VKI_CLONE_PARENT_SETTID)
+         POST_MEM_WRITE(ARG3, sizeof(Int));
+      if (ARG2 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID))
+         POST_MEM_WRITE(ARG4, sizeof(Int));
+
+      /* Thread creation was successful; let the child have the chance
+         to run */
+      *flags |= SfYieldAfter;
+   }
+}
+
+PRE(sys_sigreturn)
+{
+   ThreadState* tst;
+   PRINT("sys_sigreturn ( )");
+
+   vg_assert(VG_(is_valid_tid)(tid));
+   vg_assert(tid >= 1 && tid < VG_N_THREADS);
+   vg_assert(VG_(is_running_thread)(tid));
+
+   tst = VG_(get_ThreadState)(tid);
+
+   /* This is only so that the IA is (might be) useful to report if
+      something goes wrong in the sigreturn */
+   ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
+
+   /* Restore register state from frame and remove it */
+   VG_(sigframe_destroy)(tid, False);
+
+   /* Tell the driver not to update the guest state with the "result",
+      and set a bogus result to keep it happy. */
+   *flags |= SfNoWriteResult;
+   SET_STATUS_Success(0);
+
+   /* Check to see if any signals arose as a result of this. */
+   *flags |= SfPollAfter;
+}
+
+
+PRE(sys_rt_sigreturn)
+{
+   /* See comments on PRE(sys_rt_sigreturn) in syswrap-amd64-linux.c for
+      an explanation of what follows. */
+
+   ThreadState* tst;
+   PRINT("sys_rt_sigreturn ( )");
+
+   vg_assert(VG_(is_valid_tid)(tid));
+   vg_assert(tid >= 1 && tid < VG_N_THREADS);
+   vg_assert(VG_(is_running_thread)(tid));
+
+   tst = VG_(get_ThreadState)(tid);
+
+   /* This is only so that the IA is (might be) useful to report if
+      something goes wrong in the sigreturn */
+   ML_(fixup_guest_state_to_restart_syscall)(&tst->arch);
+
+   /* Restore register state from frame and remove it */
+   VG_(sigframe_destroy)(tid, True);
+
+   /* Tell the driver not to update the guest state with the "result",
+      and set a bogus result to keep it happy. */
+   *flags |= SfNoWriteResult;
+   SET_STATUS_Success(0);
+
+   /* Check to see if any signals arose as a result of this. */
+   *flags |= SfPollAfter;
+}
+
+/* we cant use the LINX_ version for 64 bit */
+PRE(sys_fadvise64)
+{
+   PRINT("sys_fadvise64 ( %ld, %ld, %ld, %ld )", ARG1,ARG2,ARG3,ARG4);
+   PRE_REG_READ4(long, "fadvise64",
+                 int, fd, vki_loff_t, offset, vki_loff_t, len, int, advice);
+}
+
+#undef PRE
+#undef POST
+
+/* ---------------------------------------------------------------------
+   The s390x/Linux syscall table
+   ------------------------------------------------------------------ */
+
+/* Add an s390x-linux specific wrapper to a syscall table. */
+#define PLAX_(sysno, name)    WRAPPER_ENTRY_X_(s390x_linux, sysno, name)
+#define PLAXY(sysno, name)    WRAPPER_ENTRY_XY(s390x_linux, sysno, name)
+
+// This table maps from __NR_xxx syscall numbers from
+// linux/arch/s390/kernel/syscalls.S to the appropriate PRE/POST sys_foo()
+// wrappers on s390x. There are several unused numbers, which are only
+// defined on s390 (31bit mode) but no longer available on s390x (64 bit).
+// For those syscalls not handled by Valgrind, the annotation indicate its
+// arch/OS combination, eg. */* (generic), */Linux (Linux only), ?/?
+// (unknown).
+
+static SyscallTableEntry syscall_table[] = {
+   GENX_(0, sys_ni_syscall), /* unimplemented (by the kernel) */      // 0
+   GENX_(__NR_exit,  sys_exit),                                       // 1
+   GENX_(__NR_fork,  sys_fork),                                       // 2
+   GENXY(__NR_read,  sys_read),                                       // 3
+   GENX_(__NR_write,  sys_write),                                     // 4
+
+   GENXY(__NR_open,  sys_open),                                       // 5
+   GENXY(__NR_close,  sys_close),                                     // 6
+// ?????(__NR_restart_syscall, ),                                     // 7
+   GENXY(__NR_creat,  sys_creat),                                     // 8
+   GENX_(__NR_link,  sys_link),                                       // 9
+
+   GENX_(__NR_unlink,  sys_unlink),                                   // 10
+   GENX_(__NR_execve,  sys_execve),                                   // 11
+   GENX_(__NR_chdir,  sys_chdir),                                     // 12
+   GENX_(13, sys_ni_syscall), /* unimplemented (by the kernel) */     // 13
+   GENX_(__NR_mknod,  sys_mknod),                                     // 14
+
+   GENX_(__NR_chmod,  sys_chmod),                                     // 15
+   GENX_(16, sys_ni_syscall), /* unimplemented (by the kernel) */     // 16
+   GENX_(17, sys_ni_syscall), /* unimplemented (by the kernel) */     // 17
+   GENX_(18, sys_ni_syscall), /* unimplemented (by the kernel) */     // 18
+   LINX_(__NR_lseek,  sys_lseek),                                     // 19
+
+   GENX_(__NR_getpid,  sys_getpid),                                   // 20
+   LINX_(__NR_mount,  sys_mount),                                     // 21
+   LINX_(__NR_umount, sys_oldumount),                                 // 22
+   GENX_(23, sys_ni_syscall), /* unimplemented (by the kernel) */     // 23
+   GENX_(24, sys_ni_syscall), /* unimplemented (by the kernel) */     // 24
+
+   GENX_(25, sys_ni_syscall), /* unimplemented (by the kernel) */     // 25
+   PLAXY(__NR_ptrace, sys_ptrace),                                    // 26
+   GENX_(__NR_alarm,  sys_alarm),                                     // 27
+   GENX_(28, sys_ni_syscall), /* unimplemented (by the kernel) */     // 28
+   GENX_(__NR_pause,  sys_pause),                                     // 29
+
+   LINX_(__NR_utime,  sys_utime),                                     // 30
+   GENX_(31, sys_ni_syscall), /* unimplemented (by the kernel) */     // 31
+   GENX_(32, sys_ni_syscall), /* unimplemented (by the kernel) */     // 32
+   GENX_(__NR_access,  sys_access),                                   // 33
+   GENX_(__NR_nice, sys_nice),                                        // 34
+
+   GENX_(35, sys_ni_syscall), /* unimplemented (by the kernel) */     // 35
+   GENX_(__NR_sync, sys_sync),                                        // 36
+   GENX_(__NR_kill,  sys_kill),                                       // 37
+   GENX_(__NR_rename,  sys_rename),                                   // 38
+   GENX_(__NR_mkdir,  sys_mkdir),                                     // 39
+
+   GENX_(__NR_rmdir, sys_rmdir),                                      // 40
+   GENXY(__NR_dup,  sys_dup),                                         // 41
+   LINXY(__NR_pipe,  sys_pipe),                                       // 42
+   GENXY(__NR_times,  sys_times),                                     // 43
+   GENX_(44, sys_ni_syscall), /* unimplemented (by the kernel) */     // 44
+
+   GENX_(__NR_brk,  sys_brk),                                         // 45
+   GENX_(46, sys_ni_syscall), /* unimplemented (by the kernel) */     // 46
+   GENX_(47, sys_ni_syscall), /* unimplemented (by the kernel) */     // 47
+// ?????(__NR_signal, ),                                              // 48
+   GENX_(49, sys_ni_syscall), /* unimplemented (by the kernel) */     // 49
+
+   GENX_(50, sys_ni_syscall), /* unimplemented (by the kernel) */     // 50
+   GENX_(__NR_acct, sys_acct),                                        // 51
+   LINX_(__NR_umount2, sys_umount),                                   // 52
+   GENX_(53, sys_ni_syscall), /* unimplemented (by the kernel) */     // 53
+   LINXY(__NR_ioctl,  sys_ioctl),                                     // 54
+
+   LINXY(__NR_fcntl,  sys_fcntl),                                     // 55
+   GENX_(56, sys_ni_syscall), /* unimplemented (by the kernel) */     // 56
+   GENX_(__NR_setpgid,  sys_setpgid),                                 // 57
+   GENX_(58, sys_ni_syscall), /* unimplemented (by the kernel) */     // 58
+   GENX_(59, sys_ni_syscall), /* unimplemented (by the kernel) */     // 59
+
+   GENX_(__NR_umask,  sys_umask),                                     // 60
+   GENX_(__NR_chroot,  sys_chroot),                                   // 61
+// ?????(__NR_ustat, sys_ustat), /* deprecated in favor of statfs */  // 62
+   GENXY(__NR_dup2,  sys_dup2),                                       // 63
+   GENX_(__NR_getppid,  sys_getppid),                                 // 64
+
+   GENX_(__NR_getpgrp,  sys_getpgrp),                                 // 65
+   GENX_(__NR_setsid,  sys_setsid),                                   // 66
+// ?????(__NR_sigaction, ),   /* userspace uses rt_sigaction */       // 67
+   GENX_(68, sys_ni_syscall), /* unimplemented (by the kernel) */     // 68
+   GENX_(69, sys_ni_syscall), /* unimplemented (by the kernel) */     // 69
+
+   GENX_(70, sys_ni_syscall), /* unimplemented (by the kernel) */     // 70
+   GENX_(71, sys_ni_syscall), /* unimplemented (by the kernel) */     // 71
+// ?????(__NR_sigsuspend, ),                                          // 72
+// ?????(__NR_sigpending, ),                                          // 73
+// ?????(__NR_sethostname, ),                                         // 74
+
+   GENX_(__NR_setrlimit,  sys_setrlimit),                             // 75
+   GENXY(76,  sys_getrlimit), /* see also 191 */                      // 76
+   GENXY(__NR_getrusage,  sys_getrusage),                             // 77
+   GENXY(__NR_gettimeofday,  sys_gettimeofday),                       // 78
+   GENX_(__NR_settimeofday, sys_settimeofday),                        // 79
+
+   GENX_(80, sys_ni_syscall), /* unimplemented (by the kernel) */     // 80
+   GENX_(81, sys_ni_syscall), /* unimplemented (by the kernel) */     // 81
+   GENX_(82, sys_ni_syscall), /* unimplemented (by the kernel) */     // 82
+   GENX_(__NR_symlink,  sys_symlink),                                 // 83
+   GENX_(84, sys_ni_syscall), /* unimplemented (by the kernel) */     // 84
+
+   GENX_(__NR_readlink,  sys_readlink),                               // 85
+// ?????(__NR_uselib, ),                                              // 86
+// ?????(__NR_swapon, ),                                              // 87
+// ?????(__NR_reboot, ),                                              // 88
+   GENX_(89, sys_ni_syscall), /* unimplemented (by the kernel) */     // 89
+
+   PLAX_(__NR_mmap, sys_mmap ),                                       // 90
+   GENXY(__NR_munmap,  sys_munmap),                                   // 91
+   GENX_(__NR_truncate,  sys_truncate),                               // 92
+   GENX_(__NR_ftruncate,  sys_ftruncate),                             // 93
+   GENX_(__NR_fchmod,  sys_fchmod),                                   // 94
+
+   GENX_(95, sys_ni_syscall), /* unimplemented (by the kernel) */     // 95
+   GENX_(__NR_getpriority, sys_getpriority),                          // 96
+   GENX_(__NR_setpriority, sys_setpriority),                          // 97
+   GENX_(98, sys_ni_syscall), /* unimplemented (by the kernel) */     // 98
+   GENXY(__NR_statfs,  sys_statfs),                                   // 99
+
+   GENXY(__NR_fstatfs,  sys_fstatfs),                                 // 100
+   GENX_(101, sys_ni_syscall), /* unimplemented (by the kernel) */    // 101
+   PLAXY(__NR_socketcall, sys_socketcall),                            // 102
+   LINXY(__NR_syslog,  sys_syslog),                                   // 103
+   GENXY(__NR_setitimer,  sys_setitimer),                             // 104
+
+   GENXY(__NR_getitimer,  sys_getitimer),                             // 105
+   GENXY(__NR_stat, sys_newstat),                                     // 106
+   GENXY(__NR_lstat, sys_newlstat),                                   // 107
+   GENXY(__NR_fstat, sys_newfstat),                                   // 108
+   GENX_(109, sys_ni_syscall), /* unimplemented (by the kernel) */    // 109
+
+   LINXY(__NR_lookup_dcookie, sys_lookup_dcookie),                    // 110
+   LINX_(__NR_vhangup, sys_vhangup),                                  // 111
+   GENX_(112, sys_ni_syscall), /* unimplemented (by the kernel) */    // 112
+   GENX_(113, sys_ni_syscall), /* unimplemented (by the kernel) */    // 113
+   GENXY(__NR_wait4,  sys_wait4),                                     // 114
+
+// ?????(__NR_swapoff, ),                                             // 115
+   LINXY(__NR_sysinfo,  sys_sysinfo),                                 // 116
+   PLAXY(__NR_ipc, sys_ipc),                                          // 117
+   GENX_(__NR_fsync,  sys_fsync),                                     // 118
+   PLAX_(__NR_sigreturn, sys_sigreturn),                              // 119
+
+   PLAX_(__NR_clone,  sys_clone),                                     // 120
+// ?????(__NR_setdomainname, ),                                       // 121
+   GENXY(__NR_uname, sys_newuname),                                   // 122
+   GENX_(123, sys_ni_syscall), /* unimplemented (by the kernel) */    // 123
+// ?????(__NR_adjtimex, ),                                            // 124
+
+   GENXY(__NR_mprotect,  sys_mprotect),                               // 125
+// LINXY(__NR_sigprocmask, sys_sigprocmask),                          // 126
+   GENX_(127, sys_ni_syscall), /* unimplemented (by the kernel) */    // 127
+   LINX_(__NR_init_module,  sys_init_module),                         // 128
+   LINX_(__NR_delete_module,  sys_delete_module),                     // 129
+
+   GENX_(130, sys_ni_syscall), /* unimplemented (by the kernel) */    // 130
+   LINX_(__NR_quotactl, sys_quotactl),                                // 131
+   GENX_(__NR_getpgid,  sys_getpgid),                                 // 132
+   GENX_(__NR_fchdir,  sys_fchdir),                                   // 133
+// ?????(__NR_bdflush, ),                                             // 134
+
+// ?????(__NR_sysfs, ),                                               // 135
+   LINX_(__NR_personality, sys_personality),                          // 136
+   GENX_(137, sys_ni_syscall), /* unimplemented (by the kernel) */    // 137
+   GENX_(138, sys_ni_syscall), /* unimplemented (by the kernel) */    // 138
+   GENX_(139, sys_ni_syscall), /* unimplemented (by the kernel) */    // 139
+
+// LINXY(__NR__llseek, sys_llseek), /* 64 bit --> lseek */            // 140
+   GENXY(__NR_getdents,  sys_getdents),                               // 141
+   GENX_(__NR_select, sys_select),                                    // 142
+   GENX_(__NR_flock,  sys_flock),                                     // 143
+   GENX_(__NR_msync,  sys_msync),                                     // 144
+
+   GENXY(__NR_readv,  sys_readv),                                     // 145
+   GENX_(__NR_writev,  sys_writev),                                   // 146
+   GENX_(__NR_getsid, sys_getsid),                                    // 147
+   GENX_(__NR_fdatasync,  sys_fdatasync),                             // 148
+   LINXY(__NR__sysctl, sys_sysctl),                                   // 149
+
+   GENX_(__NR_mlock,  sys_mlock),                                     // 150
+   GENX_(__NR_munlock,  sys_munlock),                                 // 151
+   GENX_(__NR_mlockall,  sys_mlockall),                               // 152
+   LINX_(__NR_munlockall,  sys_munlockall),                           // 153
+   LINXY(__NR_sched_setparam,  sys_sched_setparam),                   // 154
+
+   LINXY(__NR_sched_getparam,  sys_sched_getparam),                   // 155
+   LINX_(__NR_sched_setscheduler,  sys_sched_setscheduler),           // 156
+   LINX_(__NR_sched_getscheduler,  sys_sched_getscheduler),           // 157
+   LINX_(__NR_sched_yield,  sys_sched_yield),                         // 158
+   LINX_(__NR_sched_get_priority_max,  sys_sched_get_priority_max),   // 159
+
+   LINX_(__NR_sched_get_priority_min,  sys_sched_get_priority_min),   // 160
+// ?????(__NR_sched_rr_get_interval, ),                               // 161
+   GENXY(__NR_nanosleep,  sys_nanosleep),                             // 162
+   GENX_(__NR_mremap,  sys_mremap),                                   // 163
+   GENX_(164, sys_ni_syscall), /* unimplemented (by the kernel) */    // 164
+
+   GENX_(165, sys_ni_syscall), /* unimplemented (by the kernel) */    // 165
+   GENX_(166, sys_ni_syscall), /* unimplemented (by the kernel) */    // 166
+   GENX_(167, sys_ni_syscall), /* unimplemented (by the kernel) */    // 167
+   GENXY(__NR_poll,  sys_poll),                                       // 168
+// ?????(__NR_nfsservctl, ),                                          // 169
+
+   GENX_(170, sys_ni_syscall), /* unimplemented (by the kernel) */    // 170
+   GENX_(171, sys_ni_syscall), /* unimplemented (by the kernel) */    // 171
+   LINXY(__NR_prctl, sys_prctl),                                      // 172
+   PLAX_(__NR_rt_sigreturn,  sys_rt_sigreturn),                       // 173
+   LINXY(__NR_rt_sigaction,  sys_rt_sigaction),                       // 174
+
+   LINXY(__NR_rt_sigprocmask,  sys_rt_sigprocmask),                   // 175
+   LINXY(__NR_rt_sigpending, sys_rt_sigpending),                      // 176
+   LINXY(__NR_rt_sigtimedwait,  sys_rt_sigtimedwait),                 // 177
+   LINXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo),                  // 178
+   LINX_(__NR_rt_sigsuspend, sys_rt_sigsuspend),                      // 179
+
+   GENXY(__NR_pread64,  sys_pread64),                                 // 180
+   GENX_(__NR_pwrite64, sys_pwrite64),                                // 181
+   GENX_(182, sys_ni_syscall), /* unimplemented (by the kernel) */    // 182
+   GENXY(__NR_getcwd,  sys_getcwd),                                   // 183
+   LINXY(__NR_capget,  sys_capget),                                   // 184
+
+   LINX_(__NR_capset,  sys_capset),                                   // 185
+   GENXY(__NR_sigaltstack,  sys_sigaltstack),                         // 186
+   LINXY(__NR_sendfile, sys_sendfile),                                // 187
+   GENX_(188, sys_ni_syscall), /* unimplemented (by the kernel) */    // 188
+   GENX_(189, sys_ni_syscall), /* unimplemented (by the kernel) */    // 189
+
+   GENX_(__NR_vfork,  sys_fork),                                      // 190
+   GENXY(__NR_getrlimit,  sys_getrlimit),                             // 191
+   GENX_(192, sys_ni_syscall), /* not exported on 64bit*/             // 192
+   GENX_(193, sys_ni_syscall), /* unimplemented (by the kernel) */    // 193
+   GENX_(194, sys_ni_syscall), /* unimplemented (by the kernel) */    // 194
+
+   GENX_(195, sys_ni_syscall), /* unimplemented (by the kernel) */    // 195
+   GENX_(196, sys_ni_syscall), /* unimplemented (by the kernel) */    // 196
+   GENX_(197, sys_ni_syscall), /* unimplemented (by the kernel) */    // 197
+   GENX_(__NR_lchown, sys_lchown),                                    // 198
+   GENX_(__NR_getuid, sys_getuid),                                    // 199
+
+   GENX_(__NR_getgid, sys_getgid),                                    // 200
+   GENX_(__NR_geteuid, sys_geteuid),                                  // 201
+   GENX_(__NR_getegid, sys_getegid),                                  // 202
+   GENX_(__NR_setreuid, sys_setreuid),                                // 203
+   GENX_(__NR_setregid, sys_setregid),                                // 204
+
+   GENXY(__NR_getgroups, sys_getgroups),                              // 205
+   GENX_(__NR_setgroups, sys_setgroups),                              // 206
+   GENX_(__NR_fchown, sys_fchown),                                    // 207
+   LINX_(__NR_setresuid, sys_setresuid),                              // 208
+   LINXY(__NR_getresuid, sys_getresuid),                              // 209
+
+   LINX_(__NR_setresgid, sys_setresgid),                              // 210
+   LINXY(__NR_getresgid, sys_getresgid),                              // 211
+   GENX_(__NR_chown, sys_chown),                                      // 212
+   GENX_(__NR_setuid, sys_setuid),                                    // 213
+   GENX_(__NR_setgid, sys_setgid),                                    // 214
+
+   LINX_(__NR_setfsuid, sys_setfsuid),                                // 215
+   LINX_(__NR_setfsgid, sys_setfsgid),                                // 216
+// ?????(__NR_pivot_root, ),
+   GENX_(__NR_mincore, sys_mincore),                                  // 218
+   GENX_(__NR_madvise,  sys_madvise),                                 // 219
+
+   GENXY(__NR_getdents64,  sys_getdents64),                           // 220
+   GENX_(221, sys_ni_syscall), /* unimplemented (by the kernel) */    // 221
+   LINX_(__NR_readahead, sys_readahead),                              // 222
+   GENX_(223, sys_ni_syscall), /* unimplemented (by the kernel) */    // 223
+   LINX_(__NR_setxattr, sys_setxattr),                                // 224
+
+   LINX_(__NR_lsetxattr, sys_lsetxattr),                              // 225
+   LINX_(__NR_fsetxattr, sys_fsetxattr),                              // 226
+   LINXY(__NR_getxattr,  sys_getxattr),                               // 227
+   LINXY(__NR_lgetxattr,  sys_lgetxattr),                             // 228
+   LINXY(__NR_fgetxattr,  sys_fgetxattr),                             // 229
+
+   LINXY(__NR_listxattr,  sys_listxattr),                             // 230
+   LINXY(__NR_llistxattr,  sys_llistxattr),                           // 231
+   LINXY(__NR_flistxattr,  sys_flistxattr),                           // 232
+   LINX_(__NR_removexattr,  sys_removexattr),                         // 233
+   LINX_(__NR_lremovexattr,  sys_lremovexattr),                       // 234
+
+   LINX_(__NR_fremovexattr,  sys_fremovexattr),                       // 235
+   LINX_(__NR_gettid,  sys_gettid),                                   // 236
+   LINXY(__NR_tkill, sys_tkill),                                      // 237
+   LINXY(__NR_futex,  sys_futex),                                     // 238
+   LINX_(__NR_sched_setaffinity,  sys_sched_setaffinity),             // 239
+
+   LINXY(__NR_sched_getaffinity,  sys_sched_getaffinity),             // 240
+   LINXY(__NR_tgkill, sys_tgkill),                                    // 241
+   GENX_(242, sys_ni_syscall), /* unimplemented (by the kernel) */    // 242
+   LINXY(__NR_io_setup, sys_io_setup),                                // 243
+   LINX_(__NR_io_destroy,  sys_io_destroy),                           // 244
+
+   LINXY(__NR_io_getevents,  sys_io_getevents),                       // 245
+   LINX_(__NR_io_submit,  sys_io_submit),                             // 246
+   LINXY(__NR_io_cancel,  sys_io_cancel),                             // 247
+   LINX_(__NR_exit_group,  sys_exit_group),                           // 248
+   LINXY(__NR_epoll_create,  sys_epoll_create),                       // 249
+
+   LINX_(__NR_epoll_ctl,  sys_epoll_ctl),                             // 250
+   LINXY(__NR_epoll_wait,  sys_epoll_wait),                           // 251
+   LINX_(__NR_set_tid_address,  sys_set_tid_address),                 // 252
+   PLAX_(__NR_fadvise64, sys_fadvise64),                              // 253
+   LINXY(__NR_timer_create,  sys_timer_create),                       // 254
+
+   LINXY(__NR_timer_settime,  sys_timer_settime),                     // 255
+   LINXY(__NR_timer_gettime,  sys_timer_gettime),                     // 256
+   LINX_(__NR_timer_getoverrun,  sys_timer_getoverrun),               // 257
+   LINX_(__NR_timer_delete,  sys_timer_delete),                       // 258
+   LINX_(__NR_clock_settime,  sys_clock_settime),                     // 259
+
+   LINXY(__NR_clock_gettime,  sys_clock_gettime),                     // 260
+   LINXY(__NR_clock_getres,  sys_clock_getres),                       // 261
+   LINXY(__NR_clock_nanosleep,  sys_clock_nanosleep),                 // 262
+   GENX_(263, sys_ni_syscall), /* unimplemented (by the kernel) */    // 263
+   GENX_(264, sys_ni_syscall), /* unimplemented (by the kernel) */    // 264
+
+   GENXY(__NR_statfs64, sys_statfs64),                                // 265
+   GENXY(__NR_fstatfs64, sys_fstatfs64),                              // 266
+// ?????(__NR_remap_file_pages, ),
+   GENX_(268, sys_ni_syscall), /* unimplemented (by the kernel) */    // 268
+   GENX_(269, sys_ni_syscall), /* unimplemented (by the kernel) */    // 269
+
+   GENX_(270, sys_ni_syscall), /* unimplemented (by the kernel) */    // 270
+   LINXY(__NR_mq_open,  sys_mq_open),                                 // 271
+   LINX_(__NR_mq_unlink,  sys_mq_unlink),                             // 272
+   LINX_(__NR_mq_timedsend,  sys_mq_timedsend),                       // 273
+   LINXY(__NR_mq_timedreceive, sys_mq_timedreceive),                  // 274
+
+   LINX_(__NR_mq_notify,  sys_mq_notify),                             // 275
+   LINXY(__NR_mq_getsetattr,  sys_mq_getsetattr),                     // 276
+// ?????(__NR_kexec_load, ),
+   LINX_(__NR_add_key,  sys_add_key),                                 // 278
+   LINX_(__NR_request_key,  sys_request_key),                         // 279
+
+   LINXY(__NR_keyctl,  sys_keyctl),                                   // 280
+   LINXY(__NR_waitid, sys_waitid),                                    // 281
+   LINX_(__NR_ioprio_set,  sys_ioprio_set),                           // 282
+   LINX_(__NR_ioprio_get,  sys_ioprio_get),                           // 283
+   LINX_(__NR_inotify_init,  sys_inotify_init),                       // 284
+
+   LINX_(__NR_inotify_add_watch,  sys_inotify_add_watch),             // 285
+   LINX_(__NR_inotify_rm_watch,  sys_inotify_rm_watch),               // 286
+   GENX_(287, sys_ni_syscall), /* unimplemented (by the kernel) */    // 287
+   LINXY(__NR_openat,  sys_openat),                                   // 288
+   LINX_(__NR_mkdirat,  sys_mkdirat),                                 // 289
+
+   LINX_(__NR_mknodat,  sys_mknodat),                                 // 290
+   LINX_(__NR_fchownat,  sys_fchownat),                               // 291
+   LINX_(__NR_futimesat,  sys_futimesat),                             // 292
+   LINXY(__NR_newfstatat, sys_newfstatat),                            // 293
+   LINX_(__NR_unlinkat,  sys_unlinkat),                               // 294
+
+   LINX_(__NR_renameat,  sys_renameat),                               // 295
+   LINX_(__NR_linkat,  sys_linkat),                                   // 296
+   LINX_(__NR_symlinkat,  sys_symlinkat),                             // 297
+   LINX_(__NR_readlinkat,  sys_readlinkat),                           // 298
+   LINX_(__NR_fchmodat,  sys_fchmodat),                               // 299
+
+   LINX_(__NR_faccessat,  sys_faccessat),                             // 300
+   LINX_(__NR_pselect6, sys_pselect6),                                // 301
+   LINXY(__NR_ppoll, sys_ppoll),                                      // 302
+// ?????(__NR_unshare, ),
+   LINX_(__NR_set_robust_list,  sys_set_robust_list),                 // 304
+
+   LINXY(__NR_get_robust_list,  sys_get_robust_list),                 // 305
+// ?????(__NR_splice, ),
+   LINX_(__NR_sync_file_range, sys_sync_file_range),                  // 307
+// ?????(__NR_tee, ),
+// ?????(__NR_vmsplice, ),
+
+   GENX_(310, sys_ni_syscall), /* unimplemented (by the kernel) */    // 310
+// ?????(__NR_getcpu, ),
+   LINXY(__NR_epoll_pwait,  sys_epoll_pwait),                         // 312
+   GENX_(__NR_utimes, sys_utimes),                                    // 313
+   LINX_(__NR_fallocate, sys_fallocate),                              // 314
+
+   LINX_(__NR_utimensat,  sys_utimensat),                             // 315
+   LINXY(__NR_signalfd,  sys_signalfd),                               // 316
+   GENX_(317, sys_ni_syscall), /* unimplemented (by the kernel) */    // 317
+   LINX_(__NR_eventfd,  sys_eventfd),                                 // 318
+   LINXY(__NR_timerfd_create,  sys_timerfd_create),                   // 319
+
+   LINXY(__NR_timerfd_settime,  sys_timerfd_settime),                 // 320
+   LINXY(__NR_timerfd_gettime,  sys_timerfd_gettime),                 // 321
+   LINXY(__NR_signalfd4,  sys_signalfd4),                             // 322
+   LINX_(__NR_eventfd2,  sys_eventfd2),                               // 323
+   LINXY(__NR_inotify_init1,  sys_inotify_init1),                     // 324
+
+   LINXY(__NR_pipe2,  sys_pipe2),                                     // 325
+   // (__NR_dup3,  ),
+   LINXY(__NR_epoll_create1,  sys_epoll_create1),                     // 327
+   LINXY(__NR_preadv, sys_preadv),                                    // 328
+   LINX_(__NR_pwritev, sys_pwritev),                                  // 329
+
+// ?????(__NR_rt_tgsigqueueinfo, ),
+   LINXY(__NR_perf_event_open, sys_perf_counter_open),                // 331
+};
+
+SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+{
+   const UInt syscall_table_size
+      = sizeof(syscall_table) / sizeof(syscall_table[0]);
+
+   /* Is it in the contiguous initial section of the table? */
+   if (sysno < syscall_table_size) {
+      SyscallTableEntry* sys = &syscall_table[sysno];
+      if (sys->before == NULL)
+         return NULL; /* no entry */
+      else
+         return sys;
+   }
+
+   /* Can't find a wrapper */
+   return NULL;
+}
+
+#endif
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
index 07d76898bf20576636b8fbdafc5616ba6475e4fe..0fdcf9e83f19947ec8bfb5b1804744758110bf1a 100644 (file)
@@ -1214,6 +1214,39 @@ VG_(trampoline_stuff_end):
 .fill 2048, 2, 0x0b0f /* `ud2` */
 
 
+/*---------------- s390x-linux ----------------*/
+#else
+#if defined(VGP_s390x_linux)
+
+        /* a leading page of unexecutable code */
+       .fill 2048, 2, 0x0000
+
+.global VG_(trampoline_stuff_start)
+VG_(trampoline_stuff_start):
+
+.global VG_(s390x_linux_SUBST_FOR_sigreturn)
+VG_(s390x_linux_SUBST_FOR_sigreturn):
+        svc __NR_sigreturn
+       .short 0
+
+.global VG_(s390x_linux_SUBST_FOR_rt_sigreturn)
+VG_(s390x_linux_SUBST_FOR_rt_sigreturn):
+        /* Old gcc unwinding code checks for a sig(_rt)_return svc and then
+           for ra = cfa to decide if it is a sig_rt_frame or not. Since we
+           set ra to this trampoline, but the cfa is still in the stack,
+           the unwinder thinks, that this is a non-rt frame  and causes a
+           crash in the gcc unwinder - which is used by the thread library
+           and others. Therefore we add a lr 1,1 nop, to let the gcc
+           unwinder bail out gracefully. This might also affect unwinding
+           across the signal frame - tough luck. fixs390 */
+        lr 1,1
+        svc __NR_rt_sigreturn
+       .short 0
+
+.globl VG_(trampoline_stuff_end)
+VG_(trampoline_stuff_end):
+       .fill 2048, 2, 0x0000
+
 /*---------------- unknown ----------------*/
 #else
 #  error Unknown platform
@@ -1226,6 +1259,7 @@ VG_(trampoline_stuff_end):
 #endif
 #endif
 #endif
+#endif
 
 #if defined(VGO_linux)
 /* Let the linker know we don't need an executable stack */
index 4cdf220bd7079cff26cd6067cac0ebe0fdcec0df..864f38d358da56adc31c8272bfb2dcfdb3445b6e 100644 (file)
@@ -692,7 +692,7 @@ void log_bytes ( HChar* bytes, Int nbytes )
 
 static Bool translations_allowable_from_seg ( NSegment const* seg )
 {
-#  if defined(VGA_x86)
+#  if defined(VGA_x86) || defined(VGA_s390x)
    Bool allowR = True;
 #  else
    Bool allowR = False;
@@ -1503,7 +1503,8 @@ Bool VG_(translate) ( ThreadId tid,
           ? (void*) &VG_(run_innerloop__dispatch_profiled)
           : (void*) &VG_(run_innerloop__dispatch_unprofiled);
 #  elif defined(VGA_ppc32) || defined(VGA_ppc64) \
-        || defined(VGA_arm)
+        || defined(VGA_arm) || defined(VGA_s390x)
+   /* See comment libvex.h; machine has link register --> dipatch = NULL */
    vta.dispatch = NULL;
 #  else
 #    error "Unknown arch"
index ba6940f1d81047a6d28e35c64eafa2279f5aaa86..f08afa930c5d3dc4f69eb3de9392321783eb42a2 100644 (file)
@@ -901,6 +901,9 @@ static void invalidate_icache ( void *ptr, Int nbytes )
 #  elif defined(VGA_amd64)
    /* no need to do anything, hardware provides coherence */
 
+#  elif defined(VGA_s390x)
+   /* no need to do anything, hardware provides coherence */
+
 #  elif defined(VGP_arm_linux)
    /* ARM cache flushes are privileged, so we must defer to the kernel. */
    Addr startaddr = (Addr) ptr;
index 35aba2f2ba69fdfbebc5957539235595102215a6..0718c82c7fd2728087ed8a9754da9d53ba7b47bb 100644 (file)
@@ -58,6 +58,8 @@
 #  include "libvex_guest_ppc64.h"
 #elif defined(VGA_arm)
 #  include "libvex_guest_arm.h"
+#elif defined(VGA_s390x)
+#  include "libvex_guest_s390x.h"
 #else
 #  error Unknown arch
 #endif
@@ -105,6 +107,10 @@ typedef
             UInt r11;
             UInt r7;
          } ARM;
+         struct {
+            ULong r_fp;
+            ULong r_lr;
+         } S390X;
       } misc;
    }
    UnwindStartRegs;
index facca244d3976cdbf7537cacfeff0ac453e2b00c..330970ae7b21c91f9732dc9679ff507cc3190bdd 100644 (file)
@@ -123,6 +123,10 @@ typedef
 typedef
    UChar  /* should be void, but gcc complains at use points */
    D3UnwindRegs;
+#elif defined(VGA_s390x)
+typedef
+   struct { Addr ia; Addr sp; Addr fp; Addr lr;}
+   D3UnwindRegs;
 #else
 #  error "Unsupported arch"
 #endif
index ea32dc83d09862ba97217c5a1efd0e7664b2bf54..2043a52d97c478e53652eabf6b749b9074163997 100644 (file)
 #  undef  VG_ELF_MACHINE
 #  undef  VG_ELF_CLASS
 #  undef  VG_PLAT_USES_PPCTOC
+#elif defined(VGP_s390x_linux)
+#  define VG_ELF_DATA2XXX     ELFDATA2MSB
+#  define VG_ELF_MACHINE      EM_S390
+#  define VG_ELF_CLASS        ELFCLASS64
+#  undef  VG_PLAT_USES_PPCTOC
 #else
 #  error Unknown platform
 #endif
 #  define VG_INSTR_PTR        guest_R15T
 #  define VG_STACK_PTR        guest_R13
 #  define VG_FRAME_PTR        guest_R11
+#elif defined(VGA_s390x)
+#  define VG_INSTR_PTR        guest_IA
+#  define VG_STACK_PTR        guest_SP
+#  define VG_FRAME_PTR        guest_FP
 #else
 #  error Unknown arch
 #endif
index 4eb11f0c0976c80b7326c2a11793463a9514aa84..7c3cbb139d31a7bd283a87e3bc965a72bdd092ef 100644 (file)
@@ -77,6 +77,7 @@ typedef Int ArenaId;
 // for any AltiVec- or SSE-related type.  This matches the Darwin libc.
 #elif defined(VGP_amd64_linux) || \
       defined(VGP_ppc64_linux) || \
+      defined(VGP_s390x_linux) || \
       defined(VGP_ppc64_aix5)  || \
       defined(VGP_ppc32_aix5)  || \
       defined(VGP_x86_darwin)  || \
index 9f9c068df22111c6559f00f2ed72fd40de1a6ae8..7a79905d899a28a586266472631b66ba2c611ff4 100644 (file)
@@ -80,6 +80,7 @@ extern SysRes VG_(mk_SysRes_x86_darwin)  ( UChar scclass, Bool isErr,
                                            UInt wHI, UInt wLO );
 extern SysRes VG_(mk_SysRes_amd64_darwin)( UChar scclass, Bool isErr,
                                            ULong wHI, ULong wLO );
+extern SysRes VG_(mk_SysRes_s390x_linux) ( Long val );
 extern SysRes VG_(mk_SysRes_Error)       ( UWord val );
 extern SysRes VG_(mk_SysRes_Success)     ( UWord val );
 
index 3e63da14d656998d354207436ede4cea7b0bd767..a784d0e18877aef9e4db877d9a55d9a8fe76a8dc 100644 (file)
@@ -85,6 +85,8 @@ typedef
    typedef VexGuestPPC64State VexGuestArchState;
 #elif defined(VGA_arm)
    typedef VexGuestARMState   VexGuestArchState;
+#elif defined(VGA_s390x)
+   typedef VexGuestS390XState VexGuestArchState;
 #else
 #  error Unknown architecture
 #endif
index fff4b168ac7593fb019c4f3e2edcb52cc1b222e7..5eafcbbf7d69854013a4da8edc36e4dd76d0d1a0 100644 (file)
@@ -140,6 +140,11 @@ extern SizeT VG_(amd64_darwin_REDIR_FOR_strlcat)( char *s1, const char *s2,
 extern UInt VG_(amd64_darwin_REDIR_FOR_arc4random)( void );
 #endif
 
+#if defined(VGP_s390x_linux)
+extern Addr VG_(s390x_linux_SUBST_FOR_sigreturn);
+extern Addr VG_(s390x_linux_SUBST_FOR_rt_sigreturn);
+#endif
+
 #endif   // __PUB_CORE_TRAMPOLINE_H
 
 /*--------------------------------------------------------------------*/
index d3292f19fdf8825d200edbfc836ca8f0e1f508ab..76e48db1b572893283a9405ebc7d54d12b0209a8 100644 (file)
    2)[VG_TT_FAST_BITS-1 : 0]' on those targets.
 
    On ARM we do like ppc32/ppc64, although that will have to be
-   revisited when we come to implement Thumb. */
+   revisited when we come to implement Thumb.
+
+   On s390x the rightmost bit of an instruction address is zero.
+   For best table utilization shift the address to the right by 1 bit. */
 
 #define VG_TT_FAST_BITS 15
 #define VG_TT_FAST_SIZE (1 << VG_TT_FAST_BITS)
@@ -55,6 +58,8 @@
 #  define VG_TT_FAST_HASH(_addr)  ((((UWord)(_addr))     ) & VG_TT_FAST_MASK)
 #elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_arm)
 #  define VG_TT_FAST_HASH(_addr)  ((((UWord)(_addr)) >> 2) & VG_TT_FAST_MASK)
+#elif defined(VGA_s390x)
+#  define VG_TT_FAST_HASH(_addr)  ((((UWord)(_addr)) >> 1) & VG_TT_FAST_MASK)
 #else
 #  error "VG_TT_FAST_HASH: unknown platform"
 #endif
index 57d942398c3703e28a1f252cda22b2e1a36f6807..5450ae5e0f47ed673d8d0b4bce25ae616c82625b 100644 (file)
@@ -139,7 +139,7 @@ Addr make_address(const UWord a1, const UWord a0)
 /** Log2 of BITS_PER_UWORD. */
 #if defined(VGA_x86) || defined(VGA_ppc32) || defined(VGA_arm)
 #define BITS_PER_BITS_PER_UWORD 5
-#elif defined(VGA_amd64) || defined(VGA_ppc64)
+#elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_s390x)
 #define BITS_PER_BITS_PER_UWORD 6
 #else
 #error Unknown platform.
index 74ef2305e1db1236967f673f59c0b17923d6038e..9820da0c7e1f0797933c89b0f787feba06768e5d 100644 (file)
@@ -48,6 +48,8 @@
 #define STACK_POINTER_OFFSET OFFSET_ppc64_GPR1
 #elif defined(VGA_arm)
 #define STACK_POINTER_OFFSET OFFSET_arm_R13
+#elif defined(VGA_s390x)
+#define STACK_POINTER_OFFSET OFFSET_s390x_r15
 #else
 #error Unknown architecture.
 #endif
index 66307fe0299829ee4d59e25e7ce99919ca8e188c..6873a81c3db16b4ff7651d1009b93a7a7ff1f193 100644 (file)
@@ -564,7 +564,7 @@ static void pp_curr_ExeContext(void)
 #  define SHMEM_SECMAP_SHIFT        2
 #  define SHMEM_IS_WORD_ALIGNED(_a) VG_IS_4_ALIGNED(_a)
 #  define SEC_MAP_WORDS             (0x10000UL / 4UL) /* 16k */
-#elif defined(VGA_amd64) || defined(VGA_ppc64)
+#elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_s390x)
 #  define SHMEM_SECMAP_MASK         0xFFF8
 #  define SHMEM_SECMAP_SHIFT        3
 #  define SHMEM_IS_WORD_ALIGNED(_a) VG_IS_8_ALIGNED(_a)
@@ -1296,6 +1296,11 @@ typedef
 # define PC_SIZEOF_GUEST_STATE sizeof(VexGuestARMState)
 #endif
 
+#if defined(VGA_s390x)
+# include "libvex_guest_s390x.h"
+# define PC_SIZEOF_GUEST_STATE sizeof(VexGuestS390XState)
+#endif
+
 
 /* See description on definition of type IntRegInfo. */
 static void get_IntRegInfo ( /*OUT*/IntRegInfo* iii, Int offset, Int szB )
@@ -1833,6 +1838,14 @@ static void get_IntRegInfo ( /*OUT*/IntRegInfo* iii, Int offset, Int szB )
    tl_assert(0);
 
 
+   /* -------------------- s390x -------------------- */
+
+#  elif defined(VGA_s390x)
+
+   Int  o    = offset;
+
+   VG_(tool_panic)("not implemented for s390x");
+
 #  else
 #    error "FIXME: not implemented for this architecture"
 #  endif
@@ -1914,6 +1927,11 @@ static Bool is_integer_guest_reg_array ( IRRegArray* arr )
    VG_(printf)("\n");
    tl_assert(0);
 
+   /* -------------------- s390x -------------------- */
+#  elif defined(VGA_s390x)
+
+   tl_assert(0);
+
    /* -------------------- arm -------------------- */
 #  elif defined(VGA_arm)
    /* There are no rotating register sections on ARM. */
@@ -2472,7 +2490,9 @@ static void setup_post_syscall_table ( void )
       ADD(0, __NR_symlink);
       ADD(0, __NR_sysinfo);
       ADD(0, __NR_tgkill);
+#if   defined(__NR_time)
       ADD(0, __NR_time);
+#     endif
       ADD(0, __NR_times);
       ADD(0, __NR_truncate);
 #     if defined(__NR_truncate64)
@@ -2754,6 +2774,8 @@ static inline Bool looks_like_a_pointer(Addr a)
    tl_assert(sizeof(UWord) == 4);
    return (a >= 0x00008000UL && a < 0xFF000000UL);
 
+#  elif defined(VGA_s390x)
+   tl_assert(0);
 #  else
 #    error "Unsupported architecture"
 #  endif
index 782cfd43144d70bc4c5d66d7e7d481e9c04b833c..b1943b9efc7a4b9286ee18f105bd46a2b43449b4 100644 (file)
@@ -140,6 +140,10 @@ static void pc_post_clo_init ( void )
          "(like --enable-sg-checks=no).\n");
    }
    sg_clo_enable_sg_checks = False;
+#  elif defined(VGA_s390x)
+   /* fixs390: to be done. */
+      VG_(message)(Vg_UserMsg,
+         "ERROR: exp-ptrcheck on s390x platform is not supported yet.\n");
 #  else
 #    error "Unsupported architecture"
 #  endif
index ca9bd16d77e78d2dcd0508f658c9ab51635bf99c..bdf2e7f8f1dbc8e5a401b74723602b34804d75e4 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #
-# Not all architectures are supported by exp-ptr. Currently, PowerPC and ARM
-# are not supported and will fail these tests as follows:
+# Not all architectures are supported by exp-ptr. Currently, PowerPC, s390x
+# and ARM are not supported and will fail these tests as follows:
 # WARNING: exp-ptrcheck on <blah> platforms: stack and global array
 # WARNING: checking is not currently supported.  Only heap checking is
 # WARNING: supported.
@@ -10,6 +10,6 @@
 # architectures.
 
 case `uname -i` in
-  ppc*|arm*) exit 1;;
+  ppc*|arm*|s390x) exit 1;;
   *)         exit 0;;
 esac
index 704e4aef02e5faae09510c62f5aac932e0a9fda2..82e32f006a4c2c26c5eb33afdded685ad9ab944e 100644 (file)
@@ -167,6 +167,25 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
    return success;
 }
 
+#elif defined(VGA_s390x)
+
+// s390x
+/* return 1 if success, 0 if failure */
+UWord do_acasW(UWord* addr, UWord expected, UWord nyu )
+{
+   int cc;
+
+   __asm__ __volatile__ (
+     "csg %2,%3,%1\n\t"
+     "ipm %0\n\t"
+     "srl %0,28\n\t"
+     : /* out */  "=r" (cc)
+     : /* in */ "Q" (*addr), "d" (expected), "d" (nyu)
+     : "memory", "cc"
+   );
+   return cc == 0;
+}
+
 #endif
 
 void atomic_incW ( UWord* w )
index d48f7bb99c5c6e588e7dcd93053aa8c8a1af9c84..64a5486c7f429de6a752a482bed3908fefb45823 100644 (file)
@@ -15,6 +15,7 @@
 #undef PLAT_ppc32_linux
 #undef PLAT_ppc64_linux
 #undef PLAT_arm_linux
+#undef PLAT_s390x_linux
 
 #if defined(_AIX) && defined(__64BIT__)
 #  define PLAT_ppc64_aix5 1
@@ -34,6 +35,8 @@
 #  define PLAT_ppc64_linux 1
 #elif defined(__linux__) && defined(__arm__)
 #  define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__s390x__)
+#  define PLAT_s390x_linux 1
 #endif
 
 #if defined(PLAT_amd64_linux) || defined(PLAT_x86_linux) \
       : /*out*/ : /*in*/ "r"(&(_lval))       \
       : /*trash*/ "r8", "r9", "cc", "memory" \
   );
+#elif defined(PLAT_s390x_linux)
+#  define INC(_lval,_lqual) \
+   __asm__ __volatile__( \
+      "1: l     0,%0\n"                            \
+      "   lr    1,0\n"                             \
+      "   ahi   1,1\n"                             \
+      "   cs    0,1,%0\n"                          \
+      "   jl    1b\n"                              \
+      : "+m" (_lval) :: "cc", "1","2" \
+   )
 #else
 #  error "Fix Me for this platform"
 #endif
index 0ca3f3aec391595307ff77e5669ed30aa94c4362..36829d55acf78ad3996acbf3df98f54632f183a0 100644 (file)
@@ -31,6 +31,7 @@
 #undef PLAT_ppc32_linux
 #undef PLAT_ppc64_linux
 #undef PLAT_arm_linux
+#undef PLAT_s390x_linux
 
 #if defined(_AIX) && defined(__64BIT__)
 #  define PLAT_ppc64_aix5 1
@@ -50,6 +51,8 @@
 #  define PLAT_ppc64_linux 1
 #elif defined(__linux__) && defined(__arm__)
 #  define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__s390x__)
+#  define PLAT_s390x_linux 1
 #endif
 
 
       : /*out*/ : /*in*/ "r"(&(_lval))       \
       : /*trash*/ "r8", "r9", "cc", "memory" \
   );
+#elif defined(PLAT_s390x_linux)
+#  define INC(_lval,_lqual) \
+   __asm__ __volatile__( \
+      "1: l     0,%0\n"                            \
+      "   lr    1,0\n"                             \
+      "   ahi   1,1\n"                             \
+      "   cs    0,1,%0\n"                          \
+      "   jl    1b\n"                              \
+      : "+m" (_lval) :: "cc", "0","1" \
+   )
 #else
 #  error "Fix Me for this platform"
 #endif
index 54cb494a1a122e39637bde4e64b96498900a718d..584d896acae3d3c6f11d223883cc5a7a6a4f03e0 100644 (file)
@@ -18,6 +18,7 @@
 #undef PLAT_ppc32_linux
 #undef PLAT_ppc64_linux
 #undef PLAT_arm_linux
+#undef PLAT_s390x_linux
 
 #if defined(_AIX) && defined(__64BIT__)
 #  define PLAT_ppc64_aix5 1
@@ -37,6 +38,8 @@
 #  define PLAT_ppc64_linux 1
 #elif defined(__linux__) && defined(__arm__)
 #  define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__s390x__)
+#  define PLAT_s390x_linux 1
 #endif
 
 
@@ -59,7 +62,7 @@
 
 #elif defined(PLAT_ppc32_linux) || defined(PLAT_ppc64_linux) \
       || defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5) \
-      || defined(PLAT_arm_linux)
+      || defined(PLAT_arm_linux) || defined(PLAT_s390x_linux)
 #  if defined(HAVE_BUILTIN_ATOMIC)
 #    define XCHG_M_R(_addr,_lval)                                           \
         do {                                                                \
index 33d085797fbe951ea02d9f9a41c1050bd33ce745..3a1adc06faaecabd92f0e142d6f6b87e97f36498 100644 (file)
@@ -43,17 +43,20 @@ nobase_pkginclude_HEADERS = \
        vki/vki-posixtypes-ppc32-linux.h \
        vki/vki-posixtypes-ppc64-linux.h \
        vki/vki-posixtypes-x86-linux.h   \
-       vki/vki-posixtypes-arm-linux.h   \
+       vki/vki-posixtypes-arm-linux.h   \
+       vki/vki-posixtypes-s390x-linux.h \
        vki/vki-amd64-linux.h           \
        vki/vki-ppc32-linux.h           \
        vki/vki-ppc64-linux.h           \
        vki/vki-x86-linux.h             \
-       vki/vki-arm-linux.h             \
+       vki/vki-arm-linux.h             \
+       vki/vki-s390x-linux.h           \
        vki/vki-scnums-amd64-linux.h    \
        vki/vki-scnums-ppc32-linux.h    \
        vki/vki-scnums-ppc64-linux.h    \
        vki/vki-scnums-x86-linux.h      \
-       vki/vki-scnums-arm-linux.h      \
+       vki/vki-scnums-arm-linux.h      \
+       vki/vki-scnums-s390x-linux.h    \
        vki/vki-scnums-darwin.h
 
 noinst_HEADERS = \
index 6e92ff21a4259b5b55598d559aa9675ce3d7eac9..d467c0e829b3c32ca9f336326df2924e31c1f26d 100644 (file)
@@ -292,7 +292,7 @@ static inline Bool sr_EQ ( SysRes sr1, SysRes sr2 ) {
 
 #if defined(VGA_x86) || defined(VGA_amd64) || defined (VGA_arm)
 #  define VG_LITTLEENDIAN 1
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_s390x)
 #  define VG_BIGENDIAN 1
 #else
 #  error Unknown arch
@@ -302,7 +302,7 @@ static inline Bool sr_EQ ( SysRes sr1, SysRes sr2 ) {
 #if defined(VGA_x86)
 #  define VG_REGPARM(n)            __attribute__((regparm(n)))
 #elif defined(VGA_amd64) || defined(VGA_ppc32) \
-      || defined(VGA_ppc64) || defined(VGA_arm)
+      || defined(VGA_ppc64) || defined(VGA_arm) || defined(VGA_s390x)
 #  define VG_REGPARM(n)            /* */
 #else
 #  error Unknown arch
index 35b3c491a21352b196f684a75cf9ac7d3b708e79..062c2eaa29d22a5b1776109b2081177175beacbe 100644 (file)
 #  define VG_CLREQ_SZB             20
 #  define VG_STACK_REDZONE_SZB    288 // is this right?
 
+#elif defined(VGP_s390x_linux)
+#  define VG_MIN_INSTR_SZB          2
+#  define VG_MAX_INSTR_SZB          6
+#  define VG_CLREQ_SZB             10
+#  define VG_STACK_REDZONE_SZB      0  // s390 has no redzone
+
 #elif defined(VGP_x86_darwin)
 #  define VG_MIN_INSTR_SZB          1  // min length of native instruction
 #  define VG_MAX_INSTR_SZB         16  // max length of native instruction
index bd8d4977b6942de251d1c7ff1ab9429a118e6d87..e31347c0bcc6a8611897aac040dccf8ae4ee2672 100644 (file)
@@ -45,6 +45,9 @@
 #elif defined(VGP_ppc64_linux)
 #  include "vki/vki-scnums-ppc64-linux.h"
 
+#elif defined(VGP_s390x_linux)
+#  include "vki/vki-scnums-s390x-linux.h"
+
 #elif defined(VGP_arm_linux)
 #  include "vki/vki-scnums-arm-linux.h"
 
index 509cc4bcf232e188981f5790c515d63a3af11f23..4843a753ed76dd41924361ed4a6a1591c33c1ffa 100644 (file)
 #undef PLAT_ppc32_linux
 #undef PLAT_ppc64_linux
 #undef PLAT_arm_linux
+#undef PLAT_s390x_linux
+
 
 #if defined(_AIX) && defined(__64BIT__)
 #  define PLAT_ppc64_aix5 1
 #  define PLAT_ppc64_linux 1
 #elif defined(__linux__) && defined(__arm__)
 #  define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__s390__) && defined(__s390x__)
+#  define PLAT_s390x_linux 1
 #else
 /* If we're not compiling for our target platform, don't generate
    any inline asms.  */
@@ -695,6 +699,75 @@ typedef
 
 #endif /* PLAT_ppc64_aix5 */
 
+/* ------------------------ s390x-linux ------------------------ */
+
+#if defined(PLAT_s390x_linux)
+
+typedef
+  struct {
+     unsigned long long int nraddr; /* where's the code? */
+  }
+  OrigFn;
+
+/* __SPECIAL_INSTRUCTION_PREAMBLE will be used to identify Valgrind specific
+ * code. This detection is implemented in platform specific toIR.c
+ * (e.g. VEX/priv/guest_s390_decoder.c).
+ */
+#define __SPECIAL_INSTRUCTION_PREAMBLE                           \
+                     "lr 15,15\n\t"                              \
+                     "lr 1,1\n\t"                                \
+                     "lr 2,2\n\t"                                \
+                     "lr 3,3\n\t"
+
+#define __CLIENT_REQUEST_CODE "lr 2,2\n\t"
+#define __GET_NR_CONTEXT_CODE "lr 3,3\n\t"
+#define __CALL_NO_REDIR_CODE  "lr 4,4\n\t"
+
+#define VALGRIND_DO_CLIENT_REQUEST(                              \
+       _zzq_rlval, _zzq_default, _zzq_request,                   \
+       _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5)    \
+ { volatile unsigned long long int _zzq_args[6];                 \
+   volatile unsigned long long int _zzq_result;                  \
+   _zzq_args[0] = (unsigned long long int)(_zzq_request);        \
+   _zzq_args[1] = (unsigned long long int)(_zzq_arg1);           \
+   _zzq_args[2] = (unsigned long long int)(_zzq_arg2);           \
+   _zzq_args[3] = (unsigned long long int)(_zzq_arg3);           \
+   _zzq_args[4] = (unsigned long long int)(_zzq_arg4);           \
+   _zzq_args[5] = (unsigned long long int)(_zzq_arg5);           \
+   __asm__ volatile(/* r2 = args */                              \
+                    "lgr 2,%1\n\t"                               \
+                    /* r3 = default */                           \
+                    "lgr 3,%2\n\t"                               \
+                    __SPECIAL_INSTRUCTION_PREAMBLE               \
+                    __CLIENT_REQUEST_CODE                        \
+                    /* results = r3 */                           \
+                    "lgr %0, 3\n\t"                              \
+                    : "=d" (_zzq_result)                         \
+                    : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
+                    : "cc", "2", "3", "memory"                   \
+                   );                                            \
+   _zzq_rlval = _zzq_result;                                     \
+ }
+
+#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval)                      \
+ { volatile OrigFn* _zzq_orig = &(_zzq_rlval);                   \
+   volatile unsigned long long int __addr;                       \
+   __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
+                    __GET_NR_CONTEXT_CODE                        \
+                    "lgr %0, 3\n\t"                              \
+                    : "=a" (__addr)                              \
+                    :                                            \
+                    : "cc", "3", "memory"                        \
+                   );                                            \
+   _zzq_orig->nraddr = __addr;                                   \
+ }
+
+#define VALGRIND_CALL_NOREDIR_R1                                 \
+                    __SPECIAL_INSTRUCTION_PREAMBLE               \
+                    __CALL_NO_REDIR_CODE
+
+#endif /* PLAT_s390x_linux */
+
 /* Insert assembly code for other platforms here... */
 
 #endif /* NVALGRIND */
@@ -4248,6 +4321,484 @@ typedef
 
 #endif /* PLAT_ppc64_aix5 */
 
+/* ------------------------- s390x-linux ------------------------- */
+
+#if defined(PLAT_s390x_linux)
+
+/* Similar workaround as amd64 (see above), but we use r11 as frame
+   pointer and save the old r11 in r7. r11 might be used for
+   argvec, therefore we copy argvec in r1 since r1 is clobbered
+   after the call anyway.  */
+#if defined(__GNUC__) && defined(__GCC_HAVE_DWARF2_CFI_ASM)
+#  define __FRAME_POINTER                                         \
+      ,"d"(__builtin_dwarf_cfa())
+#  define VALGRIND_CFI_PROLOGUE                                   \
+      ".cfi_remember_state\n\t"                                   \
+      "lgr 1,%1\n\t" /* copy the argvec pointer in r1 */          \
+      "lgr 7,11\n\t"                                              \
+      "lgr 11,%2\n\t"                                             \
+      ".cfi_def_cfa r11, 0\n\t"
+#  define VALGRIND_CFI_EPILOGUE                                   \
+      "lgr 11, 7\n\t"                                             \
+      ".cfi_restore_state\n\t"
+#else
+#  define __FRAME_POINTER
+#  define VALGRIND_CFI_PROLOGUE                                   \
+      "lgr 1,%1\n\t"
+#  define VALGRIND_CFI_EPILOGUE
+#endif
+
+
+
+
+/* These regs are trashed by the hidden call. Note that we overwrite
+   r14 in s390_irgen_noredir (VEX/priv/guest_s390_irgen.c) to give the
+   function a proper return address. All others are ABI defined call
+   clobbers. */
+#define __CALLER_SAVED_REGS "0","1","2","3","4","5","14", \
+                           "f0","f1","f2","f3","f4","f5","f6","f7"
+
+
+#define CALL_FN_W_v(lval, orig)                                  \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long  _argvec[1];                        \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 1, 0(1)\n\t"  /* target->r1 */                      \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "d" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7"     \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+/* The call abi has the arguments in r2-r6 and stack */
+#define CALL_FN_W_W(lval, orig, arg1)                            \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[2];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7"     \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_WW(lval, orig, arg1, arg2)                     \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[3];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7"     \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_WWW(lval, orig, arg1, arg2, arg3)              \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[4];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7"     \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_WWWW(lval, orig, arg1, arg2, arg3, arg4)       \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[5];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7"     \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_5W(lval, orig, arg1, arg2, arg3, arg4, arg5)   \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[6];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-160\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,160\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_6W(lval, orig, arg1, arg2, arg3, arg4, arg5,   \
+                     arg6)                                       \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[7];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-168\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,168\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_7W(lval, orig, arg1, arg2, arg3, arg4, arg5,   \
+                     arg6, arg7)                                 \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[8];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-176\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,176\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_8W(lval, orig, arg1, arg2, arg3, arg4, arg5,   \
+                     arg6, arg7 ,arg8)                           \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[9];                         \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      _argvec[8] = (unsigned long)arg8;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-184\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "mvc 176(8,15), 64(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,184\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_9W(lval, orig, arg1, arg2, arg3, arg4, arg5,   \
+                     arg6, arg7 ,arg8, arg9)                     \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[10];                        \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      _argvec[8] = (unsigned long)arg8;                          \
+      _argvec[9] = (unsigned long)arg9;                          \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-192\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "mvc 176(8,15), 64(1)\n\t"                              \
+         "mvc 184(8,15), 72(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,192\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_10W(lval, orig, arg1, arg2, arg3, arg4, arg5,  \
+                     arg6, arg7 ,arg8, arg9, arg10)              \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[11];                        \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      _argvec[8] = (unsigned long)arg8;                          \
+      _argvec[9] = (unsigned long)arg9;                          \
+      _argvec[10] = (unsigned long)arg10;                        \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-200\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "mvc 176(8,15), 64(1)\n\t"                              \
+         "mvc 184(8,15), 72(1)\n\t"                              \
+         "mvc 192(8,15), 80(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,200\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_11W(lval, orig, arg1, arg2, arg3, arg4, arg5,  \
+                     arg6, arg7 ,arg8, arg9, arg10, arg11)       \
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[12];                        \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      _argvec[8] = (unsigned long)arg8;                          \
+      _argvec[9] = (unsigned long)arg9;                          \
+      _argvec[10] = (unsigned long)arg10;                        \
+      _argvec[11] = (unsigned long)arg11;                        \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-208\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "mvc 176(8,15), 64(1)\n\t"                              \
+         "mvc 184(8,15), 72(1)\n\t"                              \
+         "mvc 192(8,15), 80(1)\n\t"                              \
+         "mvc 200(8,15), 88(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,208\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+#define CALL_FN_W_12W(lval, orig, arg1, arg2, arg3, arg4, arg5,  \
+                     arg6, arg7 ,arg8, arg9, arg10, arg11, arg12)\
+   do {                                                          \
+      volatile OrigFn        _orig = (orig);                     \
+      volatile unsigned long _argvec[13];                        \
+      volatile unsigned long _res;                               \
+      _argvec[0] = (unsigned long)_orig.nraddr;                  \
+      _argvec[1] = (unsigned long)arg1;                          \
+      _argvec[2] = (unsigned long)arg2;                          \
+      _argvec[3] = (unsigned long)arg3;                          \
+      _argvec[4] = (unsigned long)arg4;                          \
+      _argvec[5] = (unsigned long)arg5;                          \
+      _argvec[6] = (unsigned long)arg6;                          \
+      _argvec[7] = (unsigned long)arg7;                          \
+      _argvec[8] = (unsigned long)arg8;                          \
+      _argvec[9] = (unsigned long)arg9;                          \
+      _argvec[10] = (unsigned long)arg10;                        \
+      _argvec[11] = (unsigned long)arg11;                        \
+      _argvec[12] = (unsigned long)arg12;                        \
+      __asm__ volatile(                                          \
+         VALGRIND_CFI_PROLOGUE                                   \
+         "aghi 15,-216\n\t"                                      \
+         "lg 2, 8(1)\n\t"                                        \
+         "lg 3,16(1)\n\t"                                        \
+         "lg 4,24(1)\n\t"                                        \
+         "lg 5,32(1)\n\t"                                        \
+         "lg 6,40(1)\n\t"                                        \
+         "mvc 160(8,15), 48(1)\n\t"                              \
+         "mvc 168(8,15), 56(1)\n\t"                              \
+         "mvc 176(8,15), 64(1)\n\t"                              \
+         "mvc 184(8,15), 72(1)\n\t"                              \
+         "mvc 192(8,15), 80(1)\n\t"                              \
+         "mvc 200(8,15), 88(1)\n\t"                              \
+         "mvc 208(8,15), 96(1)\n\t"                              \
+         "lg 1, 0(1)\n\t"                                        \
+         VALGRIND_CALL_NOREDIR_R1                                \
+         "lgr %0, 2\n\t"                                         \
+         "aghi 15,216\n\t"                                       \
+         VALGRIND_CFI_EPILOGUE                                   \
+         : /*out*/   "=d" (_res)                                 \
+         : /*in*/    "a" (&_argvec[0]) __FRAME_POINTER           \
+         : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \
+      );                                                         \
+      lval = (__typeof__(lval)) _res;                            \
+   } while (0)
+
+
+#endif /* PLAT_s390x_linux */
+
 
 /* ------------------------------------------------------------------ */
 /* ARCHITECTURE INDEPENDENT MACROS for CLIENT REQUESTS.               */
@@ -4785,6 +5336,7 @@ VALGRIND_PRINTF_BACKTRACE(const char *format, ...)
 #undef PLAT_ppc32_linux
 #undef PLAT_ppc64_linux
 #undef PLAT_arm_linux
+#undef PLAT_s390x_linux
 #undef PLAT_ppc32_aix5
 #undef PLAT_ppc64_aix5
 
index 537f0e09dd8b7356f56b982cea528b51f87b609a..cfd47680faef96a7ebeaa261d3b2336f9b6a1296 100644 (file)
@@ -89,6 +89,8 @@
 #  include "vki-posixtypes-ppc64-linux.h"
 #elif defined(VGA_arm)
 #  include "vki-posixtypes-arm-linux.h"
+#elif defined(VGA_s390x)
+#  include "vki-posixtypes-s390x-linux.h"
 #else
 #  error Unknown platform
 #endif
@@ -201,6 +203,8 @@ typedef unsigned int                vki_uint;
 #  include "vki-ppc64-linux.h"
 #elif defined(VGA_arm)
 #  include "vki-arm-linux.h"
+#elif defined(VGA_s390x)
+#  include "vki-s390x-linux.h"
 #else
 #  error Unknown platform
 #endif
diff --git a/include/vki/vki-posixtypes-s390x-linux.h b/include/vki/vki-posixtypes-s390x-linux.h
new file mode 100644 (file)
index 0000000..1dc753e
--- /dev/null
@@ -0,0 +1,77 @@
+
+/*--------------------------------------------------------------------*/
+/*--- s390x/Linux-specific kernel interface: posix types.          ---*/
+/*---                                 vki-posixtypes-s390x-linux.h ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Florian Krohm and Volker Sameske */
+
+#ifndef __VKI_POSIXTYPES_S390X_LINUX_H
+#define __VKI_POSIXTYPES_S390X_LINUX_H
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/posix_types.h
+//----------------------------------------------------------------------
+
+typedef long            __vki_kernel_off_t;
+typedef int             __vki_kernel_pid_t;
+typedef unsigned long   __vki_kernel_size_t;
+typedef long            __vki_kernel_time_t;
+typedef long            __vki_kernel_suseconds_t;
+typedef long            __vki_kernel_clock_t;
+typedef int            __vki_kernel_timer_t;
+typedef int            __vki_kernel_clockid_t;
+typedef int             __vki_kernel_daddr_t;
+typedef char *          __vki_kernel_caddr_t;
+typedef unsigned short __vki_kernel_uid16_t;
+typedef unsigned short __vki_kernel_gid16_t;
+typedef long long       __vki_kernel_loff_t;
+
+typedef unsigned int    __vki_kernel_ino_t;
+typedef unsigned int    __vki_kernel_mode_t;
+typedef unsigned int    __vki_kernel_nlink_t;
+typedef int             __vki_kernel_ipc_pid_t;
+typedef unsigned int    __vki_kernel_uid_t;
+typedef unsigned int    __vki_kernel_gid_t;
+typedef long            __vki_kernel_ssize_t;
+typedef long            __vki_kernel_ptrdiff_t;
+typedef unsigned long   __vki_kernel_sigset_t;      /* at least 32 bits */
+typedef __vki_kernel_uid_t __vki_kernel_old_uid_t;
+typedef __vki_kernel_gid_t __vki_kernel_old_gid_t;
+typedef __vki_kernel_uid_t __vki_kernel_uid32_t;
+typedef __vki_kernel_gid_t __vki_kernel_gid32_t;
+typedef unsigned short __vki_kernel_old_dev_t;
+
+typedef struct {
+   int val[2];
+} __vki_kernel_fsid_t;
+
+#endif // __VKI_POSIXTYPES_S390X_LINUX_H
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
diff --git a/include/vki/vki-s390x-linux.h b/include/vki/vki-s390x-linux.h
new file mode 100644 (file)
index 0000000..7d554fd
--- /dev/null
@@ -0,0 +1,941 @@
+
+/*--------------------------------------------------------------------*/
+/*--- s390x/Linux-specific kernel interface.     vki-s390x-linux.h ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Florian Krohm and Volker Sameske */
+
+#ifndef __VKI_S390X_LINUX_H
+#define __VKI_S390X_LINUX_H
+
+#define __force
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/types.h
+//----------------------------------------------------------------------
+
+typedef __signed__ char __vki_s8;
+typedef unsigned char __vki_u8;
+
+typedef __signed__ short __vki_s16;
+typedef unsigned short __vki_u16;
+
+typedef __signed__ int __vki_s32;
+typedef unsigned int __vki_u32;
+
+typedef __signed__ long __vki_s64;
+typedef unsigned long __vki_u64;
+
+typedef unsigned short vki_u16;
+
+typedef unsigned int vki_u32;
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/page.h
+//----------------------------------------------------------------------
+
+/* PAGE_SHIFT determines the page size */
+#define VKI_PAGE_SHIFT  12
+#define VKI_PAGE_SIZE   (1UL << VKI_PAGE_SHIFT)
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/siginfo.h
+//----------------------------------------------------------------------
+
+/* We need that to ensure that sizeof(siginfo) == 128. */
+#ifdef __s390x__
+#define __VKI_ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
+#endif
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/sigcontext.h
+//----------------------------------------------------------------------
+
+#define __VKI_NUM_GPRS 16
+#define __VKI_NUM_FPRS 16
+#define __VKI_NUM_ACRS 16
+
+#ifndef VGA_s390x
+
+/* Has to be at least _NSIG_WORDS from asm/signal.h */
+#define _VKI_SIGCONTEXT_NSIG   64
+#define _VKI_SIGCONTEXT_NSIG_BPW       32
+/* Size of stack frame allocated when calling signal handler. */
+#define __VKI_SIGNAL_FRAMESIZE 96
+
+#else /* VGA_s390x */
+
+/* Has to be at least _NSIG_WORDS from asm/signal.h */
+#define _VKI_SIGCONTEXT_NSIG   64
+#define _VKI_SIGCONTEXT_NSIG_BPW       64
+/* Size of stack frame allocated when calling signal handler. */
+#define __VKI_SIGNAL_FRAMESIZE 160
+
+#endif /* VGA_s390x */
+
+
+#define _VKI_SIGCONTEXT_NSIG_WORDS     (_VKI_SIGCONTEXT_NSIG / _VKI_SIGCONTEXT_NSIG_BPW)
+#define _VKI_SIGMASK_COPY_SIZE (sizeof(unsigned long)*_VKI_SIGCONTEXT_NSIG_WORDS)
+
+typedef struct
+{
+       unsigned long mask;
+       unsigned long addr;
+} __attribute__ ((aligned(8))) _vki_psw_t;
+
+typedef struct
+{
+       _vki_psw_t psw;
+       unsigned long gprs[__VKI_NUM_GPRS];
+       unsigned int  acrs[__VKI_NUM_ACRS];
+} _vki_s390_regs_common;
+
+typedef struct
+{
+       unsigned int fpc;
+       double   fprs[__VKI_NUM_FPRS];
+} _vki_s390_fp_regs;
+
+typedef struct
+{
+       _vki_s390_regs_common regs;
+       _vki_s390_fp_regs     fpregs;
+} _vki_sigregs;
+
+
+struct vki_sigcontext
+{
+       unsigned long   oldmask[_VKI_SIGCONTEXT_NSIG_WORDS];
+       _vki_sigregs    __user *sregs;
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/signal.h
+//----------------------------------------------------------------------
+
+#define _VKI_NSIG           _VKI_SIGCONTEXT_NSIG
+#define _VKI_NSIG_BPW       _VKI_SIGCONTEXT_NSIG_BPW
+#define _VKI_NSIG_WORDS     _VKI_SIGCONTEXT_NSIG_WORDS
+
+typedef unsigned long vki_old_sigset_t;
+
+typedef struct {
+       unsigned long sig[_VKI_NSIG_WORDS];
+} vki_sigset_t;
+
+#define VKI_SIGHUP           1
+#define VKI_SIGINT           2
+#define VKI_SIGQUIT          3
+#define VKI_SIGILL           4
+#define VKI_SIGTRAP          5
+#define VKI_SIGABRT          6
+#define VKI_SIGIOT           6
+#define VKI_SIGBUS           7
+#define VKI_SIGFPE           8
+#define VKI_SIGKILL          9
+#define VKI_SIGUSR1         10
+#define VKI_SIGSEGV         11
+#define VKI_SIGUSR2         12
+#define VKI_SIGPIPE         13
+#define VKI_SIGALRM         14
+#define VKI_SIGTERM         15
+#define VKI_SIGSTKFLT       16
+#define VKI_SIGCHLD         17
+#define VKI_SIGCONT         18
+#define VKI_SIGSTOP         19
+#define VKI_SIGTSTP         20
+#define VKI_SIGTTIN         21
+#define VKI_SIGTTOU         22
+#define VKI_SIGURG          23
+#define VKI_SIGXCPU         24
+#define VKI_SIGXFSZ         25
+#define VKI_SIGVTALRM       26
+#define VKI_SIGPROF         27
+#define VKI_SIGWINCH        28
+#define VKI_SIGIO           29
+#define VKI_SIGPOLL         VKI_SIGIO
+/*
+#define VKI_SIGLOST         29
+*/
+#define VKI_SIGPWR          30
+#define VKI_SIGSYS         31
+#define VKI_SIGUNUSED       31
+
+/* These should not be considered constants from userland.  */
+#define VKI_SIGRTMIN        32
+#define VKI_SIGRTMAX        _VKI_NSIG
+
+/*
+ * SA_FLAGS values:
+ *
+ * SA_ONSTACK indicates that a registered stack_t will be used.
+ * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
+ * SA_RESTART flag to get restarting signals (which were the default long ago)
+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
+ * SA_RESETHAND clears the handler when the signal is delivered.
+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
+ * SA_NODEFER prevents the current signal from being masked in the handler.
+ *
+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
+ * Unix names RESETHAND and NODEFER respectively.
+ */
+#define VKI_SA_NOCLDSTOP    0x00000001
+#define VKI_SA_NOCLDWAIT    0x00000002
+#define VKI_SA_SIGINFO      0x00000004
+#define VKI_SA_ONSTACK      0x08000000
+#define VKI_SA_RESTART      0x10000000
+#define VKI_SA_NODEFER      0x40000000
+#define VKI_SA_RESETHAND    0x80000000
+
+#define VKI_SA_NOMASK       VKI_SA_NODEFER
+#define VKI_SA_ONESHOT      VKI_SA_RESETHAND
+#define VKI_SA_INTERRUPT    0x20000000 /* dummy -- ignored */
+
+#define VKI_SA_RESTORER     0x04000000
+
+/*
+ * sigaltstack controls
+ */
+#define VKI_SS_ONSTACK      1
+#define VKI_SS_DISABLE      2
+
+#define VKI_MINSIGSTKSZ     2048
+#define VKI_SIGSTKSZ        8192
+
+
+/* Next lines asm-generic/signal.h */
+#define VKI_SIG_BLOCK          0 /* for blocking signals */
+#define VKI_SIG_UNBLOCK        1 /* for unblocking signals */
+#define VKI_SIG_SETMASK        2 /* for setting the signal mask */
+
+typedef void __vki_signalfn_t(int);
+typedef __vki_signalfn_t __user *__vki_sighandler_t;
+
+/* default signal handling */
+#define VKI_SIG_DFL ((__force __vki_sighandler_t)0)
+/* ignore signal */
+#define VKI_SIG_IGN ((__force __vki_sighandler_t)1)
+/* error return from signal */
+#define VKI_SIG_ERR ((__force __vki_sighandler_t)-1)
+/* Back to asm-s390/signal.h */
+
+struct vki_old_sigaction {
+        // [[Nb: a 'k' prefix is added to "sa_handler" because
+        // bits/sigaction.h (which gets dragged in somehow via signal.h)
+        // #defines it as something else.  Since that is done for glibc's
+        // purposes, which we don't care about here, we use our own name.]]
+        __vki_sighandler_t ksa_handler;
+        vki_old_sigset_t sa_mask;
+        unsigned long sa_flags;
+        void (*sa_restorer)(void);
+};
+
+struct vki_sigaction {
+        // [[See comment about extra 'k' above]]
+        __vki_sighandler_t ksa_handler;
+        unsigned long sa_flags;
+        void (*sa_restorer)(void);
+        vki_sigset_t sa_mask;               /* mask last for extensibility */
+};
+
+struct vki_k_sigaction {
+        struct vki_sigaction sa;
+};
+
+
+/* On Linux we use the same type for passing sigactions to
+   and from the kernel.  Hence: */
+typedef  struct vki_sigaction  vki_sigaction_toK_t;
+typedef  struct vki_sigaction  vki_sigaction_fromK_t;
+
+
+typedef struct vki_sigaltstack {
+       void __user *ss_sp;
+       int ss_flags;
+       vki_size_t ss_size;
+} vki_stack_t;
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/mman.h
+//----------------------------------------------------------------------
+
+#define VKI_PROT_NONE   0x0             /* No page permissions */
+#define VKI_PROT_READ   0x1             /* page can be read */
+#define VKI_PROT_WRITE  0x2             /* page can be written */
+#define VKI_PROT_EXEC   0x4             /* page can be executed */
+#define VKI_PROT_GROWSDOWN 0x01000000   /* mprotect flag: extend
+                                          change to start of
+                                          growsdown vma */
+#define VKI_PROT_GROWSUP   0x02000000   /* mprotect flag:
+                                          extend change to end
+                                          of growsup vma */
+
+#define VKI_MAP_PRIVATE        0x0002  /*  */
+#define VKI_MAP_FIXED          0x0010  /*  */
+#define VKI_MAP_ANONYMOUS      0x0020  /*  */
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/fcntl.h
+//----------------------------------------------------------------------
+
+#define VKI_O_RDONLY        00000000
+#define VKI_O_WRONLY        00000001
+#define VKI_O_RDWR          00000002
+#define VKI_O_ACCMODE       00000003
+#define VKI_O_CREAT         00000100        /* not fcntl */
+#define VKI_O_EXCL          00000200        /* not fcntl */
+#define VKI_O_NOCTTY        00000400        /* not fcntl */
+#define VKI_O_TRUNC         00001000        /* not fcntl */
+#define VKI_O_APPEND        00002000
+
+#define VKI_AT_FDCWD            -100
+
+#define VKI_F_DUPFD    0       /* dup */
+#define VKI_F_GETFD    1       /* get close_on_exec */
+#define VKI_F_SETFD    2       /* set/clear close_on_exec */
+#define VKI_F_GETFL    3       /* get file->f_flags */
+#define VKI_F_SETFL    4       /* set file->f_flags */
+#define VKI_F_GETLK    5
+#define VKI_F_SETLK    6
+#define VKI_F_SETLKW   7
+#define VKI_F_SETOWN   8       /* for sockets. */
+#define VKI_F_GETOWN   9       /* for sockets. */
+#define VKI_F_SETSIG   10      /* for sockets. */
+#define VKI_F_GETSIG   11      /* for sockets. */
+
+#define VKI_FD_CLOEXEC  1  /* actually anything with low bit set goes */
+
+#define VKI_F_LINUX_SPECIFIC_BASE   1024
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390x/resource.h
+//----------------------------------------------------------------------
+
+// which just does #include <asm-generic/resource.h>
+
+#define VKI_RLIMIT_DATA             2       /* max data size */
+#define VKI_RLIMIT_STACK            3       /* max stack size */
+#define VKI_RLIMIT_CORE             4       /* max core file size */
+#define VKI_RLIMIT_NOFILE           7       /* max number of open files */
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/socket.h
+//----------------------------------------------------------------------
+
+#define VKI_SOL_SOCKET      1
+
+#define VKI_SO_TYPE         3
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/sockios.h
+//----------------------------------------------------------------------
+
+#define VKI_SIOCSPGRP       0x8902
+#define VKI_SIOCGPGRP       0x8904
+#define VKI_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
+/* since 2.6.22 */
+#define VKI_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/stat.h
+//----------------------------------------------------------------------
+
+#ifndef VGA_s390x
+struct vki_stat {
+        unsigned short st_dev;
+        unsigned short __pad1;
+        unsigned long  st_ino;
+        unsigned short st_mode;
+        unsigned short st_nlink;
+        unsigned short st_uid;
+        unsigned short st_gid;
+        unsigned short st_rdev;
+        unsigned short __pad2;
+        unsigned long  st_size;
+        unsigned long  st_blksize;
+        unsigned long  st_blocks;
+        unsigned long  st_atime;
+        unsigned long  st_atime_nsec;
+        unsigned long  st_mtime;
+        unsigned long  st_mtime_nsec;
+        unsigned long  st_ctime;
+        unsigned long  st_ctime_nsec;
+        unsigned long  __unused4;
+        unsigned long  __unused5;
+};
+
+/* This matches struct stat64 in glibc2.1, hence the absolutely
+ * insane amounts of padding around dev_t's.
+ */
+struct vki_stat64 {
+        unsigned long long     st_dev;
+        unsigned int    __pad1;
+        unsigned long   __st_ino;
+        unsigned int    st_mode;
+        unsigned int    st_nlink;
+        unsigned long   st_uid;
+        unsigned long   st_gid;
+        unsigned long long     st_rdev;
+        unsigned int    __pad3;
+        long long      st_size;
+        unsigned long   st_blksize;
+        unsigned char   __pad4[4];
+        unsigned long   __pad5;     /* future possible st_blocks high bits */
+        unsigned long   st_blocks;  /* Number 512-byte blocks allocated. */
+        unsigned long   st_atime;
+        unsigned long   st_atime_nsec;
+        unsigned long   st_mtime;
+        unsigned long   st_mtime_nsec;
+        unsigned long   st_ctime;
+        unsigned long   st_ctime_nsec;  /* will be high 32 bits of ctime someday */
+        unsigned long long     st_ino;
+};
+
+#else
+
+struct vki_stat {
+        unsigned long  st_dev;
+        unsigned long  st_ino;
+        unsigned long  st_nlink;
+        unsigned int   st_mode;
+        unsigned int   st_uid;
+        unsigned int   st_gid;
+        unsigned int   __pad1;
+        unsigned long  st_rdev;
+        unsigned long  st_size;
+        unsigned long  st_atime;
+       unsigned long  st_atime_nsec;
+        unsigned long  st_mtime;
+       unsigned long  st_mtime_nsec;
+        unsigned long  st_ctime;
+       unsigned long  st_ctime_nsec;
+        unsigned long  st_blksize;
+        long           st_blocks;
+        unsigned long  __unused[3];
+};
+
+#endif /* VGA_s390x */
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/statfs.h
+//----------------------------------------------------------------------
+
+struct vki_statfs {
+        int  f_type;
+        int  f_bsize;
+        long f_blocks;
+        long f_bfree;
+        long f_bavail;
+        long f_files;
+        long f_ffree;
+        __vki_kernel_fsid_t f_fsid;
+        int  f_namelen;
+        int  f_frsize;
+        int  f_spare[5];
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/termios.h
+//----------------------------------------------------------------------
+
+struct vki_winsize {
+       unsigned short ws_row;
+       unsigned short ws_col;
+       unsigned short ws_xpixel;
+       unsigned short ws_ypixel;
+};
+
+#define VKI_NCC 8
+struct vki_termio {
+       unsigned short c_iflag;         /* input mode flags */
+       unsigned short c_oflag;         /* output mode flags */
+       unsigned short c_cflag;         /* control mode flags */
+       unsigned short c_lflag;         /* local mode flags */
+       unsigned char c_line;           /* line discipline */
+       unsigned char c_cc[VKI_NCC];    /* control characters */
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/termbits.h
+//----------------------------------------------------------------------
+
+typedef unsigned char   vki_cc_t;
+typedef unsigned int    vki_tcflag_t;
+
+#define VKI_NCCS 19
+struct vki_termios {
+       vki_tcflag_t c_iflag;           /* input mode flags */
+       vki_tcflag_t c_oflag;           /* output mode flags */
+       vki_tcflag_t c_cflag;           /* control mode flags */
+       vki_tcflag_t c_lflag;           /* local mode flags */
+       vki_cc_t c_line;                /* line discipline */
+       vki_cc_t c_cc[VKI_NCCS];        /* control characters */
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ioctl.h
+//----------------------------------------------------------------------
+
+#define _VKI_IOC_NRBITS                8
+#define _VKI_IOC_TYPEBITS      8
+#define _VKI_IOC_SIZEBITS      14
+#define _VKI_IOC_DIRBITS       2
+
+#define _VKI_IOC_NRMASK                ((1 << _VKI_IOC_NRBITS)-1)
+#define _VKI_IOC_TYPEMASK      ((1 << _VKI_IOC_TYPEBITS)-1)
+#define _VKI_IOC_SIZEMASK      ((1 << _VKI_IOC_SIZEBITS)-1)
+#define _VKI_IOC_DIRMASK       ((1 << _VKI_IOC_DIRBITS)-1)
+
+#define _VKI_IOC_NRSHIFT       0
+#define _VKI_IOC_TYPESHIFT     (_VKI_IOC_NRSHIFT+_VKI_IOC_NRBITS)
+#define _VKI_IOC_SIZESHIFT     (_VKI_IOC_TYPESHIFT+_VKI_IOC_TYPEBITS)
+#define _VKI_IOC_DIRSHIFT      (_VKI_IOC_SIZESHIFT+_VKI_IOC_SIZEBITS)
+
+#define _VKI_IOC_NONE  0U
+#define _VKI_IOC_WRITE 1U
+#define _VKI_IOC_READ  2U
+
+#define _VKI_IOC(dir,type,nr,size) \
+       (((dir)  << _VKI_IOC_DIRSHIFT) | \
+        ((type) << _VKI_IOC_TYPESHIFT) | \
+        ((nr)   << _VKI_IOC_NRSHIFT) | \
+        ((size) << _VKI_IOC_SIZESHIFT))
+
+/* used to create numbers */
+#define _VKI_IO(type,nr)       _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
+#define _VKI_IOR(type,nr,size) _VKI_IOC(_VKI_IOC_READ,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
+#define _VKI_IOW(type,nr,size) _VKI_IOC(_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
+#define _VKI_IOWR(type,nr,size)        _VKI_IOC(_VKI_IOC_READ|_VKI_IOC_WRITE,(type),(nr),(_VKI_IOC_TYPECHECK(size)))
+
+/* used to decode ioctl numbers.. */
+#define _VKI_IOC_DIR(nr)       (((nr) >> _VKI_IOC_DIRSHIFT) & _VKI_IOC_DIRMASK)
+#define _VKI_IOC_TYPE(nr)      (((nr) >> _VKI_IOC_TYPESHIFT) & _VKI_IOC_TYPEMASK)
+#define _VKI_IOC_NR(nr)                (((nr) >> _VKI_IOC_NRSHIFT) & _VKI_IOC_NRMASK)
+#define _VKI_IOC_SIZE(nr)      (((nr) >> _VKI_IOC_SIZESHIFT) & _VKI_IOC_SIZEMASK)
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ioctls.h
+//----------------------------------------------------------------------
+
+/* 0x54 is just a magic number to make these relatively unique ('T') */
+
+#define VKI_TCGETS     0x5401
+#define VKI_TCSETS     0x5402
+#define VKI_TCSETSW    0x5403
+#define VKI_TCSETSF    0x5404
+#define VKI_TCGETA     0x5405
+#define VKI_TCSETA     0x5406
+#define VKI_TCSETAW    0x5407
+#define VKI_TCSETAF    0x5408
+#define VKI_TCSBRK     0x5409
+#define VKI_TCXONC     0x540A
+#define VKI_TCFLSH     0x540B
+
+#define VKI_TIOCSCTTY  0x540E
+#define VKI_TIOCGPGRP  0x540F
+#define VKI_TIOCSPGRP  0x5410
+#define VKI_TIOCOUTQ   0x5411
+
+#define VKI_TIOCGWINSZ 0x5413
+#define VKI_TIOCSWINSZ 0x5414
+#define VKI_TIOCMGET   0x5415
+#define VKI_TIOCMBIS   0x5416
+#define VKI_TIOCMBIC   0x5417
+#define VKI_TIOCMSET   0x5418
+
+#define VKI_FIONREAD   0x541B
+#define VKI_TIOCLINUX  0x541C
+
+#define VKI_FIONBIO    0x5421
+
+#define VKI_TCSBRKP    0x5425  /* Needed for POSIX tcsendbreak() */
+
+#define VKI_TIOCGPTN   _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
+#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)  /* Lock/unlock Pty */
+
+#define VKI_FIOASYNC           0x5452
+
+#define VKI_TIOCSERGETLSR       0x5459 /* Get line status register */
+
+#define VKI_TIOCGICOUNT        0x545D  /* read serial port inline interrupt counts */
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/poll.h
+//----------------------------------------------------------------------
+
+struct vki_pollfd {
+       int fd;
+       short events;
+       short revents;
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ptrace.h
+//----------------------------------------------------------------------
+#define VKI_NUM_GPRS   16
+#define VKI_NUM_FPRS   16
+#define VKI_NUM_CRS    16
+#define VKI_NUM_ACRS   16
+
+typedef union
+{
+       float   f;
+       double  d;
+        __vki_u64   ui;
+       struct
+       {
+               __vki_u32 hi;
+               __vki_u32 lo;
+       } fp;
+} vki_freg_t;
+
+typedef struct
+{
+       __vki_u32   fpc;
+       vki_freg_t  fprs[VKI_NUM_FPRS];
+} vki_s390_fp_regs;
+
+typedef struct
+{
+        unsigned long mask;
+        unsigned long addr;
+} __attribute__ ((aligned(8))) vki_psw_t;
+
+typedef struct
+{
+       vki_psw_t psw;
+       unsigned long gprs[VKI_NUM_GPRS];
+       unsigned int  acrs[VKI_NUM_ACRS];
+       unsigned long orig_gpr2;
+} vki_s390_regs;
+
+/*
+ * Now for the program event recording (trace) definitions.
+ */
+typedef struct
+{
+       unsigned long cr[3];
+} vki_per_cr_words;
+
+typedef        struct
+{
+#ifdef VGA_s390x
+       unsigned                       : 32;
+#endif /* VGA_s390x */
+       unsigned em_branching          : 1;
+       unsigned em_instruction_fetch  : 1;
+       /*
+        * Switching on storage alteration automatically fixes
+        * the storage alteration event bit in the users std.
+        */
+       unsigned em_storage_alteration : 1;
+       unsigned em_gpr_alt_unused     : 1;
+       unsigned em_store_real_address : 1;
+       unsigned                       : 3;
+       unsigned branch_addr_ctl       : 1;
+       unsigned                       : 1;
+       unsigned storage_alt_space_ctl : 1;
+       unsigned                       : 21;
+       unsigned long starting_addr;
+       unsigned long ending_addr;
+} vki_per_cr_bits;
+
+typedef struct
+{
+       unsigned short perc_atmid;
+       unsigned long address;
+       unsigned char access_id;
+} vki_per_lowcore_words;
+
+typedef struct
+{
+       unsigned perc_branching          : 1;
+       unsigned perc_instruction_fetch  : 1;
+       unsigned perc_storage_alteration : 1;
+       unsigned perc_gpr_alt_unused     : 1;
+       unsigned perc_store_real_address : 1;
+       unsigned                         : 3;
+       unsigned atmid_psw_bit_31        : 1;
+       unsigned atmid_validity_bit      : 1;
+       unsigned atmid_psw_bit_32        : 1;
+       unsigned atmid_psw_bit_5         : 1;
+       unsigned atmid_psw_bit_16        : 1;
+       unsigned atmid_psw_bit_17        : 1;
+       unsigned si                      : 2;
+       unsigned long address;
+       unsigned                         : 4;
+       unsigned access_id               : 4;
+} vki_per_lowcore_bits;
+
+typedef struct
+{
+       union {
+               vki_per_cr_words   words;
+               vki_per_cr_bits    bits;
+       } control_regs;
+       /*
+        * Use these flags instead of setting em_instruction_fetch
+        * directly they are used so that single stepping can be
+        * switched on & off while not affecting other tracing
+        */
+       unsigned  single_step       : 1;
+       unsigned  instruction_fetch : 1;
+       unsigned                    : 30;
+       /*
+        * These addresses are copied into cr10 & cr11 if single
+        * stepping is switched off
+        */
+       unsigned long starting_addr;
+       unsigned long ending_addr;
+       union {
+               vki_per_lowcore_words words;
+               vki_per_lowcore_bits  bits;
+       } lowcore;
+} vki_per_struct;
+
+/*
+ * The user_regs_struct defines the way the user registers are
+ * store on the stack for signal handling.
+ */
+struct vki_user_regs_struct
+{
+       vki_psw_t psw;
+       unsigned long gprs[VKI_NUM_GPRS];
+       unsigned int  acrs[VKI_NUM_ACRS];
+       unsigned long orig_gpr2;
+       vki_s390_fp_regs fp_regs;
+       /*
+        * These per registers are in here so that gdb can modify them
+        * itself as there is no "official" ptrace interface for hardware
+        * watchpoints. This is the way intel does it.
+        */
+       vki_per_struct per_info;
+       unsigned long ieee_instruction_pointer;
+       /* Used to give failing instruction back to user for ieee exceptions */
+};
+
+typedef struct
+{
+       unsigned int  vki_len;
+       unsigned long vki_kernel_addr;
+       unsigned long vki_process_addr;
+} vki_ptrace_area;
+
+/*
+ * S/390 specific non posix ptrace requests
+ */
+#define VKI_PTRACE_PEEKUSR_AREA       0x5000
+#define VKI_PTRACE_POKEUSR_AREA       0x5001
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/elf.h
+//----------------------------------------------------------------------
+
+typedef vki_s390_fp_regs vki_elf_fpregset_t;
+typedef vki_s390_regs vki_elf_gregset_t;
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ucontext.h
+//----------------------------------------------------------------------
+
+struct vki_ucontext {
+       unsigned long         uc_flags;
+       struct vki_ucontext  *uc_link;
+       vki_stack_t           uc_stack;
+       _vki_sigregs          uc_mcontext;
+       vki_sigset_t          uc_sigmask; /* mask last for extensibility */
+};
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ipcbuf.h
+//----------------------------------------------------------------------
+
+struct vki_ipc64_perm
+{
+       __vki_kernel_key_t      key;
+       __vki_kernel_uid32_t    uid;
+       __vki_kernel_gid32_t    gid;
+       __vki_kernel_uid32_t    cuid;
+       __vki_kernel_gid32_t    cgid;
+       __vki_kernel_mode_t     mode;
+       unsigned short          __pad1;
+       unsigned short          seq;
+#ifndef VGA_s390x
+       unsigned short          __pad2;
+#endif /* ! VGA_s390x */
+       unsigned long           __unused1;
+       unsigned long           __unused2;
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/sembuf.h
+//----------------------------------------------------------------------
+
+struct vki_semid64_ds {
+       struct vki_ipc64_perm sem_perm;         /* permissions .. see ipc.h */
+       __vki_kernel_time_t   sem_otime;        /* last semop time */
+#ifndef VGA_s390x
+       unsigned long   __unused1;
+#endif /* ! VGA_s390x */
+       __vki_kernel_time_t   sem_ctime;        /* last change time */
+#ifndef VGA_s390x
+       unsigned long   __unused2;
+#endif /* ! VGA_s390x */
+       unsigned long   sem_nsems;              /* no. of semaphores in array */
+       unsigned long   __unused3;
+       unsigned long   __unused4;
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/msgbuf.h
+//----------------------------------------------------------------------
+
+struct vki_msqid64_ds {
+       struct vki_ipc64_perm msg_perm;
+       __vki_kernel_time_t msg_stime;  /* last msgsnd time */
+#ifndef VGA_s390x
+       unsigned long   __unused1;
+#endif /* ! VGA_s390x */
+       __vki_kernel_time_t msg_rtime;  /* last msgrcv time */
+#ifndef VGA_s390x
+       unsigned long   __unused2;
+#endif /* ! VGA_s390x */
+       __vki_kernel_time_t msg_ctime;  /* last change time */
+#ifndef VGA_s390x
+       unsigned long   __unused3;
+#endif /* ! VGA_s390x */
+       unsigned long  msg_cbytes;      /* current number of bytes on queue */
+       unsigned long  msg_qnum;        /* number of messages in queue */
+       unsigned long  msg_qbytes;      /* max number of bytes on queue */
+       __vki_kernel_pid_t msg_lspid;   /* pid of last msgsnd */
+       __vki_kernel_pid_t msg_lrpid;   /* last receive pid */
+       unsigned long  __unused4;
+       unsigned long  __unused5;
+};
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/ipc.h
+//----------------------------------------------------------------------
+
+struct vki_ipc_kludge {
+       struct vki_msgbuf __user *msgp;
+       long msgtyp;
+};
+
+#define VKI_SEMOP       1
+#define VKI_SEMGET      2
+#define VKI_SEMCTL      3
+#define VKI_SEMTIMEDOP  4
+#define VKI_MSGSND     11
+#define VKI_MSGRCV     12
+#define VKI_MSGGET     13
+#define VKI_MSGCTL     14
+#define VKI_SHMAT      21
+#define VKI_SHMDT      22
+#define VKI_SHMGET     23
+#define VKI_SHMCTL     24
+
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/shmbuf.h
+//----------------------------------------------------------------------
+
+struct vki_shmid64_ds {
+       struct vki_ipc64_perm   shm_perm;       /* operation perms */
+       vki_size_t              shm_segsz;      /* size of segment (bytes) */
+       __vki_kernel_time_t     shm_atime;      /* last attach time */
+#ifndef VGA_s390x
+       unsigned long           __unused1;
+#endif /* ! VGA_s390x */
+       __vki_kernel_time_t     shm_dtime;      /* last detach time */
+#ifndef VGA_s390x
+       unsigned long           __unused2;
+#endif /* ! VGA_s390x */
+       __vki_kernel_time_t     shm_ctime;      /* last change time */
+#ifndef VGA_s390x
+       unsigned long           __unused3;
+#endif /* ! VGA_s390x */
+       __vki_kernel_pid_t      shm_cpid;       /* pid of creator */
+       __vki_kernel_pid_t      shm_lpid;       /* pid of last operator */
+       unsigned long           shm_nattch;     /* no. of current attaches */
+       unsigned long           __unused4;
+       unsigned long           __unused5;
+};
+
+struct vki_shminfo64 {
+       unsigned long   shmmax;
+       unsigned long   shmmin;
+       unsigned long   shmmni;
+       unsigned long   shmseg;
+       unsigned long   shmall;
+       unsigned long   __unused1;
+       unsigned long   __unused2;
+       unsigned long   __unused3;
+       unsigned long   __unused4;
+};
+
+
+//----------------------------------------------------------------------
+// The following are defined in the VKI namespace but are nowhere found
+// in the linux headers.
+//----------------------------------------------------------------------
+#define VKI_BIG_ENDIAN      1
+#define VKI_MAX_PAGE_SHIFT  VKI_PAGE_SHIFT
+#define VKI_MAX_PAGE_SIZE   VKI_PAGE_SIZE
+
+//----------------------------------------------------------------------
+// From linux-2.6.35.4/arch/s390x/include/asm/shmparam.h
+//----------------------------------------------------------------------
+
+#define VKI_SHMLBA  VKI_PAGE_SIZE
+
+/* If a system call returns a value >= VKI_MAX_ERRNO then that is considered
+   an error condition. I.e. the system call failed. */
+#define VKI_MAX_ERRNO       -125
+
+#endif // __VKI_S390X_LINUX_H
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
diff --git a/include/vki/vki-scnums-s390x-linux.h b/include/vki/vki-scnums-s390x-linux.h
new file mode 100644 (file)
index 0000000..9491578
--- /dev/null
@@ -0,0 +1,447 @@
+
+/*--------------------------------------------------------------------*/
+/*--- System call numbers for s390x-linux.                         ---*/
+/*---                                     vki-scnums-s390x-linux.h ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright IBM Corp. 2010-2011
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+*/
+
+/* Contributed by Florian Krohm and Christian Borntraeger. */
+
+#ifndef __VKI_SCNUMS_S390X_LINUX_H
+#define __VKI_SCNUMS_S390X_LINUX_H
+
+//----------------------------------------------------------------------
+// From linux-2.6.16.60/include/asm-s390/unistd.h
+//----------------------------------------------------------------------
+
+
+#define __NR_exit                 1
+#define __NR_fork                 2
+#define __NR_read                 3
+#define __NR_write                4
+#define __NR_open                 5
+#define __NR_close                6
+#define __NR_restart_syscall     7
+#define __NR_creat                8
+#define __NR_link                 9
+#define __NR_unlink              10
+#define __NR_execve              11
+#define __NR_chdir               12
+#define __NR_time                13
+#define __NR_mknod               14
+#define __NR_chmod               15
+#define __NR_lchown              16
+#define __NR_lseek               19
+#define __NR_getpid              20
+#define __NR_mount               21
+#define __NR_umount              22
+#define __NR_setuid              23
+#define __NR_getuid              24
+#define __NR_stime               25
+#define __NR_ptrace              26
+#define __NR_alarm               27
+#define __NR_pause               29
+#define __NR_utime               30
+#define __NR_access              33
+#define __NR_nice                34
+#define __NR_sync                36
+#define __NR_kill                37
+#define __NR_rename              38
+#define __NR_mkdir               39
+#define __NR_rmdir               40
+#define __NR_dup                 41
+#define __NR_pipe                42
+#define __NR_times               43
+#define __NR_brk                 45
+#define __NR_setgid              46
+#define __NR_getgid              47
+#define __NR_signal              48
+#define __NR_geteuid             49
+#define __NR_getegid             50
+#define __NR_acct                51
+#define __NR_umount2             52
+#define __NR_ioctl               54
+#define __NR_fcntl               55
+#define __NR_setpgid             57
+#define __NR_umask               60
+#define __NR_chroot              61
+#define __NR_ustat               62
+#define __NR_dup2                63
+#define __NR_getppid             64
+#define __NR_getpgrp             65
+#define __NR_setsid              66
+#define __NR_sigaction           67
+#define __NR_setreuid            70
+#define __NR_setregid            71
+#define __NR_sigsuspend          72
+#define __NR_sigpending          73
+#define __NR_sethostname         74
+#define __NR_setrlimit           75
+#define __NR_getrlimit           76
+#define __NR_getrusage           77
+#define __NR_gettimeofday        78
+#define __NR_settimeofday        79
+#define __NR_getgroups           80
+#define __NR_setgroups           81
+#define __NR_symlink             83
+#define __NR_readlink            85
+#define __NR_uselib              86
+#define __NR_swapon              87
+#define __NR_reboot              88
+#define __NR_readdir             89
+#define __NR_mmap                90
+#define __NR_munmap              91
+#define __NR_truncate            92
+#define __NR_ftruncate           93
+#define __NR_fchmod              94
+#define __NR_fchown              95
+#define __NR_getpriority         96
+#define __NR_setpriority         97
+#define __NR_statfs              99
+#define __NR_fstatfs            100
+#define __NR_ioperm             101
+#define __NR_socketcall         102
+#define __NR_syslog             103
+#define __NR_setitimer          104
+#define __NR_getitimer          105
+#define __NR_stat               106
+#define __NR_lstat              107
+#define __NR_fstat              108
+#define __NR_lookup_dcookie     110
+#define __NR_vhangup            111
+#define __NR_idle               112
+#define __NR_wait4              114
+#define __NR_swapoff            115
+#define __NR_sysinfo            116
+#define __NR_ipc                117
+#define __NR_fsync              118
+#define __NR_sigreturn          119
+#define __NR_clone              120
+#define __NR_setdomainname      121
+#define __NR_uname              122
+#define __NR_adjtimex           124
+#define __NR_mprotect           125
+#define __NR_sigprocmask        126
+#define __NR_create_module      127
+#define __NR_init_module        128
+#define __NR_delete_module      129
+#define __NR_get_kernel_syms    130
+#define __NR_quotactl           131
+#define __NR_getpgid            132
+#define __NR_fchdir             133
+#define __NR_bdflush            134
+#define __NR_sysfs              135
+#define __NR_personality        136
+#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
+#define __NR_setfsuid           138
+#define __NR_setfsgid           139
+#define __NR__llseek            140
+#define __NR_getdents           141
+#define __NR__newselect         142
+#define __NR_flock              143
+#define __NR_msync              144
+#define __NR_readv              145
+#define __NR_writev             146
+#define __NR_getsid             147
+#define __NR_fdatasync          148
+#define __NR__sysctl            149
+#define __NR_mlock              150
+#define __NR_munlock            151
+#define __NR_mlockall           152
+#define __NR_munlockall         153
+#define __NR_sched_setparam             154
+#define __NR_sched_getparam             155
+#define __NR_sched_setscheduler         156
+#define __NR_sched_getscheduler         157
+#define __NR_sched_yield                158
+#define __NR_sched_get_priority_max     159
+#define __NR_sched_get_priority_min     160
+#define __NR_sched_rr_get_interval      161
+#define __NR_nanosleep          162
+#define __NR_mremap             163
+#define __NR_setresuid          164
+#define __NR_getresuid          165
+#define __NR_query_module       167
+#define __NR_poll               168
+#define __NR_nfsservctl         169
+#define __NR_setresgid          170
+#define __NR_getresgid          171
+#define __NR_prctl              172
+#define __NR_rt_sigreturn       173
+#define __NR_rt_sigaction       174
+#define __NR_rt_sigprocmask     175
+#define __NR_rt_sigpending      176
+#define __NR_rt_sigtimedwait    177
+#define __NR_rt_sigqueueinfo    178
+#define __NR_rt_sigsuspend      179
+#define __NR_pread64            180
+#define __NR_pwrite64           181
+#define __NR_chown              182
+#define __NR_getcwd             183
+#define __NR_capget             184
+#define __NR_capset             185
+#define __NR_sigaltstack        186
+#define __NR_sendfile           187
+#define __NR_getpmsg           188
+#define __NR_putpmsg           189
+#define __NR_vfork             190
+#define __NR_ugetrlimit                191     /* SuS compliant getrlimit */
+#define __NR_mmap2             192
+#define __NR_truncate64                193
+#define __NR_ftruncate64       194
+#define __NR_stat64            195
+#define __NR_lstat64           196
+#define __NR_fstat64           197
+#define __NR_lchown32          198
+#define __NR_getuid32          199
+#define __NR_getgid32          200
+#define __NR_geteuid32         201
+#define __NR_getegid32         202
+#define __NR_setreuid32                203
+#define __NR_setregid32                204
+#define __NR_getgroups32       205
+#define __NR_setgroups32       206
+#define __NR_fchown32          207
+#define __NR_setresuid32       208
+#define __NR_getresuid32       209
+#define __NR_setresgid32       210
+#define __NR_getresgid32       211
+#define __NR_chown32           212
+#define __NR_setuid32          213
+#define __NR_setgid32          214
+#define __NR_setfsuid32                215
+#define __NR_setfsgid32                216
+#define __NR_pivot_root         217
+#define __NR_mincore            218
+#define __NR_madvise            219
+#define __NR_getdents64                220
+#define __NR_fcntl64           221
+#define __NR_readahead         222
+#define __NR_sendfile64                223
+#define __NR_setxattr          224
+#define __NR_lsetxattr         225
+#define __NR_fsetxattr         226
+#define __NR_getxattr          227
+#define __NR_lgetxattr         228
+#define __NR_fgetxattr         229
+#define __NR_listxattr         230
+#define __NR_llistxattr                231
+#define __NR_flistxattr                232
+#define __NR_removexattr       233
+#define __NR_lremovexattr      234
+#define __NR_fremovexattr      235
+#define __NR_gettid            236
+#define __NR_tkill             237
+#define __NR_futex             238
+#define __NR_sched_setaffinity 239
+#define __NR_sched_getaffinity 240
+#define __NR_tgkill            241
+/* Number 242 is reserved for tux */
+#define __NR_io_setup          243
+#define __NR_io_destroy                244
+#define __NR_io_getevents      245
+#define __NR_io_submit         246
+#define __NR_io_cancel         247
+#define __NR_exit_group                248
+#define __NR_epoll_create      249
+#define __NR_epoll_ctl         250
+#define __NR_epoll_wait                251
+#define __NR_set_tid_address   252
+#define __NR_fadvise64         253
+#define __NR_timer_create      254
+#define __NR_timer_settime     (__NR_timer_create+1)
+#define __NR_timer_gettime     (__NR_timer_create+2)
+#define __NR_timer_getoverrun  (__NR_timer_create+3)
+#define __NR_timer_delete      (__NR_timer_create+4)
+#define __NR_clock_settime     (__NR_timer_create+5)
+#define __NR_clock_gettime     (__NR_timer_create+6)
+#define __NR_clock_getres      (__NR_timer_create+7)
+#define __NR_clock_nanosleep   (__NR_timer_create+8)
+/* Number 263 is reserved for vserver */
+#define __NR_fadvise64_64      264
+#define __NR_statfs64          265
+#define __NR_fstatfs64         266
+#define __NR_remap_file_pages  267
+/* Number 268 is reserved for new sys_mbind */
+/* Number 269 is reserved for new sys_get_mempolicy */
+/* Number 270 is reserved for new sys_set_mempolicy */
+#define __NR_mq_open           271
+#define __NR_mq_unlink         272
+#define __NR_mq_timedsend      273
+#define __NR_mq_timedreceive   274
+#define __NR_mq_notify         275
+#define __NR_mq_getsetattr     276
+#define __NR_kexec_load                277
+#define __NR_add_key           278
+#define __NR_request_key       279
+#define __NR_keyctl            280
+#define __NR_waitid            281
+#define __NR_ioprio_set                282
+#define __NR_ioprio_get                283
+#define __NR_inotify_init      284
+#define __NR_inotify_add_watch 285
+#define __NR_inotify_rm_watch  286
+/* Number 287 is reserved for new sys_migrate_pages */
+#define __NR_openat            288
+#define __NR_mkdirat           289
+#define __NR_mknodat           290
+#define __NR_fchownat          291
+#define __NR_futimesat         292
+#define __NR_fstatat64         293
+#define __NR_unlinkat          294
+#define __NR_renameat          295
+#define __NR_linkat            296
+#define __NR_symlinkat         297
+#define __NR_readlinkat                298
+#define __NR_fchmodat          299
+#define __NR_faccessat         300
+#define __NR_pselect6          301
+#define __NR_ppoll             302
+#define __NR_unshare           303
+/* the following system calls from 2.6.32 unistd.h*/
+#define __NR_set_robust_list    304
+#define __NR_get_robust_list    305
+#define __NR_splice             306
+#define __NR_sync_file_range    307
+#define __NR_tee                308
+#define __NR_vmsplice           309
+/* Number 310 is reserved for new sys_move_pages */
+#define __NR_getcpu             311
+#define __NR_epoll_pwait        312
+#define __NR_utimes             313
+#define __NR_fallocate          314
+#define __NR_utimensat          315
+#define __NR_signalfd           316
+#define __NR_timerfd            317
+#define __NR_eventfd            318
+#define __NR_timerfd_create     319
+#define __NR_timerfd_settime    320
+#define __NR_timerfd_gettime    321
+#define __NR_signalfd4          322
+#define __NR_eventfd2           323
+#define __NR_inotify_init1      324
+#define __NR_pipe2              325
+#define __NR_dup3               326
+#define __NR_epoll_create1      327
+#define __NR_preadv             328
+#define __NR_pwritev            329
+#define __NR_rt_tgsigqueueinfo  330
+#define __NR_perf_event_open    331
+
+#define NR_syscalls 332
+
+/*
+ * There are some system calls that are not present on 64 bit, some
+ * have a different name although they do the same (e.g. __NR_chown32
+ * is __NR_chown on 64 bit).
+ */
+#ifdef VGA_s390x
+#undef  __NR_time
+#undef  __NR_lchown
+#undef  __NR_setuid
+#undef  __NR_getuid
+#undef  __NR_stime
+#undef  __NR_setgid
+#undef  __NR_getgid
+#undef  __NR_geteuid
+#undef  __NR_getegid
+#undef  __NR_setreuid
+#undef  __NR_setregid
+#undef  __NR_getrlimit
+#undef  __NR_getgroups
+#undef  __NR_setgroups
+#undef  __NR_fchown
+#undef  __NR_ioperm
+#undef  __NR_setfsuid
+#undef  __NR_setfsgid
+#undef  __NR__llseek
+#undef  __NR__newselect
+#undef  __NR_setresuid
+#undef  __NR_getresuid
+#undef  __NR_setresgid
+#undef  __NR_getresgid
+#undef  __NR_chown
+#undef  __NR_ugetrlimit
+#undef  __NR_mmap2
+#undef  __NR_truncate64
+#undef  __NR_ftruncate64
+#undef  __NR_stat64
+#undef  __NR_lstat64
+#undef  __NR_fstat64
+#undef  __NR_lchown32
+#undef  __NR_getuid32
+#undef  __NR_getgid32
+#undef  __NR_geteuid32
+#undef  __NR_getegid32
+#undef  __NR_setreuid32
+#undef  __NR_setregid32
+#undef  __NR_getgroups32
+#undef  __NR_setgroups32
+#undef  __NR_fchown32
+#undef  __NR_setresuid32
+#undef  __NR_getresuid32
+#undef  __NR_setresgid32
+#undef  __NR_getresgid32
+#undef  __NR_chown32
+#undef  __NR_setuid32
+#undef  __NR_setgid32
+#undef  __NR_setfsuid32
+#undef  __NR_setfsgid32
+#undef  __NR_fcntl64
+#undef  __NR_sendfile64
+#undef  __NR_fadvise64_64
+#undef  __NR_fstatat64
+
+#define __NR_select            142
+#define __NR_getrlimit         191     /* SuS compliant getrlimit */
+#define __NR_lchown            198
+#define __NR_getuid            199
+#define __NR_getgid            200
+#define __NR_geteuid           201
+#define __NR_getegid           202
+#define __NR_setreuid                  203
+#define __NR_setregid                  204
+#define __NR_getgroups         205
+#define __NR_setgroups         206
+#define __NR_fchown            207
+#define __NR_setresuid         208
+#define __NR_getresuid         209
+#define __NR_setresgid         210
+#define __NR_getresgid         211
+#define __NR_chown             212
+#define __NR_setuid            213
+#define __NR_setgid            214
+#define __NR_setfsuid                  215
+#define __NR_setfsgid                  216
+#define __NR_newfstatat                293
+
+#endif
+
+#endif /* __VKI_SCNUMS_S390X_LINUX_H */
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
index 35e3599f298717bc8ceead3e681e09d9d7bd477e..e57860418249a925615c8796694f4b5354231d40 100644 (file)
@@ -314,7 +314,8 @@ static Int type2index ( IRType ty )
       case Ity_I128:    return 5;
       case Ity_F32:     return 6;
       case Ity_F64:     return 7;
-      case Ity_V128:    return 8;
+      case Ity_F128:    return 8;
+      case Ity_V128:    return 9;
       default: tl_assert(0);
    }
 }
@@ -330,7 +331,8 @@ static HChar* nameOfTypeIndex ( Int i )
       case 5: return "I128"; break;
       case 6: return "F32";  break;
       case 7: return "F64";  break;
-      case 8: return "V128"; break;
+      case 8: return "F128";  break;
+      case 9: return "V128"; break;
       default: tl_assert(0);
    }
 }
index 030c845482c6b4d86819987ba54c9ccdd5850bdb..866cea9dbcc0ad7933d6f7fcd7cfe7eff9d75dca 100644 (file)
 # define MC_SIZEOF_GUEST_STATE sizeof(VexGuestPPC64State)
 #endif
 
+#if defined(VGA_s390x)
+# include "libvex_guest_s390x.h"
+# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestS390XState)
+#endif
+
 #if defined(VGA_arm)
 # include "libvex_guest_arm.h"
 # define MC_SIZEOF_GUEST_STATE sizeof(VexGuestARMState)
@@ -682,6 +687,54 @@ static Int get_otrack_shadow_offset_wrk ( Int offset, Int szB )
 #  undef GOF
 #  undef SZB
 
+   /* -------------------- s390x -------------------- */
+
+#  elif defined(VGA_s390x)
+#  define GOF(_fieldname) \
+      (offsetof(VexGuestS390XState,guest_##_fieldname))
+   Int  o      = offset;
+   Int  sz     = szB;
+   tl_assert(sz > 0);
+   tl_assert(host_is_big_endian());
+
+   /* no matter what byte(s) we change, we have changed the full 8 byte value
+      and need to track this change for the whole register */
+   if (o >= GOF(r0) && sz <= 8 && o <= (GOF(r15) + 8 - sz))
+      return GOF(r0) + ((o-GOF(r0)) & -8) ;
+
+
+   /* fprs are accessed 4 or 8 byte at once. Again, we track that change for
+      the full register */
+   if ((sz == 8 || sz == 4) && o >= GOF(f0) && o <= GOF(f15)+8-sz)
+      return GOF(f0) + ((o-GOF(f0)) & -8) ;
+
+   /* access registers are accessed 4 bytes at once */
+   if (sz == 4 && o >= GOF(a0) && o <= GOF(a15))
+         return o;
+
+   /* we access the guest counter either fully or one of the 4byte words */
+   if (o == GOF(counter) && (sz == 8 || sz ==4))
+      return o;
+   if (o == GOF(counter) + 4 && sz == 4)
+      return o;
+
+   if (o == GOF(CC_OP)) return -1;
+   if (o == GOF(CC_DEP1)) return o;
+   if (o == GOF(CC_DEP2)) return o;
+   if (o == GOF(CC_NDEP)) return -1;
+   if (o == GOF(TISTART)) return -1;
+   if (o == GOF(TILEN)) return -1;
+   if (o == GOF(NRADDR)) return -1;
+   if (o == GOF(IP_AT_SYSCALL)) return -1;
+   if (o == GOF(fpc)) return -1;
+   if (o == GOF(IA)) return -1;
+   if (o == GOF(SYSNO)) return -1;
+   VG_(printf)("MC_(get_otrack_shadow_offset)(s390x)(off=%d,sz=%d)\n",
+               offset,szB);
+   tl_assert(0);
+#  undef GOF
+
+
    /* --------------------- arm --------------------- */
 
 #  elif defined(VGA_arm)
@@ -889,6 +942,11 @@ IRType MC_(get_otrack_reg_array_equiv_int_type) ( IRRegArray* arr )
    VG_(printf)("\n");
    tl_assert(0);
 
+   /* --------------------- s390x --------------------- */
+#  elif defined(VGA_s390x)
+   /* Should never het here because s390x does not use Ist_PutI
+      and Iex_GetI. */
+   tl_assert(0);
 #  else
 #    error "FIXME: not implemented for this architecture"
 #  endif
index 50f2d49cc301f64e853d2e1e62133bd97a0c1b90..e5bfb21b238dd3c89234431fd03414906afdf7ec 100644 (file)
@@ -121,6 +121,7 @@ static IRType  shadowTypeV ( IRType ty );
 static IRExpr* expr2vbits ( struct _MCEnv* mce, IRExpr* e );
 static IRTemp  findShadowTmpB ( struct _MCEnv* mce, IRTemp orig );
 
+static IRExpr *i128_const_zero(void);
 
 /*------------------------------------------------------------*/
 /*--- Memcheck running state, and tmp management.          ---*/
@@ -343,7 +344,7 @@ static Bool sameKindedAtoms ( IRAtom* a1, IRAtom* a2 )
 /* Shadow state is always accessed using integer types.  This returns
    an integer type with the same size (as per sizeofIRType) as the
    given type.  The only valid shadow types are Bit, I8, I16, I32,
-   I64, V128. */
+   I64, I128, V128. */
 
 static IRType shadowTypeV ( IRType ty )
 {
@@ -356,6 +357,7 @@ static IRType shadowTypeV ( IRType ty )
       case Ity_I128: return ty;
       case Ity_F32:  return Ity_I32;
       case Ity_F64:  return Ity_I64;
+      case Ity_F128: return Ity_I128;
       case Ity_V128: return Ity_V128;
       default: ppIRType(ty); 
                VG_(tool_panic)("memcheck:shadowTypeV");
@@ -371,6 +373,7 @@ static IRExpr* definedOfType ( IRType ty ) {
       case Ity_I16:  return IRExpr_Const(IRConst_U16(0));
       case Ity_I32:  return IRExpr_Const(IRConst_U32(0));
       case Ity_I64:  return IRExpr_Const(IRConst_U64(0));
+      case Ity_I128: return i128_const_zero();
       case Ity_V128: return IRExpr_Const(IRConst_V128(0x0000));
       default:       VG_(tool_panic)("memcheck:definedOfType");
    }
@@ -437,6 +440,18 @@ static IRAtom* assignNew ( HChar cat, MCEnv* mce, IRType ty, IRExpr* e )
 }
 
 
+/*------------------------------------------------------------*/
+/*--- Helper functions for 128-bit ops                     ---*/
+/*------------------------------------------------------------*/
+static IRExpr *i128_const_zero(void)
+{
+  return binop(Iop_64HLto128, IRExpr_Const(IRConst_U64(0)),
+               IRExpr_Const(IRConst_U64(0)));
+}
+
+/* There are no 128-bit loads and/or stores. So we do not need to worry
+   about that in expr2vbits_Load */
+
 /*------------------------------------------------------------*/
 /*--- Constructing definedness primitive ops               ---*/
 /*------------------------------------------------------------*/
@@ -499,6 +514,20 @@ static IRAtom* mkUifU64 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
    return assignNew('V', mce, Ity_I64, binop(Iop_Or64, a1, a2));
 }
 
+static IRAtom* mkUifU128 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
+   IRAtom *tmp1, *tmp2, *tmp3, *tmp4, *tmp5, *tmp6;
+   tl_assert(isShadowAtom(mce,a1));
+   tl_assert(isShadowAtom(mce,a2));
+   tmp1 = assignNew('V', mce, Ity_I64, unop(Iop_128to64, a1));
+   tmp2 = assignNew('V', mce, Ity_I64, unop(Iop_128HIto64, a1));
+   tmp3 = assignNew('V', mce, Ity_I64, unop(Iop_128to64, a2));
+   tmp4 = assignNew('V', mce, Ity_I64, unop(Iop_128HIto64, a2));
+   tmp5 = assignNew('V', mce, Ity_I64, binop(Iop_Or64, tmp1, tmp3));
+   tmp6 = assignNew('V', mce, Ity_I64, binop(Iop_Or64, tmp2, tmp4));
+
+   return assignNew('V', mce, Ity_I128, binop(Iop_64HLto128, tmp6, tmp5));
+}
+
 static IRAtom* mkUifUV128 ( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) {
    tl_assert(isShadowAtom(mce,a1));
    tl_assert(isShadowAtom(mce,a2));
@@ -511,6 +540,7 @@ static IRAtom* mkUifU ( MCEnv* mce, IRType vty, IRAtom* a1, IRAtom* a2 ) {
       case Ity_I16:  return mkUifU16(mce, a1, a2);
       case Ity_I32:  return mkUifU32(mce, a1, a2);
       case Ity_I64:  return mkUifU64(mce, a1, a2);
+      case Ity_I128: return mkUifU128(mce, a1, a2);
       case Ity_V128: return mkUifUV128(mce, a1, a2);
       default:
          VG_(printf)("\n"); ppIRType(vty); VG_(printf)("\n");
@@ -650,6 +680,10 @@ static IRAtom* mkImproveORV128 ( MCEnv* mce, IRAtom* data, IRAtom* vbits )
 
 /* --------- Pessimising casts. --------- */
 
+/* The function returns an expression of type DST_TY. If any of the VBITS
+   is undefined (value == 1) the resulting expression has all bits set to
+   1. Otherwise, all bits are 0. */
+
 static IRAtom* mkPCastTo( MCEnv* mce, IRType dst_ty, IRAtom* vbits ) 
 {
    IRType  src_ty;
@@ -1202,6 +1236,7 @@ void do_shadow_PUT ( MCEnv* mce,  Int offset,
 
    ty = typeOfIRExpr(mce->sb->tyenv, vatom);
    tl_assert(ty != Ity_I1);
+   tl_assert(ty != Ity_I128);
    if (isAlwaysDefd(mce, offset, sizeofIRType(ty))) {
       /* later: no ... */
       /* emit code to emit a complaint if any of the vbits are 1. */
@@ -1263,6 +1298,7 @@ IRExpr* shadow_GET ( MCEnv* mce, Int offset, IRType ty )
 {
    IRType tyS = shadowTypeV(ty);
    tl_assert(ty != Ity_I1);
+   tl_assert(ty != Ity_I128);
    if (isAlwaysDefd(mce, offset, sizeofIRType(ty))) {
       /* Always defined, return all zeroes of the relevant type */
       return definedOfType(tyS);
@@ -1414,6 +1450,22 @@ IRAtom* mkLazy3 ( MCEnv* mce, IRType finalVty,
       return at;
    }
 
+   /* I32 x I128 x I128 -> I128 */
+   /* Standard FP idiom: rm x FParg1 x FParg2 -> FPresult */
+   if (t1 == Ity_I32 && t2 == Ity_I128 && t3 == Ity_I128
+       && finalVty == Ity_I128) {
+      if (0) VG_(printf)("mkLazy3: I32 x I128 x I128 -> I128\n");
+      /* Widen 1st arg to I128.  Since 1st arg is typically a rounding
+         mode indication which is fully defined, this should get
+         folded out later. */
+      at = mkPCastTo(mce, Ity_I128, va1);
+      /* Now fold in 2nd and 3rd args. */
+      at = mkUifU(mce, Ity_I128, at, va2);
+      at = mkUifU(mce, Ity_I128, at, va3);
+      /* and PCast once again. */
+      at = mkPCastTo(mce, Ity_I128, at);
+      return at;
+   }
    if (1) {
       VG_(printf)("mkLazy3: ");
       ppIRType(t1);
@@ -1474,6 +1526,19 @@ IRAtom* mkLazy4 ( MCEnv* mce, IRType finalVty,
       at = mkPCastTo(mce, Ity_I64, at);
       return at;
    }
+   /* I32 x I32 x I32 x I32 -> I32 */
+   /* Standard FP idiom: rm x FParg1 x FParg2 x FParg3 -> FPresult */
+   if (t1 == Ity_I32 && t2 == Ity_I32 && t3 == Ity_I32 && t4 == Ity_I32
+       && finalVty == Ity_I32) {
+      if (0) VG_(printf)("mkLazy4: I32 x I32 x I32 x I32 -> I32\n");
+      at = va1;
+      /* Now fold in 2nd, 3rd, 4th args. */
+      at = mkUifU(mce, Ity_I32, at, va2);
+      at = mkUifU(mce, Ity_I32, at, va3);
+      at = mkUifU(mce, Ity_I32, at, va4);
+      at = mkPCastTo(mce, Ity_I32, at);
+      return at;
+   }
 
    if (1) {
       VG_(printf)("mkLazy4: ");
@@ -2136,6 +2201,12 @@ IRAtom* expr2vbits_Qop ( MCEnv* mce,
       case Iop_MSubF64r32:
          /* I32(rm) x F64 x F64 x F64 -> F64 */
          return mkLazy4(mce, Ity_I64, vatom1, vatom2, vatom3, vatom4);
+
+      case Iop_MAddF32:
+      case Iop_MSubF32:
+         /* I32(rm) x F32 x F32 x F32 -> F32 */
+         return mkLazy4(mce, Ity_I32, vatom1, vatom2, vatom3, vatom4);
+
       default:
          ppIROp(op);
          VG_(tool_panic)("memcheck:expr2vbits_Qop");
@@ -2162,6 +2233,12 @@ IRAtom* expr2vbits_Triop ( MCEnv* mce,
    tl_assert(sameKindedAtoms(atom2,vatom2));
    tl_assert(sameKindedAtoms(atom3,vatom3));
    switch (op) {
+      case Iop_AddF128:
+      case Iop_SubF128:
+      case Iop_MulF128:
+      case Iop_DivF128:
+         /* I32(rm) x F128 x F128 -> F128 */
+         return mkLazy3(mce, Ity_I128, vatom1, vatom2, vatom3);
       case Iop_AddF64:
       case Iop_AddF64r32:
       case Iop_SubF64:
@@ -2847,6 +2924,14 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
 
       /* Scalar floating point */
 
+      case Iop_F32toI64S:
+         /* I32(rm) x F32 -> I64 */
+         return mkLazy2(mce, Ity_I64, vatom1, vatom2);
+
+      case Iop_I64StoF32:
+         /* I32(rm) x I64 -> F32 */
+         return mkLazy2(mce, Ity_I32, vatom1, vatom2);
+
       case Iop_RoundF64toInt:
       case Iop_RoundF64toF32:
       case Iop_F64toI64S:
@@ -2864,6 +2949,26 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
          /* I32(rm) x I32/F32 -> I32/F32 */
          return mkLazy2(mce, Ity_I32, vatom1, vatom2);
 
+      case Iop_SqrtF128:
+         /* I32(rm) x F128 -> F128 */
+         return mkLazy2(mce, Ity_I128, vatom1, vatom2);
+
+      case Iop_I32StoF32:
+      case Iop_F32toI32S:
+         /* First arg is I32 (rounding mode), second is F32/I32 (data). */
+         return mkLazy2(mce, Ity_I32, vatom1, vatom2);
+
+      case Iop_F128toI32S: /* IRRoundingMode(I32) x F128 -> signed I32  */
+      case Iop_F128toF32:  /* IRRoundingMode(I32) x F128 -> F32         */
+         return mkLazy2(mce, Ity_I32, vatom1, vatom2);
+
+      case Iop_F128toI64S: /* IRRoundingMode(I32) x F128 -> signed I64  */
+      case Iop_F128toF64:  /* IRRoundingMode(I32) x F128 -> F64         */
+         return mkLazy2(mce, Ity_I64, vatom1, vatom2);
+
+      case Iop_F64HLtoF128:
+         return assignNew('V', mce, Ity_I128, binop(Iop_64HLto128, vatom1, vatom2));
+
       case Iop_F64toI32U:
       case Iop_F64toI32S:
       case Iop_F64toF32:
@@ -2874,7 +2979,9 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
          /* First arg is I32 (rounding mode), second is F64 (data). */
          return mkLazy2(mce, Ity_I16, vatom1, vatom2);
 
+      case Iop_CmpF32:
       case Iop_CmpF64:
+      case Iop_CmpF128:
          return mkLazy2(mce, Ity_I32, vatom1, vatom2);
 
       /* non-FP after here */
@@ -2892,6 +2999,7 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
       case Iop_32HLto64:
          return assignNew('V', mce, Ity_I64, binop(op, vatom1, vatom2));
 
+      case Iop_DivModS64to64:
       case Iop_MullS64:
       case Iop_MullU64: {
          IRAtom* vLo64 = mkLeft64(mce, mkUifU64(mce, vatom1,vatom2));
@@ -3142,6 +3250,21 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
       case Iop_Reverse64_32x4:
          return assignNew('V', mce, Ity_V128, unop(op, vatom));
 
+      case Iop_F128HItoF64:  /* F128 -> high half of F128 */
+         return assignNew('V', mce, Ity_I64, unop(Iop_128HIto64, vatom));
+      case Iop_F128LOtoF64:  /* F128 -> low  half of F128 */
+         return assignNew('V', mce, Ity_I64, unop(Iop_128to64, vatom));
+
+      case Iop_NegF128:
+      case Iop_AbsF128:
+         return mkPCastTo(mce, Ity_I128, vatom);
+
+      case Iop_I32StoF128: /* signed I32 -> F128 */
+      case Iop_I64StoF128: /* signed I64 -> F128 */
+      case Iop_F32toF128:  /* F32 -> F128 */
+      case Iop_F64toF128:  /* F64 -> F128 */
+         return mkPCastTo(mce, Ity_I128, vatom);
+
       case Iop_F32toF64: 
       case Iop_I32StoF64:
       case Iop_I32UtoF64:
@@ -3185,6 +3308,7 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
       case Iop_Reverse64_32x2:
          return assignNew('V', mce, Ity_I64, unop(op, vatom));
 
+      case Iop_I16StoF32:
       case Iop_64to32:
       case Iop_64HIto32:
       case Iop_1Uto32:
@@ -4536,6 +4660,7 @@ static Bool isBogusAtom ( IRAtom* at )
       case Ico_U32:  n = (ULong)con->Ico.U32; break;
       case Ico_U64:  n = (ULong)con->Ico.U64; break;
       case Ico_F64:  return False;
+      case Ico_F32i: return False;
       case Ico_F64i: return False;
       case Ico_V128: return False;
       default: ppIRExpr(at); tl_assert(0);
index 1b7ea2c842d9a73f8c4c4cd70ab8a72670c6badd..1429d9ec1ebd29a7fe16c18d3986ac57612f8e8f 100644 (file)
@@ -296,8 +296,9 @@ origin4_many_CFLAGS = $(AM_CFLAGS) -O
 origin5_bz2_CFLAGS     = $(AM_CFLAGS) -O -Wno-inline
 origin6_fp_CFLAGS      = $(AM_CFLAGS) -O
 
-# Don't allow GCC to inline memcpy(), because then we can't intercept it
-overlap_CFLAGS         = $(AM_CFLAGS) -fno-builtin-memcpy
+# Don't allow GCC to inline memcpy() and strcpy(),
+# because then we can't intercept it
+overlap_CFLAGS         = $(AM_CFLAGS) -fno-builtin-memcpy -fno-builtin-strcpy
 
 str_tester_CFLAGS      = $(AM_CFLAGS) -Wno-shadow
 
index 197902c9f493cd64507aba0654e5bf96720506cb..97e1664018d0de0317253aaeaf36f07a31fd82d2 100644 (file)
@@ -76,6 +76,20 @@ __attribute__((noinline)) void atomic_add_8bit ( char* p, int n )
    } while (success != 1);
 #elif defined(VGA_arm)
    *p += n;
+#elif defined(VGA_s390x)
+   int dummy;
+   __asm__ __volatile__(
+      "   l    0,%0\n\t"
+      "0: st   0,%1\n\t"
+      "   icm  1,1,%1\n\t"
+      "   ar   1,%2\n\t"
+      "   stcm  1,1,%1\n\t"
+      "   l     1,%1\n\t"
+      "   cs   0,1,%0\n\t"
+      "   jl    0b\n\t"
+      : "+m" (*p), "+m" (dummy)
+      : "d" (n)
+      : "cc", "memory", "0", "1");
 #else
 # error "Unsupported arch"
 #endif
@@ -140,6 +154,20 @@ __attribute__((noinline)) void atomic_add_16bit ( short* p, int n )
    } while (success != 1);
 #elif defined(VGA_arm)
    *p += n;
+#elif defined(VGA_s390x)
+   int dummy;
+   __asm__ __volatile__(
+      "   l    0,%0\n\t"
+      "0: st   0,%1\n\t"
+      "   icm  1,3,%1\n\t"
+      "   ar   1,%2\n\t"
+      "   stcm  1,3,%1\n\t"
+      "   l     1,%1\n\t"
+      "   cs   0,1,%0\n\t"
+      "   jl    0b\n\t"
+      : "+m" (*p), "+m" (dummy)
+      : "d" (n)
+      : "cc", "memory", "0", "1");
 #else
 # error "Unsupported arch"
 #endif
@@ -216,6 +244,16 @@ __attribute__((noinline)) void atomic_add_32bit ( int* p, int n )
          : /*trash*/ "memory", "cc", "r5", "r8", "r9", "r10"
       );
    } while (block[2] != 0);
+#elif defined(VGA_s390x)
+   __asm__ __volatile__(
+      "   l    0,%0\n\t"
+      "0: lr   1,0\n\t"
+      "   ar   1,%1\n\t"
+      "   cs   0,1,%0\n\t"
+      "   jl    0b\n\t"
+      : "+m" (*p)
+      : "d" (n)
+      : "cc", "memory", "0", "1");
 #else
 # error "Unsupported arch"
 #endif
@@ -252,6 +290,16 @@ __attribute__((noinline)) void atomic_add_64bit ( long long int* p, int n )
          : /*trash*/ "memory", "cc", "r15"
       );
    } while (success != 1);
+#elif defined(VGA_s390x)
+   __asm__ __volatile__(
+      "   lg   0,%0\n\t"
+      "0: lgr  1,0\n\t"
+      "   agr  1,%1\n\t"
+      "   csg  0,1,%0\n\t"
+      "   jl    0b\n\t"
+      : "+m" (*p)
+      : "d" (n)
+      : "cc", "memory", "0", "1");
 #else
 # error "Unsupported arch"
 #endif
diff --git a/memcheck/tests/badjump.stderr.exp-s390x b/memcheck/tests/badjump.stderr.exp-s390x
new file mode 100644 (file)
index 0000000..a6be684
--- /dev/null
@@ -0,0 +1,25 @@
+
+Jump to the invalid address stated on the next line
+   at 0x........: ???
+   by 0x........: main (badjump.c:17)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+   at 0x........: ???
+   by 0x........: main (badjump.c:17)
+ If you believe this happened as a result of a stack
+ overflow in your program's main thread (unlikely but
+ possible), you can try to increase the size of the
+ main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was ....
+
+HEAP SUMMARY:
+    in use at exit: ... bytes in ... blocks
+  total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
diff --git a/memcheck/tests/badjump2.stderr.exp-s390x b/memcheck/tests/badjump2.stderr.exp-s390x
new file mode 100644 (file)
index 0000000..1b87d27
--- /dev/null
@@ -0,0 +1,6 @@
+Jump to the invalid address stated on the next line
+   at 0x........: ???
+   by 0x........: main (badjump2.c:46)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Signal caught, as expected
index 31d8195672744089b579a8dc03218d8e6f18cfca..ce9b18b0b0167603e8763895afd82f9c94242ed6 100644 (file)
@@ -4,6 +4,7 @@
 #include <stdio.h>            /* printf() */
 #include <unistd.h>           /* syscall() */
 #include <sys/syscall.h>      /* __NR_capget */
+#include <sys/types.h>        /* uid_t */
 #include <linux/capability.h> /* _LINUX_CAPABILITY_VERSION */
 
 
@@ -13,6 +14,8 @@ int main()
   struct __user_cap_data_struct d;
   int syscall_result;
 
+  if (getuid() == 0)
+    fprintf(stderr, "Running as root\n");
   h.version = _LINUX_CAPABILITY_VERSION;
   h.pid = 0;
   syscall_result = syscall(__NR_capget, &h, &d);
diff --git a/memcheck/tests/linux/capget.stderr.exp2 b/memcheck/tests/linux/capget.stderr.exp2
new file mode 100644 (file)
index 0000000..7aef7a2
--- /dev/null
@@ -0,0 +1,15 @@
+
+Running as root
+capget result:
+effective   0x........
+permitted   0x........
+inheritable 0
+
+HEAP SUMMARY:
+    in use at exit: ... bytes in ... blocks
+  total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
index 3a7862f6ce1bf4e2962120116572df2b4ee693c7..49be20e735e444bdf4473f43e3328e6f2d4a1c93 100644 (file)
@@ -61,6 +61,8 @@
 #define __NR_timerfd_create  322
 #elif defined(__powerpc__)
 #define __NR_timerfd_create  306
+#elif defined(__s390x__)
+#define __NR_timerfd_create  319
 #else
 #error Cannot detect your architecture!
 #endif
@@ -76,6 +78,9 @@
 #elif defined(__powerpc__)
 #define __NR_timerfd_settime 311
 #define __NR_timerfd_gettime 312
+#elif defined(__s390x__)
+#define __NR_timerfd_settime 320
+#define __NR_timerfd_gettime 321
 #else
 #error Cannot detect your architecture!
 #endif
diff --git a/memcheck/tests/origin5-bz2.stderr.exp-glibc212-s390x b/memcheck/tests/origin5-bz2.stderr.exp-glibc212-s390x
new file mode 100644 (file)
index 0000000..ae0af5d
--- /dev/null
@@ -0,0 +1,133 @@
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: main (origin5-bz2.c:6481)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: handle_compress (origin5-bz2.c:4686)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: handle_compress (origin5-bz2.c:4686)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: handle_compress (origin5-bz2.c:4686)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2820)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2823)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2854)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2858)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2859)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2963)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: mainSort (origin5-bz2.c:2964)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: fallbackSort (origin5-bz2.c:2269)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Use of uninitialised value of size 8
+   at 0x........: fallbackSort (origin5-bz2.c:2275)
+   by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
+   by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
+   by 0x........: handle_compress (origin5-bz2.c:4753)
+   by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
+   by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
+   by 0x........: main (origin5-bz2.c:6484)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: main (origin5-bz2.c:6512)
+ Uninitialised value was created by a client request
+   at 0x........: main (origin5-bz2.c:6479)
+
index 7d63126cbaf97cc0f79ea43a09125cd33a3c2bc3..79fd69854b5ef99435cc6441f21ad98a3cc57f2e 100644 (file)
@@ -64,9 +64,16 @@ int main ( void )
 // and so never appears as a literal, and so the instrumenter
 // never spots it and so doesn't use the expensive scheme (for foo).
 // Hence also on ARM we get 3 errors, not 2.
+//
+// s390x is even more complicated: Depending on the architecture
+// level we have the 0x80808080 either in the literal pool (3 errors)
+// or with the extended immediate facility in an instruction (2 errors).
 static __attribute__((noinline)) void bar ( void )
 {
 #if defined(__powerpc__) || defined(__powerpc64__) || defined(__arm__)
   fprintf(stderr, "Currently running on ppc32/64/arm: this test should give 3 errors, not 2.\n");
 #endif
+#if defined(__s390__)
+  fprintf(stderr, "On s390 we might see 2 or 3 errors.\n");
+#endif
 }
diff --git a/memcheck/tests/partiallydefinedeq.stderr.exp3 b/memcheck/tests/partiallydefinedeq.stderr.exp3
new file mode 100644 (file)
index 0000000..227c060
--- /dev/null
@@ -0,0 +1,20 @@
+
+On s390 we might see 2 or 3 errors.
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: foo (partiallydefinedeq.c:15)
+   by 0x........: main (partiallydefinedeq.c:37)
+
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: foo (partiallydefinedeq.c:15)
+   by 0x........: main (partiallydefinedeq.c:52)
+
+
+HEAP SUMMARY:
+    in use at exit: ... bytes in ... blocks
+  total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+Use --track-origins=yes to see where uninitialised values come from
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
diff --git a/memcheck/tests/partiallydefinedeq.stderr.exp4 b/memcheck/tests/partiallydefinedeq.stderr.exp4
new file mode 100644 (file)
index 0000000..adfe8a9
--- /dev/null
@@ -0,0 +1,24 @@
+
+On s390 we might see 2 or 3 errors.
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: foo (partiallydefinedeq.c:15)
+   by 0x........: main (partiallydefinedeq.c:37)
+
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: foo (partiallydefinedeq.c:15)
+   by 0x........: main (partiallydefinedeq.c:45)
+
+Conditional jump or move depends on uninitialised value(s)
+   at 0x........: foo (partiallydefinedeq.c:15)
+   by 0x........: main (partiallydefinedeq.c:52)
+
+
+HEAP SUMMARY:
+    in use at exit: ... bytes in ... blocks
+  total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+Use --track-origins=yes to see where uninitialised values come from
+ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
index 05eb87a51584b4f0781527e13f4509231d0f821e..5747dcb2134349ed715175753ec854a8ad5c5d48 100644 (file)
@@ -13,6 +13,7 @@ int main(void)
 {
 #if defined(__NR_sigprocmask)        \
     && !defined(__powerpc64__)       \
+    && !defined(__s390x__)           \
     && !defined(_AIX)                \
     && !defined(__arm__)
 
diff --git a/memcheck/tests/supp_unknown.stderr.exp-s390x b/memcheck/tests/supp_unknown.stderr.exp-s390x
new file mode 100644 (file)
index 0000000..5adcfa6
--- /dev/null
@@ -0,0 +1,10 @@
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+   at 0x........: ???
+   by 0x........: main (badjump.c:17)
+ If you believe this happened as a result of a stack
+ overflow in your program's main thread (unlikely but
+ possible), you can try to increase the size of the
+ main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was ....
index f702e90d00b27061766bce4b6d34fb50e212fae5..50ef42595a49a2fcfb761c7b3882ea01bcc08520 100644 (file)
@@ -6,3 +6,10 @@
    fun:(below main)
 }
 
+{
+   <insert a suppression name here>
+   Memcheck:Jump
+   obj:*
+   fun:main
+}
+
index d2d71866a12779963c0ec868720b4c5c93aa8799..afe71872d05a1b8daea50b065727fa9708bbdbd0 100644 (file)
@@ -19,6 +19,9 @@ endif
 if VGCONF_ARCHS_INCLUDE_ARM
 SUBDIRS += arm
 endif
+if VGCONF_ARCHS_INCLUDE_S390X
+SUBDIRS += s390x
+endif
 
 # OS-specific tests
 if VGCONF_OS_IS_LINUX
@@ -33,7 +36,7 @@ if VGCONF_PLATFORMS_INCLUDE_X86_LINUX
 SUBDIRS += x86-linux
 endif
 
-DIST_SUBDIRS = x86 amd64 ppc32 ppc64 arm linux darwin x86-linux .
+DIST_SUBDIRS = x86 amd64 ppc32 ppc64 arm s390x linux darwin x86-linux .
 
 dist_noinst_SCRIPTS = \
        filter_cmdline0 \
diff --git a/none/tests/s390x/Makefile.am b/none/tests/s390x/Makefile.am
new file mode 100644 (file)
index 0000000..6aee61b
--- /dev/null
@@ -0,0 +1,48 @@
+include $(top_srcdir)/Makefile.tool-tests.am
+
+dist_noinst_SCRIPTS = filter_stderr
+
+INSN_TESTS = clc clcle cvb cvd icm lpr tcxb lam_stam xc mvst add sub mul and or xor insert div srst
+INSN_EI = flogr sub_EI add_EI and_EI or_EI xor_EI insert_EI
+INSN_GE = mul_GE add_GE
+
+if S390_BUILDS_EI
+   INSN_TESTS += $(INSN_EI)
+endif
+
+if S390_BUILDS_GE
+   INSN_TESTS += $(INSN_GE)
+endif
+
+check_PROGRAMS = $(INSN_TESTS) \
+                ex_sig \
+                ex_clone
+
+EXTRA_DIST = \
+       $(addsuffix .stderr.exp,$(check_PROGRAMS)) \
+       $(addsuffix .stdout.exp,$(check_PROGRAMS)) \
+       $(addsuffix .vgtest,$(check_PROGRAMS)) \
+       test.h mul.h
+
+AM_CFLAGS    += @FLAG_M64@
+AM_CXXFLAGS  += @FLAG_M64@
+AM_CCASFLAGS += @FLAG_M64@
+
+ex_clone_LDFLAGS = -lpthread
+tcxb_CFLAGS      = $(AM_CFLAGS) -std=gnu99
+# some versions of binutils require the right march flag
+add_CFLAGS       = $(AM_CFLAGS) -march=z990
+and_CFLAGS       = $(AM_CFLAGS) -march=z990
+mul_CFLAGS       = $(AM_CFLAGS) -march=z990
+sub_CFLAGS       = $(AM_CFLAGS) -march=z990
+or_CFLAGS        = $(AM_CFLAGS) -march=z990
+xor_CFLAGS       = $(AM_CFLAGS) -march=z990
+insert_CFLAGS    = $(AM_CFLAGS) -march=z990
+mul_GE_CFLAGS    = $(AM_CFLAGS) -march=z10
+sub_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
+add_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
+add_GE_CFLAGS    = $(AM_CFLAGS) -march=z10
+and_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
+or_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
+xor_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
+insert_EI_CFLAGS    = $(AM_CFLAGS) -march=z9-109
diff --git a/none/tests/s390x/add.c b/none/tests/s390x/add.c
new file mode 100644 (file)
index 0000000..01e87a3
--- /dev/null
@@ -0,0 +1,66 @@
+#include <stdio.h>
+#include "add.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(ahi, 0, 0);
+       immsweep(ahi, -1, 0);
+       immsweep(ahi, -32768, 0);
+       immsweep(ahi, 32767, 0);
+       immsweep(aghi, 0, 0);
+       immsweep(aghi, -1, 0);
+       immsweep(aghi, -32768, 0);
+       immsweep(aghi, 32767, 0);
+}
+
+
+static void do_regmem_insns(unsigned long s2)
+{
+       memsweep(a, s2, 0);
+       memsweep(ah, s2, 0);
+       memsweep(ag, s2, 0);
+       memsweep(agf, s2, 0);
+       memsweep(al, s2, 0);
+       memsweep(alg, s2, 0);
+       memsweep(agf, s2, 0);
+       memsweep(algf, s2, 0);
+       regsweep(ar, s2, 0);
+       regsweep(agr, s2, 0);
+       regsweep(agfr, s2, 0);
+       regsweep(alr, s2, 0);
+       regsweep(algr, s2, 0);
+       regsweep(algfr, s2, 0);
+       memsweep(alc, s2, 0);
+       memsweep(alcg, s2, 0);
+       regsweep(alcr, s2, 0);
+       regsweep(alcgr, s2, 0);
+       memsweep(alc, s2, 1);
+       memsweep(alcg, s2, 1);
+       regsweep(alcr, s2, 1);
+       regsweep(alcgr, s2, 1);
+       memsweep(ahy, s2, 0);
+       memsweep(ay, s2, 0);
+       memsweep(aly, s2, 0);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x7ffffffffffffffful);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/add.h b/none/tests/s390x/add.h
new file mode 100644 (file)
index 0000000..d8ecc0d
--- /dev/null
@@ -0,0 +1,123 @@
+#include <stdio.h>
+
+#define ADD_REG_MEM(insn, s1, s2, CARRY)               \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #CARRY "\n"           \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " " #CARRY " + %16.16lX + %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define ADD_REG_REG(insn, s1, s2, CARRY)               \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #CARRY "\n"           \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "d" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " " #CARRY " + %16.16lX + %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define ADD_REG_IMM(insn, s1, s2, CARRY)               \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #CARRY "\n"           \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " " #CARRY " + %16.16lX + %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+#define ADD_MEM_IMM(insn, s1, s2, CARRY)               \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #CARRY "\n"           \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+Q" (tmp), "=d" (cc)         \
+                       : "Q" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " " #CARRY " + %16.16lX + %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+
+#define memsweep(i, s2, carryset)                              \
+({                                                             \
+       ADD_REG_MEM(i, 0ul, s2, carryset);                      \
+       ADD_REG_MEM(i, 1ul, s2, carryset);                      \
+       ADD_REG_MEM(i, 0xfffful, s2, carryset);                 \
+       ADD_REG_MEM(i, 0x7ffful, s2, carryset);                 \
+       ADD_REG_MEM(i, 0x8000ul, s2, carryset);                 \
+       ADD_REG_MEM(i, 0xfffffffful, s2, carryset);             \
+       ADD_REG_MEM(i, 0x80000000ul, s2, carryset);             \
+       ADD_REG_MEM(i, 0x7ffffffful, s2, carryset);             \
+       ADD_REG_MEM(i, 0xfffffffffffffffful, s2, carryset);     \
+       ADD_REG_MEM(i, 0x8000000000000000ul, s2, carryset);     \
+       ADD_REG_MEM(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
+#define regsweep(i, s2, carryset)                              \
+({                                                             \
+       ADD_REG_REG(i, 0ul, s2, carryset);                      \
+       ADD_REG_REG(i, 1ul, s2, carryset);                      \
+       ADD_REG_REG(i, 0xfffful, s2, carryset);                 \
+       ADD_REG_REG(i, 0x7ffful, s2, carryset);                 \
+       ADD_REG_REG(i, 0x8000ul, s2, carryset);                 \
+       ADD_REG_REG(i, 0xfffffffful, s2, carryset);             \
+       ADD_REG_REG(i, 0x80000000ul, s2, carryset);             \
+       ADD_REG_REG(i, 0x7ffffffful, s2, carryset);             \
+       ADD_REG_REG(i, 0xfffffffffffffffful, s2, carryset);     \
+       ADD_REG_REG(i, 0x8000000000000000ul, s2, carryset);     \
+       ADD_REG_REG(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
+#define immsweep(i, s2, carryset)                              \
+({                                                             \
+       ADD_REG_IMM(i, 0ul, s2, carryset);                      \
+       ADD_REG_IMM(i, 1ul, s2, carryset);                      \
+       ADD_REG_IMM(i, 0xfffful, s2, carryset);                 \
+       ADD_REG_IMM(i, 0x7ffful, s2, carryset);                 \
+       ADD_REG_IMM(i, 0x8000ul, s2, carryset);                 \
+       ADD_REG_IMM(i, 0xfffffffful, s2, carryset);             \
+       ADD_REG_IMM(i, 0x80000000ul, s2, carryset);             \
+       ADD_REG_IMM(i, 0x7ffffffful, s2, carryset);             \
+       ADD_REG_IMM(i, 0xfffffffffffffffful, s2, carryset);     \
+       ADD_REG_IMM(i, 0x8000000000000000ul, s2, carryset);     \
+       ADD_REG_IMM(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
+#define memimmsweep(i, s2, carryset)                           \
+({                                                             \
+       ADD_MEM_IMM(i, 0ul, s2, carryset);                      \
+       ADD_MEM_IMM(i, 1ul, s2, carryset);                      \
+       ADD_MEM_IMM(i, 0xfffful, s2, carryset);                 \
+       ADD_MEM_IMM(i, 0x7ffful, s2, carryset);                 \
+       ADD_MEM_IMM(i, 0x8000ul, s2, carryset);                 \
+       ADD_MEM_IMM(i, 0xfffffffful, s2, carryset);             \
+       ADD_MEM_IMM(i, 0x80000000ul, s2, carryset);             \
+       ADD_MEM_IMM(i, 0x7ffffffful, s2, carryset);             \
+       ADD_MEM_IMM(i, 0xfffffffffffffffful, s2, carryset);     \
+       ADD_MEM_IMM(i, 0x8000000000000000ul, s2, carryset);     \
+       ADD_MEM_IMM(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
diff --git a/none/tests/s390x/add.stderr.exp b/none/tests/s390x/add.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/add.stdout.exp b/none/tests/s390x/add.stdout.exp
new file mode 100644 (file)
index 0000000..5b65a73
--- /dev/null
@@ -0,0 +1,3938 @@
+a 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ag 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ag 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ag 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ag 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ag 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+ag 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+ag 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ag 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+agf 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alg 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alg 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alg 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alg 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alg 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alg 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alg 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ar 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ar 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ar 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+ar 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ar 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+ar 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+agfr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agfr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agfr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agfr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+alr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+algr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+algr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+algr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+algr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+algr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+algr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+algfr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+algfr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alcg 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alcg 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alcg 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alcr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alcr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alcr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+alcr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alcgr 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alcgr 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alcgr 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 1 + 0000000000000000 + 0000000000000000 = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 0000000000000000 = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 0000000000000000 = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 0000000000000000 = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 0000000000000000 = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 0000000000000000 = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 0000000000000000 = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 0000000000000000 = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 0000000000000000 = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 0000000000000000 = 0000000000000001 (cc=1)
+alcg 1 + 0000000000000001 + 0000000000000000 = 0000000000000002 (cc=1)
+alcg 1 + 000000000000FFFF + 0000000000000000 = 0000000000010000 (cc=1)
+alcg 1 + 0000000000007FFF + 0000000000000000 = 0000000000008000 (cc=1)
+alcg 1 + 0000000000008000 + 0000000000000000 = 0000000000008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 0000000000000000 = 0000000100000000 (cc=1)
+alcg 1 + 0000000080000000 + 0000000000000000 = 0000000080000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 0000000000000000 = 0000000080000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 0000000000000000 = 0000000000000000 (cc=2)
+alcg 1 + 8000000000000000 + 0000000000000000 = 8000000000000001 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 8000000000000000 (cc=1)
+alcr 1 + 0000000000000000 + 0000000000000000 = 0000000000000001 (cc=1)
+alcr 1 + 0000000000000001 + 0000000000000000 = 0000000000000002 (cc=1)
+alcr 1 + 000000000000FFFF + 0000000000000000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000007FFF + 0000000000000000 = 0000000000008000 (cc=1)
+alcr 1 + 0000000000008000 + 0000000000000000 = 0000000000008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 0000000000000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000080000000 + 0000000000000000 = 0000000080000001 (cc=1)
+alcr 1 + 000000007FFFFFFF + 0000000000000000 = 0000000080000000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFF00000000 (cc=2)
+alcr 1 + 8000000000000000 + 0000000000000000 = 8000000000000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFF00000000 (cc=2)
+alcgr 1 + 0000000000000000 + 0000000000000000 = 0000000000000001 (cc=1)
+alcgr 1 + 0000000000000001 + 0000000000000000 = 0000000000000002 (cc=1)
+alcgr 1 + 000000000000FFFF + 0000000000000000 = 0000000000010000 (cc=1)
+alcgr 1 + 0000000000007FFF + 0000000000000000 = 0000000000008000 (cc=1)
+alcgr 1 + 0000000000008000 + 0000000000000000 = 0000000000008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 0000000000000000 = 0000000100000000 (cc=1)
+alcgr 1 + 0000000080000000 + 0000000000000000 = 0000000080000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 0000000000000000 = 0000000080000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 0000000000000000 = 0000000000000000 (cc=2)
+alcgr 1 + 8000000000000000 + 0000000000000000 = 8000000000000001 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 8000000000000000 (cc=1)
+ahy 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+a 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+a 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=3)
+a 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=3)
+a 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=3)
+a 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+a 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+a 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFE (cc=2)
+a 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=2)
+a 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE (cc=2)
+ah 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000008000 (cc=2)
+ah 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 0000000000017FFE (cc=2)
+ah 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ah 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 000000000000FFFF (cc=2)
+ah 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ah 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+ah 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=3)
+ah 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF00007FFE (cc=2)
+ah 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=2)
+ah 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF00007FFE (cc=2)
+ag 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+ag 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=3)
+ag 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=3)
+ag 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=3)
+ag 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=3)
+ag 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=3)
+ag 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=3)
+ag 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=3)
+ag 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+ag 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+agf 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=2)
+agf 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=2)
+agf 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=2)
+agf 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agf 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=3)
+al 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+al 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+al 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=1)
+al 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=1)
+al 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+al 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+al 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+al 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+alg 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+alg 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=1)
+alg 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=1)
+alg 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+alg 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alg 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alg 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agf 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=2)
+agf 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=2)
+agf 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=2)
+agf 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agf 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=3)
+algf 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+algf 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+algf 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=1)
+algf 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=1)
+algf 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+algf 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=1)
+algf 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+algf 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=1)
+ar 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ar 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ar 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ar 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ar 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ar 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ar 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ar 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+agr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+agr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=3)
+agr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=3)
+agr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=3)
+agr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=3)
+agr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=3)
+agr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=3)
+agr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=3)
+agr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+agr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+agfr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agfr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agfr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agfr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agfr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agfr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agfr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+alr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+algr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+algr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=1)
+algr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=1)
+algr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+algr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+algr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+algr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+algfr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000100000000 (cc=1)
+algfr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000010000FFFE (cc=1)
+algfr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000100007FFE (cc=1)
+algfr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000100007FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000001FFFFFFFE (cc=1)
+algfr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 000000017FFFFFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+algfr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+alc 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+alc 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+alc 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=1)
+alc 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=1)
+alc 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+alc 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alc 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+alc 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+alcg 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+alcg 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=1)
+alcg 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=1)
+alcg 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+alcg 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcg 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+alcr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alcr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alcr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alcr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alcr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcgr 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+alcgr 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFE (cc=1)
+alcgr 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFE (cc=1)
+alcgr 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+alcgr 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcgr 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+alc 1 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+alc 1 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000001 (cc=1)
+alc 1 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFF (cc=1)
+alc 1 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+alc 1 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080008000 (cc=1)
+alc 1 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alc 1 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alc 1 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFF (cc=3)
+alc 1 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 8000000080000000 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFF (cc=3)
+alcg 1 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+alcg 1 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000001 (cc=1)
+alcg 1 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFF (cc=1)
+alcg 1 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+alcg 1 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000008000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcg 1 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 8000000080000000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 1 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcg 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alcr 1 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcr 1 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000000001 (cc=3)
+alcr 1 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000000000FFFF (cc=3)
+alcr 1 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcr 1 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000000008000 (cc=3)
+alcr 1 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcr 1 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+alcr 1 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 1 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alcr 1 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=2)
+alcr 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 1 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+alcgr 1 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 8000000000000001 (cc=1)
+alcgr 1 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 800000000000FFFF (cc=1)
+alcgr 1 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=1)
+alcgr 1 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 8000000000008000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcgr 1 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 8000000080000000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 1 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000000008000 (cc=2)
+ahy 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 0000000000017FFE (cc=2)
+ahy 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ahy 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 000000000000FFFF (cc=2)
+ahy 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ahy 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+ahy 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=3)
+ahy 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF00007FFE (cc=2)
+ahy 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 8000000000007FFF (cc=2)
+ahy 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF00007FFE (cc=2)
+ay 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+ay 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+ay 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=3)
+ay 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=3)
+ay 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=3)
+ay 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ay 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+ay 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFE (cc=2)
+ay 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=2)
+ay 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE (cc=2)
+aly 0 + 0000000000000000 + 7FFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+aly 0 + 0000000000000001 + 7FFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+aly 0 + 000000000000FFFF + 7FFFFFFFFFFFFFFF = 000000008000FFFE (cc=1)
+aly 0 + 0000000000007FFF + 7FFFFFFFFFFFFFFF = 0000000080007FFE (cc=1)
+aly 0 + 0000000000008000 + 7FFFFFFFFFFFFFFF = 0000000080007FFF (cc=1)
+aly 0 + 00000000FFFFFFFF + 7FFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+aly 0 + 0000000080000000 + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 000000007FFFFFFF + 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+aly 0 + 8000000000000000 + 7FFFFFFFFFFFFFFF = 800000007FFFFFFF (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+a 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+a 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+a 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+a 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+a 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+a 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+a 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=3)
+a 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+a 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+a 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+a 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+ah 0 + 0000000000000000 + 8000000000000000 = 00000000FFFF8000 (cc=1)
+ah 0 + 0000000000000001 + 8000000000000000 = 00000000FFFF8001 (cc=1)
+ah 0 + 000000000000FFFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000007FFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000000008000 + 8000000000000000 = 0000000000000000 (cc=0)
+ah 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFF7FFF (cc=1)
+ah 0 + 0000000080000000 + 8000000000000000 = 000000007FFF8000 (cc=3)
+ah 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFF7FFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFF7FFF (cc=1)
+ah 0 + 8000000000000000 + 8000000000000000 = 80000000FFFF8000 (cc=1)
+ah 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFF7FFF (cc=1)
+ag 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+ag 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+ag 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+ag 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+ag 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+ag 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+ag 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+ag 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+ag 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+ag 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=3)
+ag 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 8000000000000000 = FFFFFFFF80000000 (cc=1)
+agf 0 + 0000000000000001 + 8000000000000000 = FFFFFFFF80000001 (cc=1)
+agf 0 + 000000000000FFFF + 8000000000000000 = FFFFFFFF8000FFFF (cc=1)
+agf 0 + 0000000000007FFF + 8000000000000000 = FFFFFFFF80007FFF (cc=1)
+agf 0 + 0000000000008000 + 8000000000000000 = FFFFFFFF80008000 (cc=1)
+agf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 000000007FFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=2)
+al 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+al 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+al 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+al 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+al 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+al 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+al 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+al 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alg 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alg 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alg 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alg 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alg 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alg 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alg 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alg 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alg 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 8000000000000000 = FFFFFFFF80000000 (cc=1)
+agf 0 + 0000000000000001 + 8000000000000000 = FFFFFFFF80000001 (cc=1)
+agf 0 + 000000000000FFFF + 8000000000000000 = FFFFFFFF8000FFFF (cc=1)
+agf 0 + 0000000000007FFF + 8000000000000000 = FFFFFFFF80007FFF (cc=1)
+agf 0 + 0000000000008000 + 8000000000000000 = FFFFFFFF80008000 (cc=1)
+agf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 000000007FFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+algf 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+algf 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+algf 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000017FFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 8000000000000000 = 0000000100000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+algf 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+ar 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=2)
+ar 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=2)
+ar 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+ar 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ar 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+ar 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+agr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+agr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+agr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+agr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+agr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+agr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+agr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+agr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+agr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=3)
+agr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agfr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=2)
+agfr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=2)
+agfr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+alr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+alr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+alr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+alr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+algr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+algr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+algr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+algr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+algr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+algr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+algr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+algr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+algfr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+algfr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alc 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+alc 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+alc 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+alc 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alc 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+alc 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alcg 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alcg 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alcg 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alcg 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alcg 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+alcr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+alcr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alcr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+alcr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alcgr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alcgr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alcgr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alc 1 + 0000000000000000 + 8000000000000000 = 0000000080000001 (cc=1)
+alc 1 + 0000000000000001 + 8000000000000000 = 0000000080000002 (cc=1)
+alc 1 + 000000000000FFFF + 8000000000000000 = 0000000080010000 (cc=1)
+alc 1 + 0000000000007FFF + 8000000000000000 = 0000000080008000 (cc=1)
+alc 1 + 0000000000008000 + 8000000000000000 = 0000000080008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 8000000000000000 = 0000000080000000 (cc=3)
+alc 1 + 0000000080000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alc 1 + 000000007FFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alc 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF80000000 (cc=3)
+alc 1 + 8000000000000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+alcg 1 + 0000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcg 1 + 0000000000000001 + 8000000000000000 = 8000000000000002 (cc=1)
+alcg 1 + 000000000000FFFF + 8000000000000000 = 8000000000010000 (cc=1)
+alcg 1 + 0000000000007FFF + 8000000000000000 = 8000000000008000 (cc=1)
+alcg 1 + 0000000000008000 + 8000000000000000 = 8000000000008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 8000000000000000 = 8000000100000000 (cc=1)
+alcg 1 + 0000000080000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 8000000000000000 = 8000000080000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = 8000000000000000 (cc=3)
+alcg 1 + 8000000000000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alcg 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000000000000 + 8000000000000000 = 0000000000000001 (cc=1)
+alcr 1 + 0000000000000001 + 8000000000000000 = 0000000000000002 (cc=1)
+alcr 1 + 000000000000FFFF + 8000000000000000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000007FFF + 8000000000000000 = 0000000000008000 (cc=1)
+alcr 1 + 0000000000008000 + 8000000000000000 = 0000000000008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000080000000 + 8000000000000000 = 0000000080000001 (cc=1)
+alcr 1 + 000000007FFFFFFF + 8000000000000000 = 0000000080000000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF00000000 (cc=2)
+alcr 1 + 8000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF00000000 (cc=2)
+alcgr 1 + 0000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcgr 1 + 0000000000000001 + 8000000000000000 = 8000000000000002 (cc=1)
+alcgr 1 + 000000000000FFFF + 8000000000000000 = 8000000000010000 (cc=1)
+alcgr 1 + 0000000000007FFF + 8000000000000000 = 8000000000008000 (cc=1)
+alcgr 1 + 0000000000008000 + 8000000000000000 = 8000000000008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 8000000000000000 = 8000000100000000 (cc=1)
+alcgr 1 + 0000000080000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 8000000000000000 = 8000000080000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = 8000000000000000 (cc=3)
+alcgr 1 + 8000000000000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+ahy 0 + 0000000000000000 + 8000000000000000 = 00000000FFFF8000 (cc=1)
+ahy 0 + 0000000000000001 + 8000000000000000 = 00000000FFFF8001 (cc=1)
+ahy 0 + 000000000000FFFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000007FFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000000008000 + 8000000000000000 = 0000000000000000 (cc=0)
+ahy 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFF7FFF (cc=1)
+ahy 0 + 0000000080000000 + 8000000000000000 = 000000007FFF8000 (cc=3)
+ahy 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFF7FFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFF7FFF (cc=1)
+ahy 0 + 8000000000000000 + 8000000000000000 = 80000000FFFF8000 (cc=1)
+ahy 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFF7FFF (cc=1)
+ay 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+ay 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+ay 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+ay 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+ay 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+ay 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+ay 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=3)
+ay 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+ay 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+ay 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+aly 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+aly 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+aly 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+aly 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+aly 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+aly 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+aly 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+a 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+a 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+a 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+a 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+a 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+a 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+a 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+a 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+a 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+ah 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ah 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ah 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ah 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ah 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ah 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ah 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ah 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ah 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+ag 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ag 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ag 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ag 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ag 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+ag 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+ag 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ag 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+ag 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+agf 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agf 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agf 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agf 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agf 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+al 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+al 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+al 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+al 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+al 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+al 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+al 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+al 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+al 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alg 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alg 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alg 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alg 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alg 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alg 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alg 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alg 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alg 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alg 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+agf 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agf 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agf 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agf 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agf 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+algf 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000100000000 (cc=1)
+algf 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000010000FFFE (cc=1)
+algf 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000100007FFE (cc=1)
+algf 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000100007FFF (cc=1)
+algf 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000001FFFFFFFE (cc=1)
+algf 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000017FFFFFFF (cc=1)
+algf 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+algf 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+ar 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ar 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ar 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ar 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ar 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ar 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ar 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ar 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+agr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+agfr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agfr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agfr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agfr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agfr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agfr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agfr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+alr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+algr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+algr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+algr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+algr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+algr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+algr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+algr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+algr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+algr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+algr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+algfr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000100000000 (cc=1)
+algfr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000010000FFFE (cc=1)
+algfr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000100007FFE (cc=1)
+algfr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000100007FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000001FFFFFFFE (cc=1)
+algfr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000017FFFFFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000017FFFFFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+algfr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 80000000FFFFFFFE (cc=1)
+alc 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alc 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alc 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alc 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alc 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alc 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alc 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alc 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alc 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcg 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcg 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alcg 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alcg 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcg 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcg 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcg 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alcg 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alcg 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alcr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alcr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alcr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alcr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcgr 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcgr 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+alcgr 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+alcgr 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcgr 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcgr 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcgr 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+alcgr 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alcgr 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alc 1 + 0000000000000000 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alc 1 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000001 (cc=3)
+alc 1 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=3)
+alc 1 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alc 1 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000008000 (cc=3)
+alc 1 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=3)
+alc 1 + 0000000080000000 + FFFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+alc 1 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alc 1 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alc 1 + 8000000000000000 + FFFFFFFFFFFFFFFF = 8000000000000000 (cc=2)
+alc 1 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 1 + 0000000000000000 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcg 1 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000001 (cc=3)
+alcg 1 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=3)
+alcg 1 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcg 1 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000008000 (cc=3)
+alcg 1 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcg 1 + 0000000080000000 + FFFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+alcg 1 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcg 1 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alcg 1 + 8000000000000000 + FFFFFFFFFFFFFFFF = 8000000000000000 (cc=3)
+alcg 1 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcr 1 + 0000000000000000 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcr 1 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000001 (cc=3)
+alcr 1 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=3)
+alcr 1 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcr 1 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000008000 (cc=3)
+alcr 1 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcr 1 + 0000000080000000 + FFFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+alcr 1 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 1 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alcr 1 + 8000000000000000 + FFFFFFFFFFFFFFFF = 8000000000000000 (cc=2)
+alcr 1 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 1 + 0000000000000000 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+alcgr 1 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000001 (cc=3)
+alcgr 1 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=3)
+alcgr 1 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+alcgr 1 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000008000 (cc=3)
+alcgr 1 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcgr 1 + 0000000080000000 + FFFFFFFFFFFFFFFF = 0000000080000000 (cc=3)
+alcgr 1 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+alcgr 1 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alcgr 1 + 8000000000000000 + FFFFFFFFFFFFFFFF = 8000000000000000 (cc=3)
+alcgr 1 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+ahy 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ahy 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ahy 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ahy 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ahy 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ahy 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ahy 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ahy 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ahy 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+ay 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ay 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ay 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ay 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ay 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ay 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ay 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ay 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ay 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+aly 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+aly 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+aly 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+aly 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+aly 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+aly 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+aly 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+aly 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+aly 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+a 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+a 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=3)
+a 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=3)
+a 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=3)
+a 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=3)
+a 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+a 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+a 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+a 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFE (cc=2)
+a 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=2)
+a 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE (cc=2)
+ah 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000008000 (cc=2)
+ah 0 + 000000000000FFFF + 7FFFFFFF00000000 = 0000000000017FFE (cc=2)
+ah 0 + 0000000000007FFF + 7FFFFFFF00000000 = 000000000000FFFE (cc=2)
+ah 0 + 0000000000008000 + 7FFFFFFF00000000 = 000000000000FFFF (cc=2)
+ah 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 0000000000007FFE (cc=2)
+ah 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+ah 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=3)
+ah 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF00007FFE (cc=2)
+ah 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000007FFF (cc=2)
+ah 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFE (cc=2)
+ag 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=2)
+ag 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=2)
+ag 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=2)
+ag 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=2)
+ag 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=2)
+ag 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=2)
+ag 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=2)
+ag 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=2)
+ag 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+agf 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=2)
+agf 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=2)
+agf 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=2)
+agf 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000017FFFFFFE (cc=2)
+agf 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+agf 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 800000007FFFFFFE (cc=3)
+al 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+al 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+al 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=1)
+al 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=1)
+al 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+al 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+al 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+al 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFE (cc=3)
+al 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE (cc=3)
+alg 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+alg 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+alg 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+alg 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+alg 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+alg 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+alg 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=2)
+agf 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=2)
+agf 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=2)
+agf 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000017FFFFFFE (cc=2)
+agf 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+agf 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 800000007FFFFFFE (cc=3)
+algf 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+algf 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+algf 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=1)
+algf 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=1)
+algf 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+algf 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000017FFFFFFE (cc=1)
+algf 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+algf 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 800000007FFFFFFE (cc=1)
+ar 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ar 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000001 (cc=2)
+ar 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008000 (cc=2)
+ar 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+ar 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ar 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+ar 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=2)
+agr 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=2)
+agr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=2)
+agr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=2)
+agr 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=2)
+agr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=2)
+agr 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=2)
+agr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=2)
+agr 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+agfr 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+agfr 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000001 (cc=2)
+agfr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=2)
+agfr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alr 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+alr 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+alr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+alr 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+alr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alr 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+alr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+algr 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+algr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+algr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+algr 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+algr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+algr 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+algfr 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+algfr 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+algfr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+alc 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+alc 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=1)
+alc 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=1)
+alc 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+alc 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+alc 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFE (cc=3)
+alc 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE (cc=3)
+alcg 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+alcg 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+alcg 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+alcg 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+alcg 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+alcr 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+alcr 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+alcr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+alcr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+alcr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+alcgr 0 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+alcgr 0 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+alcgr 0 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+alcgr 0 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+alc 1 + 0000000000000000 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+alc 1 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000001 (cc=1)
+alc 1 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFF (cc=1)
+alc 1 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+alc 1 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080008000 (cc=1)
+alc 1 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+alc 1 + 0000000080000000 + 7FFFFFFF00000000 = 0000000000000000 (cc=2)
+alc 1 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=3)
+alc 1 + 8000000000000000 + 7FFFFFFF00000000 = 8000000080000000 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alcg 1 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+alcg 1 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000002 (cc=1)
+alcg 1 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF00010000 (cc=1)
+alcg 1 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+alcg 1 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 8000000000000000 (cc=1)
+alcg 1 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alcg 1 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alcr 1 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+alcr 1 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000000002 (cc=1)
+alcr 1 + 000000000000FFFF + 7FFFFFFF00000000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+alcr 1 + 0000000000008000 + 7FFFFFFF00000000 = 0000000000008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080000001 (cc=1)
+alcr 1 + 000000007FFFFFFF + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=2)
+alcr 1 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=2)
+alcgr 1 + 0000000000000000 + 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+alcgr 1 + 0000000000000001 + 7FFFFFFF00000000 = 7FFFFFFF00000002 (cc=1)
+alcgr 1 + 000000000000FFFF + 7FFFFFFF00000000 = 7FFFFFFF00010000 (cc=1)
+alcgr 1 + 0000000000007FFF + 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+alcgr 1 + 0000000000008000 + 7FFFFFFF00000000 = 7FFFFFFF00008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 8000000000000000 (cc=1)
+alcgr 1 + 0000000080000000 + 7FFFFFFF00000000 = 7FFFFFFF80000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alcgr 1 + 8000000000000000 + 7FFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ahy 0 + 0000000000000000 + 7FFFFFFF00000000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000000008000 (cc=2)
+ahy 0 + 000000000000FFFF + 7FFFFFFF00000000 = 0000000000017FFE (cc=2)
+ahy 0 + 0000000000007FFF + 7FFFFFFF00000000 = 000000000000FFFE (cc=2)
+ahy 0 + 0000000000008000 + 7FFFFFFF00000000 = 000000000000FFFF (cc=2)
+ahy 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 0000000000007FFE (cc=2)
+ahy 0 + 0000000080000000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+ahy 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=3)
+ahy 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF00007FFE (cc=2)
+ahy 0 + 8000000000000000 + 7FFFFFFF00000000 = 8000000000007FFF (cc=2)
+ahy 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF00007FFE (cc=2)
+ay 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+ay 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=3)
+ay 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=3)
+ay 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=3)
+ay 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=3)
+ay 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+ay 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+ay 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFE (cc=2)
+ay 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=2)
+ay 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE (cc=2)
+aly 0 + 0000000000000000 + 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+aly 0 + 0000000000000001 + 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+aly 0 + 000000000000FFFF + 7FFFFFFF00000000 = 000000008000FFFE (cc=1)
+aly 0 + 0000000000007FFF + 7FFFFFFF00000000 = 0000000080007FFE (cc=1)
+aly 0 + 0000000000008000 + 7FFFFFFF00000000 = 0000000080007FFF (cc=1)
+aly 0 + 00000000FFFFFFFF + 7FFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+aly 0 + 0000000080000000 + 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + 000000007FFFFFFF + 7FFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 7FFFFFFF00000000 = FFFFFFFF7FFFFFFE (cc=3)
+aly 0 + 8000000000000000 + 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE (cc=3)
+a 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+a 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+a 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+a 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+a 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+a 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+a 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=3)
+a 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+a 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+a 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+a 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+ah 0 + 0000000000000000 + 8000000000000000 = 00000000FFFF8000 (cc=1)
+ah 0 + 0000000000000001 + 8000000000000000 = 00000000FFFF8001 (cc=1)
+ah 0 + 000000000000FFFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000007FFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000000008000 + 8000000000000000 = 0000000000000000 (cc=0)
+ah 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFF7FFF (cc=1)
+ah 0 + 0000000080000000 + 8000000000000000 = 000000007FFF8000 (cc=3)
+ah 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFF7FFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFF7FFF (cc=1)
+ah 0 + 8000000000000000 + 8000000000000000 = 80000000FFFF8000 (cc=1)
+ah 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFF7FFF (cc=1)
+ag 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+ag 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+ag 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+ag 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+ag 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+ag 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+ag 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+ag 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+ag 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+ag 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=3)
+ag 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 8000000000000000 = FFFFFFFF80000000 (cc=1)
+agf 0 + 0000000000000001 + 8000000000000000 = FFFFFFFF80000001 (cc=1)
+agf 0 + 000000000000FFFF + 8000000000000000 = FFFFFFFF8000FFFF (cc=1)
+agf 0 + 0000000000007FFF + 8000000000000000 = FFFFFFFF80007FFF (cc=1)
+agf 0 + 0000000000008000 + 8000000000000000 = FFFFFFFF80008000 (cc=1)
+agf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 000000007FFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=2)
+al 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+al 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+al 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+al 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+al 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+al 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+al 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+al 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alg 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alg 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alg 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alg 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alg 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alg 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alg 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alg 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alg 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 8000000000000000 = FFFFFFFF80000000 (cc=1)
+agf 0 + 0000000000000001 + 8000000000000000 = FFFFFFFF80000001 (cc=1)
+agf 0 + 000000000000FFFF + 8000000000000000 = FFFFFFFF8000FFFF (cc=1)
+agf 0 + 0000000000007FFF + 8000000000000000 = FFFFFFFF80007FFF (cc=1)
+agf 0 + 0000000000008000 + 8000000000000000 = FFFFFFFF80008000 (cc=1)
+agf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agf 0 + 000000007FFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+algf 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+algf 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+algf 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 8000000000000000 = 000000017FFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 8000000000000000 = 0000000100000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+algf 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+ar 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=2)
+ar 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=2)
+ar 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+ar 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ar 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+ar 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+agr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+agr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+agr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+agr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+agr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+agr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+agr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+agr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+agr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=3)
+agr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+agfr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=2)
+agfr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=2)
+agfr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+alr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+alr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+alr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+alr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+algr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+algr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+algr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+algr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+algr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+algr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+algr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+algr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+algfr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+algfr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alc 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+alc 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+alc 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+alc 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alc 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+alc 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alcg 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alcg 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alcg 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alcg 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alcg 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 0000000000000000 + 8000000000000000 = 0000000000000000 (cc=0)
+alcr 0 + 0000000000000001 + 8000000000000000 = 0000000000000001 (cc=1)
+alcr 0 + 000000000000FFFF + 8000000000000000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + 8000000000000000 = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000008000 + 8000000000000000 = 0000000000008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000080000000 + 8000000000000000 = 0000000080000000 (cc=1)
+alcr 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 8000000000000000 + 8000000000000000 = 8000000000000000 (cc=0)
+alcr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000000 + 8000000000000000 = 8000000000000000 (cc=1)
+alcgr 0 + 0000000000000001 + 8000000000000000 = 8000000000000001 (cc=1)
+alcgr 0 + 000000000000FFFF + 8000000000000000 = 800000000000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + 8000000000000000 = 8000000000007FFF (cc=1)
+alcgr 0 + 0000000000008000 + 8000000000000000 = 8000000000008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 8000000000000000 = 80000000FFFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + 8000000000000000 = 8000000080000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 8000000000000000 = 800000007FFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 0 + 8000000000000000 + 8000000000000000 = 0000000000000000 (cc=2)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alc 1 + 0000000000000000 + 8000000000000000 = 0000000080000001 (cc=1)
+alc 1 + 0000000000000001 + 8000000000000000 = 0000000080000002 (cc=1)
+alc 1 + 000000000000FFFF + 8000000000000000 = 0000000080010000 (cc=1)
+alc 1 + 0000000000007FFF + 8000000000000000 = 0000000080008000 (cc=1)
+alc 1 + 0000000000008000 + 8000000000000000 = 0000000080008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 8000000000000000 = 0000000080000000 (cc=3)
+alc 1 + 0000000080000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alc 1 + 000000007FFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alc 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF80000000 (cc=3)
+alc 1 + 8000000000000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF80000000 (cc=3)
+alcg 1 + 0000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcg 1 + 0000000000000001 + 8000000000000000 = 8000000000000002 (cc=1)
+alcg 1 + 000000000000FFFF + 8000000000000000 = 8000000000010000 (cc=1)
+alcg 1 + 0000000000007FFF + 8000000000000000 = 8000000000008000 (cc=1)
+alcg 1 + 0000000000008000 + 8000000000000000 = 8000000000008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 8000000000000000 = 8000000100000000 (cc=1)
+alcg 1 + 0000000080000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 8000000000000000 = 8000000080000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = 8000000000000000 (cc=3)
+alcg 1 + 8000000000000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alcg 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000000000000 + 8000000000000000 = 0000000000000001 (cc=1)
+alcr 1 + 0000000000000001 + 8000000000000000 = 0000000000000002 (cc=1)
+alcr 1 + 000000000000FFFF + 8000000000000000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000007FFF + 8000000000000000 = 0000000000008000 (cc=1)
+alcr 1 + 0000000000008000 + 8000000000000000 = 0000000000008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000080000000 + 8000000000000000 = 0000000080000001 (cc=1)
+alcr 1 + 000000007FFFFFFF + 8000000000000000 = 0000000080000000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF00000000 (cc=2)
+alcr 1 + 8000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF00000000 (cc=2)
+alcgr 1 + 0000000000000000 + 8000000000000000 = 8000000000000001 (cc=1)
+alcgr 1 + 0000000000000001 + 8000000000000000 = 8000000000000002 (cc=1)
+alcgr 1 + 000000000000FFFF + 8000000000000000 = 8000000000010000 (cc=1)
+alcgr 1 + 0000000000007FFF + 8000000000000000 = 8000000000008000 (cc=1)
+alcgr 1 + 0000000000008000 + 8000000000000000 = 8000000000008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 8000000000000000 = 8000000100000000 (cc=1)
+alcgr 1 + 0000000080000000 + 8000000000000000 = 8000000080000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 8000000000000000 = 8000000080000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 8000000000000000 = 8000000000000000 (cc=3)
+alcgr 1 + 8000000000000000 + 8000000000000000 = 0000000000000001 (cc=3)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 0000000000000000 (cc=2)
+ahy 0 + 0000000000000000 + 8000000000000000 = 00000000FFFF8000 (cc=1)
+ahy 0 + 0000000000000001 + 8000000000000000 = 00000000FFFF8001 (cc=1)
+ahy 0 + 000000000000FFFF + 8000000000000000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000007FFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000000008000 + 8000000000000000 = 0000000000000000 (cc=0)
+ahy 0 + 00000000FFFFFFFF + 8000000000000000 = 00000000FFFF7FFF (cc=1)
+ahy 0 + 0000000080000000 + 8000000000000000 = 000000007FFF8000 (cc=3)
+ahy 0 + 000000007FFFFFFF + 8000000000000000 = 000000007FFF7FFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFFFFFF7FFF (cc=1)
+ahy 0 + 8000000000000000 + 8000000000000000 = 80000000FFFF8000 (cc=1)
+ahy 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFFFFFF7FFF (cc=1)
+ay 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+ay 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+ay 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+ay 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+ay 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+ay 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+ay 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=3)
+ay 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+ay 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+ay 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+aly 0 + 0000000000000000 + 8000000000000000 = 0000000080000000 (cc=1)
+aly 0 + 0000000000000001 + 8000000000000000 = 0000000080000001 (cc=1)
+aly 0 + 000000000000FFFF + 8000000000000000 = 000000008000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 8000000000000000 = 0000000080007FFF (cc=1)
+aly 0 + 0000000000008000 + 8000000000000000 = 0000000080008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 8000000000000000 = 000000007FFFFFFF (cc=3)
+aly 0 + 0000000080000000 + 8000000000000000 = 0000000000000000 (cc=2)
+aly 0 + 000000007FFFFFFF + 8000000000000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 8000000000000000 = FFFFFFFF7FFFFFFF (cc=3)
+aly 0 + 8000000000000000 + 8000000000000000 = 8000000080000000 (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + 8000000000000000 = 7FFFFFFF7FFFFFFF (cc=3)
+a 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+a 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+a 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+a 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+a 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+a 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+a 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+a 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+a 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=1)
+ah 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ah 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+ah 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+ah 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+ah 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+ah 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+ah 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+ah 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+ah 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=1)
+ag 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ag 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+ag 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+ag 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+ag 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+ag 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+ag 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+ag 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+ag 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+ag 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=2)
+agf 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+agf 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+agf 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+agf 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=2)
+agf 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+agf 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=2)
+al 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+al 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=3)
+al 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=3)
+al 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=3)
+al 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+al 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+al 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+al 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=3)
+al 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+al 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=3)
+alg 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alg 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alg 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+alg 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+alg 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+alg 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+alg 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alg 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+agf 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+agf 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+agf 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+agf 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+agf 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=2)
+agf 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agf 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+agf 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=3)
+agf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=2)
+algf 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000100000000 (cc=1)
+algf 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000010000FFFE (cc=1)
+algf 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000100007FFE (cc=1)
+algf 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000100007FFF (cc=1)
+algf 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000001FFFFFFFE (cc=1)
+algf 0 + 0000000080000000 + FFFFFFFF00000000 = 000000017FFFFFFF (cc=1)
+algf 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000017FFFFFFE (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+algf 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 80000000FFFFFFFE (cc=1)
+ar 0 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ar 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=2)
+ar 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=2)
+ar 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=1)
+ar 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ar 0 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=0)
+ar 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+agr 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+agr 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+agr 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+agr 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+agr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+agr 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+agr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+agr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=1)
+agr 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+agr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=2)
+agfr 0 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+agfr 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=2)
+agfr 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=2)
+agfr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alr 0 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+alr 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=1)
+alr 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+alr 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=1)
+alr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alr 0 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=0)
+alr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+algr 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+algr 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+algr 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+algr 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+algr 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+algr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+algr 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+algr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+algfr 0 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+algfr 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=1)
+algfr 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfr 0 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alc 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+alc 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=3)
+alc 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=3)
+alc 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=3)
+alc 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+alc 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+alc 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+alc 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=3)
+alc 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+alc 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=3)
+alcg 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alcg 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcg 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+alcg 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+alcg 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alcg 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+alcr 0 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+alcr 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=1)
+alcr 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=1)
+alcr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcr 0 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=0)
+alcr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+alcgr 0 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcgr 0 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+alcgr 0 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFEFFFFFFFF (cc=3)
+alcgr 0 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alcgr 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFEFFFFFFFF (cc=3)
+alc 1 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+alc 1 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000001 (cc=3)
+alc 1 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFF (cc=3)
+alc 1 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFF (cc=3)
+alc 1 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008000 (cc=3)
+alc 1 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=3)
+alc 1 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000000 (cc=3)
+alc 1 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+alc 1 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=3)
+alc 1 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000000 (cc=2)
+alc 1 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=3)
+alcg 1 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcg 1 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000002 (cc=1)
+alcg 1 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF00010000 (cc=1)
+alcg 1 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+alcg 1 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+alcg 1 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=3)
+alcg 1 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000001 (cc=3)
+alcg 1 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+alcr 1 + 0000000000000000 + FFFFFFFF00000000 = 0000000000000001 (cc=1)
+alcr 1 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000002 (cc=1)
+alcr 1 + 000000000000FFFF + FFFFFFFF00000000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000008000 (cc=1)
+alcr 1 + 0000000000008000 + FFFFFFFF00000000 = 0000000000008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+alcr 1 + 0000000080000000 + FFFFFFFF00000000 = 0000000080000001 (cc=1)
+alcr 1 + 000000007FFFFFFF + FFFFFFFF00000000 = 0000000080000000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=2)
+alcr 1 + 8000000000000000 + FFFFFFFF00000000 = 8000000000000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=2)
+alcgr 1 + 0000000000000000 + FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+alcgr 1 + 0000000000000001 + FFFFFFFF00000000 = FFFFFFFF00000002 (cc=1)
+alcgr 1 + 000000000000FFFF + FFFFFFFF00000000 = FFFFFFFF00010000 (cc=1)
+alcgr 1 + 0000000000007FFF + FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+alcgr 1 + 0000000000008000 + FFFFFFFF00000000 = FFFFFFFF00008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+alcgr 1 + 0000000080000000 + FFFFFFFF00000000 = FFFFFFFF80000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFF00000000 (cc=3)
+alcgr 1 + 8000000000000000 + FFFFFFFF00000000 = 7FFFFFFF00000001 (cc=3)
+alcgr 1 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=3)
+ahy 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ahy 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+ahy 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+ahy 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+ahy 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+ahy 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+ahy 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+ahy 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+ahy 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=1)
+ay 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ay 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=2)
+ay 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=2)
+ay 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=2)
+ay 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+ay 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+ay 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=1)
+ay 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+ay 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=1)
+aly 0 + 0000000000000000 + FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000000000001 + FFFFFFFF00000000 = 0000000000000000 (cc=2)
+aly 0 + 000000000000FFFF + FFFFFFFF00000000 = 000000000000FFFE (cc=3)
+aly 0 + 0000000000007FFF + FFFFFFFF00000000 = 0000000000007FFE (cc=3)
+aly 0 + 0000000000008000 + FFFFFFFF00000000 = 0000000000007FFF (cc=3)
+aly 0 + 00000000FFFFFFFF + FFFFFFFF00000000 = 00000000FFFFFFFE (cc=3)
+aly 0 + 0000000080000000 + FFFFFFFF00000000 = 000000007FFFFFFF (cc=3)
+aly 0 + 000000007FFFFFFF + FFFFFFFF00000000 = 000000007FFFFFFE (cc=3)
+aly 0 + FFFFFFFFFFFFFFFF + FFFFFFFF00000000 = FFFFFFFFFFFFFFFE (cc=3)
+aly 0 + 8000000000000000 + FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+aly 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE (cc=3)
+a 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+ag 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+ag 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=2)
+ag 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=2)
+ag 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=2)
+ag 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=2)
+ag 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+ag 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+ag 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=3)
+agf 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alg 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alg 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alg 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alg 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+alg 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alg 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alg 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
+agf 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+ar 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=3)
+ar 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=3)
+ar 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=3)
+ar 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=3)
+ar 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+ar 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ar 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=3)
+ar 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFE (cc=2)
+ar 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=2)
+ar 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFE (cc=2)
+agr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+agr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+agr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=2)
+agr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=2)
+agr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=2)
+agr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=2)
+agr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+agr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+agr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=3)
+agfr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+agfr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+agfr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=2)
+agfr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=2)
+agfr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=2)
+agfr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+agfr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=3)
+alr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+alr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+algr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+algr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+algr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+algr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+algr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+algr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+algr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+algr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
+algfr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+algfr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+algfr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+algfr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+algfr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+algfr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+algfr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
+alc 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alcg 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcg 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alcg 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alcg 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+alcg 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alcg 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
+alcr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alcr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alcr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alcr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alcr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+alcr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+alcgr 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alcgr 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcgr 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alcgr 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alcgr 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+alcgr 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alcgr 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
+alc 1 + 0000000000000000 + 000000007FFFFFFF = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 000000007FFFFFFF = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 000000007FFFFFFF = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 000000007FFFFFFF = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 000000007FFFFFFF = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 000000007FFFFFFF = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 000000007FFFFFFF = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 000000007FFFFFFF = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcg 1 + 0000000000000001 + 000000007FFFFFFF = 0000000080000001 (cc=1)
+alcg 1 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFF (cc=1)
+alcg 1 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcg 1 + 0000000000008000 + 000000007FFFFFFF = 0000000080008000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFF (cc=1)
+alcg 1 + 0000000080000000 + 000000007FFFFFFF = 0000000100000000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=3)
+alcg 1 + 8000000000000000 + 000000007FFFFFFF = 8000000080000000 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alcr 1 + 0000000000000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcr 1 + 0000000000000001 + 000000007FFFFFFF = 0000000080000001 (cc=1)
+alcr 1 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFF (cc=1)
+alcr 1 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcr 1 + 0000000000008000 + 000000007FFFFFFF = 0000000080008000 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 1 + 0000000080000000 + 000000007FFFFFFF = 0000000000000000 (cc=2)
+alcr 1 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFF (cc=3)
+alcr 1 + 8000000000000000 + 000000007FFFFFFF = 8000000080000000 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFF (cc=3)
+alcgr 1 + 0000000000000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alcgr 1 + 0000000000000001 + 000000007FFFFFFF = 0000000080000001 (cc=1)
+alcgr 1 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFF (cc=1)
+alcgr 1 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alcgr 1 + 0000000000008000 + 000000007FFFFFFF = 0000000080008000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFF (cc=1)
+alcgr 1 + 0000000080000000 + 000000007FFFFFFF = 0000000100000000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=3)
+alcgr 1 + 8000000000000000 + 000000007FFFFFFF = 8000000080000000 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+ahy 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 000000007FFFFFFF = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 000000007FFFFFFF = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 000000007FFFFFFF = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 000000007FFFFFFF = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 000000007FFFFFFF = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=2)
+ag 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=2)
+ag 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=2)
+ag 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=2)
+ag 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=2)
+ag 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=2)
+ag 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=2)
+ag 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+ag 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=3)
+agf 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alg 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alg 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alg 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alg 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+alg 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+alg 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alg 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+agf 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+ar 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+ar 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+ar 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+ar 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+ar 0 + 00000000FFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+ar 0 + 0000000080000000 + 0000000080000000 = 0000000000000000 (cc=3)
+ar 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ar 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF7FFFFFFF (cc=3)
+ar 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+ar 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF7FFFFFFF (cc=3)
+agr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=2)
+agr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=2)
+agr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=2)
+agr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=2)
+agr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=2)
+agr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=2)
+agr 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=2)
+agr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+agr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=3)
+agfr 0 + 0000000000000000 + 0000000080000000 = FFFFFFFF80000000 (cc=1)
+agfr 0 + 0000000000000001 + 0000000080000000 = FFFFFFFF80000001 (cc=1)
+agfr 0 + 000000000000FFFF + 0000000080000000 = FFFFFFFF8000FFFF (cc=1)
+agfr 0 + 0000000000007FFF + 0000000080000000 = FFFFFFFF80007FFF (cc=1)
+agfr 0 + 0000000000008000 + 0000000080000000 = FFFFFFFF80008000 (cc=1)
+agfr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+agfr 0 + 0000000080000000 + 0000000080000000 = 0000000000000000 (cc=0)
+agfr 0 + 000000007FFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF7FFFFFFF (cc=1)
+agfr 0 + 8000000000000000 + 0000000080000000 = 7FFFFFFF80000000 (cc=3)
+agfr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF7FFFFFFF (cc=2)
+alr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alr 0 + 0000000080000000 + 0000000080000000 = 0000000000000000 (cc=2)
+alr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF7FFFFFFF (cc=3)
+alr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF7FFFFFFF (cc=3)
+algr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+algr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+algr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+algr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+algr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+algr 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+algr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+algr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+algfr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+algfr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+algfr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+algfr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+algfr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+algfr 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+algfr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+alc 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alcg 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alcg 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alcg 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alcg 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+alcg 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alcg 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+alcr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alcr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alcr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alcr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alcr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alcr 0 + 0000000080000000 + 0000000080000000 = 0000000000000000 (cc=2)
+alcr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF7FFFFFFF (cc=3)
+alcr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alcgr 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alcgr 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alcgr 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alcgr 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alcgr 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+alcgr 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alcgr 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+alc 1 + 0000000000000000 + 0000000080000000 = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 0000000080000000 = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 0000000080000000 = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 0000000080000000 = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 0000000080000000 = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 0000000080000000 = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 0000000080000000 = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 0000000080000000 = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 0000000080000000 = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 0000000080000000 = 0000000080000001 (cc=1)
+alcg 1 + 0000000000000001 + 0000000080000000 = 0000000080000002 (cc=1)
+alcg 1 + 000000000000FFFF + 0000000080000000 = 0000000080010000 (cc=1)
+alcg 1 + 0000000000007FFF + 0000000080000000 = 0000000080008000 (cc=1)
+alcg 1 + 0000000000008000 + 0000000080000000 = 0000000080008001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 0000000080000000 = 0000000180000000 (cc=1)
+alcg 1 + 0000000080000000 + 0000000080000000 = 0000000100000001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 0000000080000000 = 0000000100000000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 0000000080000000 = 0000000080000000 (cc=3)
+alcg 1 + 8000000000000000 + 0000000080000000 = 8000000080000001 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 8000000080000000 (cc=1)
+alcr 1 + 0000000000000000 + 0000000080000000 = 0000000080000001 (cc=1)
+alcr 1 + 0000000000000001 + 0000000080000000 = 0000000080000002 (cc=1)
+alcr 1 + 000000000000FFFF + 0000000080000000 = 0000000080010000 (cc=1)
+alcr 1 + 0000000000007FFF + 0000000080000000 = 0000000080008000 (cc=1)
+alcr 1 + 0000000000008000 + 0000000080000000 = 0000000080008001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 0000000080000000 = 0000000080000000 (cc=3)
+alcr 1 + 0000000080000000 + 0000000080000000 = 0000000000000001 (cc=3)
+alcr 1 + 000000007FFFFFFF + 0000000080000000 = 0000000000000000 (cc=2)
+alcr 1 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF80000000 (cc=3)
+alcr 1 + 8000000000000000 + 0000000080000000 = 8000000080000001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF80000000 (cc=3)
+alcgr 1 + 0000000000000000 + 0000000080000000 = 0000000080000001 (cc=1)
+alcgr 1 + 0000000000000001 + 0000000080000000 = 0000000080000002 (cc=1)
+alcgr 1 + 000000000000FFFF + 0000000080000000 = 0000000080010000 (cc=1)
+alcgr 1 + 0000000000007FFF + 0000000080000000 = 0000000080008000 (cc=1)
+alcgr 1 + 0000000000008000 + 0000000080000000 = 0000000080008001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 0000000080000000 = 0000000180000000 (cc=1)
+alcgr 1 + 0000000080000000 + 0000000080000000 = 0000000100000001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 0000000080000000 = 0000000100000000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 0000000080000000 = 0000000080000000 (cc=3)
+alcgr 1 + 8000000000000000 + 0000000080000000 = 8000000080000001 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 8000000080000000 (cc=1)
+ahy 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 0000000080000000 = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 0000000080000000 = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 0000000080000000 = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 0000000080000000 = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 0000000080000000 = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 0000000080000000 = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 0000000080000000 = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=2)
+ag 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=2)
+ag 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=2)
+ag 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=2)
+ag 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=2)
+ag 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=2)
+ag 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=2)
+ag 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=2)
+ag 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=3)
+agf 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alg 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+alg 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+alg 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+alg 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+alg 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+alg 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alg 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+agf 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ar 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ar 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFE (cc=2)
+ar 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+ar 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=1)
+ar 0 + 0000000080000000 + 00000000FFFFFFFF = 000000007FFFFFFF (cc=3)
+ar 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFE (cc=2)
+ar 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ar 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+ar 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+agr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=2)
+agr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=2)
+agr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=2)
+agr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=2)
+agr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=2)
+agr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=2)
+agr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=2)
+agr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=2)
+agr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=3)
+agfr 0 + 0000000000000000 + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agfr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+agfr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFE (cc=2)
+agfr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFE (cc=2)
+agfr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=2)
+agfr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agfr 0 + 8000000000000000 + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agfr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+alr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000000 (cc=2)
+alr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFE (cc=3)
+alr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFE (cc=3)
+alr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000007FFF (cc=3)
+alr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000007FFFFFFF (cc=3)
+alr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFE (cc=3)
+alr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+algr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+algr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+algr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+algr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+algr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+algr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+algr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+algr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+algfr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+algfr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+algfr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+algfr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+algfr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+algfr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+algfr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+alc 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alcg 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+alcg 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+alcg 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+alcg 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+alcg 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcg 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+alcr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alcr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000000 (cc=2)
+alcr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFE (cc=3)
+alcr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFE (cc=3)
+alcr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000007FFF (cc=3)
+alcr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFE (cc=3)
+alcr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alcr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alcgr 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alcgr 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+alcgr 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+alcgr 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+alcgr 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+alcgr 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alcgr 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+alc 1 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 00000000FFFFFFFF = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 00000000FFFFFFFF = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+alcg 1 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000001 (cc=1)
+alcg 1 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFF (cc=1)
+alcg 1 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+alcg 1 + 0000000000008000 + 00000000FFFFFFFF = 0000000100008000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFF (cc=1)
+alcg 1 + 0000000080000000 + 00000000FFFFFFFF = 0000000180000000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcg 1 + 8000000000000000 + 00000000FFFFFFFF = 8000000100000000 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alcr 1 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=2)
+alcr 1 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=3)
+alcr 1 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=3)
+alcr 1 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=3)
+alcr 1 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=3)
+alcr 1 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcr 1 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=3)
+alcr 1 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=3)
+alcr 1 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=3)
+alcr 1 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=2)
+alcr 1 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+alcgr 1 + 0000000000000000 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+alcgr 1 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000001 (cc=1)
+alcgr 1 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFF (cc=1)
+alcgr 1 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+alcgr 1 + 0000000000008000 + 00000000FFFFFFFF = 0000000100008000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFF (cc=1)
+alcgr 1 + 0000000080000000 + 00000000FFFFFFFF = 0000000180000000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=3)
+alcgr 1 + 8000000000000000 + 00000000FFFFFFFF = 8000000100000000 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+ahy 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 00000000FFFFFFFF = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 00000000FFFFFFFF = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 00000000FFFFFFFF = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+ag 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+ag 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+ag 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+ag 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+ag 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+ag 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+ag 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+ag 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+agf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alg 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alg 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alg 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alg 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alg 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alg 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alg 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+agf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+ar 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+ar 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+ar 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+ar 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+ar 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+ar 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=3)
+ar 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=2)
+ar 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=2)
+ar 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=2)
+agr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+agr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+agr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+agr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+agr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+agr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+agr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+agr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+agr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+agfr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+agfr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+agfr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+agfr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+agfr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+agfr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+alr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=3)
+alr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=3)
+algr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+algr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+algr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+algr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+algr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+algr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+algr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+algr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+algfr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+algfr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+algfr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+algfr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+algfr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+algfr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alc 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcg 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcg 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcg 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcg 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alcg 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcg 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alcr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=3)
+alcr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=3)
+alcgr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcgr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcgr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcgr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcgr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alcgr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcgr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alc 1 + 0000000000000000 + 000000000000FFFF = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 000000000000FFFF = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 000000000000FFFF = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 000000000000FFFF = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 000000000000FFFF = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 000000000000FFFF = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 000000000000FFFF = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 000000000000FFFF = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 000000000000FFFF = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcg 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcg 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcg 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcg 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFF (cc=1)
+alcg 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcg 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcr 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcr 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcr 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcr 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcr 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcr 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcr 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFF (cc=3)
+alcr 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFF (cc=3)
+alcgr 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcgr 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcgr 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcgr 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcgr 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFF (cc=1)
+alcgr 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcgr 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFF (cc=1)
+ahy 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+ag 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+ag 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+ag 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+ag 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+ag 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=2)
+ag 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=2)
+ag 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+ag 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=3)
+agf 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alg 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alg 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alg 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alg 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+alg 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alg 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alg 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+agf 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+ar 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+ar 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+ar 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+ar 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+ar 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+ar 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=3)
+ar 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=2)
+ar 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=2)
+ar 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=2)
+agr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+agr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+agr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+agr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+agr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+agr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=2)
+agr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=2)
+agr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+agr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=3)
+agfr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+agfr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+agfr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+agfr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+agfr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=2)
+agfr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+agfr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=3)
+alr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=3)
+alr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=3)
+algr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+algr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+algr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+algr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+algr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+algr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+algr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+algr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+algfr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+algfr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+algfr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+algfr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+algfr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+algfr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+algfr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+alc 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alcg 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcg 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alcg 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alcg 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+alcg 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alcg 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+alcr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alcr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alcr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alcr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alcr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=3)
+alcr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=3)
+alcgr 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alcgr 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcgr 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alcgr 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alcgr 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+alcgr 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alcgr 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+alc 1 + 0000000000000000 + 0000000000007FFF = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 0000000000007FFF = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 0000000000007FFF = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 0000000000007FFF = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 0000000000007FFF = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 0000000000007FFF = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 0000000000007FFF = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 0000000000007FFF = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcg 1 + 0000000000000001 + 0000000000007FFF = 0000000000008001 (cc=1)
+alcg 1 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFF (cc=1)
+alcg 1 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcg 1 + 0000000000008000 + 0000000000007FFF = 0000000000010000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFF (cc=1)
+alcg 1 + 0000000080000000 + 0000000000007FFF = 0000000080008000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFF (cc=3)
+alcg 1 + 8000000000000000 + 0000000000007FFF = 8000000000008000 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFF (cc=1)
+alcr 1 + 0000000000000000 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcr 1 + 0000000000000001 + 0000000000007FFF = 0000000000008001 (cc=1)
+alcr 1 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFF (cc=1)
+alcr 1 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcr 1 + 0000000000008000 + 0000000000007FFF = 0000000000010000 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFF (cc=3)
+alcr 1 + 0000000080000000 + 0000000000007FFF = 0000000080008000 (cc=1)
+alcr 1 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFF (cc=3)
+alcr 1 + 8000000000000000 + 0000000000007FFF = 8000000000008000 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFF (cc=3)
+alcgr 1 + 0000000000000000 + 0000000000007FFF = 0000000000008000 (cc=1)
+alcgr 1 + 0000000000000001 + 0000000000007FFF = 0000000000008001 (cc=1)
+alcgr 1 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFF (cc=1)
+alcgr 1 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+alcgr 1 + 0000000000008000 + 0000000000007FFF = 0000000000010000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFF (cc=1)
+alcgr 1 + 0000000080000000 + 0000000000007FFF = 0000000080008000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFF (cc=3)
+alcgr 1 + 8000000000000000 + 0000000000007FFF = 8000000000008000 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFF (cc=1)
+ahy 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 0000000000007FFF = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 0000000000007FFF = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 0000000000007FFF = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 0000000000007FFF = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 0000000000007FFF = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 0000000000007FFF = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 0000000000007FFF = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 0000000000007FFF = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=2)
+ag 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=2)
+ag 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=2)
+ag 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=2)
+ag 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=2)
+ag 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=2)
+ag 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=2)
+ag 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=2)
+ag 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=3)
+agf 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alg 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alg 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alg 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alg 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alg 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+alg 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alg 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alg 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+agf 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=2)
+ar 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=2)
+ar 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=2)
+ar 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=2)
+ar 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=2)
+ar 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=2)
+ar 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+ar 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=3)
+ar 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00007FFF (cc=2)
+ar 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=2)
+ar 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00007FFF (cc=2)
+agr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=2)
+agr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=2)
+agr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=2)
+agr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=2)
+agr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=2)
+agr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=2)
+agr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=2)
+agr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=2)
+agr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=3)
+agfr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=2)
+agfr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=2)
+agfr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=2)
+agfr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=2)
+agfr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=2)
+agfr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=2)
+agfr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=2)
+agfr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=3)
+alr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00007FFF (cc=3)
+alr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00007FFF (cc=3)
+algr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+algr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+algr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+algr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+algr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+algr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+algr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+algr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+algr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+algfr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+algfr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+algfr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+algfr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+algfr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+algfr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+algfr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+algfr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+alc 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alcg 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alcg 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alcg 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alcg 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alcg 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+alcg 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alcg 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alcg 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+alcr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alcr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alcr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alcr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alcr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alcr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alcr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00007FFF (cc=3)
+alcr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00007FFF (cc=3)
+alcgr 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alcgr 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alcgr 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alcgr 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alcgr 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+alcgr 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alcgr 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alcgr 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+alc 1 + 0000000000000000 + 0000000000008000 = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 0000000000008000 = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 0000000000008000 = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 0000000000008000 = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 0000000000008000 = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 0000000000008000 = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 0000000000008000 = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 0000000000008000 = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 0000000000008000 = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 0000000000008000 = 0000000000008001 (cc=1)
+alcg 1 + 0000000000000001 + 0000000000008000 = 0000000000008002 (cc=1)
+alcg 1 + 000000000000FFFF + 0000000000008000 = 0000000000018000 (cc=1)
+alcg 1 + 0000000000007FFF + 0000000000008000 = 0000000000010000 (cc=1)
+alcg 1 + 0000000000008000 + 0000000000008000 = 0000000000010001 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 0000000000008000 = 0000000100008000 (cc=1)
+alcg 1 + 0000000080000000 + 0000000000008000 = 0000000080008001 (cc=1)
+alcg 1 + 000000007FFFFFFF + 0000000000008000 = 0000000080008000 (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000008000 (cc=3)
+alcg 1 + 8000000000000000 + 0000000000008000 = 8000000000008001 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000008000 (cc=1)
+alcr 1 + 0000000000000000 + 0000000000008000 = 0000000000008001 (cc=1)
+alcr 1 + 0000000000000001 + 0000000000008000 = 0000000000008002 (cc=1)
+alcr 1 + 000000000000FFFF + 0000000000008000 = 0000000000018000 (cc=1)
+alcr 1 + 0000000000007FFF + 0000000000008000 = 0000000000010000 (cc=1)
+alcr 1 + 0000000000008000 + 0000000000008000 = 0000000000010001 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 0000000000008000 = 0000000000008000 (cc=3)
+alcr 1 + 0000000080000000 + 0000000000008000 = 0000000080008001 (cc=1)
+alcr 1 + 000000007FFFFFFF + 0000000000008000 = 0000000080008000 (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00008000 (cc=3)
+alcr 1 + 8000000000000000 + 0000000000008000 = 8000000000008001 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00008000 (cc=3)
+alcgr 1 + 0000000000000000 + 0000000000008000 = 0000000000008001 (cc=1)
+alcgr 1 + 0000000000000001 + 0000000000008000 = 0000000000008002 (cc=1)
+alcgr 1 + 000000000000FFFF + 0000000000008000 = 0000000000018000 (cc=1)
+alcgr 1 + 0000000000007FFF + 0000000000008000 = 0000000000010000 (cc=1)
+alcgr 1 + 0000000000008000 + 0000000000008000 = 0000000000010001 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 0000000000008000 = 0000000100008000 (cc=1)
+alcgr 1 + 0000000080000000 + 0000000000008000 = 0000000080008001 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 0000000000008000 = 0000000080008000 (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000008000 (cc=3)
+alcgr 1 + 8000000000000000 + 0000000000008000 = 8000000000008001 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000008000 (cc=1)
+ahy 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 0000000000008000 = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 0000000000008000 = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 0000000000008000 = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 0000000000008000 = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 0000000000008000 = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 0000000000008000 = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 0000000000008000 = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 0000000000008000 = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 0000000000008000 = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFFFFFFFFFF (cc=1)
+a 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+a 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+a 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+a 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+a 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+a 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+a 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+a 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+a 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+a 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+a 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ah 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ah 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ah 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ah 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ah 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ah 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ah 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ah 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ah 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ah 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ah 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ag 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+ag 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+ag 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+ag 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+ag 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+ag 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+ag 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+ag 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+ag 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+ag 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+ag 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+agf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=2)
+al 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+al 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+al 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+al 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+al 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+al 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+al 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+al 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+al 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+al 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+al 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alg 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alg 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alg 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alg 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alg 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alg 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alg 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alg 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alg 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alg 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alg 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+agf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+agf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+agf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+agf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+agf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+agf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=2)
+agf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=2)
+agf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+agf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+agf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+agf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=2)
+algf 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+algf 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+algf 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+algf 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+algf 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+algf 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+algf 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+algf 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+algf 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+algf 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=1)
+algf 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ar 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+ar 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+ar 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+ar 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+ar 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+ar 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+ar 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+ar 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=3)
+ar 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=2)
+ar 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=2)
+ar 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=2)
+agr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+agr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+agr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+agr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+agr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+agr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+agr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+agr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+agr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+agr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+agr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+agfr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=2)
+agfr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=2)
+agfr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=2)
+agfr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=2)
+agfr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=2)
+agfr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=2)
+agfr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=2)
+agfr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=2)
+agfr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=2)
+agfr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+agfr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=3)
+alr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=3)
+alr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=3)
+algr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+algr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+algr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+algr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+algr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+algr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+algr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+algr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+algr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+algr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+algr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+algfr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+algfr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+algfr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+algfr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+algfr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+algfr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+algfr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+algfr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+algfr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+algfr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+algfr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alc 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+alc 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+alc 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+alc 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+alc 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+alc 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+alc 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+alc 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+alc 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+alc 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+alc 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+alcg 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcg 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcg 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcg 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcg 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcg 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alcg 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcg 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcg 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcg 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcg 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alcr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=3)
+alcr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=3)
+alcgr 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alcgr 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcgr 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alcgr 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alcgr 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcgr 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+alcgr 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcgr 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alcgr 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alcgr 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcgr 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+alc 1 + 0000000000000000 + 000000000000FFFF = 0000000000000001 (cc=1)
+alc 1 + 0000000000000001 + 000000000000FFFF = 0000000000000002 (cc=1)
+alc 1 + 000000000000FFFF + 000000000000FFFF = 0000000000010000 (cc=1)
+alc 1 + 0000000000007FFF + 000000000000FFFF = 0000000000008000 (cc=1)
+alc 1 + 0000000000008000 + 000000000000FFFF = 0000000000008001 (cc=1)
+alc 1 + 00000000FFFFFFFF + 000000000000FFFF = 0000000000000000 (cc=2)
+alc 1 + 0000000080000000 + 000000000000FFFF = 0000000080000001 (cc=1)
+alc 1 + 000000007FFFFFFF + 000000000000FFFF = 0000000080000000 (cc=1)
+alc 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF00000000 (cc=2)
+alc 1 + 8000000000000000 + 000000000000FFFF = 8000000000000001 (cc=1)
+alc 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF00000000 (cc=2)
+alcg 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcg 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcg 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcg 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcg 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcg 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFF (cc=1)
+alcg 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcg 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcg 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcg 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcg 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFF (cc=1)
+alcr 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcr 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcr 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcr 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcr 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcr 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcr 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcr 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcr 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFF (cc=3)
+alcr 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcr 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFF (cc=3)
+alcgr 1 + 0000000000000000 + 000000000000FFFF = 0000000000010000 (cc=1)
+alcgr 1 + 0000000000000001 + 000000000000FFFF = 0000000000010001 (cc=1)
+alcgr 1 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFF (cc=1)
+alcgr 1 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFF (cc=1)
+alcgr 1 + 0000000000008000 + 000000000000FFFF = 0000000000018000 (cc=1)
+alcgr 1 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFF (cc=1)
+alcgr 1 + 0000000080000000 + 000000000000FFFF = 0000000080010000 (cc=1)
+alcgr 1 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFF (cc=1)
+alcgr 1 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFF (cc=3)
+alcgr 1 + 8000000000000000 + 000000000000FFFF = 8000000000010000 (cc=1)
+alcgr 1 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFF (cc=1)
+ahy 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ahy 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ahy 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ahy 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ahy 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ahy 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ahy 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ahy 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ahy 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ahy 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ahy 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ay 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+ay 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=2)
+ay 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=2)
+ay 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=2)
+ay 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=2)
+ay 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ay 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+ay 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=2)
+ay 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ay 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+ay 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+aly 0 + 0000000000000000 + 000000000000FFFF = 0000000000000000 (cc=0)
+aly 0 + 0000000000000001 + 000000000000FFFF = 0000000000000001 (cc=1)
+aly 0 + 000000000000FFFF + 000000000000FFFF = 000000000000FFFF (cc=1)
+aly 0 + 0000000000007FFF + 000000000000FFFF = 0000000000007FFF (cc=1)
+aly 0 + 0000000000008000 + 000000000000FFFF = 0000000000008000 (cc=1)
+aly 0 + 00000000FFFFFFFF + 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+aly 0 + 0000000080000000 + 000000000000FFFF = 0000000080000000 (cc=1)
+aly 0 + 000000007FFFFFFF + 000000000000FFFF = 000000007FFFFFFF (cc=1)
+aly 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+aly 0 + 8000000000000000 + 000000000000FFFF = 8000000000000000 (cc=0)
+aly 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFFFFFFFFFF (cc=1)
+ahi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+ahi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+ahi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+ahi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+ahi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+ahi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ahi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+ahi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+ahi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ahi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+ahi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ahi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ahi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ahi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+ahi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+ahi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+ahi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+ahi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+ahi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+ahi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+ahi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+ahi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+ahi 0 + 0000000000000000 + FFFFFFFFFFFF8000 = 00000000FFFF8000 (cc=1)
+ahi 0 + 0000000000000001 + FFFFFFFFFFFF8000 = 00000000FFFF8001 (cc=1)
+ahi 0 + 000000000000FFFF + FFFFFFFFFFFF8000 = 0000000000007FFF (cc=2)
+ahi 0 + 0000000000007FFF + FFFFFFFFFFFF8000 = 00000000FFFFFFFF (cc=1)
+ahi 0 + 0000000000008000 + FFFFFFFFFFFF8000 = 0000000000000000 (cc=0)
+ahi 0 + 00000000FFFFFFFF + FFFFFFFFFFFF8000 = 00000000FFFF7FFF (cc=1)
+ahi 0 + 0000000080000000 + FFFFFFFFFFFF8000 = 000000007FFF8000 (cc=3)
+ahi 0 + 000000007FFFFFFF + FFFFFFFFFFFF8000 = 000000007FFF7FFF (cc=2)
+ahi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFF7FFF (cc=1)
+ahi 0 + 8000000000000000 + FFFFFFFFFFFF8000 = 80000000FFFF8000 (cc=1)
+ahi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF7FFF (cc=1)
+ahi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+ahi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+ahi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+ahi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+ahi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+ahi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+ahi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+ahi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=3)
+ahi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=2)
+ahi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=2)
+ahi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=2)
+aghi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+aghi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+aghi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+aghi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+aghi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+aghi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+aghi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+aghi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+aghi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+aghi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+aghi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+aghi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+aghi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+aghi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+aghi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+aghi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+aghi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+aghi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+aghi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+aghi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+aghi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+aghi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+aghi 0 + 0000000000000000 + FFFFFFFFFFFF8000 = FFFFFFFFFFFF8000 (cc=1)
+aghi 0 + 0000000000000001 + FFFFFFFFFFFF8000 = FFFFFFFFFFFF8001 (cc=1)
+aghi 0 + 000000000000FFFF + FFFFFFFFFFFF8000 = 0000000000007FFF (cc=2)
+aghi 0 + 0000000000007FFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFFFFFF (cc=1)
+aghi 0 + 0000000000008000 + FFFFFFFFFFFF8000 = 0000000000000000 (cc=0)
+aghi 0 + 00000000FFFFFFFF + FFFFFFFFFFFF8000 = 00000000FFFF7FFF (cc=2)
+aghi 0 + 0000000080000000 + FFFFFFFFFFFF8000 = 000000007FFF8000 (cc=2)
+aghi 0 + 000000007FFFFFFF + FFFFFFFFFFFF8000 = 000000007FFF7FFF (cc=2)
+aghi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFF7FFF (cc=1)
+aghi 0 + 8000000000000000 + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF8000 (cc=3)
+aghi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF7FFF (cc=2)
+aghi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+aghi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+aghi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+aghi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+aghi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+aghi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=2)
+aghi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=2)
+aghi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=2)
+aghi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+aghi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+aghi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=3)
diff --git a/none/tests/s390x/add.vgtest b/none/tests/s390x/add.vgtest
new file mode 100644 (file)
index 0000000..e146339
--- /dev/null
@@ -0,0 +1 @@
+prog: add
diff --git a/none/tests/s390x/add_EI.c b/none/tests/s390x/add_EI.c
new file mode 100644 (file)
index 0000000..75d1996
--- /dev/null
@@ -0,0 +1,42 @@
+#include <stdio.h>
+#include "add.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(afi, 0, 0);
+       immsweep(afi, -1, 0);
+       immsweep(afi, -32768, 0);
+       immsweep(afi, 32767, 0);
+       immsweep(afi, -1, 0);
+       immsweep(afi, -2147483648, 0);
+       immsweep(afi, 2147483647, 0);
+       immsweep(agfi, 0, 0);
+       immsweep(agfi, -1, 0);
+       immsweep(agfi, -32768, 0);
+       immsweep(agfi, 32767, 0);
+       immsweep(agfi, -1, 0);
+       immsweep(agfi, -2147483648, 0);
+       immsweep(agfi, 2147483647, 0);
+       immsweep(alfi, 0, 0);
+       immsweep(alfi, 65535, 0);
+       immsweep(alfi, 32768, 0);
+       immsweep(alfi, 32767, 0);
+       immsweep(alfi, 4294967295, 0);
+       immsweep(alfi, 2147483648, 0);
+       immsweep(alfi, 2147483647, 0);
+       immsweep(algfi, 0, 0);
+       immsweep(algfi, 65535, 0);
+       immsweep(algfi, 32768, 0);
+       immsweep(algfi, 32767, 0);
+       immsweep(algfi, 4294967295, 0);
+       immsweep(algfi, 2147483648, 0);
+       immsweep(algfi, 2147483647, 0);
+
+}
+
+int main()
+{
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/add_EI.stderr.exp b/none/tests/s390x/add_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/add_EI.stdout.exp b/none/tests/s390x/add_EI.stdout.exp
new file mode 100644 (file)
index 0000000..0a0bdd4
--- /dev/null
@@ -0,0 +1,308 @@
+afi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+afi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+afi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+afi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+afi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+afi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+afi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+afi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+afi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+afi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+afi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+afi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+afi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+afi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+afi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+afi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+afi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+afi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+afi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+afi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+afi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+afi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+afi 0 + 0000000000000000 + FFFFFFFFFFFF8000 = 00000000FFFF8000 (cc=1)
+afi 0 + 0000000000000001 + FFFFFFFFFFFF8000 = 00000000FFFF8001 (cc=1)
+afi 0 + 000000000000FFFF + FFFFFFFFFFFF8000 = 0000000000007FFF (cc=2)
+afi 0 + 0000000000007FFF + FFFFFFFFFFFF8000 = 00000000FFFFFFFF (cc=1)
+afi 0 + 0000000000008000 + FFFFFFFFFFFF8000 = 0000000000000000 (cc=0)
+afi 0 + 00000000FFFFFFFF + FFFFFFFFFFFF8000 = 00000000FFFF7FFF (cc=1)
+afi 0 + 0000000080000000 + FFFFFFFFFFFF8000 = 000000007FFF8000 (cc=3)
+afi 0 + 000000007FFFFFFF + FFFFFFFFFFFF8000 = 000000007FFF7FFF (cc=2)
+afi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFF7FFF (cc=1)
+afi 0 + 8000000000000000 + FFFFFFFFFFFF8000 = 80000000FFFF8000 (cc=1)
+afi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF7FFF (cc=1)
+afi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+afi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+afi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+afi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+afi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+afi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+afi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+afi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=3)
+afi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=2)
+afi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=2)
+afi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=2)
+afi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+afi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+afi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+afi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+afi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+afi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+afi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+afi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+afi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+afi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+afi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=1)
+afi 0 + 0000000000000000 + FFFFFFFF80000000 = 0000000080000000 (cc=1)
+afi 0 + 0000000000000001 + FFFFFFFF80000000 = 0000000080000001 (cc=1)
+afi 0 + 000000000000FFFF + FFFFFFFF80000000 = 000000008000FFFF (cc=1)
+afi 0 + 0000000000007FFF + FFFFFFFF80000000 = 0000000080007FFF (cc=1)
+afi 0 + 0000000000008000 + FFFFFFFF80000000 = 0000000080008000 (cc=1)
+afi 0 + 00000000FFFFFFFF + FFFFFFFF80000000 = 000000007FFFFFFF (cc=3)
+afi 0 + 0000000080000000 + FFFFFFFF80000000 = 0000000000000000 (cc=3)
+afi 0 + 000000007FFFFFFF + FFFFFFFF80000000 = 00000000FFFFFFFF (cc=1)
+afi 0 + FFFFFFFFFFFFFFFF + FFFFFFFF80000000 = FFFFFFFF7FFFFFFF (cc=3)
+afi 0 + 8000000000000000 + FFFFFFFF80000000 = 8000000080000000 (cc=1)
+afi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF80000000 = 7FFFFFFF7FFFFFFF (cc=3)
+afi 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+afi 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=3)
+afi 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=3)
+afi 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=3)
+afi 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=3)
+afi 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+afi 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+afi 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=3)
+afi 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFE (cc=2)
+afi 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=2)
+afi 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFE (cc=2)
+agfi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agfi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agfi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agfi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agfi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agfi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agfi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agfi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agfi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+agfi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agfi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agfi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agfi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agfi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agfi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agfi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agfi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agfi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agfi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+agfi 0 + 0000000000000000 + FFFFFFFFFFFF8000 = FFFFFFFFFFFF8000 (cc=1)
+agfi 0 + 0000000000000001 + FFFFFFFFFFFF8000 = FFFFFFFFFFFF8001 (cc=1)
+agfi 0 + 000000000000FFFF + FFFFFFFFFFFF8000 = 0000000000007FFF (cc=2)
+agfi 0 + 0000000000007FFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFFFFFF (cc=1)
+agfi 0 + 0000000000008000 + FFFFFFFFFFFF8000 = 0000000000000000 (cc=0)
+agfi 0 + 00000000FFFFFFFF + FFFFFFFFFFFF8000 = 00000000FFFF7FFF (cc=2)
+agfi 0 + 0000000080000000 + FFFFFFFFFFFF8000 = 000000007FFF8000 (cc=2)
+agfi 0 + 000000007FFFFFFF + FFFFFFFFFFFF8000 = 000000007FFF7FFF (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = FFFFFFFFFFFF7FFF (cc=1)
+agfi 0 + 8000000000000000 + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF8000 (cc=3)
+agfi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFF8000 = 7FFFFFFFFFFF7FFF (cc=2)
+agfi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=2)
+agfi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=2)
+agfi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=2)
+agfi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=2)
+agfi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=2)
+agfi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=2)
+agfi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=2)
+agfi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=2)
+agfi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+agfi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=3)
+agfi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agfi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agfi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agfi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agfi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agfi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agfi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agfi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agfi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agfi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+agfi 0 + 0000000000000000 + FFFFFFFF80000000 = FFFFFFFF80000000 (cc=1)
+agfi 0 + 0000000000000001 + FFFFFFFF80000000 = FFFFFFFF80000001 (cc=1)
+agfi 0 + 000000000000FFFF + FFFFFFFF80000000 = FFFFFFFF8000FFFF (cc=1)
+agfi 0 + 0000000000007FFF + FFFFFFFF80000000 = FFFFFFFF80007FFF (cc=1)
+agfi 0 + 0000000000008000 + FFFFFFFF80000000 = FFFFFFFF80008000 (cc=1)
+agfi 0 + 00000000FFFFFFFF + FFFFFFFF80000000 = 000000007FFFFFFF (cc=2)
+agfi 0 + 0000000080000000 + FFFFFFFF80000000 = 0000000000000000 (cc=0)
+agfi 0 + 000000007FFFFFFF + FFFFFFFF80000000 = FFFFFFFFFFFFFFFF (cc=1)
+agfi 0 + FFFFFFFFFFFFFFFF + FFFFFFFF80000000 = FFFFFFFF7FFFFFFF (cc=1)
+agfi 0 + 8000000000000000 + FFFFFFFF80000000 = 7FFFFFFF80000000 (cc=3)
+agfi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFF80000000 = 7FFFFFFF7FFFFFFF (cc=2)
+agfi 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=2)
+agfi 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=2)
+agfi 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=2)
+agfi 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=2)
+agfi 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=2)
+agfi 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=2)
+agfi 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=2)
+agfi 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=2)
+agfi 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=2)
+agfi 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+agfi 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=3)
+alfi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alfi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+alfi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+alfi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+alfi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+alfi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+alfi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+alfi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alfi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=0)
+alfi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+alfi 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+alfi 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+alfi 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+alfi 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+alfi 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+alfi 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+alfi 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+alfi 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = FFFFFFFF0000FFFE (cc=3)
+alfi 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 7FFFFFFF0000FFFE (cc=3)
+alfi 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+alfi 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+alfi 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+alfi 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+alfi 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+alfi 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+alfi 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+alfi 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = FFFFFFFF00007FFF (cc=3)
+alfi 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 7FFFFFFF00007FFF (cc=3)
+alfi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+alfi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+alfi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+alfi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+alfi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+alfi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+alfi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+alfi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = FFFFFFFF00007FFE (cc=3)
+alfi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 7FFFFFFF00007FFE (cc=3)
+alfi 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+alfi 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000000000000 (cc=2)
+alfi 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000000000FFFE (cc=3)
+alfi 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000000007FFE (cc=3)
+alfi 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000000007FFF (cc=3)
+alfi 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+alfi 0 + 0000000080000000 + 00000000FFFFFFFF = 000000007FFFFFFF (cc=3)
+alfi 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000007FFFFFFE (cc=3)
+alfi 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+alfi 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+alfi 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+alfi 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+alfi 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+alfi 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+alfi 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+alfi 0 + 00000000FFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+alfi 0 + 0000000080000000 + 0000000080000000 = 0000000000000000 (cc=2)
+alfi 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = FFFFFFFF7FFFFFFF (cc=3)
+alfi 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 7FFFFFFF7FFFFFFF (cc=3)
+alfi 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+alfi 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+alfi 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+alfi 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+alfi 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+alfi 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+alfi 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+alfi 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+alfi 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = FFFFFFFF7FFFFFFE (cc=3)
+alfi 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+alfi 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 7FFFFFFF7FFFFFFE (cc=3)
+algfi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+algfi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+algfi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+algfi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+algfi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+algfi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+algfi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+algfi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algfi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algfi 0 + 0000000000000000 + 000000000000FFFF = 000000000000FFFF (cc=1)
+algfi 0 + 0000000000000001 + 000000000000FFFF = 0000000000010000 (cc=1)
+algfi 0 + 000000000000FFFF + 000000000000FFFF = 000000000001FFFE (cc=1)
+algfi 0 + 0000000000007FFF + 000000000000FFFF = 0000000000017FFE (cc=1)
+algfi 0 + 0000000000008000 + 000000000000FFFF = 0000000000017FFF (cc=1)
+algfi 0 + 00000000FFFFFFFF + 000000000000FFFF = 000000010000FFFE (cc=1)
+algfi 0 + 0000000080000000 + 000000000000FFFF = 000000008000FFFF (cc=1)
+algfi 0 + 000000007FFFFFFF + 000000000000FFFF = 000000008000FFFE (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 000000000000FFFF = 000000000000FFFE (cc=3)
+algfi 0 + 8000000000000000 + 000000000000FFFF = 800000000000FFFF (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 000000000000FFFF = 800000000000FFFE (cc=1)
+algfi 0 + 0000000000000000 + 0000000000008000 = 0000000000008000 (cc=1)
+algfi 0 + 0000000000000001 + 0000000000008000 = 0000000000008001 (cc=1)
+algfi 0 + 000000000000FFFF + 0000000000008000 = 0000000000017FFF (cc=1)
+algfi 0 + 0000000000007FFF + 0000000000008000 = 000000000000FFFF (cc=1)
+algfi 0 + 0000000000008000 + 0000000000008000 = 0000000000010000 (cc=1)
+algfi 0 + 00000000FFFFFFFF + 0000000000008000 = 0000000100007FFF (cc=1)
+algfi 0 + 0000000080000000 + 0000000000008000 = 0000000080008000 (cc=1)
+algfi 0 + 000000007FFFFFFF + 0000000000008000 = 0000000080007FFF (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 0000000000008000 = 0000000000007FFF (cc=3)
+algfi 0 + 8000000000000000 + 0000000000008000 = 8000000000008000 (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 0000000000008000 = 8000000000007FFF (cc=1)
+algfi 0 + 0000000000000000 + 0000000000007FFF = 0000000000007FFF (cc=1)
+algfi 0 + 0000000000000001 + 0000000000007FFF = 0000000000008000 (cc=1)
+algfi 0 + 000000000000FFFF + 0000000000007FFF = 0000000000017FFE (cc=1)
+algfi 0 + 0000000000007FFF + 0000000000007FFF = 000000000000FFFE (cc=1)
+algfi 0 + 0000000000008000 + 0000000000007FFF = 000000000000FFFF (cc=1)
+algfi 0 + 00000000FFFFFFFF + 0000000000007FFF = 0000000100007FFE (cc=1)
+algfi 0 + 0000000080000000 + 0000000000007FFF = 0000000080007FFF (cc=1)
+algfi 0 + 000000007FFFFFFF + 0000000000007FFF = 0000000080007FFE (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 0000000000007FFF = 0000000000007FFE (cc=3)
+algfi 0 + 8000000000000000 + 0000000000007FFF = 8000000000007FFF (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 0000000000007FFF = 8000000000007FFE (cc=1)
+algfi 0 + 0000000000000000 + 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+algfi 0 + 0000000000000001 + 00000000FFFFFFFF = 0000000100000000 (cc=1)
+algfi 0 + 000000000000FFFF + 00000000FFFFFFFF = 000000010000FFFE (cc=1)
+algfi 0 + 0000000000007FFF + 00000000FFFFFFFF = 0000000100007FFE (cc=1)
+algfi 0 + 0000000000008000 + 00000000FFFFFFFF = 0000000100007FFF (cc=1)
+algfi 0 + 00000000FFFFFFFF + 00000000FFFFFFFF = 00000001FFFFFFFE (cc=1)
+algfi 0 + 0000000080000000 + 00000000FFFFFFFF = 000000017FFFFFFF (cc=1)
+algfi 0 + 000000007FFFFFFF + 00000000FFFFFFFF = 000000017FFFFFFE (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 00000000FFFFFFFF = 00000000FFFFFFFE (cc=3)
+algfi 0 + 8000000000000000 + 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 00000000FFFFFFFF = 80000000FFFFFFFE (cc=1)
+algfi 0 + 0000000000000000 + 0000000080000000 = 0000000080000000 (cc=1)
+algfi 0 + 0000000000000001 + 0000000080000000 = 0000000080000001 (cc=1)
+algfi 0 + 000000000000FFFF + 0000000080000000 = 000000008000FFFF (cc=1)
+algfi 0 + 0000000000007FFF + 0000000080000000 = 0000000080007FFF (cc=1)
+algfi 0 + 0000000000008000 + 0000000080000000 = 0000000080008000 (cc=1)
+algfi 0 + 00000000FFFFFFFF + 0000000080000000 = 000000017FFFFFFF (cc=1)
+algfi 0 + 0000000080000000 + 0000000080000000 = 0000000100000000 (cc=1)
+algfi 0 + 000000007FFFFFFF + 0000000080000000 = 00000000FFFFFFFF (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 0000000080000000 = 000000007FFFFFFF (cc=3)
+algfi 0 + 8000000000000000 + 0000000080000000 = 8000000080000000 (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 0000000080000000 = 800000007FFFFFFF (cc=1)
+algfi 0 + 0000000000000000 + 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+algfi 0 + 0000000000000001 + 000000007FFFFFFF = 0000000080000000 (cc=1)
+algfi 0 + 000000000000FFFF + 000000007FFFFFFF = 000000008000FFFE (cc=1)
+algfi 0 + 0000000000007FFF + 000000007FFFFFFF = 0000000080007FFE (cc=1)
+algfi 0 + 0000000000008000 + 000000007FFFFFFF = 0000000080007FFF (cc=1)
+algfi 0 + 00000000FFFFFFFF + 000000007FFFFFFF = 000000017FFFFFFE (cc=1)
+algfi 0 + 0000000080000000 + 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+algfi 0 + 000000007FFFFFFF + 000000007FFFFFFF = 00000000FFFFFFFE (cc=1)
+algfi 0 + FFFFFFFFFFFFFFFF + 000000007FFFFFFF = 000000007FFFFFFE (cc=3)
+algfi 0 + 8000000000000000 + 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+algfi 0 + 7FFFFFFFFFFFFFFF + 000000007FFFFFFF = 800000007FFFFFFE (cc=1)
diff --git a/none/tests/s390x/add_EI.vgtest b/none/tests/s390x/add_EI.vgtest
new file mode 100644 (file)
index 0000000..26b4491
--- /dev/null
@@ -0,0 +1,2 @@
+prog: add_EI
+prereq: test -x add_EI
diff --git a/none/tests/s390x/add_GE.c b/none/tests/s390x/add_GE.c
new file mode 100644 (file)
index 0000000..a1326fc
--- /dev/null
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "add.h"
+
+static void do_memimm_insns(void)
+{
+       memimmsweep(asi, 0, 0);
+       memimmsweep(agsi, 0, 0);
+       memimmsweep(alsi, 0, 0);
+       memimmsweep(algsi, 0, 0);
+       memimmsweep(asi, 1, 0);
+       memimmsweep(agsi, 1, 0);
+       memimmsweep(alsi, 1, 0);
+       memimmsweep(algsi, 1, 0);
+       memimmsweep(asi, -1, 0);
+       memimmsweep(agsi, -1, 0);
+       memimmsweep(alsi, -1, 0);
+       memimmsweep(algsi, -1, 0);
+       memimmsweep(asi, -128, 0);
+       memimmsweep(agsi, -128, 0);
+       memimmsweep(alsi, -128, 0);
+       memimmsweep(algsi, -128, 0);
+       memimmsweep(asi, 127, 0);
+       memimmsweep(agsi, 127, 0);
+       memimmsweep(alsi, 127, 0);
+       memimmsweep(algsi, 127, 0);
+}
+
+int main()
+{
+       do_memimm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/add_GE.stderr.exp b/none/tests/s390x/add_GE.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/add_GE.stdout.exp b/none/tests/s390x/add_GE.stdout.exp
new file mode 100644 (file)
index 0000000..833bc09
--- /dev/null
@@ -0,0 +1,220 @@
+asi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+asi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=0)
+asi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=0)
+asi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=0)
+asi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=0)
+asi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=0)
+asi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=0)
+asi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=0)
+asi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+asi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+asi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+agsi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+agsi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=2)
+agsi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=2)
+agsi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=2)
+agsi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=2)
+agsi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=2)
+agsi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=2)
+agsi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=2)
+agsi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+agsi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+agsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=2)
+alsi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+alsi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=0)
+alsi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=0)
+alsi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=0)
+alsi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=0)
+alsi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=0)
+alsi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=0)
+alsi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=0)
+alsi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+alsi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+alsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+algsi 0 + 0000000000000000 + 0000000000000000 = 0000000000000000 (cc=0)
+algsi 0 + 0000000000000001 + 0000000000000000 = 0000000000000001 (cc=1)
+algsi 0 + 000000000000FFFF + 0000000000000000 = 000000000000FFFF (cc=1)
+algsi 0 + 0000000000007FFF + 0000000000000000 = 0000000000007FFF (cc=1)
+algsi 0 + 0000000000008000 + 0000000000000000 = 0000000000008000 (cc=1)
+algsi 0 + 00000000FFFFFFFF + 0000000000000000 = 00000000FFFFFFFF (cc=1)
+algsi 0 + 0000000080000000 + 0000000000000000 = 0000000080000000 (cc=1)
+algsi 0 + 000000007FFFFFFF + 0000000000000000 = 000000007FFFFFFF (cc=1)
+algsi 0 + FFFFFFFFFFFFFFFF + 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+algsi 0 + 8000000000000000 + 0000000000000000 = 8000000000000000 (cc=1)
+algsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+asi 0 + 0000000000000000 + 0000000000000001 = 0000000100000000 (cc=2)
+asi 0 + 0000000000000001 + 0000000000000001 = 0000000100000001 (cc=2)
+asi 0 + 000000000000FFFF + 0000000000000001 = 000000010000FFFF (cc=2)
+asi 0 + 0000000000007FFF + 0000000000000001 = 0000000100007FFF (cc=2)
+asi 0 + 0000000000008000 + 0000000000000001 = 0000000100008000 (cc=2)
+asi 0 + 00000000FFFFFFFF + 0000000000000001 = 00000001FFFFFFFF (cc=2)
+asi 0 + 0000000080000000 + 0000000000000001 = 0000000180000000 (cc=2)
+asi 0 + 000000007FFFFFFF + 0000000000000001 = 000000017FFFFFFF (cc=2)
+asi 0 + FFFFFFFFFFFFFFFF + 0000000000000001 = 00000000FFFFFFFF (cc=0)
+asi 0 + 8000000000000000 + 0000000000000001 = 8000000100000000 (cc=1)
+asi 0 + 7FFFFFFFFFFFFFFF + 0000000000000001 = 80000000FFFFFFFF (cc=3)
+agsi 0 + 0000000000000000 + 0000000000000001 = 0000000000000001 (cc=2)
+agsi 0 + 0000000000000001 + 0000000000000001 = 0000000000000002 (cc=2)
+agsi 0 + 000000000000FFFF + 0000000000000001 = 0000000000010000 (cc=2)
+agsi 0 + 0000000000007FFF + 0000000000000001 = 0000000000008000 (cc=2)
+agsi 0 + 0000000000008000 + 0000000000000001 = 0000000000008001 (cc=2)
+agsi 0 + 00000000FFFFFFFF + 0000000000000001 = 0000000100000000 (cc=2)
+agsi 0 + 0000000080000000 + 0000000000000001 = 0000000080000001 (cc=2)
+agsi 0 + 000000007FFFFFFF + 0000000000000001 = 0000000080000000 (cc=2)
+agsi 0 + FFFFFFFFFFFFFFFF + 0000000000000001 = 0000000000000000 (cc=0)
+agsi 0 + 8000000000000000 + 0000000000000001 = 8000000000000001 (cc=1)
+agsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000001 = 8000000000000000 (cc=3)
+alsi 0 + 0000000000000000 + 0000000000000001 = 0000000100000000 (cc=1)
+alsi 0 + 0000000000000001 + 0000000000000001 = 0000000100000001 (cc=1)
+alsi 0 + 000000000000FFFF + 0000000000000001 = 000000010000FFFF (cc=1)
+alsi 0 + 0000000000007FFF + 0000000000000001 = 0000000100007FFF (cc=1)
+alsi 0 + 0000000000008000 + 0000000000000001 = 0000000100008000 (cc=1)
+alsi 0 + 00000000FFFFFFFF + 0000000000000001 = 00000001FFFFFFFF (cc=1)
+alsi 0 + 0000000080000000 + 0000000000000001 = 0000000180000000 (cc=1)
+alsi 0 + 000000007FFFFFFF + 0000000000000001 = 000000017FFFFFFF (cc=1)
+alsi 0 + FFFFFFFFFFFFFFFF + 0000000000000001 = 00000000FFFFFFFF (cc=2)
+alsi 0 + 8000000000000000 + 0000000000000001 = 8000000100000000 (cc=1)
+alsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000001 = 80000000FFFFFFFF (cc=1)
+algsi 0 + 0000000000000000 + 0000000000000001 = 0000000000000001 (cc=1)
+algsi 0 + 0000000000000001 + 0000000000000001 = 0000000000000002 (cc=1)
+algsi 0 + 000000000000FFFF + 0000000000000001 = 0000000000010000 (cc=1)
+algsi 0 + 0000000000007FFF + 0000000000000001 = 0000000000008000 (cc=1)
+algsi 0 + 0000000000008000 + 0000000000000001 = 0000000000008001 (cc=1)
+algsi 0 + 00000000FFFFFFFF + 0000000000000001 = 0000000100000000 (cc=1)
+algsi 0 + 0000000080000000 + 0000000000000001 = 0000000080000001 (cc=1)
+algsi 0 + 000000007FFFFFFF + 0000000000000001 = 0000000080000000 (cc=1)
+algsi 0 + FFFFFFFFFFFFFFFF + 0000000000000001 = 0000000000000000 (cc=2)
+algsi 0 + 8000000000000000 + 0000000000000001 = 8000000000000001 (cc=1)
+algsi 0 + 7FFFFFFFFFFFFFFF + 0000000000000001 = 8000000000000000 (cc=1)
+asi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=1)
+asi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = FFFFFFFF00000001 (cc=1)
+asi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = FFFFFFFF0000FFFF (cc=1)
+asi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = FFFFFFFF00007FFF (cc=1)
+asi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = FFFFFFFF00008000 (cc=1)
+asi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+asi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = FFFFFFFF80000000 (cc=1)
+asi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+asi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFEFFFFFFFF (cc=1)
+asi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFF00000000 (cc=3)
+asi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFEFFFFFFFF (cc=2)
+agsi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+agsi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+agsi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=2)
+agsi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=2)
+agsi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=2)
+agsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=2)
+agsi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=2)
+agsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=2)
+agsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+agsi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+agsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=2)
+alsi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=1)
+alsi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = FFFFFFFF00000001 (cc=1)
+alsi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = FFFFFFFF0000FFFF (cc=1)
+alsi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = FFFFFFFF00007FFF (cc=1)
+alsi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = FFFFFFFF00008000 (cc=1)
+alsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+alsi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = FFFFFFFF80000000 (cc=1)
+alsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+alsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFEFFFFFFFF (cc=3)
+alsi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFF00000000 (cc=3)
+alsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFEFFFFFFFF (cc=3)
+algsi 0 + 0000000000000000 + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+algsi 0 + 0000000000000001 + FFFFFFFFFFFFFFFF = 0000000000000000 (cc=2)
+algsi 0 + 000000000000FFFF + FFFFFFFFFFFFFFFF = 000000000000FFFE (cc=3)
+algsi 0 + 0000000000007FFF + FFFFFFFFFFFFFFFF = 0000000000007FFE (cc=3)
+algsi 0 + 0000000000008000 + FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=3)
+algsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=3)
+algsi 0 + 0000000080000000 + FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=3)
+algsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFFFF = 000000007FFFFFFE (cc=3)
+algsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=3)
+algsi 0 + 8000000000000000 + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=3)
+algsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE (cc=3)
+asi 0 + 0000000000000000 + FFFFFFFFFFFFFF80 = FFFFFF8000000000 (cc=1)
+asi 0 + 0000000000000001 + FFFFFFFFFFFFFF80 = FFFFFF8000000001 (cc=1)
+asi 0 + 000000000000FFFF + FFFFFFFFFFFFFF80 = FFFFFF800000FFFF (cc=1)
+asi 0 + 0000000000007FFF + FFFFFFFFFFFFFF80 = FFFFFF8000007FFF (cc=1)
+asi 0 + 0000000000008000 + FFFFFFFFFFFFFF80 = FFFFFF8000008000 (cc=1)
+asi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF80FFFFFFFF (cc=1)
+asi 0 + 0000000080000000 + FFFFFFFFFFFFFF80 = FFFFFF8080000000 (cc=1)
+asi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF807FFFFFFF (cc=1)
+asi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF7FFFFFFFFF (cc=1)
+asi 0 + 8000000000000000 + FFFFFFFFFFFFFF80 = 7FFFFF8000000000 (cc=3)
+asi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = 7FFFFF7FFFFFFFFF (cc=2)
+agsi 0 + 0000000000000000 + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF80 (cc=1)
+agsi 0 + 0000000000000001 + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF81 (cc=1)
+agsi 0 + 000000000000FFFF + FFFFFFFFFFFFFF80 = 000000000000FF7F (cc=2)
+agsi 0 + 0000000000007FFF + FFFFFFFFFFFFFF80 = 0000000000007F7F (cc=2)
+agsi 0 + 0000000000008000 + FFFFFFFFFFFFFF80 = 0000000000007F80 (cc=2)
+agsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFF80 = 00000000FFFFFF7F (cc=2)
+agsi 0 + 0000000080000000 + FFFFFFFFFFFFFF80 = 000000007FFFFF80 (cc=2)
+agsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFF80 = 000000007FFFFF7F (cc=2)
+agsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF7F (cc=1)
+agsi 0 + 8000000000000000 + FFFFFFFFFFFFFF80 = 7FFFFFFFFFFFFF80 (cc=3)
+agsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = 7FFFFFFFFFFFFF7F (cc=2)
+alsi 0 + 0000000000000000 + FFFFFFFFFFFFFF80 = FFFFFF8000000000 (cc=1)
+alsi 0 + 0000000000000001 + FFFFFFFFFFFFFF80 = FFFFFF8000000001 (cc=1)
+alsi 0 + 000000000000FFFF + FFFFFFFFFFFFFF80 = FFFFFF800000FFFF (cc=1)
+alsi 0 + 0000000000007FFF + FFFFFFFFFFFFFF80 = FFFFFF8000007FFF (cc=1)
+alsi 0 + 0000000000008000 + FFFFFFFFFFFFFF80 = FFFFFF8000008000 (cc=1)
+alsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF80FFFFFFFF (cc=1)
+alsi 0 + 0000000080000000 + FFFFFFFFFFFFFF80 = FFFFFF8080000000 (cc=1)
+alsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF807FFFFFFF (cc=1)
+alsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFF7FFFFFFFFF (cc=3)
+alsi 0 + 8000000000000000 + FFFFFFFFFFFFFF80 = 7FFFFF8000000000 (cc=3)
+alsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = 7FFFFF7FFFFFFFFF (cc=3)
+algsi 0 + 0000000000000000 + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF80 (cc=1)
+algsi 0 + 0000000000000001 + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF81 (cc=1)
+algsi 0 + 000000000000FFFF + FFFFFFFFFFFFFF80 = 000000000000FF7F (cc=3)
+algsi 0 + 0000000000007FFF + FFFFFFFFFFFFFF80 = 0000000000007F7F (cc=3)
+algsi 0 + 0000000000008000 + FFFFFFFFFFFFFF80 = 0000000000007F80 (cc=3)
+algsi 0 + 00000000FFFFFFFF + FFFFFFFFFFFFFF80 = 00000000FFFFFF7F (cc=3)
+algsi 0 + 0000000080000000 + FFFFFFFFFFFFFF80 = 000000007FFFFF80 (cc=3)
+algsi 0 + 000000007FFFFFFF + FFFFFFFFFFFFFF80 = 000000007FFFFF7F (cc=3)
+algsi 0 + FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = FFFFFFFFFFFFFF7F (cc=3)
+algsi 0 + 8000000000000000 + FFFFFFFFFFFFFF80 = 7FFFFFFFFFFFFF80 (cc=3)
+algsi 0 + 7FFFFFFFFFFFFFFF + FFFFFFFFFFFFFF80 = 7FFFFFFFFFFFFF7F (cc=3)
+asi 0 + 0000000000000000 + 000000000000007F = 0000007F00000000 (cc=2)
+asi 0 + 0000000000000001 + 000000000000007F = 0000007F00000001 (cc=2)
+asi 0 + 000000000000FFFF + 000000000000007F = 0000007F0000FFFF (cc=2)
+asi 0 + 0000000000007FFF + 000000000000007F = 0000007F00007FFF (cc=2)
+asi 0 + 0000000000008000 + 000000000000007F = 0000007F00008000 (cc=2)
+asi 0 + 00000000FFFFFFFF + 000000000000007F = 0000007FFFFFFFFF (cc=2)
+asi 0 + 0000000080000000 + 000000000000007F = 0000007F80000000 (cc=2)
+asi 0 + 000000007FFFFFFF + 000000000000007F = 0000007F7FFFFFFF (cc=2)
+asi 0 + FFFFFFFFFFFFFFFF + 000000000000007F = 0000007EFFFFFFFF (cc=2)
+asi 0 + 8000000000000000 + 000000000000007F = 8000007F00000000 (cc=1)
+asi 0 + 7FFFFFFFFFFFFFFF + 000000000000007F = 8000007EFFFFFFFF (cc=3)
+agsi 0 + 0000000000000000 + 000000000000007F = 000000000000007F (cc=2)
+agsi 0 + 0000000000000001 + 000000000000007F = 0000000000000080 (cc=2)
+agsi 0 + 000000000000FFFF + 000000000000007F = 000000000001007E (cc=2)
+agsi 0 + 0000000000007FFF + 000000000000007F = 000000000000807E (cc=2)
+agsi 0 + 0000000000008000 + 000000000000007F = 000000000000807F (cc=2)
+agsi 0 + 00000000FFFFFFFF + 000000000000007F = 000000010000007E (cc=2)
+agsi 0 + 0000000080000000 + 000000000000007F = 000000008000007F (cc=2)
+agsi 0 + 000000007FFFFFFF + 000000000000007F = 000000008000007E (cc=2)
+agsi 0 + FFFFFFFFFFFFFFFF + 000000000000007F = 000000000000007E (cc=2)
+agsi 0 + 8000000000000000 + 000000000000007F = 800000000000007F (cc=1)
+agsi 0 + 7FFFFFFFFFFFFFFF + 000000000000007F = 800000000000007E (cc=3)
+alsi 0 + 0000000000000000 + 000000000000007F = 0000007F00000000 (cc=1)
+alsi 0 + 0000000000000001 + 000000000000007F = 0000007F00000001 (cc=1)
+alsi 0 + 000000000000FFFF + 000000000000007F = 0000007F0000FFFF (cc=1)
+alsi 0 + 0000000000007FFF + 000000000000007F = 0000007F00007FFF (cc=1)
+alsi 0 + 0000000000008000 + 000000000000007F = 0000007F00008000 (cc=1)
+alsi 0 + 00000000FFFFFFFF + 000000000000007F = 0000007FFFFFFFFF (cc=1)
+alsi 0 + 0000000080000000 + 000000000000007F = 0000007F80000000 (cc=1)
+alsi 0 + 000000007FFFFFFF + 000000000000007F = 0000007F7FFFFFFF (cc=1)
+alsi 0 + FFFFFFFFFFFFFFFF + 000000000000007F = 0000007EFFFFFFFF (cc=3)
+alsi 0 + 8000000000000000 + 000000000000007F = 8000007F00000000 (cc=1)
+alsi 0 + 7FFFFFFFFFFFFFFF + 000000000000007F = 8000007EFFFFFFFF (cc=1)
+algsi 0 + 0000000000000000 + 000000000000007F = 000000000000007F (cc=1)
+algsi 0 + 0000000000000001 + 000000000000007F = 0000000000000080 (cc=1)
+algsi 0 + 000000000000FFFF + 000000000000007F = 000000000001007E (cc=1)
+algsi 0 + 0000000000007FFF + 000000000000007F = 000000000000807E (cc=1)
+algsi 0 + 0000000000008000 + 000000000000007F = 000000000000807F (cc=1)
+algsi 0 + 00000000FFFFFFFF + 000000000000007F = 000000010000007E (cc=1)
+algsi 0 + 0000000080000000 + 000000000000007F = 000000008000007F (cc=1)
+algsi 0 + 000000007FFFFFFF + 000000000000007F = 000000008000007E (cc=1)
+algsi 0 + FFFFFFFFFFFFFFFF + 000000000000007F = 000000000000007E (cc=3)
+algsi 0 + 8000000000000000 + 000000000000007F = 800000000000007F (cc=1)
+algsi 0 + 7FFFFFFFFFFFFFFF + 000000000000007F = 800000000000007E (cc=1)
diff --git a/none/tests/s390x/add_GE.vgtest b/none/tests/s390x/add_GE.vgtest
new file mode 100644 (file)
index 0000000..836b526
--- /dev/null
@@ -0,0 +1,2 @@
+prog: add_GE
+prereq: test -x add_GE
diff --git a/none/tests/s390x/and.c b/none/tests/s390x/and.c
new file mode 100644 (file)
index 0000000..2f904cc
--- /dev/null
@@ -0,0 +1,79 @@
+#include <stdio.h>
+#include "and.h"
+
+static void do_imm_insns(void)
+{
+       memimmsweep(ni, 0);
+       memimmsweep(ni, 255);
+       memimmsweep(ni, 128);
+       memimmsweep(ni, 0xaa);
+       memimmsweep(ni, 0x55);
+       memimmsweep(niy, 0);
+       memimmsweep(niy, 255);
+       memimmsweep(niy, 128);
+       memimmsweep(niy, 0xaa);
+       memimmsweep(niy, 0x55);
+       immsweep(nihh, 0x55);
+       immsweep(nihl, 0x55);
+       immsweep(nilh, 0x55);
+       immsweep(nill, 0x55);
+       immsweep(nihh, 0xaa);
+       immsweep(nihl, 0xaa);
+       immsweep(nilh, 0xaa);
+       immsweep(nill, 0xaa);
+       immsweep(nihh, 0xff);
+       immsweep(nihl, 0xff);
+       immsweep(nilh, 0xff);
+       immsweep(nill, 0xff);
+       immsweep(nihh, 0x0);
+       immsweep(nihl, 0x0);
+       immsweep(nilh, 0x0);
+       immsweep(nill, 0x0);
+       immsweep(nihh, 0xffff);
+       immsweep(nihl, 0xffff);
+       immsweep(nilh, 0xffff);
+       immsweep(nill, 0xffff);
+       immsweep(nihh, 0xaaaa);
+       immsweep(nihl, 0xaaaa);
+       immsweep(nilh, 0xaaaa);
+       immsweep(nill, 0xaaaa);
+       immsweep(nihh, 0x5555);
+       immsweep(nihl, 0x5555);
+       immsweep(nilh, 0x5555);
+       immsweep(nill, 0x5555);
+}
+
+
+static void do_regmem_insns(unsigned long s2)
+{
+       memsweep(n, s2);
+       memsweep(ng, s2);
+       regsweep(nr, s2);
+       regsweep(ngr, s2);
+       memsweep(ny, s2);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x5555555555555555ul);
+       do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xaaaaaaaa00000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x0000000055555555ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/and.h b/none/tests/s390x/and.h
new file mode 100644 (file)
index 0000000..86a131b
--- /dev/null
@@ -0,0 +1,120 @@
+#include <stdio.h>
+
+#define AND_REG_MEM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " + %16.16lX & %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define AND_REG_REG(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "d" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " + %16.16lX & %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define AND_REG_IMM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " + %16.16lX & %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+#define AND_MEM_IMM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+Q" (tmp), "=d" (cc)         \
+                       : "Q" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " + %16.16lX & %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+
+#define memsweep(i, s2)                                        \
+({                                                     \
+       AND_REG_MEM(i, 0ul, s2);                        \
+       AND_REG_MEM(i, 1ul, s2);                        \
+       AND_REG_MEM(i, 0xfffful, s2);                   \
+       AND_REG_MEM(i, 0x7ffful, s2);                   \
+       AND_REG_MEM(i, 0x8000ul, s2);                   \
+       AND_REG_MEM(i, 0xfffffffful, s2);               \
+       AND_REG_MEM(i, 0x80000000ul, s2);               \
+       AND_REG_MEM(i, 0x7ffffffful, s2);               \
+       AND_REG_MEM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       AND_REG_MEM(i, 0x8000000000000000ul, s2);       \
+       AND_REG_MEM(i, 0xfffffffffffffffful, s2);       \
+       AND_REG_MEM(i, 0x5555555555555555ul, s2);       \
+})
+
+#define regsweep(i, s2)                                        \
+({                                                     \
+       AND_REG_REG(i, 0ul, s2);                        \
+       AND_REG_REG(i, 1ul, s2);                        \
+       AND_REG_REG(i, 0xfffful, s2);                   \
+       AND_REG_REG(i, 0x7ffful, s2);                   \
+       AND_REG_REG(i, 0x8000ul, s2);                   \
+       AND_REG_REG(i, 0xfffffffful, s2);               \
+       AND_REG_REG(i, 0x80000000ul, s2);               \
+       AND_REG_REG(i, 0x7ffffffful, s2);               \
+       AND_REG_REG(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       AND_REG_REG(i, 0x8000000000000000ul, s2);       \
+       AND_REG_REG(i, 0xfffffffffffffffful, s2);       \
+       AND_REG_REG(i, 0x5555555555555555ul, s2);       \
+})
+
+#define immsweep(i, s2)                                        \
+({                                                     \
+       AND_REG_IMM(i, 0ul, s2);                        \
+       AND_REG_IMM(i, 1ul, s2);                        \
+       AND_REG_IMM(i, 0xfffful, s2);                   \
+       AND_REG_IMM(i, 0x7ffful, s2);                   \
+       AND_REG_IMM(i, 0x8000ul, s2);                   \
+       AND_REG_IMM(i, 0xfffffffful, s2);               \
+       AND_REG_IMM(i, 0x80000000ul, s2);               \
+       AND_REG_IMM(i, 0x7ffffffful, s2);               \
+       AND_REG_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       AND_REG_IMM(i, 0x8000000000000000ul, s2);       \
+       AND_REG_IMM(i, 0xfffffffffffffffful, s2);       \
+       AND_REG_IMM(i, 0x5555555555555555ul, s2);       \
+})
+
+#define memimmsweep(i, s2)                             \
+({                                                     \
+       AND_MEM_IMM(i, 0ul, s2);                        \
+       AND_MEM_IMM(i, 1ul, s2);                        \
+       AND_MEM_IMM(i, 0xfffful, s2);                   \
+       AND_MEM_IMM(i, 0x7ffful, s2);                   \
+       AND_MEM_IMM(i, 0x8000ul, s2);                   \
+       AND_MEM_IMM(i, 0xfffffffful, s2);               \
+       AND_MEM_IMM(i, 0x80000000ul, s2);               \
+       AND_MEM_IMM(i, 0x7ffffffful, s2);               \
+       AND_MEM_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       AND_MEM_IMM(i, 0x8000000000000000ul, s2);       \
+       AND_MEM_IMM(i, 0xfffffffffffffffful, s2);       \
+       AND_MEM_IMM(i, 0x5555555555555555ul, s2);       \
+})
+
+
diff --git a/none/tests/s390x/and.stderr.exp b/none/tests/s390x/and.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/and.stdout.exp b/none/tests/s390x/and.stdout.exp
new file mode 100644 (file)
index 0000000..e4f4870
--- /dev/null
@@ -0,0 +1,1476 @@
+n + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+n + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 0000000000000000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ng + 5555555555555555 & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & 0000000000000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ngr + 5555555555555555 & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 0000000000000000 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 0000000000000000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 5555555555555555 = 0000000000000001 (cc=1)
+n + 000000000000FFFF & 5555555555555555 = 0000000000005555 (cc=1)
+n + 0000000000007FFF & 5555555555555555 = 0000000000005555 (cc=1)
+n + 0000000000008000 & 5555555555555555 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+n + 0000000080000000 & 5555555555555555 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+n + AAAAAAAAAAAAAAAA & 5555555555555555 = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 5555555555555555 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 5555555555555555 = FFFFFFFF55555555 (cc=1)
+n + 5555555555555555 & 5555555555555555 = 5555555555555555 (cc=1)
+ng + 0000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 5555555555555555 = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 5555555555555555 = 0000000000005555 (cc=1)
+ng + 0000000000007FFF & 5555555555555555 = 0000000000005555 (cc=1)
+ng + 0000000000008000 & 5555555555555555 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ng + 0000000080000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ng + AAAAAAAAAAAAAAAA & 5555555555555555 = 0000000000000000 (cc=0)
+ng + 8000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 5555555555555555 = 5555555555555555 (cc=1)
+ng + 5555555555555555 & 5555555555555555 = 5555555555555555 (cc=1)
+nr + 0000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 5555555555555555 = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 5555555555555555 = 0000000000005555 (cc=1)
+nr + 0000000000007FFF & 5555555555555555 = 0000000000005555 (cc=1)
+nr + 0000000000008000 & 5555555555555555 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+nr + 0000000080000000 & 5555555555555555 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+nr + AAAAAAAAAAAAAAAA & 5555555555555555 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 5555555555555555 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 5555555555555555 = FFFFFFFF55555555 (cc=1)
+nr + 5555555555555555 & 5555555555555555 = 5555555555555555 (cc=1)
+ngr + 0000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 5555555555555555 = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 5555555555555555 = 0000000000005555 (cc=1)
+ngr + 0000000000007FFF & 5555555555555555 = 0000000000005555 (cc=1)
+ngr + 0000000000008000 & 5555555555555555 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ngr + 0000000080000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 5555555555555555 = 0000000000000000 (cc=0)
+ngr + 8000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 5555555555555555 = 5555555555555555 (cc=1)
+ngr + 5555555555555555 & 5555555555555555 = 5555555555555555 (cc=1)
+ny + 0000000000000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 5555555555555555 = 0000000000000001 (cc=1)
+ny + 000000000000FFFF & 5555555555555555 = 0000000000005555 (cc=1)
+ny + 0000000000007FFF & 5555555555555555 = 0000000000005555 (cc=1)
+ny + 0000000000008000 & 5555555555555555 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ny + 0000000080000000 & 5555555555555555 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 5555555555555555 = 0000000055555555 (cc=1)
+ny + AAAAAAAAAAAAAAAA & 5555555555555555 = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 5555555555555555 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 5555555555555555 = FFFFFFFF55555555 (cc=1)
+ny + 5555555555555555 & 5555555555555555 = 5555555555555555 (cc=1)
+n + 0000000000000000 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+n + 0000000000000001 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+n + 000000000000FFFF & AAAAAAAAAAAAAAAA = 000000000000AAAA (cc=1)
+n + 0000000000007FFF & AAAAAAAAAAAAAAAA = 0000000000002AAA (cc=1)
+n + 0000000000008000 & AAAAAAAAAAAAAAAA = 0000000000008000 (cc=1)
+n + 00000000FFFFFFFF & AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+n + 0000000080000000 & AAAAAAAAAAAAAAAA = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+n + AAAAAAAAAAAAAAAA & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+n + 8000000000000000 & AAAAAAAAAAAAAAAA = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & AAAAAAAAAAAAAAAA = FFFFFFFFAAAAAAAA (cc=1)
+n + 5555555555555555 & AAAAAAAAAAAAAAAA = 5555555500000000 (cc=0)
+ng + 0000000000000000 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ng + 0000000000000001 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & AAAAAAAAAAAAAAAA = 000000000000AAAA (cc=1)
+ng + 0000000000007FFF & AAAAAAAAAAAAAAAA = 0000000000002AAA (cc=1)
+ng + 0000000000008000 & AAAAAAAAAAAAAAAA = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+ng + 0000000080000000 & AAAAAAAAAAAAAAAA = 0000000080000000 (cc=1)
+ng + 000000007FFFFFFF & AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+ng + AAAAAAAAAAAAAAAA & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ng + 8000000000000000 & AAAAAAAAAAAAAAAA = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ng + 5555555555555555 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+nr + 0000000000000000 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+nr + 0000000000000001 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & AAAAAAAAAAAAAAAA = 000000000000AAAA (cc=1)
+nr + 0000000000007FFF & AAAAAAAAAAAAAAAA = 0000000000002AAA (cc=1)
+nr + 0000000000008000 & AAAAAAAAAAAAAAAA = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+nr + 0000000080000000 & AAAAAAAAAAAAAAAA = 0000000080000000 (cc=1)
+nr + 000000007FFFFFFF & AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+nr + AAAAAAAAAAAAAAAA & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+nr + 8000000000000000 & AAAAAAAAAAAAAAAA = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & AAAAAAAAAAAAAAAA = FFFFFFFFAAAAAAAA (cc=1)
+nr + 5555555555555555 & AAAAAAAAAAAAAAAA = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & AAAAAAAAAAAAAAAA = 000000000000AAAA (cc=1)
+ngr + 0000000000007FFF & AAAAAAAAAAAAAAAA = 0000000000002AAA (cc=1)
+ngr + 0000000000008000 & AAAAAAAAAAAAAAAA = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+ngr + 0000000080000000 & AAAAAAAAAAAAAAAA = 0000000080000000 (cc=1)
+ngr + 000000007FFFFFFF & AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+ngr + AAAAAAAAAAAAAAAA & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ngr + 8000000000000000 & AAAAAAAAAAAAAAAA = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ngr + 5555555555555555 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ny + 0000000000000000 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ny + 0000000000000001 & AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & AAAAAAAAAAAAAAAA = 000000000000AAAA (cc=1)
+ny + 0000000000007FFF & AAAAAAAAAAAAAAAA = 0000000000002AAA (cc=1)
+ny + 0000000000008000 & AAAAAAAAAAAAAAAA = 0000000000008000 (cc=1)
+ny + 00000000FFFFFFFF & AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+ny + 0000000080000000 & AAAAAAAAAAAAAAAA = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+ny + AAAAAAAAAAAAAAAA & AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ny + 8000000000000000 & AAAAAAAAAAAAAAAA = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & AAAAAAAAAAAAAAAA = FFFFFFFFAAAAAAAA (cc=1)
+ny + 5555555555555555 & AAAAAAAAAAAAAAAA = 5555555500000000 (cc=0)
+n + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 8000000000000000 = 0000000080000000 (cc=1)
+n + 0000000080000000 & 8000000000000000 = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA80000000 (cc=1)
+n + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF80000000 (cc=1)
+n + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & 8000000000000000 = 8000000000000000 (cc=1)
+ng + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & 8000000000000000 = 8000000000000000 (cc=1)
+ng + 5555555555555555 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + 5555555555555555 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 8000000000000000 = 0000000080000000 (cc=1)
+ny + 0000000080000000 & 8000000000000000 = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA80000000 (cc=1)
+ny + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF80000000 (cc=1)
+ny + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & FFFFFFFFFFFFFFFF = 0000000000000001 (cc=1)
+n + 000000000000FFFF & FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=1)
+n + 0000000000007FFF & FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=1)
+n + 0000000000008000 & FFFFFFFFFFFFFFFF = 0000000000008000 (cc=1)
+n + 00000000FFFFFFFF & FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+n + 0000000080000000 & FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+n + AAAAAAAAAAAAAAAA & FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+n + 8000000000000000 & FFFFFFFFFFFFFFFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+n + 5555555555555555 & FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+ng + 0000000000000000 & FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & FFFFFFFFFFFFFFFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=1)
+ng + 0000000000007FFF & FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & FFFFFFFFFFFFFFFF = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ng + 0000000080000000 & FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+ng + 000000007FFFFFFF & FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+ng + 8000000000000000 & FFFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ng + 5555555555555555 & FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+nr + 0000000000000000 & FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & FFFFFFFFFFFFFFFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=1)
+nr + 0000000000007FFF & FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & FFFFFFFFFFFFFFFF = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+nr + 0000000080000000 & FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+nr + 000000007FFFFFFF & FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+nr + 8000000000000000 & FFFFFFFFFFFFFFFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+nr + 5555555555555555 & FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+ngr + 0000000000000000 & FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & FFFFFFFFFFFFFFFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=1)
+ngr + 0000000000007FFF & FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & FFFFFFFFFFFFFFFF = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ngr + 0000000080000000 & FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+ngr + 000000007FFFFFFF & FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+ngr + 8000000000000000 & FFFFFFFFFFFFFFFF = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ngr + 5555555555555555 & FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+ny + 0000000000000000 & FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & FFFFFFFFFFFFFFFF = 0000000000000001 (cc=1)
+ny + 000000000000FFFF & FFFFFFFFFFFFFFFF = 000000000000FFFF (cc=1)
+ny + 0000000000007FFF & FFFFFFFFFFFFFFFF = 0000000000007FFF (cc=1)
+ny + 0000000000008000 & FFFFFFFFFFFFFFFF = 0000000000008000 (cc=1)
+ny + 00000000FFFFFFFF & FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+ny + 0000000080000000 & FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+ny + AAAAAAAAAAAAAAAA & FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+ny + 8000000000000000 & FFFFFFFFFFFFFFFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ny + 5555555555555555 & FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+n + 0000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+n + 000000000000FFFF & 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+n + 0000000000007FFF & 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+n + 0000000000008000 & 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+n + 00000000FFFFFFFF & 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+n + 0000000080000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+n + AAAAAAAAAAAAAAAA & 7FFFFFFF00000000 = AAAAAAAA2AAAAAAA (cc=1)
+n + 8000000000000000 & 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 7FFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+n + 5555555555555555 & 7FFFFFFF00000000 = 5555555555555555 (cc=1)
+ng + 0000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & 7FFFFFFF00000000 = 2AAAAAAA00000000 (cc=1)
+ng + 8000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+ng + 5555555555555555 & 7FFFFFFF00000000 = 5555555500000000 (cc=1)
+nr + 0000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & 7FFFFFFF00000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & 7FFFFFFF00000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & 7FFFFFFF00000000 = 2AAAAAAA00000000 (cc=1)
+ngr + 8000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+ngr + 5555555555555555 & 7FFFFFFF00000000 = 5555555500000000 (cc=1)
+ny + 0000000000000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+ny + 000000000000FFFF & 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+ny + 0000000000007FFF & 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+ny + 0000000000008000 & 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+ny + 00000000FFFFFFFF & 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+ny + 0000000080000000 & 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+ny + AAAAAAAAAAAAAAAA & 7FFFFFFF00000000 = AAAAAAAA2AAAAAAA (cc=1)
+ny + 8000000000000000 & 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 7FFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+ny + 5555555555555555 & 7FFFFFFF00000000 = 5555555555555555 (cc=1)
+n + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 8000000000000000 = 0000000080000000 (cc=1)
+n + 0000000080000000 & 8000000000000000 = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA80000000 (cc=1)
+n + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF80000000 (cc=1)
+n + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & 8000000000000000 = 8000000000000000 (cc=1)
+ng + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & 8000000000000000 = 8000000000000000 (cc=1)
+ng + 5555555555555555 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & 8000000000000000 = 8000000000000000 (cc=1)
+ngr + 5555555555555555 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 8000000000000000 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 8000000000000000 = 0000000080000000 (cc=1)
+ny + 0000000080000000 & 8000000000000000 = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & 8000000000000000 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 8000000000000000 = AAAAAAAA80000000 (cc=1)
+ny + 8000000000000000 & 8000000000000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 8000000000000000 = FFFFFFFF80000000 (cc=1)
+ny + 5555555555555555 & 8000000000000000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & AAAAAAAA00000000 = 000000000000AAAA (cc=1)
+n + 0000000000007FFF & AAAAAAAA00000000 = 0000000000002AAA (cc=1)
+n + 0000000000008000 & AAAAAAAA00000000 = 0000000000008000 (cc=1)
+n + 00000000FFFFFFFF & AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+n + 0000000080000000 & AAAAAAAA00000000 = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & AAAAAAAA00000000 = 000000002AAAAAAA (cc=1)
+n + AAAAAAAAAAAAAAAA & AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+n + 8000000000000000 & AAAAAAAA00000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & AAAAAAAA00000000 = FFFFFFFFAAAAAAAA (cc=1)
+n + 5555555555555555 & AAAAAAAA00000000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ng + 8000000000000000 & AAAAAAAA00000000 = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ng + 5555555555555555 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & AAAAAAAA00000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & AAAAAAAA00000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & AAAAAAAA00000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & AAAAAAAA00000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ngr + 8000000000000000 & AAAAAAAA00000000 = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ngr + 5555555555555555 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & AAAAAAAA00000000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & AAAAAAAA00000000 = 000000000000AAAA (cc=1)
+ny + 0000000000007FFF & AAAAAAAA00000000 = 0000000000002AAA (cc=1)
+ny + 0000000000008000 & AAAAAAAA00000000 = 0000000000008000 (cc=1)
+ny + 00000000FFFFFFFF & AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+ny + 0000000080000000 & AAAAAAAA00000000 = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & AAAAAAAA00000000 = 000000002AAAAAAA (cc=1)
+ny + AAAAAAAAAAAAAAAA & AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+ny + 8000000000000000 & AAAAAAAA00000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & AAAAAAAA00000000 = FFFFFFFFAAAAAAAA (cc=1)
+ny + 5555555555555555 & AAAAAAAA00000000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & FFFFFFFF00000000 = 0000000000000001 (cc=1)
+n + 000000000000FFFF & FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+n + 0000000000007FFF & FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+n + 0000000000008000 & FFFFFFFF00000000 = 0000000000008000 (cc=1)
+n + 00000000FFFFFFFF & FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+n + 0000000080000000 & FFFFFFFF00000000 = 0000000080000000 (cc=1)
+n + 000000007FFFFFFF & FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+n + AAAAAAAAAAAAAAAA & FFFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+n + 8000000000000000 & FFFFFFFF00000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+n + 5555555555555555 & FFFFFFFF00000000 = 5555555555555555 (cc=1)
+ng + 0000000000000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 0000000080000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & FFFFFFFF00000000 = AAAAAAAA00000000 (cc=1)
+ng + 8000000000000000 & FFFFFFFF00000000 = 8000000000000000 (cc=1)
+ng + FFFFFFFFFFFFFFFF & FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ng + 5555555555555555 & FFFFFFFF00000000 = 5555555500000000 (cc=1)
+nr + 0000000000000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 0000000080000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & FFFFFFFF00000000 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & FFFFFFFF00000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & FFFFFFFF00000000 = FFFFFFFF00000000 (cc=0)
+nr + 5555555555555555 & FFFFFFFF00000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 0000000080000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & FFFFFFFF00000000 = AAAAAAAA00000000 (cc=1)
+ngr + 8000000000000000 & FFFFFFFF00000000 = 8000000000000000 (cc=1)
+ngr + FFFFFFFFFFFFFFFF & FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ngr + 5555555555555555 & FFFFFFFF00000000 = 5555555500000000 (cc=1)
+ny + 0000000000000000 & FFFFFFFF00000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & FFFFFFFF00000000 = 0000000000000001 (cc=1)
+ny + 000000000000FFFF & FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+ny + 0000000000007FFF & FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+ny + 0000000000008000 & FFFFFFFF00000000 = 0000000000008000 (cc=1)
+ny + 00000000FFFFFFFF & FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+ny + 0000000080000000 & FFFFFFFF00000000 = 0000000080000000 (cc=1)
+ny + 000000007FFFFFFF & FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+ny + AAAAAAAAAAAAAAAA & FFFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+ny + 8000000000000000 & FFFFFFFF00000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ny + 5555555555555555 & FFFFFFFF00000000 = 5555555555555555 (cc=1)
+n + 0000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000008000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 0000000080000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 000000007FFFFFFF = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 000000007FFFFFFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 000000007FFFFFFF = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 000000007FFFFFFF = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 000000007FFFFFFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 000000007FFFFFFF = 000000000000FFFF (cc=1)
+ng + 0000000000007FFF & 000000007FFFFFFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & 000000007FFFFFFF = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ng + 0000000080000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & 000000007FFFFFFF = 000000002AAAAAAA (cc=1)
+ng + 8000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ng + 5555555555555555 & 000000007FFFFFFF = 0000000055555555 (cc=1)
+nr + 0000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 000000007FFFFFFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 000000007FFFFFFF = 000000000000FFFF (cc=1)
+nr + 0000000000007FFF & 000000007FFFFFFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & 000000007FFFFFFF = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+nr + 0000000080000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & 000000007FFFFFFF = AAAAAAAA2AAAAAAA (cc=1)
+nr + 8000000000000000 & 000000007FFFFFFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 000000007FFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+nr + 5555555555555555 & 000000007FFFFFFF = 5555555555555555 (cc=1)
+ngr + 0000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 000000007FFFFFFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 000000007FFFFFFF = 000000000000FFFF (cc=1)
+ngr + 0000000000007FFF & 000000007FFFFFFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & 000000007FFFFFFF = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ngr + 0000000080000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 000000007FFFFFFF = 000000002AAAAAAA (cc=1)
+ngr + 8000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ngr + 5555555555555555 & 000000007FFFFFFF = 0000000055555555 (cc=1)
+ny + 0000000000000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 000000007FFFFFFF = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 000000007FFFFFFF = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 000000007FFFFFFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 000000007FFFFFFF = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 000000007FFFFFFF = 5555555500000000 (cc=0)
+n + 0000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 0000000080000000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 0000000080000000 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 0000000080000000 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 0000000080000000 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+n + 0000000080000000 & 0000000080000000 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 0000000080000000 = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 0000000080000000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 0000000080000000 = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 0000000080000000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 0000000080000000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ng + 0000000000007FFF & 0000000080000000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 0000000080000000 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 0000000080000000 = 0000000080000000 (cc=1)
+ng + 0000000080000000 & 0000000080000000 = 0000000080000000 (cc=1)
+ng + 000000007FFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ng + AAAAAAAAAAAAAAAA & 0000000080000000 = 0000000080000000 (cc=1)
+ng + 8000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 0000000080000000 = 0000000080000000 (cc=1)
+ng + 5555555555555555 & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 0000000000007FFF & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 0000000080000000 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 0000000080000000 = 0000000080000000 (cc=1)
+nr + 0000000080000000 & 0000000080000000 = 0000000080000000 (cc=1)
+nr + 000000007FFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+nr + AAAAAAAAAAAAAAAA & 0000000080000000 = AAAAAAAA80000000 (cc=1)
+nr + 8000000000000000 & 0000000080000000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 0000000080000000 = FFFFFFFF80000000 (cc=1)
+nr + 5555555555555555 & 0000000080000000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + 0000000000007FFF & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 0000000080000000 = 0000000080000000 (cc=1)
+ngr + 0000000080000000 & 0000000080000000 = 0000000080000000 (cc=1)
+ngr + 000000007FFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + AAAAAAAAAAAAAAAA & 0000000080000000 = 0000000080000000 (cc=1)
+ngr + 8000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 0000000080000000 = 0000000080000000 (cc=1)
+ngr + 5555555555555555 & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 0000000080000000 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 0000000080000000 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 0000000080000000 = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 0000000080000000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 0000000080000000 = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 0000000080000000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 0000000055555555 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 0000000055555555 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 0000000055555555 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 0000000055555555 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 0000000055555555 = 0000000000000000 (cc=0)
+n + 0000000080000000 & 0000000055555555 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 0000000055555555 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 0000000055555555 = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 0000000055555555 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 0000000055555555 = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 0000000055555555 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 0000000055555555 = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 0000000055555555 = 0000000000005555 (cc=1)
+ng + 0000000000007FFF & 0000000055555555 = 0000000000005555 (cc=1)
+ng + 0000000000008000 & 0000000055555555 = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ng + 0000000080000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ng + AAAAAAAAAAAAAAAA & 0000000055555555 = 0000000000000000 (cc=0)
+ng + 8000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ng + 5555555555555555 & 0000000055555555 = 0000000055555555 (cc=1)
+nr + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 0000000055555555 = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 0000000055555555 = 0000000000005555 (cc=1)
+nr + 0000000000007FFF & 0000000055555555 = 0000000000005555 (cc=1)
+nr + 0000000000008000 & 0000000055555555 = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+nr + 0000000080000000 & 0000000055555555 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+nr + AAAAAAAAAAAAAAAA & 0000000055555555 = AAAAAAAA00000000 (cc=0)
+nr + 8000000000000000 & 0000000055555555 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 0000000055555555 = FFFFFFFF55555555 (cc=1)
+nr + 5555555555555555 & 0000000055555555 = 5555555555555555 (cc=1)
+ngr + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 0000000055555555 = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 0000000055555555 = 0000000000005555 (cc=1)
+ngr + 0000000000007FFF & 0000000055555555 = 0000000000005555 (cc=1)
+ngr + 0000000000008000 & 0000000055555555 = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ngr + 0000000080000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 0000000055555555 = 0000000000000000 (cc=0)
+ngr + 8000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 0000000055555555 = 0000000055555555 (cc=1)
+ngr + 5555555555555555 & 0000000055555555 = 0000000055555555 (cc=1)
+ny + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 0000000055555555 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 0000000055555555 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 0000000055555555 = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 0000000055555555 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 0000000055555555 = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 0000000055555555 = 5555555500000000 (cc=0)
+n + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 0000000000008000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 0000000080000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 00000000FFFFFFFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 00000000FFFFFFFF = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 00000000FFFFFFFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+ng + 0000000000007FFF & 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & 00000000FFFFFFFF = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ng + 0000000080000000 & 00000000FFFFFFFF = 0000000080000000 (cc=1)
+ng + 000000007FFFFFFF & 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = 00000000AAAAAAAA (cc=1)
+ng + 8000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ng + 5555555555555555 & 00000000FFFFFFFF = 0000000055555555 (cc=1)
+nr + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 00000000FFFFFFFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+nr + 0000000000007FFF & 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & 00000000FFFFFFFF = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+nr + 0000000080000000 & 00000000FFFFFFFF = 0000000080000000 (cc=1)
+nr + 000000007FFFFFFF & 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+nr + 8000000000000000 & 00000000FFFFFFFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+nr + 5555555555555555 & 00000000FFFFFFFF = 5555555555555555 (cc=1)
+ngr + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 00000000FFFFFFFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+ngr + 0000000000007FFF & 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & 00000000FFFFFFFF = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ngr + 0000000080000000 & 00000000FFFFFFFF = 0000000080000000 (cc=1)
+ngr + 000000007FFFFFFF & 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = 00000000AAAAAAAA (cc=1)
+ngr + 8000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ngr + 5555555555555555 & 00000000FFFFFFFF = 0000000055555555 (cc=1)
+ny + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 00000000FFFFFFFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 00000000FFFFFFFF = 5555555500000000 (cc=0)
+n + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000008000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 000000000000FFFF = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & 000000000000FFFF = 000000000000AAAA (cc=1)
+ng + 8000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 5555555555555555 & 000000000000FFFF = 0000000000005555 (cc=1)
+nr + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA0000AAAA (cc=1)
+nr + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF0000FFFF (cc=1)
+nr + 5555555555555555 & 000000000000FFFF = 5555555500005555 (cc=1)
+ngr + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 000000000000FFFF = 000000000000AAAA (cc=1)
+ngr + 8000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 5555555555555555 & 000000000000FFFF = 0000000000005555 (cc=1)
+ny + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 000000000000FFFF = 5555555500000000 (cc=0)
+n + 0000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 0000000000008000 & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 0000000080000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 0000000000007FFF = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 0000000000007FFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 0000000000007FFF = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 0000000000007FFF = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 0000000000007FFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ng + 0000000000007FFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ng + 00000000FFFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ng + 0000000080000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & 0000000000007FFF = 0000000000002AAA (cc=1)
+ng + 8000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ng + 5555555555555555 & 0000000000007FFF = 0000000000005555 (cc=1)
+nr + 0000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 0000000000007FFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+nr + 0000000000007FFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & 0000000000007FFF = 0000000000000000 (cc=0)
+nr + 00000000FFFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+nr + 0000000080000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & 0000000000007FFF = AAAAAAAA00002AAA (cc=1)
+nr + 8000000000000000 & 0000000000007FFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 0000000000007FFF = FFFFFFFF00007FFF (cc=1)
+nr + 5555555555555555 & 0000000000007FFF = 5555555500005555 (cc=1)
+ngr + 0000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 0000000000007FFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ngr + 0000000000007FFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ngr + 00000000FFFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ngr + 0000000080000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 0000000000007FFF = 0000000000002AAA (cc=1)
+ngr + 8000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 0000000000007FFF = 0000000000007FFF (cc=1)
+ngr + 5555555555555555 & 0000000000007FFF = 0000000000005555 (cc=1)
+ny + 0000000000000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 0000000000007FFF = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 0000000000007FFF = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 0000000000007FFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 0000000000007FFF = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 0000000000007FFF = 5555555500000000 (cc=0)
+n + 0000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+n + 0000000000000001 & 0000000000008000 = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 0000000000008000 = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 0000000000008000 = 0000000000000000 (cc=0)
+n + 0000000000008000 & 0000000000008000 = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 0000000000008000 = 0000000000000000 (cc=0)
+n + 0000000080000000 & 0000000000008000 = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 0000000000008000 = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 0000000000008000 = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 0000000000008000 = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 0000000000008000 = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 0000000000008000 = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 0000000000008000 = 0000000000000000 (cc=0)
+ng + 000000000000FFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ng + 0000000000007FFF & 0000000000008000 = 0000000000000000 (cc=0)
+ng + 0000000000008000 & 0000000000008000 = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ng + 0000000080000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ng + AAAAAAAAAAAAAAAA & 0000000000008000 = 0000000000008000 (cc=1)
+ng + 8000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ng + 5555555555555555 & 0000000000008000 = 0000000000000000 (cc=0)
+nr + 0000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 0000000000008000 = 0000000000000000 (cc=0)
+nr + 000000000000FFFF & 0000000000008000 = 0000000000008000 (cc=1)
+nr + 0000000000007FFF & 0000000000008000 = 0000000000000000 (cc=0)
+nr + 0000000000008000 & 0000000000008000 = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+nr + 0000000080000000 & 0000000000008000 = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+nr + AAAAAAAAAAAAAAAA & 0000000000008000 = AAAAAAAA00008000 (cc=1)
+nr + 8000000000000000 & 0000000000008000 = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 0000000000008000 = FFFFFFFF00008000 (cc=1)
+nr + 5555555555555555 & 0000000000008000 = 5555555500000000 (cc=0)
+ngr + 0000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 0000000000008000 = 0000000000000000 (cc=0)
+ngr + 000000000000FFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + 0000000000007FFF & 0000000000008000 = 0000000000000000 (cc=0)
+ngr + 0000000000008000 & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + 0000000080000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + 8000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 0000000000008000 = 0000000000008000 (cc=1)
+ngr + 5555555555555555 & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 0000000000000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 0000000000008000 = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 0000000000008000 = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 0000000000008000 = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 0000000000008000 = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 0000000000008000 = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 0000000000008000 = 5555555500000000 (cc=0)
+n + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000000001 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 000000000000FFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000007FFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000000008000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 00000000FFFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+n + 000000007FFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+n + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA00000000 (cc=0)
+n + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+n + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF00000000 (cc=0)
+n + 5555555555555555 & 000000000000FFFF = 5555555500000000 (cc=0)
+ng + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+ng + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+ng + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+ng + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + AAAAAAAAAAAAAAAA & 000000000000FFFF = 000000000000AAAA (cc=1)
+ng + 8000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ng + FFFFFFFFFFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ng + 5555555555555555 & 000000000000FFFF = 0000000000005555 (cc=1)
+nr + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nr + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+nr + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+nr + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+nr + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nr + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nr + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA0000AAAA (cc=1)
+nr + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+nr + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF0000FFFF (cc=1)
+nr + 5555555555555555 & 000000000000FFFF = 5555555500005555 (cc=1)
+ngr + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+ngr + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+ngr + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+ngr + 00000000FFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + 000000007FFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + AAAAAAAAAAAAAAAA & 000000000000FFFF = 000000000000AAAA (cc=1)
+ngr + 8000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ngr + FFFFFFFFFFFFFFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+ngr + 5555555555555555 & 000000000000FFFF = 0000000000005555 (cc=1)
+ny + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000000001 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 000000000000FFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000007FFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000000008000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 00000000FFFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 0000000080000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + 000000007FFFFFFF & 000000000000FFFF = 0000000000000000 (cc=0)
+ny + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAA00000000 (cc=0)
+ny + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+ny + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFF00000000 (cc=0)
+ny + 5555555555555555 & 000000000000FFFF = 5555555500000000 (cc=0)
+ni + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ni + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+ni + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+ni + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+ni + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+ni + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+ni + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+ni + 000000007FFFFFFF & 0000000000000000 = 000000007FFFFFFF (cc=0)
+ni + AAAAAAAAAAAAAAAA & 0000000000000000 = 00AAAAAAAAAAAAAA (cc=0)
+ni + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+ni + FFFFFFFFFFFFFFFF & 0000000000000000 = 00FFFFFFFFFFFFFF (cc=0)
+ni + 5555555555555555 & 0000000000000000 = 0055555555555555 (cc=0)
+ni + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+ni + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+ni + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+ni + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+ni + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+ni + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFFFFFF (cc=0)
+ni + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+ni + 000000007FFFFFFF & 00000000000000FF = 000000007FFFFFFF (cc=0)
+ni + AAAAAAAAAAAAAAAA & 00000000000000FF = AAAAAAAAAAAAAAAA (cc=1)
+ni + 8000000000000000 & 00000000000000FF = 8000000000000000 (cc=1)
+ni + FFFFFFFFFFFFFFFF & 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+ni + 5555555555555555 & 00000000000000FF = 5555555555555555 (cc=1)
+ni + 0000000000000000 & 0000000000000080 = 0000000000000000 (cc=0)
+ni + 0000000000000001 & 0000000000000080 = 0000000000000001 (cc=0)
+ni + 000000000000FFFF & 0000000000000080 = 000000000000FFFF (cc=0)
+ni + 0000000000007FFF & 0000000000000080 = 0000000000007FFF (cc=0)
+ni + 0000000000008000 & 0000000000000080 = 0000000000008000 (cc=0)
+ni + 00000000FFFFFFFF & 0000000000000080 = 00000000FFFFFFFF (cc=0)
+ni + 0000000080000000 & 0000000000000080 = 0000000080000000 (cc=0)
+ni + 000000007FFFFFFF & 0000000000000080 = 000000007FFFFFFF (cc=0)
+ni + AAAAAAAAAAAAAAAA & 0000000000000080 = 80AAAAAAAAAAAAAA (cc=1)
+ni + 8000000000000000 & 0000000000000080 = 8000000000000000 (cc=1)
+ni + FFFFFFFFFFFFFFFF & 0000000000000080 = 80FFFFFFFFFFFFFF (cc=1)
+ni + 5555555555555555 & 0000000000000080 = 0055555555555555 (cc=0)
+ni + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+ni + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+ni + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+ni + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+ni + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+ni + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFFFFFF (cc=0)
+ni + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+ni + 000000007FFFFFFF & 00000000000000AA = 000000007FFFFFFF (cc=0)
+ni + AAAAAAAAAAAAAAAA & 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+ni + 8000000000000000 & 00000000000000AA = 8000000000000000 (cc=1)
+ni + FFFFFFFFFFFFFFFF & 00000000000000AA = AAFFFFFFFFFFFFFF (cc=1)
+ni + 5555555555555555 & 00000000000000AA = 0055555555555555 (cc=0)
+ni + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+ni + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+ni + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+ni + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+ni + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+ni + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFFFFFF (cc=0)
+ni + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+ni + 000000007FFFFFFF & 0000000000000055 = 000000007FFFFFFF (cc=0)
+ni + AAAAAAAAAAAAAAAA & 0000000000000055 = 00AAAAAAAAAAAAAA (cc=0)
+ni + 8000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+ni + FFFFFFFFFFFFFFFF & 0000000000000055 = 55FFFFFFFFFFFFFF (cc=1)
+ni + 5555555555555555 & 0000000000000055 = 5555555555555555 (cc=1)
+niy + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+niy + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+niy + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+niy + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+niy + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+niy + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+niy + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+niy + 000000007FFFFFFF & 0000000000000000 = 000000007FFFFFFF (cc=0)
+niy + AAAAAAAAAAAAAAAA & 0000000000000000 = 00AAAAAAAAAAAAAA (cc=0)
+niy + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+niy + FFFFFFFFFFFFFFFF & 0000000000000000 = 00FFFFFFFFFFFFFF (cc=0)
+niy + 5555555555555555 & 0000000000000000 = 0055555555555555 (cc=0)
+niy + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+niy + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+niy + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+niy + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+niy + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+niy + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFFFFFF (cc=0)
+niy + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+niy + 000000007FFFFFFF & 00000000000000FF = 000000007FFFFFFF (cc=0)
+niy + AAAAAAAAAAAAAAAA & 00000000000000FF = AAAAAAAAAAAAAAAA (cc=1)
+niy + 8000000000000000 & 00000000000000FF = 8000000000000000 (cc=1)
+niy + FFFFFFFFFFFFFFFF & 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+niy + 5555555555555555 & 00000000000000FF = 5555555555555555 (cc=1)
+niy + 0000000000000000 & 0000000000000080 = 0000000000000000 (cc=0)
+niy + 0000000000000001 & 0000000000000080 = 0000000000000001 (cc=0)
+niy + 000000000000FFFF & 0000000000000080 = 000000000000FFFF (cc=0)
+niy + 0000000000007FFF & 0000000000000080 = 0000000000007FFF (cc=0)
+niy + 0000000000008000 & 0000000000000080 = 0000000000008000 (cc=0)
+niy + 00000000FFFFFFFF & 0000000000000080 = 00000000FFFFFFFF (cc=0)
+niy + 0000000080000000 & 0000000000000080 = 0000000080000000 (cc=0)
+niy + 000000007FFFFFFF & 0000000000000080 = 000000007FFFFFFF (cc=0)
+niy + AAAAAAAAAAAAAAAA & 0000000000000080 = 80AAAAAAAAAAAAAA (cc=1)
+niy + 8000000000000000 & 0000000000000080 = 8000000000000000 (cc=1)
+niy + FFFFFFFFFFFFFFFF & 0000000000000080 = 80FFFFFFFFFFFFFF (cc=1)
+niy + 5555555555555555 & 0000000000000080 = 0055555555555555 (cc=0)
+niy + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+niy + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+niy + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+niy + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+niy + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+niy + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFFFFFF (cc=0)
+niy + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+niy + 000000007FFFFFFF & 00000000000000AA = 000000007FFFFFFF (cc=0)
+niy + AAAAAAAAAAAAAAAA & 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+niy + 8000000000000000 & 00000000000000AA = 8000000000000000 (cc=1)
+niy + FFFFFFFFFFFFFFFF & 00000000000000AA = AAFFFFFFFFFFFFFF (cc=1)
+niy + 5555555555555555 & 00000000000000AA = 0055555555555555 (cc=0)
+niy + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+niy + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+niy + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+niy + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+niy + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+niy + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFFFFFF (cc=0)
+niy + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+niy + 000000007FFFFFFF & 0000000000000055 = 000000007FFFFFFF (cc=0)
+niy + AAAAAAAAAAAAAAAA & 0000000000000055 = 00AAAAAAAAAAAAAA (cc=0)
+niy + 8000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+niy + FFFFFFFFFFFFFFFF & 0000000000000055 = 55FFFFFFFFFFFFFF (cc=1)
+niy + 5555555555555555 & 0000000000000055 = 5555555555555555 (cc=1)
+nihh + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 0000000000000055 = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 0000000000000055 = 0000AAAAAAAAAAAA (cc=0)
+nihh + 8000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nihh + FFFFFFFFFFFFFFFF & 0000000000000055 = 0055FFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 0000000000000055 = 0055555555555555 (cc=1)
+nihl + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 0000000000000055 = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 0000000000000055 = AAAA0000AAAAAAAA (cc=0)
+nihl + 8000000000000000 & 0000000000000055 = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 0000000000000055 = FFFF0055FFFFFFFF (cc=1)
+nihl + 5555555555555555 & 0000000000000055 = 5555005555555555 (cc=1)
+nilh + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 0000000000000055 = 000000000055FFFF (cc=1)
+nilh + 0000000080000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nilh + 000000007FFFFFFF & 0000000000000055 = 000000000055FFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 0000000000000055 = AAAAAAAA0000AAAA (cc=0)
+nilh + 8000000000000000 & 0000000000000055 = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 0000000000000055 = FFFFFFFF0055FFFF (cc=1)
+nilh + 5555555555555555 & 0000000000000055 = 5555555500555555 (cc=1)
+nill + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=1)
+nill + 000000000000FFFF & 0000000000000055 = 0000000000000055 (cc=1)
+nill + 0000000000007FFF & 0000000000000055 = 0000000000000055 (cc=1)
+nill + 0000000000008000 & 0000000000000055 = 0000000000000000 (cc=0)
+nill + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFF0055 (cc=1)
+nill + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 0000000000000055 = 000000007FFF0055 (cc=1)
+nill + AAAAAAAAAAAAAAAA & 0000000000000055 = AAAAAAAAAAAA0000 (cc=0)
+nill + 8000000000000000 & 0000000000000055 = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 0000000000000055 = FFFFFFFFFFFF0055 (cc=1)
+nill + 5555555555555555 & 0000000000000055 = 5555555555550055 (cc=1)
+nihh + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 00000000000000AA = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 00000000000000AA = 00AAAAAAAAAAAAAA (cc=1)
+nihh + 8000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nihh + FFFFFFFFFFFFFFFF & 00000000000000AA = 00AAFFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 00000000000000AA = 0000555555555555 (cc=0)
+nihl + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 00000000000000AA = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 00000000000000AA = AAAA00AAAAAAAAAA (cc=1)
+nihl + 8000000000000000 & 00000000000000AA = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 00000000000000AA = FFFF00AAFFFFFFFF (cc=1)
+nihl + 5555555555555555 & 00000000000000AA = 5555000055555555 (cc=0)
+nilh + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 00000000000000AA = 0000000000AAFFFF (cc=1)
+nilh + 0000000080000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nilh + 000000007FFFFFFF & 00000000000000AA = 0000000000AAFFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 00000000000000AA = AAAAAAAA00AAAAAA (cc=1)
+nilh + 8000000000000000 & 00000000000000AA = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 00000000000000AA = FFFFFFFF00AAFFFF (cc=1)
+nilh + 5555555555555555 & 00000000000000AA = 5555555500005555 (cc=0)
+nill + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 00000000000000AA = 0000000000000000 (cc=0)
+nill + 000000000000FFFF & 00000000000000AA = 00000000000000AA (cc=1)
+nill + 0000000000007FFF & 00000000000000AA = 00000000000000AA (cc=1)
+nill + 0000000000008000 & 00000000000000AA = 0000000000000000 (cc=0)
+nill + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFF00AA (cc=1)
+nill + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 00000000000000AA = 000000007FFF00AA (cc=1)
+nill + AAAAAAAAAAAAAAAA & 00000000000000AA = AAAAAAAAAAAA00AA (cc=1)
+nill + 8000000000000000 & 00000000000000AA = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 00000000000000AA = FFFFFFFFFFFF00AA (cc=1)
+nill + 5555555555555555 & 00000000000000AA = 5555555555550000 (cc=0)
+nihh + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 00000000000000FF = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 00000000000000FF = 00AAAAAAAAAAAAAA (cc=1)
+nihh + 8000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nihh + FFFFFFFFFFFFFFFF & 00000000000000FF = 00FFFFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 00000000000000FF = 0055555555555555 (cc=1)
+nihl + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 00000000000000FF = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 00000000000000FF = AAAA00AAAAAAAAAA (cc=1)
+nihl + 8000000000000000 & 00000000000000FF = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 00000000000000FF = FFFF00FFFFFFFFFF (cc=1)
+nihl + 5555555555555555 & 00000000000000FF = 5555005555555555 (cc=1)
+nilh + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 00000000000000FF = 0000000000FFFFFF (cc=1)
+nilh + 0000000080000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nilh + 000000007FFFFFFF & 00000000000000FF = 0000000000FFFFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 00000000000000FF = AAAAAAAA00AAAAAA (cc=1)
+nilh + 8000000000000000 & 00000000000000FF = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 00000000000000FF = FFFFFFFF00FFFFFF (cc=1)
+nilh + 5555555555555555 & 00000000000000FF = 5555555500555555 (cc=1)
+nill + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=1)
+nill + 000000000000FFFF & 00000000000000FF = 00000000000000FF (cc=1)
+nill + 0000000000007FFF & 00000000000000FF = 00000000000000FF (cc=1)
+nill + 0000000000008000 & 00000000000000FF = 0000000000000000 (cc=0)
+nill + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFF00FF (cc=1)
+nill + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 00000000000000FF = 000000007FFF00FF (cc=1)
+nill + AAAAAAAAAAAAAAAA & 00000000000000FF = AAAAAAAAAAAA00AA (cc=1)
+nill + 8000000000000000 & 00000000000000FF = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 00000000000000FF = FFFFFFFFFFFF00FF (cc=1)
+nill + 5555555555555555 & 00000000000000FF = 5555555555550055 (cc=1)
+nihh + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 0000000000000000 = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 0000000000000000 = 0000AAAAAAAAAAAA (cc=0)
+nihh + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nihh + FFFFFFFFFFFFFFFF & 0000000000000000 = 0000FFFFFFFFFFFF (cc=0)
+nihh + 5555555555555555 & 0000000000000000 = 0000555555555555 (cc=0)
+nihl + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 0000000000000000 = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAA0000AAAAAAAA (cc=0)
+nihl + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFF0000FFFFFFFF (cc=0)
+nihl + 5555555555555555 & 0000000000000000 = 5555000055555555 (cc=0)
+nilh + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nilh + 0000000080000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nilh + 000000007FFFFFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nilh + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAAAAAA0000AAAA (cc=0)
+nilh + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFFFFFF0000FFFF (cc=0)
+nilh + 5555555555555555 & 0000000000000000 = 5555555500005555 (cc=0)
+nill + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 0000000000000000 = 0000000000000000 (cc=0)
+nill + 000000000000FFFF & 0000000000000000 = 0000000000000000 (cc=0)
+nill + 0000000000007FFF & 0000000000000000 = 0000000000000000 (cc=0)
+nill + 0000000000008000 & 0000000000000000 = 0000000000000000 (cc=0)
+nill + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFF0000 (cc=0)
+nill + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 0000000000000000 = 000000007FFF0000 (cc=0)
+nill + AAAAAAAAAAAAAAAA & 0000000000000000 = AAAAAAAAAAAA0000 (cc=0)
+nill + 8000000000000000 & 0000000000000000 = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 0000000000000000 = FFFFFFFFFFFF0000 (cc=0)
+nill + 5555555555555555 & 0000000000000000 = 5555555555550000 (cc=0)
+nihh + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 000000000000FFFF = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 000000000000FFFF = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 000000000000FFFF = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+nihh + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=1)
+nihh + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 000000000000FFFF = 5555555555555555 (cc=1)
+nihl + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 000000000000FFFF = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 000000000000FFFF = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 000000000000FFFF = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+nihl + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+nihl + 5555555555555555 & 000000000000FFFF = 5555555555555555 (cc=1)
+nilh + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+nilh + 0000000080000000 & 000000000000FFFF = 0000000080000000 (cc=1)
+nilh + 000000007FFFFFFF & 000000000000FFFF = 000000007FFFFFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+nilh + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+nilh + 5555555555555555 & 000000000000FFFF = 5555555555555555 (cc=1)
+nill + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=1)
+nill + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=1)
+nill + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=1)
+nill + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=1)
+nill + 00000000FFFFFFFF & 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+nill + 0000000080000000 & 000000000000FFFF = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 000000000000FFFF = 000000007FFFFFFF (cc=1)
+nill + AAAAAAAAAAAAAAAA & 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+nill + 8000000000000000 & 000000000000FFFF = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+nill + 5555555555555555 & 000000000000FFFF = 5555555555555555 (cc=1)
+nihh + 0000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 000000000000AAAA = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 000000000000AAAA = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 000000000000AAAA = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 000000000000AAAA = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 000000000000AAAA = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 000000000000AAAA = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 000000000000AAAA = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+nihh + 8000000000000000 & 000000000000AAAA = 8000000000000000 (cc=1)
+nihh + FFFFFFFFFFFFFFFF & 000000000000AAAA = AAAAFFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 000000000000AAAA = 0000555555555555 (cc=0)
+nihl + 0000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 000000000000AAAA = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 000000000000AAAA = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 000000000000AAAA = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 000000000000AAAA = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 000000000000AAAA = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 000000000000AAAA = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 000000000000AAAA = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+nihl + 8000000000000000 & 000000000000AAAA = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 000000000000AAAA = FFFFAAAAFFFFFFFF (cc=1)
+nihl + 5555555555555555 & 000000000000AAAA = 5555000055555555 (cc=0)
+nilh + 0000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 000000000000AAAA = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 000000000000AAAA = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 000000000000AAAA = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 000000000000AAAA = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 000000000000AAAA = 00000000AAAAFFFF (cc=1)
+nilh + 0000000080000000 & 000000000000AAAA = 0000000080000000 (cc=1)
+nilh + 000000007FFFFFFF & 000000000000AAAA = 000000002AAAFFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+nilh + 8000000000000000 & 000000000000AAAA = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 000000000000AAAA = FFFFFFFFAAAAFFFF (cc=1)
+nilh + 5555555555555555 & 000000000000AAAA = 5555555500005555 (cc=0)
+nill + 0000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 000000000000AAAA = 0000000000000000 (cc=0)
+nill + 000000000000FFFF & 000000000000AAAA = 000000000000AAAA (cc=1)
+nill + 0000000000007FFF & 000000000000AAAA = 0000000000002AAA (cc=1)
+nill + 0000000000008000 & 000000000000AAAA = 0000000000008000 (cc=1)
+nill + 00000000FFFFFFFF & 000000000000AAAA = 00000000FFFFAAAA (cc=1)
+nill + 0000000080000000 & 000000000000AAAA = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 000000000000AAAA = 000000007FFFAAAA (cc=1)
+nill + AAAAAAAAAAAAAAAA & 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+nill + 8000000000000000 & 000000000000AAAA = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 000000000000AAAA = FFFFFFFFFFFFAAAA (cc=1)
+nill + 5555555555555555 & 000000000000AAAA = 5555555555550000 (cc=0)
+nihh + 0000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nihh + 0000000000000001 & 0000000000005555 = 0000000000000001 (cc=0)
+nihh + 000000000000FFFF & 0000000000005555 = 000000000000FFFF (cc=0)
+nihh + 0000000000007FFF & 0000000000005555 = 0000000000007FFF (cc=0)
+nihh + 0000000000008000 & 0000000000005555 = 0000000000008000 (cc=0)
+nihh + 00000000FFFFFFFF & 0000000000005555 = 00000000FFFFFFFF (cc=0)
+nihh + 0000000080000000 & 0000000000005555 = 0000000080000000 (cc=0)
+nihh + 000000007FFFFFFF & 0000000000005555 = 000000007FFFFFFF (cc=0)
+nihh + AAAAAAAAAAAAAAAA & 0000000000005555 = 0000AAAAAAAAAAAA (cc=0)
+nihh + 8000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nihh + FFFFFFFFFFFFFFFF & 0000000000005555 = 5555FFFFFFFFFFFF (cc=1)
+nihh + 5555555555555555 & 0000000000005555 = 5555555555555555 (cc=1)
+nihl + 0000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nihl + 0000000000000001 & 0000000000005555 = 0000000000000001 (cc=0)
+nihl + 000000000000FFFF & 0000000000005555 = 000000000000FFFF (cc=0)
+nihl + 0000000000007FFF & 0000000000005555 = 0000000000007FFF (cc=0)
+nihl + 0000000000008000 & 0000000000005555 = 0000000000008000 (cc=0)
+nihl + 00000000FFFFFFFF & 0000000000005555 = 00000000FFFFFFFF (cc=0)
+nihl + 0000000080000000 & 0000000000005555 = 0000000080000000 (cc=0)
+nihl + 000000007FFFFFFF & 0000000000005555 = 000000007FFFFFFF (cc=0)
+nihl + AAAAAAAAAAAAAAAA & 0000000000005555 = AAAA0000AAAAAAAA (cc=0)
+nihl + 8000000000000000 & 0000000000005555 = 8000000000000000 (cc=0)
+nihl + FFFFFFFFFFFFFFFF & 0000000000005555 = FFFF5555FFFFFFFF (cc=1)
+nihl + 5555555555555555 & 0000000000005555 = 5555555555555555 (cc=1)
+nilh + 0000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nilh + 0000000000000001 & 0000000000005555 = 0000000000000001 (cc=0)
+nilh + 000000000000FFFF & 0000000000005555 = 000000000000FFFF (cc=0)
+nilh + 0000000000007FFF & 0000000000005555 = 0000000000007FFF (cc=0)
+nilh + 0000000000008000 & 0000000000005555 = 0000000000008000 (cc=0)
+nilh + 00000000FFFFFFFF & 0000000000005555 = 000000005555FFFF (cc=1)
+nilh + 0000000080000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nilh + 000000007FFFFFFF & 0000000000005555 = 000000005555FFFF (cc=1)
+nilh + AAAAAAAAAAAAAAAA & 0000000000005555 = AAAAAAAA0000AAAA (cc=0)
+nilh + 8000000000000000 & 0000000000005555 = 8000000000000000 (cc=0)
+nilh + FFFFFFFFFFFFFFFF & 0000000000005555 = FFFFFFFF5555FFFF (cc=1)
+nilh + 5555555555555555 & 0000000000005555 = 5555555555555555 (cc=1)
+nill + 0000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nill + 0000000000000001 & 0000000000005555 = 0000000000000001 (cc=1)
+nill + 000000000000FFFF & 0000000000005555 = 0000000000005555 (cc=1)
+nill + 0000000000007FFF & 0000000000005555 = 0000000000005555 (cc=1)
+nill + 0000000000008000 & 0000000000005555 = 0000000000000000 (cc=0)
+nill + 00000000FFFFFFFF & 0000000000005555 = 00000000FFFF5555 (cc=1)
+nill + 0000000080000000 & 0000000000005555 = 0000000080000000 (cc=0)
+nill + 000000007FFFFFFF & 0000000000005555 = 000000007FFF5555 (cc=1)
+nill + AAAAAAAAAAAAAAAA & 0000000000005555 = AAAAAAAAAAAA0000 (cc=0)
+nill + 8000000000000000 & 0000000000005555 = 8000000000000000 (cc=0)
+nill + FFFFFFFFFFFFFFFF & 0000000000005555 = FFFFFFFFFFFF5555 (cc=1)
+nill + 5555555555555555 & 0000000000005555 = 5555555555555555 (cc=1)
diff --git a/none/tests/s390x/and.vgtest b/none/tests/s390x/and.vgtest
new file mode 100644 (file)
index 0000000..8582c6a
--- /dev/null
@@ -0,0 +1 @@
+prog: and
diff --git a/none/tests/s390x/and_EI.c b/none/tests/s390x/and_EI.c
new file mode 100644 (file)
index 0000000..cb98000
--- /dev/null
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include "and.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(nihf, 0);
+       immsweep(nihf, 0xff);
+       immsweep(nihf, 0x55);
+       immsweep(nihf, 0xaa);
+       immsweep(nihf, 0xffff);
+       immsweep(nihf, 0x5555);
+       immsweep(nihf, 0xaaaa);
+       immsweep(nihf, 0xffff0000);
+       immsweep(nihf, 0x55550000);
+       immsweep(nihf, 0xaaaa0000);
+       immsweep(nihf, 0xffffffff);
+       immsweep(nihf, 0x55555555);
+       immsweep(nihf, 0xaaaaaaaa);
+}
+
+
+int main()
+{
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/and_EI.stderr.exp b/none/tests/s390x/and_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/and_EI.stdout.exp b/none/tests/s390x/and_EI.stdout.exp
new file mode 100644 (file)
index 0000000..24fb0c2
--- /dev/null
@@ -0,0 +1,156 @@
+nihf + 0000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 0000000000000000 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 0000000000000000 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 0000000000000000 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 0000000000000000 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 0000000000000000 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 0000000000000000 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 0000000000000000 = 00000000AAAAAAAA (cc=0)
+nihf + 8000000000000000 & 0000000000000000 = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 0000000000000000 = 00000000FFFFFFFF (cc=0)
+nihf + 5555555555555555 & 0000000000000000 = 0000000055555555 (cc=0)
+nihf + 0000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000000000FF = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000000000FF = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000000000FF = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000000000FF = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000000000FF = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000000000FF = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000000000FF = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000000000FF = 000000AAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000000000FF = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 00000000000000FF = 000000FFFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000000000FF = 0000005555555555 (cc=1)
+nihf + 0000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 0000000000000055 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 0000000000000055 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 0000000000000055 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 0000000000000055 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 0000000000000055 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 0000000000000055 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 0000000000000055 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 0000000000000055 = 00000000AAAAAAAA (cc=0)
+nihf + 8000000000000000 & 0000000000000055 = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 0000000000000055 = 00000055FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 0000000000000055 = 0000005555555555 (cc=1)
+nihf + 0000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000000000AA = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000000000AA = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000000000AA = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000000000AA = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000000000AA = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000000000AA = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000000000AA = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000000000AA = 000000AAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000000000AA = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 00000000000000AA = 000000AAFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000000000AA = 0000000055555555 (cc=0)
+nihf + 0000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 000000000000FFFF = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 000000000000FFFF = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 000000000000FFFF = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 000000000000FFFF = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 000000000000FFFF = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 000000000000FFFF = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 000000000000FFFF = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 000000000000FFFF = 0000AAAAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 000000000000FFFF = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 000000000000FFFF = 0000FFFFFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 000000000000FFFF = 0000555555555555 (cc=1)
+nihf + 0000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 0000000000005555 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 0000000000005555 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 0000000000005555 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 0000000000005555 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 0000000000005555 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 0000000000005555 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 0000000000005555 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 0000000000005555 = 00000000AAAAAAAA (cc=0)
+nihf + 8000000000000000 & 0000000000005555 = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 0000000000005555 = 00005555FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 0000000000005555 = 0000555555555555 (cc=1)
+nihf + 0000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 000000000000AAAA = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 000000000000AAAA = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 000000000000AAAA = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 000000000000AAAA = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 000000000000AAAA = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 000000000000AAAA = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 000000000000AAAA = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 000000000000AAAA = 0000AAAAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 000000000000AAAA = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 000000000000AAAA = 0000AAAAFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 000000000000AAAA = 0000000055555555 (cc=0)
+nihf + 0000000000000000 & 00000000FFFF0000 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000FFFF0000 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000FFFF0000 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000FFFF0000 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000FFFF0000 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000FFFF0000 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000FFFF0000 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000FFFF0000 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000FFFF0000 = AAAA0000AAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000FFFF0000 = 8000000000000000 (cc=1)
+nihf + FFFFFFFFFFFFFFFF & 00000000FFFF0000 = FFFF0000FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000FFFF0000 = 5555000055555555 (cc=1)
+nihf + 0000000000000000 & 0000000055550000 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 0000000055550000 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 0000000055550000 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 0000000055550000 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 0000000055550000 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 0000000055550000 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 0000000055550000 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 0000000055550000 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 0000000055550000 = 00000000AAAAAAAA (cc=0)
+nihf + 8000000000000000 & 0000000055550000 = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 0000000055550000 = 55550000FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 0000000055550000 = 5555000055555555 (cc=1)
+nihf + 0000000000000000 & 00000000AAAA0000 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000AAAA0000 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000AAAA0000 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000AAAA0000 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000AAAA0000 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000AAAA0000 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000AAAA0000 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000AAAA0000 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000AAAA0000 = AAAA0000AAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000AAAA0000 = 8000000000000000 (cc=1)
+nihf + FFFFFFFFFFFFFFFF & 00000000AAAA0000 = AAAA0000FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000AAAA0000 = 0000000055555555 (cc=0)
+nihf + 0000000000000000 & 00000000FFFFFFFF = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000FFFFFFFF = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000FFFFFFFF = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000FFFFFFFF = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000FFFFFFFF = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000FFFFFFFF = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000FFFFFFFF = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000FFFFFFFF = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000FFFFFFFF = 8000000000000000 (cc=1)
+nihf + FFFFFFFFFFFFFFFF & 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000FFFFFFFF = 5555555555555555 (cc=1)
+nihf + 0000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 0000000055555555 = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 0000000055555555 = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 0000000055555555 = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 0000000055555555 = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 0000000055555555 = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 0000000055555555 = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 0000000055555555 = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 0000000055555555 = 00000000AAAAAAAA (cc=0)
+nihf + 8000000000000000 & 0000000055555555 = 0000000000000000 (cc=0)
+nihf + FFFFFFFFFFFFFFFF & 0000000055555555 = 55555555FFFFFFFF (cc=1)
+nihf + 5555555555555555 & 0000000055555555 = 5555555555555555 (cc=1)
+nihf + 0000000000000000 & 00000000AAAAAAAA = 0000000000000000 (cc=0)
+nihf + 0000000000000001 & 00000000AAAAAAAA = 0000000000000001 (cc=0)
+nihf + 000000000000FFFF & 00000000AAAAAAAA = 000000000000FFFF (cc=0)
+nihf + 0000000000007FFF & 00000000AAAAAAAA = 0000000000007FFF (cc=0)
+nihf + 0000000000008000 & 00000000AAAAAAAA = 0000000000008000 (cc=0)
+nihf + 00000000FFFFFFFF & 00000000AAAAAAAA = 00000000FFFFFFFF (cc=0)
+nihf + 0000000080000000 & 00000000AAAAAAAA = 0000000080000000 (cc=0)
+nihf + 000000007FFFFFFF & 00000000AAAAAAAA = 000000007FFFFFFF (cc=0)
+nihf + AAAAAAAAAAAAAAAA & 00000000AAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+nihf + 8000000000000000 & 00000000AAAAAAAA = 8000000000000000 (cc=1)
+nihf + FFFFFFFFFFFFFFFF & 00000000AAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+nihf + 5555555555555555 & 00000000AAAAAAAA = 0000000055555555 (cc=0)
diff --git a/none/tests/s390x/and_EI.vgtest b/none/tests/s390x/and_EI.vgtest
new file mode 100644 (file)
index 0000000..0f2a829
--- /dev/null
@@ -0,0 +1,2 @@
+prog: and_EI
+prereq: test -x and_EI
diff --git a/none/tests/s390x/clc.c b/none/tests/s390x/clc.c
new file mode 100644 (file)
index 0000000..e3e8301
--- /dev/null
@@ -0,0 +1,74 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+char b1[23] ="0123456789abcdefghijklm";
+char b2[23] ="mlkjihgfedcba9876543210";
+char b3[23] ="mmmmmmmmmmmmmmmmmmmmmmm";
+char b4[23] ="00000000000000000000000";
+char longbuf1[256];
+char longbuf2[256];
+
+static int clc(char *a1,char *a2, int l)
+{
+       int cc;
+
+       asm volatile(   "larl 1, 1f\n"
+                       "ex %3,0(1)\n"
+                       "j 2f\n"
+                       "1: clc 0(1,%1),0(%2)\n"
+                       "2: ipm %0\n"
+                       "srl %0,28\n"
+               :"=d" (cc)
+               :"a" (a1), "a" (a2), "d" (l): "1", "cc");
+       return cc;
+}
+
+
+void testrun(char *a1, char *a2, int l)
+{
+       int cc;
+
+       cc = clc(a1, a2, l);
+       printf("%d bytes:%d\n",l, cc);
+}
+
+
+void multiplex(int l, long offset1, long offset2)
+{
+       testrun(b1 + offset1, b1 + offset2, l);
+       testrun(b1 + offset1, b2 + offset2, l);
+       testrun(b1 + offset1, b3 + offset2, l);
+       testrun(b1 + offset1, b4 + offset2, l);
+       testrun(b2 + offset1, b2 + offset2, l);
+       testrun(b2 + offset1, b3 + offset2, l);
+       testrun(b2 + offset1, b4 + offset2, l);
+       testrun(b3 + offset1, b3 + offset2, l);
+       testrun(b3 + offset1, b4 + offset2, l);
+       testrun(b4 + offset1, b4 + offset2, l);
+}
+
+void sweep(int l)
+{
+       multiplex(l, 0, 0);
+       multiplex(l, 1, 0);
+       multiplex(l, 1, 1);
+       multiplex(l, 0, 1);
+}
+
+int main()
+{
+       sweep(0);
+       sweep(1);
+       sweep(2);
+       sweep(3);
+       sweep(4);
+       sweep(5);
+       sweep(22);
+       testrun(longbuf1, longbuf2, 255);
+       longbuf1[255] = 'a';
+       testrun(longbuf1, longbuf2, 255);
+       longbuf2[255] = 'b';
+       testrun(longbuf1, longbuf2, 255);
+       return 0;
+}
+
diff --git a/none/tests/s390x/clc.stderr.exp b/none/tests/s390x/clc.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/clc.stdout.exp b/none/tests/s390x/clc.stdout.exp
new file mode 100644 (file)
index 0000000..fb115d8
--- /dev/null
@@ -0,0 +1,283 @@
+0 bytes:0
+0 bytes:1
+0 bytes:1
+0 bytes:0
+0 bytes:0
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:1
+0 bytes:1
+0 bytes:2
+0 bytes:1
+0 bytes:1
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:0
+0 bytes:1
+0 bytes:1
+0 bytes:2
+0 bytes:0
+0 bytes:1
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:1
+0 bytes:1
+0 bytes:1
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:0
+0 bytes:2
+0 bytes:0
+1 bytes:0
+1 bytes:1
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:2
+1 bytes:0
+1 bytes:2
+1 bytes:1
+1 bytes:1
+1 bytes:2
+1 bytes:1
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:2
+1 bytes:0
+1 bytes:0
+1 bytes:1
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:2
+1 bytes:0
+1 bytes:1
+1 bytes:1
+1 bytes:1
+1 bytes:2
+1 bytes:2
+1 bytes:1
+1 bytes:2
+1 bytes:0
+1 bytes:2
+1 bytes:0
+2 bytes:0
+2 bytes:1
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:2
+2 bytes:0
+2 bytes:2
+2 bytes:1
+2 bytes:1
+2 bytes:2
+2 bytes:1
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:2
+2 bytes:0
+2 bytes:0
+2 bytes:1
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:2
+2 bytes:0
+2 bytes:1
+2 bytes:1
+2 bytes:1
+2 bytes:2
+2 bytes:2
+2 bytes:1
+2 bytes:2
+2 bytes:0
+2 bytes:2
+2 bytes:0
+3 bytes:0
+3 bytes:1
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:2
+3 bytes:0
+3 bytes:2
+3 bytes:1
+3 bytes:1
+3 bytes:2
+3 bytes:1
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:2
+3 bytes:0
+3 bytes:0
+3 bytes:1
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:2
+3 bytes:0
+3 bytes:1
+3 bytes:1
+3 bytes:1
+3 bytes:2
+3 bytes:2
+3 bytes:1
+3 bytes:2
+3 bytes:0
+3 bytes:2
+3 bytes:0
+4 bytes:0
+4 bytes:1
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:2
+4 bytes:0
+4 bytes:2
+4 bytes:1
+4 bytes:1
+4 bytes:2
+4 bytes:1
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:2
+4 bytes:0
+4 bytes:0
+4 bytes:1
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:2
+4 bytes:0
+4 bytes:1
+4 bytes:1
+4 bytes:1
+4 bytes:2
+4 bytes:2
+4 bytes:1
+4 bytes:2
+4 bytes:0
+4 bytes:2
+4 bytes:0
+5 bytes:0
+5 bytes:1
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:2
+5 bytes:0
+5 bytes:2
+5 bytes:1
+5 bytes:1
+5 bytes:2
+5 bytes:1
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:2
+5 bytes:0
+5 bytes:0
+5 bytes:1
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:2
+5 bytes:0
+5 bytes:1
+5 bytes:1
+5 bytes:1
+5 bytes:2
+5 bytes:2
+5 bytes:1
+5 bytes:2
+5 bytes:0
+5 bytes:2
+5 bytes:0
+22 bytes:0
+22 bytes:1
+22 bytes:1
+22 bytes:2
+22 bytes:0
+22 bytes:1
+22 bytes:2
+22 bytes:0
+22 bytes:2
+22 bytes:0
+22 bytes:2
+22 bytes:1
+22 bytes:1
+22 bytes:2
+22 bytes:1
+22 bytes:1
+22 bytes:2
+22 bytes:1
+22 bytes:2
+22 bytes:1
+22 bytes:0
+22 bytes:1
+22 bytes:1
+22 bytes:2
+22 bytes:0
+22 bytes:1
+22 bytes:2
+22 bytes:0
+22 bytes:2
+22 bytes:0
+22 bytes:1
+22 bytes:1
+22 bytes:1
+22 bytes:2
+22 bytes:2
+22 bytes:1
+22 bytes:2
+22 bytes:2
+22 bytes:2
+22 bytes:2
+255 bytes:0
+255 bytes:2
+255 bytes:1
diff --git a/none/tests/s390x/clc.vgtest b/none/tests/s390x/clc.vgtest
new file mode 100644 (file)
index 0000000..bc2cea4
--- /dev/null
@@ -0,0 +1 @@
+prog: clc
diff --git a/none/tests/s390x/clcle.c b/none/tests/s390x/clcle.c
new file mode 100644 (file)
index 0000000..58a1f30
--- /dev/null
@@ -0,0 +1,74 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+char b1[23] ="0123456789abcdefghijklm";
+char b2[23] ="mlkjihgfedcba9876543210";
+char b3[23] ="mmmmmmmmmmmmmmmmmmmmmmm";
+char b4[23] ="00000000000000000000000";
+char longbuf[17000000];
+
+static int clcle(unsigned long *_a1, unsigned long *_l1, unsigned long *_a3, unsigned long *_l3, char _pad)
+{
+       register unsigned long a1 asm ("2") = *_a1;
+       register unsigned long l1 asm ("3") = *_l1;
+       register unsigned long a3 asm ("4") = *_a3;
+       register unsigned long l3 asm ("5") = *_l3;
+       register unsigned long pad asm ("6") = _pad;
+       register unsigned long cc asm ("7");
+
+       asm volatile(   "0: clcle 2,4,0(6)\n\t"
+                       "jo 0b\n\t"
+                       "ipm %0\n\t"
+                       "srl %0,28\n\t"
+                       :"=d" (cc), "+d" (a1),"+d" (l1), "+d" (a3), "+d" (l3)
+                       : "d" (pad)
+                       : "memory", "cc");
+       *_a1 = a1;
+       *_a3 = a3;
+       *_l1 = l1;
+       *_l3 = l3;
+
+       return cc;
+}
+
+
+void testrun(void *_a1, unsigned long _l1, void *_a3, unsigned long _l3, char pad)
+{
+       unsigned long a1,a3,l1,l3;
+       int cc;
+
+       a1 = (unsigned long) _a1; l1 = _l1; a3 = (unsigned long) _a3; l3 = _l3;
+       cc = clcle(&a1, &l1,  &a3, &l3, pad);
+       printf("cc: %d, l1: %lu(%lu) l3: %lu(%lu) diff1: %lu diff3: %lu\n",
+                cc, l1, _l1, l3, _l3, a1-(unsigned long) _a1, a3-(unsigned long) _a3);
+}
+
+
+void multiplex(unsigned long l1, unsigned long l3, char pad)
+{
+       testrun(b1, l1, b1, l3, pad);
+       testrun(b1, l1, b2, l3, pad);
+       testrun(b1, l1, b3, l3, pad);
+       testrun(b1, l1, b4, l3, pad);
+       testrun(b2, l1, b2, l3, pad);
+       testrun(b2, l1, b3, l3, pad);
+       testrun(b2, l1, b4, l3, pad);
+       testrun(b3, l1, b3, l3, pad);
+       testrun(b3, l1, b4, l3, pad);
+       testrun(b4, l1, b4, l3, pad);
+}
+
+int main()
+{
+       multiplex(0,0,9);
+       multiplex(1,0,9);
+       multiplex(0,1,9);
+       multiplex(1,1,9);
+       multiplex(5,23,9);
+       multiplex(23,5,9);
+       testrun(longbuf,10000,longbuf,100000,0);
+       testrun(longbuf,10000,longbuf,100000,128);
+       testrun(longbuf,10000,longbuf,100000,255);
+       exit(0);
+}
+
diff --git a/none/tests/s390x/clcle.stderr.exp b/none/tests/s390x/clcle.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/clcle.stdout.exp b/none/tests/s390x/clcle.stdout.exp
new file mode 100644 (file)
index 0000000..9222263
--- /dev/null
@@ -0,0 +1,63 @@
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 0, l1: 0(0) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 2, l1: 1(1) l3: 0(0) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 0(0) l3: 1(1) diff1: 0 diff3: 0
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 1, l1: 1(1) l3: 1(1) diff1: 0 diff3: 0
+cc: 1, l1: 1(1) l3: 1(1) diff1: 0 diff3: 0
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 2, l1: 1(1) l3: 1(1) diff1: 0 diff3: 0
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 2, l1: 1(1) l3: 1(1) diff1: 0 diff3: 0
+cc: 0, l1: 0(1) l3: 0(1) diff1: 1 diff3: 1
+cc: 1, l1: 0(5) l3: 18(23) diff1: 5 diff3: 5
+cc: 1, l1: 5(5) l3: 23(23) diff1: 0 diff3: 0
+cc: 1, l1: 5(5) l3: 23(23) diff1: 0 diff3: 0
+cc: 2, l1: 4(5) l3: 22(23) diff1: 1 diff3: 1
+cc: 1, l1: 0(5) l3: 18(23) diff1: 5 diff3: 5
+cc: 1, l1: 4(5) l3: 22(23) diff1: 1 diff3: 1
+cc: 2, l1: 5(5) l3: 23(23) diff1: 0 diff3: 0
+cc: 1, l1: 0(5) l3: 18(23) diff1: 5 diff3: 5
+cc: 2, l1: 5(5) l3: 23(23) diff1: 0 diff3: 0
+cc: 1, l1: 0(5) l3: 18(23) diff1: 5 diff3: 5
+cc: 2, l1: 18(23) l3: 0(5) diff1: 5 diff3: 5
+cc: 1, l1: 23(23) l3: 5(5) diff1: 0 diff3: 0
+cc: 1, l1: 23(23) l3: 5(5) diff1: 0 diff3: 0
+cc: 2, l1: 22(23) l3: 4(5) diff1: 1 diff3: 1
+cc: 2, l1: 18(23) l3: 0(5) diff1: 5 diff3: 5
+cc: 1, l1: 22(23) l3: 4(5) diff1: 1 diff3: 1
+cc: 2, l1: 23(23) l3: 5(5) diff1: 0 diff3: 0
+cc: 2, l1: 18(23) l3: 0(5) diff1: 5 diff3: 5
+cc: 2, l1: 23(23) l3: 5(5) diff1: 0 diff3: 0
+cc: 2, l1: 18(23) l3: 0(5) diff1: 5 diff3: 5
+cc: 0, l1: 0(10000) l3: 0(100000) diff1: 10000 diff3: 100000
+cc: 2, l1: 0(10000) l3: 90000(100000) diff1: 10000 diff3: 10000
+cc: 2, l1: 0(10000) l3: 90000(100000) diff1: 10000 diff3: 10000
diff --git a/none/tests/s390x/clcle.vgtest b/none/tests/s390x/clcle.vgtest
new file mode 100644 (file)
index 0000000..2854877
--- /dev/null
@@ -0,0 +1 @@
+prog: clcle
diff --git a/none/tests/s390x/cvb.c b/none/tests/s390x/cvb.c
new file mode 100644 (file)
index 0000000..ce5f9e4
--- /dev/null
@@ -0,0 +1,104 @@
+#include <stdio.h>
+
+static unsigned long test[] ={
+       0x000000000000000a,
+       0x000000000000001a,
+       0x000000000000012a,
+       0x000000000000123a,
+       0x000000000001234a,
+       0x000000000012345a,
+       0x000000000123456a,
+       0x000000001234567a,
+       0x000000012345678a,
+       0x000000123456789a,
+       0x000001234567890a,
+       0x000000000000000b,
+       0x000000000000001b,
+       0x000000000000012b,
+       0x000000000000123b,
+       0x000000000001234b,
+       0x000000000012345b,
+       0x000000000123456b,
+       0x000000001234567b,
+       0x000000012345678b,
+       0x000000123456789b,
+       0x000001234567890b,
+       0x000000000000000c,
+       0x000000000000001c,
+       0x000000000000012c,
+       0x000000000000123c,
+       0x000000000001234c,
+       0x000000000012345c,
+       0x000000000123456c,
+       0x000000001234567c,
+       0x000000012345678c,
+       0x000000123456789c,
+       0x000001234567890c,
+       0x000000000000000d,
+       0x000000000000001d,
+       0x000000000000012d,
+       0x000000000000123d,
+       0x000000000001234d,
+       0x000000000012345d,
+       0x000000000123456d,
+       0x000000001234567d,
+       0x000000012345678d,
+       0x000000123456789d,
+       0x000001234567890d,
+       0x000000000000000e,
+       0x000000000000001e,
+       0x000000000000012e,
+       0x000000000000123e,
+       0x000000000001234e,
+       0x000000000012345e,
+       0x000000000123456e,
+       0x000000001234567e,
+       0x000000012345678e,
+       0x000000123456789e,
+       0x000001234567890e,
+       0x000000000000000f,
+       0x000000000000001f,
+       0x000000000000012f,
+       0x000000000000123f,
+       0x000000000001234f,
+       0x000000000012345f,
+       0x000000000123456f,
+       0x000000001234567f,
+       0x000000012345678f,
+       0x000000123456789f,
+       0x000001234567890f,
+        /* min and max */
+       0x000002147483647c,
+       0x000002147483648d,
+
+/* fixs390: we also need to check if invalid values cause a fixed-point-devide exception.
+   Not yet implemented. */
+/*     0x000002147483648c,
+       0x000002147483649d,
+       0x00000000000000fa, */
+
+};
+
+
+static signed int dec_to_hex(unsigned long *addr)
+{
+        register signed int res asm("2") = 0;
+        register unsigned long *_addr asm("4") = addr;
+
+        asm volatile(
+        "       cvb %0,0(0,%1)"
+                : "=d" (res) : "d" (_addr) : "memory");
+        return res & 0xffffffff;
+}
+
+
+
+
+int main()
+{
+       int i;
+
+       for (i = 0; i < sizeof(test) / sizeof(test[0]); i++)
+       printf("%d\n", dec_to_hex(&test[i]));
+       return 0;
+}
diff --git a/none/tests/s390x/cvb.stderr.exp b/none/tests/s390x/cvb.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/cvb.stdout.exp b/none/tests/s390x/cvb.stdout.exp
new file mode 100644 (file)
index 0000000..35d6a60
--- /dev/null
@@ -0,0 +1,68 @@
+0
+1
+12
+123
+1234
+12345
+123456
+1234567
+12345678
+123456789
+1234567890
+0
+-1
+-12
+-123
+-1234
+-12345
+-123456
+-1234567
+-12345678
+-123456789
+-1234567890
+0
+1
+12
+123
+1234
+12345
+123456
+1234567
+12345678
+123456789
+1234567890
+0
+-1
+-12
+-123
+-1234
+-12345
+-123456
+-1234567
+-12345678
+-123456789
+-1234567890
+0
+1
+12
+123
+1234
+12345
+123456
+1234567
+12345678
+123456789
+1234567890
+0
+1
+12
+123
+1234
+12345
+123456
+1234567
+12345678
+123456789
+1234567890
+2147483647
+-2147483648
diff --git a/none/tests/s390x/cvb.vgtest b/none/tests/s390x/cvb.vgtest
new file mode 100644 (file)
index 0000000..c68fccb
--- /dev/null
@@ -0,0 +1 @@
+prog: cvb
diff --git a/none/tests/s390x/cvd.c b/none/tests/s390x/cvd.c
new file mode 100644 (file)
index 0000000..3fe8f48
--- /dev/null
@@ -0,0 +1,34 @@
+#include <stdio.h>
+
+static signed int test[] ={
+       0,
+       1,
+       -1,
+       0x7fffffff,
+       0x80000000,
+       0x12345678,
+       0x87654321,
+       0x55555555,
+       0x11111111,
+       0xaaaaaaaa,
+};
+
+
+static unsigned long hex_to_dec(signed int num)
+{
+       unsigned long addr = 0;
+
+       asm volatile(
+       "       cvd %2,%0"
+               : "=m" (addr) : "a" (&addr) , "d" (num) : "memory");
+       return addr;
+}
+
+int main()
+{
+       int i;
+
+       for (i = 0; i < sizeof(test) / sizeof(test[0]); i++)
+               printf("%lx\n", hex_to_dec(test[i]));
+       return 0;
+}
diff --git a/none/tests/s390x/cvd.stderr.exp b/none/tests/s390x/cvd.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/cvd.stdout.exp b/none/tests/s390x/cvd.stdout.exp
new file mode 100644 (file)
index 0000000..93bfe83
--- /dev/null
@@ -0,0 +1,10 @@
+c
+1c
+1d
+2147483647c
+2147483648d
+305419896c
+2023406815d
+1431655765c
+286331153c
+1431655766d
diff --git a/none/tests/s390x/cvd.vgtest b/none/tests/s390x/cvd.vgtest
new file mode 100644 (file)
index 0000000..b63146f
--- /dev/null
@@ -0,0 +1 @@
+prog: cvd
diff --git a/none/tests/s390x/div.c b/none/tests/s390x/div.c
new file mode 100644 (file)
index 0000000..102b8ff
--- /dev/null
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include "div.h"
+
+static void do_regmem_insns(unsigned long m2)
+{
+       memsweep(d, m2);
+       regsweep(dr, m2);
+       memsweep(dl, m2);
+       regsweep(dlr, m2);
+       memsweep(dlg, m2);
+       regsweep(dlgr, m2);
+       memsweep(dsg, m2);
+       regsweep(dsgr, m2);
+       memsweep(dsgf, m2);
+       regsweep(dsgfr, m2);
+}
+
+int main()
+{
+       do_regmem_insns(0x7ffffffffffffffaul);
+       do_regmem_insns(0x80000000f0000000ul);
+       do_regmem_insns(0xfffffffafffffffaul);
+       do_regmem_insns(0x7ffffffff0000000ul);
+       do_regmem_insns(0x80000000f0000000ul);
+       do_regmem_insns(0xfffffffaf0000000ul);
+       do_regmem_insns(0x000000087ffffffful);
+       do_regmem_insns(0x0000000480000000ul);
+       do_regmem_insns(0x00000008fffffffaul);
+       return 0;
+}
diff --git a/none/tests/s390x/div.h b/none/tests/s390x/div.h
new file mode 100644 (file)
index 0000000..52609df
--- /dev/null
@@ -0,0 +1,65 @@
+#include <stdio.h>
+
+#define DIV_REG_MEM(insn, d1_1, d1_2, d2)              \
+({                                                     \
+       unsigned long tmp1 = d1_1;                      \
+       unsigned long tmp2 = d1_2;                      \
+       asm volatile(   "lgr 2, %0\n"                   \
+                       "lgr 3, %1\n"                   \
+                       #insn " 2, %2\n"                \
+                       "lgr %0,2\n"                    \
+                       "lgr %1,3\n"                    \
+                       : "+d" (tmp1), "+d" (tmp2)      \
+                       : "Q" (d2)                      \
+                       : "2","3");                     \
+       printf(#insn " %16.16lX%16.16lX / %16.16lX = %16.16lX (rem %16.16lX)\n", d1_1, d1_2, d2, tmp2, tmp1); \
+})
+
+#define DIV_REG_REG(insn, d1_1, d1_2, d2)              \
+({                                                     \
+       unsigned long tmp1 = d1_1;                      \
+       unsigned long tmp2 = d1_2;                      \
+       asm volatile(   "lgr 2, %0\n"                   \
+                       "lgr 3, %1\n"                   \
+                       #insn " 2, %2\n"                \
+                       "lgr %0,2\n"                    \
+                       "lgr %1,3\n"                    \
+                       : "+d" (tmp1), "+d" (tmp2)      \
+                       : "d" (d2)                      \
+                       : "2","3");                     \
+       printf(#insn " %16.16lX%16.16lX / %16.16lX = %16.16lX (rem %16.16lX)\n", d1_1, d1_2, d2, tmp2, tmp1); \
+})
+
+
+#define memsweep(i, d2)                                                \
+({                                                             \
+       DIV_REG_MEM(i, 0x0ul, 0ul, d2);                         \
+       DIV_REG_MEM(i, 0x0ul, 1ul, d2);                         \
+       DIV_REG_MEM(i, 0x0ul, 0xfffful, d2);                    \
+       DIV_REG_MEM(i, 0x0ul, 0x7ffful, d2);                    \
+       DIV_REG_MEM(i, 0x0ul, 0x8000ul, d2);                    \
+       DIV_REG_MEM(i, 0x0ul, 0xfffffffful, d2);                \
+       DIV_REG_MEM(i, 0x0ul, 0x80000000ul, d2);                \
+       DIV_REG_MEM(i, 0x0ul, 0x7ffffffful, d2);                \
+       DIV_REG_MEM(i, 0x0ul, 0xfffffffffffffffful, d2);        \
+       DIV_REG_MEM(i, 0x0ul, 0x8000000000000000ul, d2);        \
+       DIV_REG_MEM(i, 0x0ul, 0x7ffffffffffffffful, d2);        \
+       DIV_REG_MEM(i, 0x1ul, 0xaffffffful, d2);                \
+})
+
+#define regsweep(i, d2)                                                \
+({                                                             \
+       DIV_REG_REG(i, 0x0ul, 0ul, d2);                         \
+       DIV_REG_REG(i, 0x0ul, 1ul, d2);                         \
+       DIV_REG_REG(i, 0x0ul, 0xfffful, d2);                    \
+       DIV_REG_REG(i, 0x0ul, 0x7ffful, d2);                    \
+       DIV_REG_REG(i, 0x0ul, 0x8000ul, d2);                    \
+       DIV_REG_REG(i, 0x0ul, 0xfffffffful, d2);                \
+       DIV_REG_REG(i, 0x0ul, 0x80000000ul, d2);                \
+       DIV_REG_REG(i, 0x0ul, 0x7ffffffful, d2);                \
+       DIV_REG_REG(i, 0x0ul, 0xfffffffffffffffful, d2);        \
+       DIV_REG_REG(i, 0x0ul, 0x8000000000000000ul, d2);        \
+       DIV_REG_REG(i, 0x0ul, 0x7ffffffffffffffful, d2);        \
+       DIV_REG_REG(i, 0x1ul, 0xaffffffful, d2);                \
+})
+
diff --git a/none/tests/s390x/div.stderr.exp b/none/tests/s390x/div.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/div.stdout.exp b/none/tests/s390x/div.stdout.exp
new file mode 100644 (file)
index 0000000..515b0db
--- /dev/null
@@ -0,0 +1,1080 @@
+d 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+d 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+d 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+d 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 0000000000000001)
+d 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000001)
+d 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000000)
+d 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFF00000002 (rem 0000000000000001)
+d 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 7FFFFFFF00000002 (rem 0000000000000001)
+d 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000003 (rem 0000000030000002)
+dr 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 00000000FFFFD556 (rem 0000000000000003)
+dr 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000001)
+dr 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000002)
+dr 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 00000000D5555556 (rem 0000000000000003)
+dr 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000002)
+dr 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000001)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dr 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 7FFFFFFFD5555556 (rem 0000000000000003)
+dr 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 00000000B8000001 (rem 0000000000000005)
+dl 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 0000000000000001)
+dl 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000001)
+dl 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000000)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFF00000002 (rem 0000000000000001)
+dl 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 7FFFFFFF00000002 (rem 0000000000000001)
+dl 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000003 (rem 0000000030000002)
+dlr 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dlr 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFF00000001 (rem 0000000000000005)
+dlr 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 7FFFFFFF00000001 (rem 0000000000000005)
+dlr 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 00000000B0000005)
+dlg 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 000000000000000B)
+dlg 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000006)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dlg 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 00000000B000000B)
+dlgr 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 000000000000000B)
+dlgr 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000006)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dlgr 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 00000000B000000B)
+dsg 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = FFFFFFFFFFFFFFFF (rem FFFFFFFFFFFFFFFA)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dsg 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = FFFFFFFFFFFFFFFF (rem FFFFFFFFFFFFFFFA)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dsgr 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsgf 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsgf 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsgf 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000002 (rem 0000000000000001)
+dsgf 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000001)
+dsgf 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000000000000)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = FFFFFFFEFFFFFFFE (rem FFFFFFFFFFFFFFFE)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000100000002 (rem 0000000000000001)
+dsgf 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000001 (rem 0000000030000000)
+dsgfr 00000000000000000000000000000000 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 7FFFFFFFFFFFFFFA = FFFFFFFFFFFFD556 (rem 0000000000000003)
+dsgfr 00000000000000000000000000007FFF / 7FFFFFFFFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000001)
+dsgfr 00000000000000000000000000008000 / 7FFFFFFFFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000002)
+dsgfr 000000000000000000000000FFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dsgfr 00000000000000000000000080000000 / 7FFFFFFFFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000002)
+dsgfr 0000000000000000000000007FFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000001)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 7FFFFFFFFFFFFFFA = 1555555555555555 (rem FFFFFFFFFFFFFFFE)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFFFFFFFFA = EAAAAAAAAAAAAAAB (rem 0000000000000001)
+dsgfr 000000000000000100000000AFFFFFFF / 7FFFFFFFFFFFFFFA = FFFFFFFFE2AAAAAB (rem 0000000000000001)
+d 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+d 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+d 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+d 000000000000000000000000FFFFFFFF / 80000000F0000000 = 00000000FFFFFFFF (rem 000000007FFFFFFF)
+d 00000000000000000000000080000000 / 80000000F0000000 = 00000000FFFFFFFF (rem 0000000000000000)
+d 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+d 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+d 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+d 000000000000000100000000AFFFFFFF / 80000000F0000000 = 00000000FFFFFFFD (rem 000000002FFFFFFF)
+dr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 00000000FFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000000000000080000000 / 80000000F0000000 = 00000000FFFFFFF8 (rem 0000000000000000)
+dr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 00000000FFFFFFF9 (rem 000000000FFFFFFF)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 00000000FFFFFFE6 (rem 000000000FFFFFFF)
+dl 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 000000007FFFFFFF)
+dl 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000001 (rem 0000000000000000)
+dl 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dl 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFF00000001 (rem 000000007FFFFFFF)
+dl 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000003 (rem 000000002FFFFFFF)
+dlr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 00000000BFFFFFFF)
+dlg 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFF0FFFFFFF)
+dlg 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000000 (rem 8000000000000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFFBFFFFFFF)
+dlgr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFF0FFFFFFF)
+dlgr 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000000 (rem 8000000000000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFFBFFFFFFF)
+dsg 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000001 (rem FFFFFFFF10000000)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 00000000EFFFFFFF)
+dsg 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000001 (rem FFFFFFFF10000000)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 00000000EFFFFFFF)
+dsgr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgf 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgf 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgf 000000000000000000000000FFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+dsgf 00000000000000000000000080000000 / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 0000000000000000)
+dsgf 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 80000000F0000000 = 0000000100000000 (rem 0000000000000000)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dsgf 000000000000000100000000AFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000002FFFFFFF)
+dsgfr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dsgfr 00000000000000000000000080000000 / 80000000F0000000 = FFFFFFFFFFFFFFF8 (rem 0000000000000000)
+dsgfr 0000000000000000000000007FFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF9 (rem 000000000FFFFFFF)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 80000000F0000000 = 0000000800000000 (rem 0000000000000000)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFF800000001 (rem 000000000FFFFFFF)
+dsgfr 000000000000000100000000AFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF6 (rem 000000000FFFFFFF)
+d 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 00000000FFFFD556 (rem 0000000000000003)
+d 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000001)
+d 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000002)
+d 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 00000000D5555556 (rem 0000000000000003)
+d 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000002)
+d 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000001)
+d 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+d 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 7FFFFFFFD5555556 (rem 0000000000000003)
+d 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 00000000B8000001 (rem 0000000000000005)
+dr 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 00000000FFFFD556 (rem 0000000000000003)
+dr 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000001)
+dr 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 00000000FFFFEAAB (rem 0000000000000002)
+dr 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 00000000D5555556 (rem 0000000000000003)
+dr 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000002)
+dr 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 00000000EAAAAAAB (rem 0000000000000001)
+dr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dr 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 7FFFFFFFD5555556 (rem 0000000000000003)
+dr 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 00000000B8000001 (rem 0000000000000005)
+dl 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dl 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dl 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dl 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFF00000001 (rem 0000000000000005)
+dl 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 7FFFFFFF00000001 (rem 0000000000000005)
+dl 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 00000000B0000005)
+dlr 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dlr 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFF00000001 (rem 0000000000000005)
+dlr 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 7FFFFFFF00000001 (rem 0000000000000005)
+dlr 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 00000000B0000005)
+dlg 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 0000000500000005)
+dlg 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 8000000000000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 00000005B0000005)
+dlgr 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 0000000500000005)
+dlgr 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 8000000000000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000001 (rem 00000005B0000005)
+dsg 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 0000000019999999 (rem FFFFFFFD99999996)
+dsg 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFE6666667 (rem 0000000266666669)
+dsg 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 0000000019999999 (rem FFFFFFFD99999996)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFE6666667 (rem 0000000266666669)
+dsgr 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFD556 (rem 0000000000000003)
+dsgf 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000001)
+dsgf 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000002)
+dsgf 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dsgf 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000002)
+dsgf 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000001)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 1555555555555555 (rem FFFFFFFFFFFFFFFE)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = EAAAAAAAAAAAAAAB (rem 0000000000000001)
+dsgf 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFE2AAAAAB (rem 0000000000000001)
+dsgfr 00000000000000000000000000000000 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / FFFFFFFAFFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFD556 (rem 0000000000000003)
+dsgfr 00000000000000000000000000007FFF / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000001)
+dsgfr 00000000000000000000000000008000 / FFFFFFFAFFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000002)
+dsgfr 000000000000000000000000FFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dsgfr 00000000000000000000000080000000 / FFFFFFFAFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000002)
+dsgfr 0000000000000000000000007FFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000001)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / FFFFFFFAFFFFFFFA = 1555555555555555 (rem FFFFFFFFFFFFFFFE)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAFFFFFFFA = EAAAAAAAAAAAAAAB (rem 0000000000000001)
+dsgfr 000000000000000100000000AFFFFFFF / FFFFFFFAFFFFFFFA = FFFFFFFFE2AAAAAB (rem 0000000000000001)
+d 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+d 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+d 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+d 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 0000000000000001)
+d 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000001)
+d 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000000)
+d 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFF00000002 (rem 0000000000000001)
+d 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 7FFFFFFF00000002 (rem 0000000000000001)
+d 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000003 (rem 0000000030000002)
+dr 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 00000000FFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 00000000FFFFFFF8 (rem 0000000000000000)
+dr 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 00000000FFFFFFF9 (rem 000000000FFFFFFF)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 7FFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 00000000FFFFFFE6 (rem 000000000FFFFFFF)
+dl 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 0000000000000001)
+dl 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000001)
+dl 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000000)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFF00000002 (rem 0000000000000001)
+dl 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 7FFFFFFF00000002 (rem 0000000000000001)
+dl 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000003 (rem 0000000030000002)
+dlr 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlr 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 7FFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 00000000BFFFFFFF)
+dlg 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 000000001FFFFFFF)
+dlg 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000010000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 00000000CFFFFFFF)
+dlgr 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 000000001FFFFFFF)
+dlgr 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000010000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 00000000CFFFFFFF)
+dsg 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFFF (rem FFFFFFFFF0000000)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dsg 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFFF (rem FFFFFFFFF0000000)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dsgr 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgf 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgf 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dsgf 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = 0000000000000002 (rem 0000000000000001)
+dsgf 00000000000000000000000080000000 / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000001)
+dsgf 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000000000000)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 7FFFFFFFF0000000 = FFFFFFFEFFFFFFFE (rem FFFFFFFFFFFFFFFE)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000100000002 (rem 0000000000000001)
+dsgf 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = 0000000000000001 (rem 0000000030000000)
+dsgfr 00000000000000000000000000000000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / 7FFFFFFFF0000000 = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dsgfr 00000000000000000000000080000000 / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFF8 (rem 0000000000000000)
+dsgfr 0000000000000000000000007FFFFFFF / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFF9 (rem 000000000FFFFFFF)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 7FFFFFFFF0000000 = 0000000800000000 (rem 0000000000000000)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 7FFFFFFFF0000000 = FFFFFFF800000001 (rem 000000000FFFFFFF)
+dsgfr 000000000000000100000000AFFFFFFF / 7FFFFFFFF0000000 = FFFFFFFFFFFFFFF6 (rem 000000000FFFFFFF)
+d 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+d 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+d 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+d 000000000000000000000000FFFFFFFF / 80000000F0000000 = 00000000FFFFFFFF (rem 000000007FFFFFFF)
+d 00000000000000000000000080000000 / 80000000F0000000 = 00000000FFFFFFFF (rem 0000000000000000)
+d 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+d 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+d 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+d 000000000000000100000000AFFFFFFF / 80000000F0000000 = 00000000FFFFFFFD (rem 000000002FFFFFFF)
+dr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 00000000FFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000000000000080000000 / 80000000F0000000 = 00000000FFFFFFF8 (rem 0000000000000000)
+dr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 00000000FFFFFFF9 (rem 000000000FFFFFFF)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 00000000FFFFFFE6 (rem 000000000FFFFFFF)
+dl 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 000000007FFFFFFF)
+dl 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000001 (rem 0000000000000000)
+dl 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dl 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFF00000001 (rem 000000007FFFFFFF)
+dl 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000003 (rem 000000002FFFFFFF)
+dlr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 00000000000000008000000000000000 / 80000000F0000000 = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 7FFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 00000000BFFFFFFF)
+dlg 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFF0FFFFFFF)
+dlg 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000000 (rem 8000000000000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFFBFFFFFFF)
+dlgr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFF0FFFFFFF)
+dlgr 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000000 (rem 8000000000000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000001 (rem 7FFFFFFFBFFFFFFF)
+dsg 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000001 (rem FFFFFFFF10000000)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 00000000EFFFFFFF)
+dsg 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 80000000F0000000 = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 80000000F0000000 = 0000000000000001 (rem FFFFFFFF10000000)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 00000000EFFFFFFF)
+dsgr 000000000000000100000000AFFFFFFF / 80000000F0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgf 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgf 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgf 000000000000000000000000FFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+dsgf 00000000000000000000000080000000 / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 0000000000000000)
+dsgf 0000000000000000000000007FFFFFFF / 80000000F0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 80000000F0000000 = 0000000100000000 (rem 0000000000000000)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dsgf 000000000000000100000000AFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFFF (rem 000000002FFFFFFF)
+dsgfr 00000000000000000000000000000000 / 80000000F0000000 = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 80000000F0000000 = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 80000000F0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / 80000000F0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / 80000000F0000000 = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dsgfr 00000000000000000000000080000000 / 80000000F0000000 = FFFFFFFFFFFFFFF8 (rem 0000000000000000)
+dsgfr 0000000000000000000000007FFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF9 (rem 000000000FFFFFFF)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 80000000F0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 80000000F0000000 = 0000000800000000 (rem 0000000000000000)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 80000000F0000000 = FFFFFFF800000001 (rem 000000000FFFFFFF)
+dsgfr 000000000000000100000000AFFFFFFF / 80000000F0000000 = FFFFFFFFFFFFFFF6 (rem 000000000FFFFFFF)
+d 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 00000000FFFFD556 (rem 0000000000000003)
+d 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 00000000FFFFEAAB (rem 0000000000000001)
+d 00000000000000000000000000008000 / FFFFFFFAF0000000 = 00000000FFFFEAAB (rem 0000000000000002)
+d 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 00000000D5555556 (rem 0000000000000003)
+d 00000000000000000000000080000000 / FFFFFFFAF0000000 = 00000000EAAAAAAB (rem 0000000000000002)
+d 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 00000000EAAAAAAB (rem 0000000000000001)
+d 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFD5555556 (rem 0000000000000003)
+d 00000000000000008000000000000000 / FFFFFFFAF0000000 = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 7FFFFFFFD5555556 (rem 0000000000000003)
+d 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 00000000B8000001 (rem 0000000000000005)
+dr 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 00000000FFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000000000000080000000 / FFFFFFFAF0000000 = 00000000FFFFFFF8 (rem 0000000000000000)
+dr 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 00000000FFFFFFF9 (rem 000000000FFFFFFF)
+dr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 00000000000000008000000000000000 / FFFFFFFAF0000000 = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 7FFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dr 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 00000000FFFFFFE6 (rem 000000000FFFFFFF)
+dl 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dl 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dl 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dl 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 0000000000000005)
+dl 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dl 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dl 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFF00000001 (rem 0000000000000005)
+dl 00000000000000008000000000000000 / FFFFFFFAF0000000 = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 7FFFFFFF00000001 (rem 0000000000000005)
+dl 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 00000000B0000005)
+dlr 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 000000000FFFFFFF)
+dlr 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 00000000000000008000000000000000 / FFFFFFFAF0000000 = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 7FFFFFFF00000001 (rem 000000000FFFFFFF)
+dlr 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 00000000BFFFFFFF)
+dlg 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 000000050FFFFFFF)
+dlg 00000000000000008000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 8000000000000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 00000005BFFFFFFF)
+dlgr 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 000000050FFFFFFF)
+dlgr 00000000000000008000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 8000000000000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 7FFFFFFFFFFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000001 (rem 00000005BFFFFFFF)
+dsg 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / FFFFFFFAF0000000 = 000000001948B0FC (rem FFFFFFFBC0000000)
+dsg 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFE6B74F04 (rem 000000043FFFFFFF)
+dsg 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / FFFFFFFAF0000000 = 000000001948B0FC (rem FFFFFFFBC0000000)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFE6B74F04 (rem 000000043FFFFFFF)
+dsgr 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = FFFFFFFFFFFFD556 (rem 0000000000000003)
+dsgf 00000000000000000000000000007FFF / FFFFFFFAF0000000 = FFFFFFFFFFFFEAAB (rem 0000000000000001)
+dsgf 00000000000000000000000000008000 / FFFFFFFAF0000000 = FFFFFFFFFFFFEAAB (rem 0000000000000002)
+dsgf 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFD5555556 (rem 0000000000000003)
+dsgf 00000000000000000000000080000000 / FFFFFFFAF0000000 = FFFFFFFFEAAAAAAB (rem 0000000000000002)
+dsgf 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = FFFFFFFFEAAAAAAB (rem 0000000000000001)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / FFFFFFFAF0000000 = 1555555555555555 (rem FFFFFFFFFFFFFFFE)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = EAAAAAAAAAAAAAAB (rem 0000000000000001)
+dsgf 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFE2AAAAAB (rem 0000000000000001)
+dsgfr 00000000000000000000000000000000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / FFFFFFFAF0000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / FFFFFFFAF0000000 = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFFFFFFFF1 (rem 000000000FFFFFFF)
+dsgfr 00000000000000000000000080000000 / FFFFFFFAF0000000 = FFFFFFFFFFFFFFF8 (rem 0000000000000000)
+dsgfr 0000000000000000000000007FFFFFFF / FFFFFFFAF0000000 = FFFFFFFFFFFFFFF9 (rem 000000000FFFFFFF)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / FFFFFFFAF0000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / FFFFFFFAF0000000 = 0000000800000000 (rem 0000000000000000)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / FFFFFFFAF0000000 = FFFFFFF800000001 (rem 000000000FFFFFFF)
+dsgfr 000000000000000100000000AFFFFFFF / FFFFFFFAF0000000 = FFFFFFFFFFFFFFF6 (rem 000000000FFFFFFF)
+d 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000001FFF (rem 0000000000000007)
+d 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000FFF (rem 0000000000000007)
+d 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000001000 (rem 0000000000000000)
+d 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 000000001FFFFFFF (rem 0000000000000007)
+d 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000010000000 (rem 0000000000000000)
+d 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 000000000FFFFFFF (rem 0000000000000007)
+d 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = FFFFFFFF1FFFFFFF (rem 0000000000000007)
+d 00000000000000008000000000000000 / 000000087FFFFFFF = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 7FFFFFFF1FFFFFFF (rem 0000000000000007)
+d 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000035FFFFFF (rem 0000000000000007)
+dr 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000002 (rem 0000000000000001)
+dr 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000001)
+dr 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000000)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = FFFFFFFF00000002 (rem 0000000000000001)
+dr 00000000000000008000000000000000 / 000000087FFFFFFF = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 7FFFFFFF00000002 (rem 0000000000000001)
+dr 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000000000003 (rem 0000000030000002)
+dl 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000001FFF (rem 0000000000000007)
+dl 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000FFF (rem 0000000000000007)
+dl 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000001000 (rem 0000000000000000)
+dl 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 000000001FFFFFFF (rem 0000000000000007)
+dl 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000010000000 (rem 0000000000000000)
+dl 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 000000000FFFFFFF (rem 0000000000000007)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = FFFFFFFF1FFFFFFF (rem 0000000000000007)
+dl 00000000000000008000000000000000 / 000000087FFFFFFF = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 7FFFFFFF1FFFFFFF (rem 0000000000000007)
+dl 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000035FFFFFF (rem 0000000000000007)
+dlr 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000002 (rem 0000000000000001)
+dlr 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000001)
+dlr 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000000)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = FFFFFFFF00000002 (rem 0000000000000001)
+dlr 00000000000000008000000000000000 / 000000087FFFFFFF = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 7FFFFFFF00000002 (rem 0000000000000001)
+dlr 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000000000003 (rem 0000000030000002)
+dlg 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000001E1E1E1E (rem 000000011E1E1E1D)
+dlg 00000000000000008000000000000000 / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0F)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0E)
+dlg 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 000000001E1E1E1E (rem 00000001CE1E1E1D)
+dlgr 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000001E1E1E1E (rem 000000011E1E1E1D)
+dlgr 00000000000000008000000000000000 / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0F)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0E)
+dlgr 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 000000001E1E1E1E (rem 00000001CE1E1E1D)
+dsg 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 000000087FFFFFFF = FFFFFFFFF0F0F0F1 (rem FFFFFFFF70F0F0F1)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0E)
+dsg 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 000000087FFFFFFF = FFFFFFFFF0F0F0F1 (rem FFFFFFFF70F0F0F1)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 000000000F0F0F0F (rem 000000008F0F0F0E)
+dsgr 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000001FFF (rem 0000000000000007)
+dsgf 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000FFF (rem 0000000000000007)
+dsgf 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000001000 (rem 0000000000000000)
+dsgf 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 000000001FFFFFFF (rem 0000000000000007)
+dsgf 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000010000000 (rem 0000000000000000)
+dsgf 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 000000000FFFFFFF (rem 0000000000000007)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 000000087FFFFFFF = F000000000000000 (rem 0000000000000000)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 0FFFFFFFFFFFFFFF (rem 0000000000000007)
+dsgf 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000015FFFFFF (rem 0000000000000007)
+dsgfr 00000000000000000000000000000000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 000000087FFFFFFF = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / 000000087FFFFFFF = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / 000000087FFFFFFF = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / 000000087FFFFFFF = 0000000000000002 (rem 0000000000000001)
+dsgfr 00000000000000000000000080000000 / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000001)
+dsgfr 0000000000000000000000007FFFFFFF / 000000087FFFFFFF = 0000000000000001 (rem 0000000000000000)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 000000087FFFFFFF = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 000000087FFFFFFF = FFFFFFFEFFFFFFFE (rem FFFFFFFFFFFFFFFE)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 000000087FFFFFFF = 0000000100000002 (rem 0000000000000001)
+dsgfr 000000000000000100000000AFFFFFFF / 000000087FFFFFFF = 0000000000000001 (rem 0000000030000000)
+d 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000003FFF (rem 0000000000000003)
+d 00000000000000000000000000007FFF / 0000000480000000 = 0000000000001FFF (rem 0000000000000003)
+d 00000000000000000000000000008000 / 0000000480000000 = 0000000000002000 (rem 0000000000000000)
+d 000000000000000000000000FFFFFFFF / 0000000480000000 = 000000003FFFFFFF (rem 0000000000000003)
+d 00000000000000000000000080000000 / 0000000480000000 = 0000000020000000 (rem 0000000000000000)
+d 0000000000000000000000007FFFFFFF / 0000000480000000 = 000000001FFFFFFF (rem 0000000000000003)
+d 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = FFFFFFFF3FFFFFFF (rem 0000000000000003)
+d 00000000000000008000000000000000 / 0000000480000000 = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 7FFFFFFF3FFFFFFF (rem 0000000000000003)
+d 000000000000000100000000AFFFFFFF / 0000000480000000 = 000000006BFFFFFF (rem 0000000000000003)
+dr 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dr 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dr 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dr 000000000000000000000000FFFFFFFF / 0000000480000000 = 00000000FFFFFFFF (rem 000000007FFFFFFF)
+dr 00000000000000000000000080000000 / 0000000480000000 = 00000000FFFFFFFF (rem 0000000000000000)
+dr 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+dr 00000000000000008000000000000000 / 0000000480000000 = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 7FFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+dr 000000000000000100000000AFFFFFFF / 0000000480000000 = 00000000FFFFFFFD (rem 000000002FFFFFFF)
+dl 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000003FFF (rem 0000000000000003)
+dl 00000000000000000000000000007FFF / 0000000480000000 = 0000000000001FFF (rem 0000000000000003)
+dl 00000000000000000000000000008000 / 0000000480000000 = 0000000000002000 (rem 0000000000000000)
+dl 000000000000000000000000FFFFFFFF / 0000000480000000 = 000000003FFFFFFF (rem 0000000000000003)
+dl 00000000000000000000000080000000 / 0000000480000000 = 0000000020000000 (rem 0000000000000000)
+dl 0000000000000000000000007FFFFFFF / 0000000480000000 = 000000001FFFFFFF (rem 0000000000000003)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = FFFFFFFF3FFFFFFF (rem 0000000000000003)
+dl 00000000000000008000000000000000 / 0000000480000000 = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 7FFFFFFF3FFFFFFF (rem 0000000000000003)
+dl 000000000000000100000000AFFFFFFF / 0000000480000000 = 000000006BFFFFFF (rem 0000000000000003)
+dlr 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 0000000480000000 = 0000000000000001 (rem 000000007FFFFFFF)
+dlr 00000000000000000000000080000000 / 0000000480000000 = 0000000000000001 (rem 0000000000000000)
+dlr 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dlr 00000000000000008000000000000000 / 0000000480000000 = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 7FFFFFFF00000001 (rem 000000007FFFFFFF)
+dlr 000000000000000100000000AFFFFFFF / 0000000480000000 = 0000000000000003 (rem 000000002FFFFFFF)
+dlg 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 0000000480000000 = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000038E38E38 (rem 00000003FFFFFFFF)
+dlg 00000000000000008000000000000000 / 0000000480000000 = 000000001C71C71C (rem 0000000200000000)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 000000001C71C71C (rem 00000001FFFFFFFF)
+dlg 000000000000000100000000AFFFFFFF / 0000000480000000 = 0000000038E38E39 (rem 000000002FFFFFFF)
+dlgr 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 0000000480000000 = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000038E38E38 (rem 00000003FFFFFFFF)
+dlgr 00000000000000008000000000000000 / 0000000480000000 = 000000001C71C71C (rem 0000000200000000)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 000000001C71C71C (rem 00000001FFFFFFFF)
+dlgr 000000000000000100000000AFFFFFFF / 0000000480000000 = 0000000038E38E39 (rem 000000002FFFFFFF)
+dsg 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 0000000480000000 = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 0000000480000000 = FFFFFFFFE38E38E4 (rem FFFFFFFE00000000)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 000000001C71C71C (rem 00000001FFFFFFFF)
+dsg 000000000000000100000000AFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 0000000480000000 = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 0000000480000000 = FFFFFFFFE38E38E4 (rem FFFFFFFE00000000)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 000000001C71C71C (rem 00000001FFFFFFFF)
+dsgr 000000000000000100000000AFFFFFFF / 0000000480000000 = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000003FFF (rem 0000000000000003)
+dsgf 00000000000000000000000000007FFF / 0000000480000000 = 0000000000001FFF (rem 0000000000000003)
+dsgf 00000000000000000000000000008000 / 0000000480000000 = 0000000000002000 (rem 0000000000000000)
+dsgf 000000000000000000000000FFFFFFFF / 0000000480000000 = 000000003FFFFFFF (rem 0000000000000003)
+dsgf 00000000000000000000000080000000 / 0000000480000000 = 0000000020000000 (rem 0000000000000000)
+dsgf 0000000000000000000000007FFFFFFF / 0000000480000000 = 000000001FFFFFFF (rem 0000000000000003)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 0000000480000000 = E000000000000000 (rem 0000000000000000)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = 1FFFFFFFFFFFFFFF (rem 0000000000000003)
+dsgf 000000000000000100000000AFFFFFFF / 0000000480000000 = 000000002BFFFFFF (rem 0000000000000003)
+dsgfr 00000000000000000000000000000000 / 0000000480000000 = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 0000000480000000 = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 0000000480000000 = 0000000000000000 (rem 000000000000FFFF)
+dsgfr 00000000000000000000000000007FFF / 0000000480000000 = 0000000000000000 (rem 0000000000007FFF)
+dsgfr 00000000000000000000000000008000 / 0000000480000000 = 0000000000000000 (rem 0000000000008000)
+dsgfr 000000000000000000000000FFFFFFFF / 0000000480000000 = FFFFFFFFFFFFFFFF (rem 000000007FFFFFFF)
+dsgfr 00000000000000000000000080000000 / 0000000480000000 = FFFFFFFFFFFFFFFF (rem 0000000000000000)
+dsgfr 0000000000000000000000007FFFFFFF / 0000000480000000 = 0000000000000000 (rem 000000007FFFFFFF)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 0000000480000000 = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 0000000480000000 = 0000000100000000 (rem 0000000000000000)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 0000000480000000 = FFFFFFFF00000001 (rem 000000007FFFFFFF)
+dsgfr 000000000000000100000000AFFFFFFF / 0000000480000000 = FFFFFFFFFFFFFFFF (rem 000000002FFFFFFF)
+d 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+d 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+d 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000001FFF (rem 0000000000000007)
+d 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000FFF (rem 0000000000000007)
+d 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000001000 (rem 0000000000000000)
+d 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 000000001FFFFFFF (rem 0000000000000007)
+d 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000010000000 (rem 0000000000000000)
+d 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 000000000FFFFFFF (rem 0000000000000007)
+d 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = FFFFFFFF1FFFFFFF (rem 0000000000000007)
+d 00000000000000008000000000000000 / 00000008FFFFFFFA = 8000000000000000 (rem 0000000000000000)
+d 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 7FFFFFFF1FFFFFFF (rem 0000000000000007)
+d 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000035FFFFFF (rem 0000000000000007)
+dr 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dr 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dr 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 00000000FFFFD556 (rem 0000000000000003)
+dr 00000000000000000000000000007FFF / 00000008FFFFFFFA = 00000000FFFFEAAB (rem 0000000000000001)
+dr 00000000000000000000000000008000 / 00000008FFFFFFFA = 00000000FFFFEAAB (rem 0000000000000002)
+dr 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 00000000D5555556 (rem 0000000000000003)
+dr 00000000000000000000000080000000 / 00000008FFFFFFFA = 00000000EAAAAAAB (rem 0000000000000002)
+dr 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 00000000EAAAAAAB (rem 0000000000000001)
+dr 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dr 00000000000000008000000000000000 / 00000008FFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dr 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 7FFFFFFFD5555556 (rem 0000000000000003)
+dr 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 00000000B8000001 (rem 0000000000000005)
+dl 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dl 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dl 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000001FFF (rem 0000000000000007)
+dl 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000FFF (rem 0000000000000007)
+dl 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000001000 (rem 0000000000000000)
+dl 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 000000001FFFFFFF (rem 0000000000000007)
+dl 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000010000000 (rem 0000000000000000)
+dl 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 000000000FFFFFFF (rem 0000000000000007)
+dl 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = FFFFFFFF1FFFFFFF (rem 0000000000000007)
+dl 00000000000000008000000000000000 / 00000008FFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dl 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 7FFFFFFF1FFFFFFF (rem 0000000000000007)
+dl 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000035FFFFFF (rem 0000000000000007)
+dlr 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlr 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlr 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlr 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlr 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlr 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 0000000000000001 (rem 0000000000000005)
+dlr 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlr 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlr 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = FFFFFFFF00000001 (rem 0000000000000005)
+dlr 00000000000000008000000000000000 / 00000008FFFFFFFA = 8000000000000000 (rem 0000000000000000)
+dlr 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 7FFFFFFF00000001 (rem 0000000000000005)
+dlr 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000000000001 (rem 00000000B0000005)
+dlg 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlg 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlg 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlg 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlg 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlg 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlg 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlg 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlg 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000001C71C71C (rem 00000004AAAAAAA7)
+dlg 00000000000000008000000000000000 / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555554)
+dlg 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555553)
+dlg 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 000000001C71C71C (rem 000000055AAAAAA7)
+dlgr 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dlgr 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dlgr 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dlgr 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dlgr 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dlgr 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dlgr 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dlgr 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dlgr 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000001C71C71C (rem 00000004AAAAAAA7)
+dlgr 00000000000000008000000000000000 / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555554)
+dlgr 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555553)
+dlgr 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 000000001C71C71C (rem 000000055AAAAAA7)
+dsg 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsg 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsg 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsg 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsg 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsg 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsg 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsg 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsg 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsg 00000000000000008000000000000000 / 00000008FFFFFFFA = FFFFFFFFF1C71C72 (rem FFFFFFFDAAAAAAAC)
+dsg 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555553)
+dsg 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgr 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgr 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgr 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000000000FFFF)
+dsgr 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000007FFF)
+dsgr 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000008000)
+dsgr 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000FFFFFFFF)
+dsgr 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000080000000)
+dsgr 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 000000007FFFFFFF)
+dsgr 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgr 00000000000000008000000000000000 / 00000008FFFFFFFA = FFFFFFFFF1C71C72 (rem FFFFFFFDAAAAAAAC)
+dsgr 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 000000000E38E38E (rem 0000000255555553)
+dsgr 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem 00000000AFFFFFFF)
+dsgf 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgf 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgf 0000000000000000000000000000FFFF / 00000008FFFFFFFA = 0000000000001FFF (rem 0000000000000007)
+dsgf 00000000000000000000000000007FFF / 00000008FFFFFFFA = 0000000000000FFF (rem 0000000000000007)
+dsgf 00000000000000000000000000008000 / 00000008FFFFFFFA = 0000000000001000 (rem 0000000000000000)
+dsgf 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = 000000001FFFFFFF (rem 0000000000000007)
+dsgf 00000000000000000000000080000000 / 00000008FFFFFFFA = 0000000010000000 (rem 0000000000000000)
+dsgf 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = 000000000FFFFFFF (rem 0000000000000007)
+dsgf 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgf 00000000000000008000000000000000 / 00000008FFFFFFFA = F000000000000000 (rem 0000000000000000)
+dsgf 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = 0FFFFFFFFFFFFFFF (rem 0000000000000007)
+dsgf 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = 0000000015FFFFFF (rem 0000000000000007)
+dsgfr 00000000000000000000000000000000 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000000)
+dsgfr 00000000000000000000000000000001 / 00000008FFFFFFFA = 0000000000000000 (rem 0000000000000001)
+dsgfr 0000000000000000000000000000FFFF / 00000008FFFFFFFA = FFFFFFFFFFFFD556 (rem 0000000000000003)
+dsgfr 00000000000000000000000000007FFF / 00000008FFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000001)
+dsgfr 00000000000000000000000000008000 / 00000008FFFFFFFA = FFFFFFFFFFFFEAAB (rem 0000000000000002)
+dsgfr 000000000000000000000000FFFFFFFF / 00000008FFFFFFFA = FFFFFFFFD5555556 (rem 0000000000000003)
+dsgfr 00000000000000000000000080000000 / 00000008FFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000002)
+dsgfr 0000000000000000000000007FFFFFFF / 00000008FFFFFFFA = FFFFFFFFEAAAAAAB (rem 0000000000000001)
+dsgfr 0000000000000000FFFFFFFFFFFFFFFF / 00000008FFFFFFFA = 0000000000000000 (rem FFFFFFFFFFFFFFFF)
+dsgfr 00000000000000008000000000000000 / 00000008FFFFFFFA = 1555555555555555 (rem FFFFFFFFFFFFFFFE)
+dsgfr 00000000000000007FFFFFFFFFFFFFFF / 00000008FFFFFFFA = EAAAAAAAAAAAAAAB (rem 0000000000000001)
+dsgfr 000000000000000100000000AFFFFFFF / 00000008FFFFFFFA = FFFFFFFFE2AAAAAB (rem 0000000000000001)
diff --git a/none/tests/s390x/div.vgtest b/none/tests/s390x/div.vgtest
new file mode 100644 (file)
index 0000000..84492b4
--- /dev/null
@@ -0,0 +1 @@
+prog: div
diff --git a/none/tests/s390x/ex_clone.c b/none/tests/s390x/ex_clone.c
new file mode 100644 (file)
index 0000000..bd7e7f0
--- /dev/null
@@ -0,0 +1,60 @@
+#include <features.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+char source[40] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\0";
+char target[40] = "                                       \0";
+
+pthread_t thread;
+
+void *threadfunc(void *arg)
+{
+       char buf2[40];
+       int i;
+
+       memset(buf2, 0, sizeof(buf2));
+       for (i=0; i<5000; i++)
+               asm volatile(
+                       "lghi 2,0\n"
+                       "lghi 3,0\n"
+                       "lgr 4,%0\n"
+                       "lgr 5,%1\n"
+                       "larl 1,1f\n"
+                       "0: ex 0,0(1)\n"
+                       "j 2f\n"
+                       "1: mvc 0(30,4),0(5)\n"
+                       "2:\n"
+               ::"a" (buf2), "a" (source)
+               : "1", "2", "3", "4", "5", "memory");
+       printf("%s\n", buf2);
+       pthread_exit(0);
+}
+
+int main()
+{
+       int i;
+
+       pthread_create(&thread, NULL, threadfunc, NULL);
+
+       for (i=0; i<5000; i++)
+               asm volatile(
+                       "lghi 4,0\n"
+                       "lghi 5,0\n"
+                       "lgr 2,%0\n"
+                       "lgr 3,%1\n"
+                       "larl 1,1f\n"
+                       "0: ex 0,0(1)\n"
+                       "j 2f\n"
+                       "1: mvc 0(20,2),0(3)\n"
+                       "2:\n"
+               ::"a" (target), "a" (source)
+               : "1", "2", "3", "4", "5", "memory");
+       pthread_join(thread, NULL);
+       printf("%s\n", target);
+       pthread_exit(0);
+}
diff --git a/none/tests/s390x/ex_clone.stderr.exp b/none/tests/s390x/ex_clone.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/ex_clone.stdout.exp b/none/tests/s390x/ex_clone.stdout.exp
new file mode 100644 (file)
index 0000000..d8b0a7e
--- /dev/null
@@ -0,0 +1,2 @@
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa                   
diff --git a/none/tests/s390x/ex_clone.vgtest b/none/tests/s390x/ex_clone.vgtest
new file mode 100644 (file)
index 0000000..4d3ee35
--- /dev/null
@@ -0,0 +1 @@
+prog: ex_clone
diff --git a/none/tests/s390x/ex_sig.c b/none/tests/s390x/ex_sig.c
new file mode 100644 (file)
index 0000000..9ff33fc
--- /dev/null
@@ -0,0 +1,46 @@
+#include <features.h>
+#include <fpu_control.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ucontext.h>
+#include <unistd.h>
+
+char source[40] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\0";
+char target[40] = "                                       \0";
+
+void handle_SIG(int sig)
+{
+       static int counter;
+       char buf2[40];
+
+       counter++;
+       asm volatile(   "larl 1,1f\n"
+                       "ex 0,0(1)\n"
+                       "j 2f\n"
+                       "1: mvc 0(30,%0),0(%1)\n"
+                       "2:\n"
+               ::"a" (buf2), "a" (source)
+               : "1");
+       if (counter == 2) {
+               printf("%s\n", target);
+               exit(1);
+       } else
+               alarm(1);
+}
+
+int main()
+{
+       signal(SIGALRM, handle_SIG);
+       alarm(1);
+
+       asm volatile(   "larl 1,1f\n"
+                       "0: ex 0,0(1)\n"
+                       "j 0b\n"
+                       "1: mvc 0(20,%0),0(%1)\n"
+               ::"a" (target), "a" (source)
+               : "1");
+       exit(0);
+}
diff --git a/none/tests/s390x/ex_sig.stderr.exp b/none/tests/s390x/ex_sig.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/ex_sig.stdout.exp b/none/tests/s390x/ex_sig.stdout.exp
new file mode 100644 (file)
index 0000000..e1626d0
--- /dev/null
@@ -0,0 +1 @@
+aaaaaaaaaaaaaaaaaaaa                   
diff --git a/none/tests/s390x/ex_sig.vgtest b/none/tests/s390x/ex_sig.vgtest
new file mode 100644 (file)
index 0000000..436860e
--- /dev/null
@@ -0,0 +1 @@
+prog: ex_sig
diff --git a/none/tests/s390x/filter_stderr b/none/tests/s390x/filter_stderr
new file mode 100644 (file)
index 0000000..616ce05
--- /dev/null
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+../filter_stderr
+
diff --git a/none/tests/s390x/flogr.c b/none/tests/s390x/flogr.c
new file mode 100644 (file)
index 0000000..63ed036
--- /dev/null
@@ -0,0 +1,68 @@
+#include <stdio.h>
+
+
+/* Call FLOGR on INPUT. The results are returned through the parms. */
+void
+flogr(unsigned long input, unsigned long *bitpos, unsigned long *modval,
+      unsigned int *cc)
+{
+   unsigned int psw;
+   register unsigned long value asm("4") = input;
+
+   asm volatile ( "flogr 2, %[val]\n\t"
+                  "ipm   %[psw]\n\t"
+                  "stg   2, %[bitpos]\n\t"
+                  "stg   3, %[modval]\n\t"
+                  : [bitpos]"=m"(*bitpos), [modval]"=m"(*modval),
+                    [psw]"=d"(psw)
+                  : [val] "d"(value)
+                  : "2", "3", "cc");
+
+   *cc = psw >> 28;
+#if 0
+   printf("value = %lx,  bitpos = %lu,  modval = %lx,  cc = %d\n",
+          value, *bitpos, *modval, *cc);
+#endif
+}
+
+void
+runtest(void)
+{
+   unsigned long bitpos, modval, value;
+   unsigned int cc;
+   int i;
+
+   /* Value 0 is special */
+   value = 0;
+   flogr(value, &bitpos, &modval, &cc);
+   if (modval != 0)  fprintf(stderr, "modval is wrong for %lx\n", value);
+   if (bitpos != 64) fprintf(stderr, "bitpos is wrong for %lx\n", value);
+   if (cc != 0)      fprintf(stderr, "cc is wrong for %lx\n", value);
+
+   /* Test with exactly 1 bit set */
+   for (i = 0; i < 64; ++i) {
+     value = 1ull << i;
+     flogr(value, &bitpos, &modval, &cc);
+     if (modval != 0) fprintf(stderr, "modval is wrong for %lx\n", value);
+     if (bitpos != 63 - i) fprintf(stderr, "bitpos is wrong for %lx\n", value);
+     if (cc != 2)          fprintf(stderr, "cc is wrong for %lx\n", value);
+   }
+
+   /* Test with all bits 1 right from first 1 bit */
+   for (i = 1; i < 64; ++i) {
+     value = 1ull << i;
+     value = value | (value - 1);
+     flogr(value, &bitpos, &modval, &cc);
+     if (modval != (value >> 1)) fprintf(stderr, "modval is wrong for %lx\n", value);
+     if (bitpos != 63 - i) fprintf(stderr, "bitpos is wrong for %lx\n", value);
+     if (cc != 2)          fprintf(stderr, "cc is wrong for %lx\n", value);
+   }
+}
+
+
+int main()
+{
+   runtest();
+
+   return 0;
+}
diff --git a/none/tests/s390x/flogr.stderr.exp b/none/tests/s390x/flogr.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/flogr.vgtest b/none/tests/s390x/flogr.vgtest
new file mode 100644 (file)
index 0000000..c5a32db
--- /dev/null
@@ -0,0 +1,2 @@
+prog: flogr
+prereq: test -x flogr
diff --git a/none/tests/s390x/icm.c b/none/tests/s390x/icm.c
new file mode 100644 (file)
index 0000000..c971e4c
--- /dev/null
@@ -0,0 +1,94 @@
+#include <stdio.h>
+#include "test.h"
+#define icm(r1, mask, b) do {\
+       asm volatile(   "lg 1, 0(%0)\n"  \
+               "icm 1," #mask ",0(%1)\n" \
+               "stg 1, 0(%0)\n" \
+       :: "a" (r1), "a" (b) \
+       : "1", "memory", "cc"); \
+} while(0)
+
+#define icmh(r1, mask, b) do {\
+       asm volatile(   "lg 1, 0(%0)\n"  \
+               "icmh 1," #mask ",0(%1)\n" \
+               "stg 1, 0(%0)\n" \
+       :: "a" (r1), "a" (b) \
+       : "1", "memory", "cc"); \
+} while(0)
+
+int main()
+{
+       long a[320];
+       char buffer[256];
+       char *b1="\x80\x00\x00\x00";
+       char *b2="\x00\x00\x00\x01";
+       char *b3="\xff\x00\x00\x00";
+       char *b4="\x00\xff\x00\x00";
+       char *b5="\x00\x00\xff\x00";
+       char *b6="\x00\x00\x00\xff";
+       int n;
+       int cc;
+
+       for (n=0; n<320; n++)
+               a[n] = n;
+
+#define test(what, offset) do { \
+       icm(&a[0+offset], 0, what); cc = get_cc(); \
+       icm(&a[1+offset+cc], 1, what); cc = get_cc(); \
+       icm(&a[2+offset+cc], 2, what); cc = get_cc(); \
+       icm(&a[3+offset+cc], 3, what); cc = get_cc(); \
+       icm(&a[4+offset+cc], 4, what); cc = get_cc(); \
+       icm(&a[5+offset+cc], 5, what); cc = get_cc(); \
+       icm(&a[6+offset+cc], 6, what); cc = get_cc(); \
+       icm(&a[7+offset+cc], 7, what); cc = get_cc(); \
+       icm(&a[8+offset+cc], 8, what); cc = get_cc(); \
+       icm(&a[9+offset+cc], 9, what); cc = get_cc(); \
+       icm(&a[10+offset+cc], 10, what); cc = get_cc(); \
+       icm(&a[11+offset+cc], 11, what); cc = get_cc(); \
+       icm(&a[12+offset+cc], 12, what); cc = get_cc(); \
+       icm(&a[13+offset+cc], 13, what); cc = get_cc(); \
+       icm(&a[14+offset+cc], 14, what); cc = get_cc(); \
+       icm(&a[15+offset+cc], 15, what); cc = get_cc(); \
+       icmh(&a[0+offset+cc], 0, what); cc = get_cc(); \
+       icmh(&a[1+offset+cc], 1, what); cc = get_cc(); \
+       icmh(&a[2+offset+cc], 2, what); cc = get_cc(); \
+       icmh(&a[3+offset+cc], 3, what); cc = get_cc(); \
+       icmh(&a[4+offset+cc], 4, what); cc = get_cc(); \
+       icmh(&a[5+offset+cc], 5, what); cc = get_cc(); \
+       icmh(&a[6+offset+cc], 6, what); cc = get_cc(); \
+       icmh(&a[7+offset+cc], 7, what); cc = get_cc(); \
+       icmh(&a[8+offset+cc], 8, what); cc = get_cc(); \
+       icmh(&a[9+offset+cc], 9, what); cc = get_cc(); \
+       icmh(&a[10+offset+cc], 10, what); cc = get_cc(); \
+       icmh(&a[11+offset+cc], 11, what); cc = get_cc(); \
+       icmh(&a[12+offset+cc], 12, what); cc = get_cc(); \
+       icmh(&a[13+offset+cc], 13, what); cc = get_cc(); \
+       icmh(&a[14+offset+cc], 14, what); cc = get_cc(); \
+       icmh(&a[15+offset+cc], 15, what); \
+} while (0)
+
+       for (n=0; n<256; n++)
+               buffer[n] = n;
+
+       test(&buffer[0],0);
+       test(&buffer[60],16);
+       test(&buffer[120],32);
+       test(&buffer[180],48);
+       test(&buffer[240],64);
+       test(&buffer[252],80);
+       test(b1,96);
+       test(b2,112);
+       for (n=0; n<256; n++)
+               buffer[n] = 255-n;
+       test(&buffer[0],128);
+       test(&buffer[60],144);
+       test(&buffer[160],160);
+       test(b3,176);
+       test(b4,192);
+       test(b5,208);
+       test(b6,224);
+
+       dump_field((char *) a, sizeof(a));
+
+       return 0;
+}
diff --git a/none/tests/s390x/icm.stderr.exp b/none/tests/s390x/icm.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/icm.stdout.exp b/none/tests/s390x/icm.stdout.exp
new file mode 100644 (file)
index 0000000..a27369c
--- /dev/null
@@ -0,0 +1 @@
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 07 00 00 01 00 00 00 01 08 00 00 01 01 00 00 01 01 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 0B 00 00 01 00 00 00 01 0C 00 00 01 02 00 00 01 02 00 01 00 00 00 01 00 0E 00 01 00 02 00 01 00 02 00 01 02 00 00 01 02 10 00 01 02 3C 00 01 02 3C 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 13 00 00 3C 00 00 00 3C 14 00 00 3C 3D 00 00 3C 3D 00 3C 00 00 00 3C 00 16 00 3C 00 3D 00 3C 00 3D 00 3C 3D 00 00 3C 3D 18 00 3C 3D 3E 00 3C 3D 3E 3C 00 00 00 3C 00 00 1A 3C 00 00 3D 3C 00 00 3D 3C 00 3D 00 3C 00 3D 1C 3C 00 3D 3E 3C 00 3D 3E 3C 3D 00 00 3C 3D 00 1E 3C 3D 00 3E 3C 3D 00 3E 3C 3D 3E 00 3C 3D 3E 20 3C 3D 3E 78 3C 3D 3E 78 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 23 00 00 78 00 00 00 78 24 00 00 78 79 00 00 78 79 00 78 00 00 00 78 00 26 00 78 00 79 00 78 00 79 00 78 79 00 00 78 79 28 00 78 79 7A 00 78 79 7A 78 00 00 00 78 00 00 2A 78 00 00 79 78 00 00 79 78 00 79 00 78 00 79 2C 78 00 79 7A 78 00 79 7A 78 79 00 00 78 79 00 2E 78 79 00 7A 78 79 00 7A 78 79 7A 00 78 79 7A 30 78 79 7A B4 78 79 7A B4 00 00 00 00 00 00 00 32 00 00 B4 00 00 00 B4 33 00 00 B4 B5 00 00 B4 B5 00 B4 00 00 00 B4 00 35 00 B4 00 B5 00 B4 00 B5 00 B4 B5 00 00 B4 B5 37 00 B4 B5 B6 00 B4 B5 B6 B4 00 00 00 B4 00 00 39 B4 00 00 B5 B4 00 00 B5 B4 00 B5 00 B4 00 B5 3B B4 00 B5 B6 B4 00 B5 B6 B4 B5 00 00 B4 B5 00 3D B4 B5 00 B6 B4 B5 00 B6 B4 B5 B6 00 B4 B5 B6 3F B4 B5 B6 B7 B4 B5 B6 B7 00 00 00 F0 00 00 00 F0 00 00 00 00 00 00 00 42 00 00 F0 00 00 00 F0 43 00 00 F0 F1 00 00 F0 F1 00 F0 00 00 00 F0 00 45 00 F0 00 F1 00 F0 00 F1 00 F0 F1 00 00 F0 F1 47 00 F0 F1 F2 00 F0 F1 F2 F0 00 00 00 F0 00 00 49 F0 00 00 F1 F0 00 00 F1 F0 00 F1 00 F0 00 F1 4B F0 00 F1 F2 F0 00 F1 F2 F0 F1 00 00 F0 F1 00 4D F0 F1 00 F2 F0 F1 00 F2 F0 F1 F2 00 F0 F1 F2 4F F0 F1 F2 F3 F0 F1 F2 F3 00 00 00 FC 00 00 00 FC 00 00 00 00 00 00 00 52 00 00 FC 00 00 00 FC 53 00 00 FC FD 00 00 FC FD 00 FC 00 00 00 FC 00 55 00 FC 00 FD 00 FC 00 FD 00 FC FD 00 00 FC FD 57 00 FC FD FE 00 FC FD FE FC 00 00 00 FC 00 00 59 FC 00 00 FD FC 00 00 FD FC 00 FD 00 FC 00 FD 5B FC 00 FD FE FC 00 FD FE FC FD 00 00 FC FD 00 5D FC FD 00 FE FC FD 00 FE FC FD FE 00 FC FD FE 5F FC FD FE FF FC FD FE FF 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 62 00 00 80 00 00 00 80 63 00 00 80 00 00 00 80 00 00 80 00 00 00 80 00 65 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 67 00 80 00 00 00 80 00 00 80 00 00 00 80 00 00 69 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 6B 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 6D 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 6F 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7E 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 80 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 82 00 00 FF 00 00 00 FF 83 00 00 FF FE 00 00 FF FE 00 FF 00 00 00 FF 00 85 00 FF 00 FE 00 FF 00 FE 00 FF FE 00 00 FF FE 87 00 FF FE FD 00 FF FE FD FF 00 00 00 FF 00 00 89 FF 00 00 FE FF 00 00 FE FF 00 FE 00 FF 00 FE 8B FF 00 FE FD FF 00 FE FD FF FE 00 00 FF FE 00 8D FF FE 00 FD FF FE 00 FD FF FE FD 00 FF FE FD 8F FF FE FD FC FF FE FD FC 00 00 00 C3 00 00 00 C3 00 00 00 00 00 00 00 92 00 00 C3 00 00 00 C3 93 00 00 C3 C2 00 00 C3 C2 00 C3 00 00 00 C3 00 95 00 C3 00 C2 00 C3 00 C2 00 C3 C2 00 00 C3 C2 97 00 C3 C2 C1 00 C3 C2 C1 C3 00 00 00 C3 00 00 99 C3 00 00 C2 C3 00 00 C2 C3 00 C2 00 C3 00 C2 9B C3 00 C2 C1 C3 00 C2 C1 C3 C2 00 00 C3 C2 00 9D C3 C2 00 C1 C3 C2 00 C1 C3 C2 C1 00 C3 C2 C1 9F C3 C2 C1 C0 C3 C2 C1 C0 00 00 00 5F 00 00 00 5F 00 00 00 00 00 00 00 A2 00 00 00 00 00 00 00 A3 00 00 5F 00 00 00 5F A4 00 00 5F 5E 00 00 5F 5E 00 5F 00 00 00 5F 00 A6 00 5F 00 5E 00 5F 00 5E 00 5F 5E 00 00 5F 5E A8 00 5F 5E 5D 00 5F 5E 5D 5F 00 00 00 5F 00 00 AA 5F 00 00 5E 5F 00 00 5E 5F 00 5E 00 5F 00 5E AC 5F 00 5E 5D 5F 00 5E 5D 5F 5E 00 00 5F 5E 00 AE 5F 5E 00 5D 5F 5E 00 5D 5F 5E 5D 00 5F 5E 5D B0 5F 5E 5D FF 5F 5E 5D FF 00 00 00 00 00 00 00 B2 00 00 FF 00 00 00 FF B3 00 00 FF 00 00 00 FF 00 00 FF 00 00 00 FF 00 B5 00 FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00 B7 00 FF 00 00 00 FF 00 00 FF 00 00 00 FF 00 00 B9 FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00 00 BB FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00 00 BD FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00 00 BF FF 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C2 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 C4 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 C6 00 00 00 00 00 00 00 C7 00 00 FF 00 00 00 FF C8 00 00 FF FF 00 00 FF FF 00 00 00 00 00 00 00 CA 00 00 00 00 00 00 00 CB 00 00 FF 00 00 00 FF CC 00 00 FF 00 00 00 FF 00 00 FF 00 00 00 FF 00 CE 00 FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00 D0 00 FF 00 00 00 FF 00 00 00 00 00 00 00 00 00 D2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D6 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 D8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DA 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 DC 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 DE 00 00 00 00 00 00 00 DF 00 00 FF 00 00 00 FF E0 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 00 E2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EE 00 00 00 FF 00 00 00 FF 00 00 00 00 00 00 00 F0 00 00 00 00 00 00 00 F1 00 00 00 00 00 00 00 F2 00 00 00 00 00 00 00 F3 00 00 00 00 00 00 00 F4 00 00 00 00 00 00 00 F5 00 00 00 00 00 00 00 F6 00 00 00 00 00 00 00 F7 00 00 00 00 00 00 00 F8 00 00 00 00 00 00 00 F9 00 00 00 00 00 00 00 FA 00 00 00 00 00 00 00 FB 00 00 00 00 00 00 00 FC 00 00 00 00 00 00 00 FD 00 00 00 00 00 00 00 FE 00 00 00 00 00 00 00 FF 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 01 02 00 00 00 00 00 00 01 03 00 00 00 00 00 00 01 04 00 00 00 00 00 00 01 05 00 00 00 00 00 00 01 06 00 00 00 00 00 00 01 07 00 00 00 00 00 00 01 08 00 00 00 00 00 00 01 09 00 00 00 00 00 00 01 0A 00 00 00 00 00 00 01 0B 00 00 00 00 00 00 01 0C 00 00 00 00 00 00 01 0D 00 00 00 00 00 00 01 0E 00 00 00 00 00 00 01 0F 00 00 00 00 00 00 01 10 00 00 00 00 00 00 01 11 00 00 00 00 00 00 01 12 00 00 00 00 00 00 01 13 00 00 00 00 00 00 01 14 00 00 00 00 00 00 01 15 00 00 00 00 00 00 01 16 00 00 00 00 00 00 01 17 00 00 00 00 00 00 01 18 00 00 00 00 00 00 01 19 00 00 00 00 00 00 01 1A 00 00 00 00 00 00 01 1B 00 00 00 00 00 00 01 1C 00 00 00 00 00 00 01 1D 00 00 00 00 00 00 01 1E 00 00 00 00 00 00 01 1F 00 00 00 00 00 00 01 20 00 00 00 00 00 00 01 21 00 00 00 00 00 00 01 22 00 00 00 00 00 00 01 23 00 00 00 00 00 00 01 24 00 00 00 00 00 00 01 25 00 00 00 00 00 00 01 26 00 00 00 00 00 00 01 27 00 00 00 00 00 00 01 28 00 00 00 00 00 00 01 29 00 00 00 00 00 00 01 2A 00 00 00 00 00 00 01 2B 00 00 00 00 00 00 01 2C 00 00 00 00 00 00 01 2D 00 00 00 00 00 00 01 2E 00 00 00 00 00 00 01 2F 00 00 00 00 00 00 01 30 00 00 00 00 00 00 01 31 00 00 00 00 00 00 01 32 00 00 00 00 00 00 01 33 00 00 00 00 00 00 01 34 00 00 00 00 00 00 01 35 00 00 00 00 00 00 01 36 00 00 00 00 00 00 01 37 00 00 00 00 00 00 01 38 00 00 00 00 00 00 01 39 00 00 00 00 00 00 01 3A 00 00 00 00 00 00 01 3B 00 00 00 00 00 00 01 3C 00 00 00 00 00 00 01 3D 00 00 00 00 00 00 01 3E 00 00 00 00 00 00 01 3F 
\ No newline at end of file
diff --git a/none/tests/s390x/icm.vgtest b/none/tests/s390x/icm.vgtest
new file mode 100644 (file)
index 0000000..b0709b9
--- /dev/null
@@ -0,0 +1 @@
+prog: icm
diff --git a/none/tests/s390x/insert.c b/none/tests/s390x/insert.c
new file mode 100644 (file)
index 0000000..bf9fd86
--- /dev/null
@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include "insert.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(iihh, 0x55);
+       immsweep(iihl, 0x55);
+       immsweep(iilh, 0x55);
+       immsweep(iill, 0x55);
+       immsweep(iihh, 0xaa);
+       immsweep(iihl, 0xaa);
+       immsweep(iilh, 0xaa);
+       immsweep(iill, 0xaa);
+       immsweep(iihh, 0xff);
+       immsweep(iihl, 0xff);
+       immsweep(iilh, 0xff);
+       immsweep(iill, 0xff);
+       immsweep(iihh, 0x0);
+       immsweep(iihl, 0x0);
+       immsweep(iilh, 0x0);
+       immsweep(iill, 0x0);
+       immsweep(iihh, 0xffff);
+       immsweep(iihl, 0xffff);
+       immsweep(iilh, 0xffff);
+       immsweep(iill, 0xffff);
+       immsweep(iihh, 0xaaaa);
+       immsweep(iihl, 0xaaaa);
+       immsweep(iilh, 0xaaaa);
+       immsweep(iill, 0xaaaa);
+       immsweep(iihh, 0x5555);
+       immsweep(iihl, 0x5555);
+       immsweep(iilh, 0x5555);
+       immsweep(iill, 0x5555);
+}
+
+
+static void do_mem_insns(unsigned long s2)
+{
+       memsweep(ic, s2);
+       memsweep(icy, s2);
+}
+
+int main()
+{
+       do_mem_insns(0x0ul);
+       do_mem_insns(0x5555555555555555ul);
+       do_mem_insns(0xaaaaaaaaaaaaaaaaul);
+       do_mem_insns(0x8000000000000000ul);
+       do_mem_insns(0xfffffffffffffffful);
+       do_mem_insns(0x7fffffff00000000ul);
+       do_mem_insns(0x8000000000000000ul);
+       do_mem_insns(0xaaaaaaaa00000000ul);
+       do_mem_insns(0xffffffff00000000ul);
+       do_mem_insns(0x000000007ffffffful);
+       do_mem_insns(0x0000000080000000ul);
+       do_mem_insns(0x0000000055555555ul);
+       do_mem_insns(0x00000000fffffffful);
+       do_mem_insns(0x000000000000fffful);
+       do_mem_insns(0x0000000000007ffful);
+       do_mem_insns(0x0000000000008000ul);
+       do_mem_insns(0x000000000000fffful);
+
+       do_imm_insns();
+       return 0;
+}
diff --git a/none/tests/s390x/insert.h b/none/tests/s390x/insert.h
new file mode 100644 (file)
index 0000000..0dc27d1
--- /dev/null
@@ -0,0 +1,62 @@
+#include <stdio.h>
+
+#define INSERT_REG_MEM(insn, s1, s2)                   \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX <- %16.16lX = %16.16lX\n", s1, s2, tmp); \
+})
+
+#define INSERT_REG_IMM(insn, s1, s2)                   \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX <- %16.16lX = %16.16lX\n", s1, (unsigned long) s2, tmp); \
+})
+
+
+#define memsweep(i, s2)                                        \
+({                                                     \
+       INSERT_REG_MEM(i, 0ul, s2);                     \
+       INSERT_REG_MEM(i, 1ul, s2);                     \
+       INSERT_REG_MEM(i, 0xfffful, s2);                \
+       INSERT_REG_MEM(i, 0x7ffful, s2);                \
+       INSERT_REG_MEM(i, 0x8000ul, s2);                \
+       INSERT_REG_MEM(i, 0xfffffffful, s2);            \
+       INSERT_REG_MEM(i, 0x80000000ul, s2);            \
+       INSERT_REG_MEM(i, 0x7ffffffful, s2);            \
+       INSERT_REG_MEM(i, 0xaaaaaaaaaaaaaaaaul, s2);    \
+       INSERT_REG_MEM(i, 0x8000000000000000ul, s2);    \
+       INSERT_REG_MEM(i, 0xfffffffffffffffful, s2);    \
+       INSERT_REG_MEM(i, 0x5555555555555555ul, s2);    \
+})
+
+#define immsweep(i, s2)                                        \
+({                                                     \
+       INSERT_REG_IMM(i, 0ul, s2);                     \
+       INSERT_REG_IMM(i, 1ul, s2);                     \
+       INSERT_REG_IMM(i, 0xfffful, s2);                \
+       INSERT_REG_IMM(i, 0x7ffful, s2);                \
+       INSERT_REG_IMM(i, 0x8000ul, s2);                \
+       INSERT_REG_IMM(i, 0xfffffffful, s2);            \
+       INSERT_REG_IMM(i, 0x80000000ul, s2);            \
+       INSERT_REG_IMM(i, 0x7ffffffful, s2);            \
+       INSERT_REG_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);    \
+       INSERT_REG_IMM(i, 0x8000000000000000ul, s2);    \
+       INSERT_REG_IMM(i, 0xfffffffffffffffful, s2);    \
+       INSERT_REG_IMM(i, 0x5555555555555555ul, s2);    \
+})
+
+
diff --git a/none/tests/s390x/insert.stderr.exp b/none/tests/s390x/insert.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/insert.stdout.exp b/none/tests/s390x/insert.stdout.exp
new file mode 100644 (file)
index 0000000..d49126a
--- /dev/null
@@ -0,0 +1,744 @@
+ic 0000000000000000 <- 0000000000000000 = 0000000000000000
+ic 0000000000000001 <- 0000000000000000 = 0000000000000000
+ic 000000000000FFFF <- 0000000000000000 = 000000000000FF00
+ic 0000000000007FFF <- 0000000000000000 = 0000000000007F00
+ic 0000000000008000 <- 0000000000000000 = 0000000000008000
+ic 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFFFF00
+ic 0000000080000000 <- 0000000000000000 = 0000000080000000
+ic 000000007FFFFFFF <- 0000000000000000 = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 0000000000000000 = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 0000000000000000 = 5555555555555500
+icy 0000000000000000 <- 0000000000000000 = 0000000000000000
+icy 0000000000000001 <- 0000000000000000 = 0000000000000000
+icy 000000000000FFFF <- 0000000000000000 = 000000000000FF00
+icy 0000000000007FFF <- 0000000000000000 = 0000000000007F00
+icy 0000000000008000 <- 0000000000000000 = 0000000000008000
+icy 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFFFF00
+icy 0000000080000000 <- 0000000000000000 = 0000000080000000
+icy 000000007FFFFFFF <- 0000000000000000 = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 0000000000000000 = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 0000000000000000 = 5555555555555500
+ic 0000000000000000 <- 5555555555555555 = 0000000000000055
+ic 0000000000000001 <- 5555555555555555 = 0000000000000055
+ic 000000000000FFFF <- 5555555555555555 = 000000000000FF55
+ic 0000000000007FFF <- 5555555555555555 = 0000000000007F55
+ic 0000000000008000 <- 5555555555555555 = 0000000000008055
+ic 00000000FFFFFFFF <- 5555555555555555 = 00000000FFFFFF55
+ic 0000000080000000 <- 5555555555555555 = 0000000080000055
+ic 000000007FFFFFFF <- 5555555555555555 = 000000007FFFFF55
+ic AAAAAAAAAAAAAAAA <- 5555555555555555 = AAAAAAAAAAAAAA55
+ic 8000000000000000 <- 5555555555555555 = 8000000000000055
+ic FFFFFFFFFFFFFFFF <- 5555555555555555 = FFFFFFFFFFFFFF55
+ic 5555555555555555 <- 5555555555555555 = 5555555555555555
+icy 0000000000000000 <- 5555555555555555 = 0000000000000055
+icy 0000000000000001 <- 5555555555555555 = 0000000000000055
+icy 000000000000FFFF <- 5555555555555555 = 000000000000FF55
+icy 0000000000007FFF <- 5555555555555555 = 0000000000007F55
+icy 0000000000008000 <- 5555555555555555 = 0000000000008055
+icy 00000000FFFFFFFF <- 5555555555555555 = 00000000FFFFFF55
+icy 0000000080000000 <- 5555555555555555 = 0000000080000055
+icy 000000007FFFFFFF <- 5555555555555555 = 000000007FFFFF55
+icy AAAAAAAAAAAAAAAA <- 5555555555555555 = AAAAAAAAAAAAAA55
+icy 8000000000000000 <- 5555555555555555 = 8000000000000055
+icy FFFFFFFFFFFFFFFF <- 5555555555555555 = FFFFFFFFFFFFFF55
+icy 5555555555555555 <- 5555555555555555 = 5555555555555555
+ic 0000000000000000 <- AAAAAAAAAAAAAAAA = 00000000000000AA
+ic 0000000000000001 <- AAAAAAAAAAAAAAAA = 00000000000000AA
+ic 000000000000FFFF <- AAAAAAAAAAAAAAAA = 000000000000FFAA
+ic 0000000000007FFF <- AAAAAAAAAAAAAAAA = 0000000000007FAA
+ic 0000000000008000 <- AAAAAAAAAAAAAAAA = 00000000000080AA
+ic 00000000FFFFFFFF <- AAAAAAAAAAAAAAAA = 00000000FFFFFFAA
+ic 0000000080000000 <- AAAAAAAAAAAAAAAA = 00000000800000AA
+ic 000000007FFFFFFF <- AAAAAAAAAAAAAAAA = 000000007FFFFFAA
+ic AAAAAAAAAAAAAAAA <- AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA
+ic 8000000000000000 <- AAAAAAAAAAAAAAAA = 80000000000000AA
+ic FFFFFFFFFFFFFFFF <- AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFAA
+ic 5555555555555555 <- AAAAAAAAAAAAAAAA = 55555555555555AA
+icy 0000000000000000 <- AAAAAAAAAAAAAAAA = 00000000000000AA
+icy 0000000000000001 <- AAAAAAAAAAAAAAAA = 00000000000000AA
+icy 000000000000FFFF <- AAAAAAAAAAAAAAAA = 000000000000FFAA
+icy 0000000000007FFF <- AAAAAAAAAAAAAAAA = 0000000000007FAA
+icy 0000000000008000 <- AAAAAAAAAAAAAAAA = 00000000000080AA
+icy 00000000FFFFFFFF <- AAAAAAAAAAAAAAAA = 00000000FFFFFFAA
+icy 0000000080000000 <- AAAAAAAAAAAAAAAA = 00000000800000AA
+icy 000000007FFFFFFF <- AAAAAAAAAAAAAAAA = 000000007FFFFFAA
+icy AAAAAAAAAAAAAAAA <- AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA
+icy 8000000000000000 <- AAAAAAAAAAAAAAAA = 80000000000000AA
+icy FFFFFFFFFFFFFFFF <- AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFAA
+icy 5555555555555555 <- AAAAAAAAAAAAAAAA = 55555555555555AA
+ic 0000000000000000 <- 8000000000000000 = 0000000000000080
+ic 0000000000000001 <- 8000000000000000 = 0000000000000080
+ic 000000000000FFFF <- 8000000000000000 = 000000000000FF80
+ic 0000000000007FFF <- 8000000000000000 = 0000000000007F80
+ic 0000000000008000 <- 8000000000000000 = 0000000000008080
+ic 00000000FFFFFFFF <- 8000000000000000 = 00000000FFFFFF80
+ic 0000000080000000 <- 8000000000000000 = 0000000080000080
+ic 000000007FFFFFFF <- 8000000000000000 = 000000007FFFFF80
+ic AAAAAAAAAAAAAAAA <- 8000000000000000 = AAAAAAAAAAAAAA80
+ic 8000000000000000 <- 8000000000000000 = 8000000000000080
+ic FFFFFFFFFFFFFFFF <- 8000000000000000 = FFFFFFFFFFFFFF80
+ic 5555555555555555 <- 8000000000000000 = 5555555555555580
+icy 0000000000000000 <- 8000000000000000 = 0000000000000080
+icy 0000000000000001 <- 8000000000000000 = 0000000000000080
+icy 000000000000FFFF <- 8000000000000000 = 000000000000FF80
+icy 0000000000007FFF <- 8000000000000000 = 0000000000007F80
+icy 0000000000008000 <- 8000000000000000 = 0000000000008080
+icy 00000000FFFFFFFF <- 8000000000000000 = 00000000FFFFFF80
+icy 0000000080000000 <- 8000000000000000 = 0000000080000080
+icy 000000007FFFFFFF <- 8000000000000000 = 000000007FFFFF80
+icy AAAAAAAAAAAAAAAA <- 8000000000000000 = AAAAAAAAAAAAAA80
+icy 8000000000000000 <- 8000000000000000 = 8000000000000080
+icy FFFFFFFFFFFFFFFF <- 8000000000000000 = FFFFFFFFFFFFFF80
+icy 5555555555555555 <- 8000000000000000 = 5555555555555580
+ic 0000000000000000 <- FFFFFFFFFFFFFFFF = 00000000000000FF
+ic 0000000000000001 <- FFFFFFFFFFFFFFFF = 00000000000000FF
+ic 000000000000FFFF <- FFFFFFFFFFFFFFFF = 000000000000FFFF
+ic 0000000000007FFF <- FFFFFFFFFFFFFFFF = 0000000000007FFF
+ic 0000000000008000 <- FFFFFFFFFFFFFFFF = 00000000000080FF
+ic 00000000FFFFFFFF <- FFFFFFFFFFFFFFFF = 00000000FFFFFFFF
+ic 0000000080000000 <- FFFFFFFFFFFFFFFF = 00000000800000FF
+ic 000000007FFFFFFF <- FFFFFFFFFFFFFFFF = 000000007FFFFFFF
+ic AAAAAAAAAAAAAAAA <- FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAFF
+ic 8000000000000000 <- FFFFFFFFFFFFFFFF = 80000000000000FF
+ic FFFFFFFFFFFFFFFF <- FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF
+ic 5555555555555555 <- FFFFFFFFFFFFFFFF = 55555555555555FF
+icy 0000000000000000 <- FFFFFFFFFFFFFFFF = 00000000000000FF
+icy 0000000000000001 <- FFFFFFFFFFFFFFFF = 00000000000000FF
+icy 000000000000FFFF <- FFFFFFFFFFFFFFFF = 000000000000FFFF
+icy 0000000000007FFF <- FFFFFFFFFFFFFFFF = 0000000000007FFF
+icy 0000000000008000 <- FFFFFFFFFFFFFFFF = 00000000000080FF
+icy 00000000FFFFFFFF <- FFFFFFFFFFFFFFFF = 00000000FFFFFFFF
+icy 0000000080000000 <- FFFFFFFFFFFFFFFF = 00000000800000FF
+icy 000000007FFFFFFF <- FFFFFFFFFFFFFFFF = 000000007FFFFFFF
+icy AAAAAAAAAAAAAAAA <- FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAFF
+icy 8000000000000000 <- FFFFFFFFFFFFFFFF = 80000000000000FF
+icy FFFFFFFFFFFFFFFF <- FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF
+icy 5555555555555555 <- FFFFFFFFFFFFFFFF = 55555555555555FF
+ic 0000000000000000 <- 7FFFFFFF00000000 = 000000000000007F
+ic 0000000000000001 <- 7FFFFFFF00000000 = 000000000000007F
+ic 000000000000FFFF <- 7FFFFFFF00000000 = 000000000000FF7F
+ic 0000000000007FFF <- 7FFFFFFF00000000 = 0000000000007F7F
+ic 0000000000008000 <- 7FFFFFFF00000000 = 000000000000807F
+ic 00000000FFFFFFFF <- 7FFFFFFF00000000 = 00000000FFFFFF7F
+ic 0000000080000000 <- 7FFFFFFF00000000 = 000000008000007F
+ic 000000007FFFFFFF <- 7FFFFFFF00000000 = 000000007FFFFF7F
+ic AAAAAAAAAAAAAAAA <- 7FFFFFFF00000000 = AAAAAAAAAAAAAA7F
+ic 8000000000000000 <- 7FFFFFFF00000000 = 800000000000007F
+ic FFFFFFFFFFFFFFFF <- 7FFFFFFF00000000 = FFFFFFFFFFFFFF7F
+ic 5555555555555555 <- 7FFFFFFF00000000 = 555555555555557F
+icy 0000000000000000 <- 7FFFFFFF00000000 = 000000000000007F
+icy 0000000000000001 <- 7FFFFFFF00000000 = 000000000000007F
+icy 000000000000FFFF <- 7FFFFFFF00000000 = 000000000000FF7F
+icy 0000000000007FFF <- 7FFFFFFF00000000 = 0000000000007F7F
+icy 0000000000008000 <- 7FFFFFFF00000000 = 000000000000807F
+icy 00000000FFFFFFFF <- 7FFFFFFF00000000 = 00000000FFFFFF7F
+icy 0000000080000000 <- 7FFFFFFF00000000 = 000000008000007F
+icy 000000007FFFFFFF <- 7FFFFFFF00000000 = 000000007FFFFF7F
+icy AAAAAAAAAAAAAAAA <- 7FFFFFFF00000000 = AAAAAAAAAAAAAA7F
+icy 8000000000000000 <- 7FFFFFFF00000000 = 800000000000007F
+icy FFFFFFFFFFFFFFFF <- 7FFFFFFF00000000 = FFFFFFFFFFFFFF7F
+icy 5555555555555555 <- 7FFFFFFF00000000 = 555555555555557F
+ic 0000000000000000 <- 8000000000000000 = 0000000000000080
+ic 0000000000000001 <- 8000000000000000 = 0000000000000080
+ic 000000000000FFFF <- 8000000000000000 = 000000000000FF80
+ic 0000000000007FFF <- 8000000000000000 = 0000000000007F80
+ic 0000000000008000 <- 8000000000000000 = 0000000000008080
+ic 00000000FFFFFFFF <- 8000000000000000 = 00000000FFFFFF80
+ic 0000000080000000 <- 8000000000000000 = 0000000080000080
+ic 000000007FFFFFFF <- 8000000000000000 = 000000007FFFFF80
+ic AAAAAAAAAAAAAAAA <- 8000000000000000 = AAAAAAAAAAAAAA80
+ic 8000000000000000 <- 8000000000000000 = 8000000000000080
+ic FFFFFFFFFFFFFFFF <- 8000000000000000 = FFFFFFFFFFFFFF80
+ic 5555555555555555 <- 8000000000000000 = 5555555555555580
+icy 0000000000000000 <- 8000000000000000 = 0000000000000080
+icy 0000000000000001 <- 8000000000000000 = 0000000000000080
+icy 000000000000FFFF <- 8000000000000000 = 000000000000FF80
+icy 0000000000007FFF <- 8000000000000000 = 0000000000007F80
+icy 0000000000008000 <- 8000000000000000 = 0000000000008080
+icy 00000000FFFFFFFF <- 8000000000000000 = 00000000FFFFFF80
+icy 0000000080000000 <- 8000000000000000 = 0000000080000080
+icy 000000007FFFFFFF <- 8000000000000000 = 000000007FFFFF80
+icy AAAAAAAAAAAAAAAA <- 8000000000000000 = AAAAAAAAAAAAAA80
+icy 8000000000000000 <- 8000000000000000 = 8000000000000080
+icy FFFFFFFFFFFFFFFF <- 8000000000000000 = FFFFFFFFFFFFFF80
+icy 5555555555555555 <- 8000000000000000 = 5555555555555580
+ic 0000000000000000 <- AAAAAAAA00000000 = 00000000000000AA
+ic 0000000000000001 <- AAAAAAAA00000000 = 00000000000000AA
+ic 000000000000FFFF <- AAAAAAAA00000000 = 000000000000FFAA
+ic 0000000000007FFF <- AAAAAAAA00000000 = 0000000000007FAA
+ic 0000000000008000 <- AAAAAAAA00000000 = 00000000000080AA
+ic 00000000FFFFFFFF <- AAAAAAAA00000000 = 00000000FFFFFFAA
+ic 0000000080000000 <- AAAAAAAA00000000 = 00000000800000AA
+ic 000000007FFFFFFF <- AAAAAAAA00000000 = 000000007FFFFFAA
+ic AAAAAAAAAAAAAAAA <- AAAAAAAA00000000 = AAAAAAAAAAAAAAAA
+ic 8000000000000000 <- AAAAAAAA00000000 = 80000000000000AA
+ic FFFFFFFFFFFFFFFF <- AAAAAAAA00000000 = FFFFFFFFFFFFFFAA
+ic 5555555555555555 <- AAAAAAAA00000000 = 55555555555555AA
+icy 0000000000000000 <- AAAAAAAA00000000 = 00000000000000AA
+icy 0000000000000001 <- AAAAAAAA00000000 = 00000000000000AA
+icy 000000000000FFFF <- AAAAAAAA00000000 = 000000000000FFAA
+icy 0000000000007FFF <- AAAAAAAA00000000 = 0000000000007FAA
+icy 0000000000008000 <- AAAAAAAA00000000 = 00000000000080AA
+icy 00000000FFFFFFFF <- AAAAAAAA00000000 = 00000000FFFFFFAA
+icy 0000000080000000 <- AAAAAAAA00000000 = 00000000800000AA
+icy 000000007FFFFFFF <- AAAAAAAA00000000 = 000000007FFFFFAA
+icy AAAAAAAAAAAAAAAA <- AAAAAAAA00000000 = AAAAAAAAAAAAAAAA
+icy 8000000000000000 <- AAAAAAAA00000000 = 80000000000000AA
+icy FFFFFFFFFFFFFFFF <- AAAAAAAA00000000 = FFFFFFFFFFFFFFAA
+icy 5555555555555555 <- AAAAAAAA00000000 = 55555555555555AA
+ic 0000000000000000 <- FFFFFFFF00000000 = 00000000000000FF
+ic 0000000000000001 <- FFFFFFFF00000000 = 00000000000000FF
+ic 000000000000FFFF <- FFFFFFFF00000000 = 000000000000FFFF
+ic 0000000000007FFF <- FFFFFFFF00000000 = 0000000000007FFF
+ic 0000000000008000 <- FFFFFFFF00000000 = 00000000000080FF
+ic 00000000FFFFFFFF <- FFFFFFFF00000000 = 00000000FFFFFFFF
+ic 0000000080000000 <- FFFFFFFF00000000 = 00000000800000FF
+ic 000000007FFFFFFF <- FFFFFFFF00000000 = 000000007FFFFFFF
+ic AAAAAAAAAAAAAAAA <- FFFFFFFF00000000 = AAAAAAAAAAAAAAFF
+ic 8000000000000000 <- FFFFFFFF00000000 = 80000000000000FF
+ic FFFFFFFFFFFFFFFF <- FFFFFFFF00000000 = FFFFFFFFFFFFFFFF
+ic 5555555555555555 <- FFFFFFFF00000000 = 55555555555555FF
+icy 0000000000000000 <- FFFFFFFF00000000 = 00000000000000FF
+icy 0000000000000001 <- FFFFFFFF00000000 = 00000000000000FF
+icy 000000000000FFFF <- FFFFFFFF00000000 = 000000000000FFFF
+icy 0000000000007FFF <- FFFFFFFF00000000 = 0000000000007FFF
+icy 0000000000008000 <- FFFFFFFF00000000 = 00000000000080FF
+icy 00000000FFFFFFFF <- FFFFFFFF00000000 = 00000000FFFFFFFF
+icy 0000000080000000 <- FFFFFFFF00000000 = 00000000800000FF
+icy 000000007FFFFFFF <- FFFFFFFF00000000 = 000000007FFFFFFF
+icy AAAAAAAAAAAAAAAA <- FFFFFFFF00000000 = AAAAAAAAAAAAAAFF
+icy 8000000000000000 <- FFFFFFFF00000000 = 80000000000000FF
+icy FFFFFFFFFFFFFFFF <- FFFFFFFF00000000 = FFFFFFFFFFFFFFFF
+icy 5555555555555555 <- FFFFFFFF00000000 = 55555555555555FF
+ic 0000000000000000 <- 000000007FFFFFFF = 0000000000000000
+ic 0000000000000001 <- 000000007FFFFFFF = 0000000000000000
+ic 000000000000FFFF <- 000000007FFFFFFF = 000000000000FF00
+ic 0000000000007FFF <- 000000007FFFFFFF = 0000000000007F00
+ic 0000000000008000 <- 000000007FFFFFFF = 0000000000008000
+ic 00000000FFFFFFFF <- 000000007FFFFFFF = 00000000FFFFFF00
+ic 0000000080000000 <- 000000007FFFFFFF = 0000000080000000
+ic 000000007FFFFFFF <- 000000007FFFFFFF = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 000000007FFFFFFF = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 000000007FFFFFFF = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 000000007FFFFFFF = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 000000007FFFFFFF = 5555555555555500
+icy 0000000000000000 <- 000000007FFFFFFF = 0000000000000000
+icy 0000000000000001 <- 000000007FFFFFFF = 0000000000000000
+icy 000000000000FFFF <- 000000007FFFFFFF = 000000000000FF00
+icy 0000000000007FFF <- 000000007FFFFFFF = 0000000000007F00
+icy 0000000000008000 <- 000000007FFFFFFF = 0000000000008000
+icy 00000000FFFFFFFF <- 000000007FFFFFFF = 00000000FFFFFF00
+icy 0000000080000000 <- 000000007FFFFFFF = 0000000080000000
+icy 000000007FFFFFFF <- 000000007FFFFFFF = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 000000007FFFFFFF = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 000000007FFFFFFF = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 000000007FFFFFFF = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 000000007FFFFFFF = 5555555555555500
+ic 0000000000000000 <- 0000000080000000 = 0000000000000000
+ic 0000000000000001 <- 0000000080000000 = 0000000000000000
+ic 000000000000FFFF <- 0000000080000000 = 000000000000FF00
+ic 0000000000007FFF <- 0000000080000000 = 0000000000007F00
+ic 0000000000008000 <- 0000000080000000 = 0000000000008000
+ic 00000000FFFFFFFF <- 0000000080000000 = 00000000FFFFFF00
+ic 0000000080000000 <- 0000000080000000 = 0000000080000000
+ic 000000007FFFFFFF <- 0000000080000000 = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 0000000080000000 = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 0000000080000000 = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 0000000080000000 = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 0000000080000000 = 5555555555555500
+icy 0000000000000000 <- 0000000080000000 = 0000000000000000
+icy 0000000000000001 <- 0000000080000000 = 0000000000000000
+icy 000000000000FFFF <- 0000000080000000 = 000000000000FF00
+icy 0000000000007FFF <- 0000000080000000 = 0000000000007F00
+icy 0000000000008000 <- 0000000080000000 = 0000000000008000
+icy 00000000FFFFFFFF <- 0000000080000000 = 00000000FFFFFF00
+icy 0000000080000000 <- 0000000080000000 = 0000000080000000
+icy 000000007FFFFFFF <- 0000000080000000 = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 0000000080000000 = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 0000000080000000 = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 0000000080000000 = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 0000000080000000 = 5555555555555500
+ic 0000000000000000 <- 0000000055555555 = 0000000000000000
+ic 0000000000000001 <- 0000000055555555 = 0000000000000000
+ic 000000000000FFFF <- 0000000055555555 = 000000000000FF00
+ic 0000000000007FFF <- 0000000055555555 = 0000000000007F00
+ic 0000000000008000 <- 0000000055555555 = 0000000000008000
+ic 00000000FFFFFFFF <- 0000000055555555 = 00000000FFFFFF00
+ic 0000000080000000 <- 0000000055555555 = 0000000080000000
+ic 000000007FFFFFFF <- 0000000055555555 = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 0000000055555555 = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 0000000055555555 = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 0000000055555555 = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 0000000055555555 = 5555555555555500
+icy 0000000000000000 <- 0000000055555555 = 0000000000000000
+icy 0000000000000001 <- 0000000055555555 = 0000000000000000
+icy 000000000000FFFF <- 0000000055555555 = 000000000000FF00
+icy 0000000000007FFF <- 0000000055555555 = 0000000000007F00
+icy 0000000000008000 <- 0000000055555555 = 0000000000008000
+icy 00000000FFFFFFFF <- 0000000055555555 = 00000000FFFFFF00
+icy 0000000080000000 <- 0000000055555555 = 0000000080000000
+icy 000000007FFFFFFF <- 0000000055555555 = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 0000000055555555 = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 0000000055555555 = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 0000000055555555 = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 0000000055555555 = 5555555555555500
+ic 0000000000000000 <- 00000000FFFFFFFF = 0000000000000000
+ic 0000000000000001 <- 00000000FFFFFFFF = 0000000000000000
+ic 000000000000FFFF <- 00000000FFFFFFFF = 000000000000FF00
+ic 0000000000007FFF <- 00000000FFFFFFFF = 0000000000007F00
+ic 0000000000008000 <- 00000000FFFFFFFF = 0000000000008000
+ic 00000000FFFFFFFF <- 00000000FFFFFFFF = 00000000FFFFFF00
+ic 0000000080000000 <- 00000000FFFFFFFF = 0000000080000000
+ic 000000007FFFFFFF <- 00000000FFFFFFFF = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 00000000FFFFFFFF = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 00000000FFFFFFFF = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 00000000FFFFFFFF = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 00000000FFFFFFFF = 5555555555555500
+icy 0000000000000000 <- 00000000FFFFFFFF = 0000000000000000
+icy 0000000000000001 <- 00000000FFFFFFFF = 0000000000000000
+icy 000000000000FFFF <- 00000000FFFFFFFF = 000000000000FF00
+icy 0000000000007FFF <- 00000000FFFFFFFF = 0000000000007F00
+icy 0000000000008000 <- 00000000FFFFFFFF = 0000000000008000
+icy 00000000FFFFFFFF <- 00000000FFFFFFFF = 00000000FFFFFF00
+icy 0000000080000000 <- 00000000FFFFFFFF = 0000000080000000
+icy 000000007FFFFFFF <- 00000000FFFFFFFF = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 00000000FFFFFFFF = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 00000000FFFFFFFF = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 00000000FFFFFFFF = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 00000000FFFFFFFF = 5555555555555500
+ic 0000000000000000 <- 000000000000FFFF = 0000000000000000
+ic 0000000000000001 <- 000000000000FFFF = 0000000000000000
+ic 000000000000FFFF <- 000000000000FFFF = 000000000000FF00
+ic 0000000000007FFF <- 000000000000FFFF = 0000000000007F00
+ic 0000000000008000 <- 000000000000FFFF = 0000000000008000
+ic 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFF00
+ic 0000000080000000 <- 000000000000FFFF = 0000000080000000
+ic 000000007FFFFFFF <- 000000000000FFFF = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 000000000000FFFF = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 000000000000FFFF = 5555555555555500
+icy 0000000000000000 <- 000000000000FFFF = 0000000000000000
+icy 0000000000000001 <- 000000000000FFFF = 0000000000000000
+icy 000000000000FFFF <- 000000000000FFFF = 000000000000FF00
+icy 0000000000007FFF <- 000000000000FFFF = 0000000000007F00
+icy 0000000000008000 <- 000000000000FFFF = 0000000000008000
+icy 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFF00
+icy 0000000080000000 <- 000000000000FFFF = 0000000080000000
+icy 000000007FFFFFFF <- 000000000000FFFF = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 000000000000FFFF = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 000000000000FFFF = 5555555555555500
+ic 0000000000000000 <- 0000000000007FFF = 0000000000000000
+ic 0000000000000001 <- 0000000000007FFF = 0000000000000000
+ic 000000000000FFFF <- 0000000000007FFF = 000000000000FF00
+ic 0000000000007FFF <- 0000000000007FFF = 0000000000007F00
+ic 0000000000008000 <- 0000000000007FFF = 0000000000008000
+ic 00000000FFFFFFFF <- 0000000000007FFF = 00000000FFFFFF00
+ic 0000000080000000 <- 0000000000007FFF = 0000000080000000
+ic 000000007FFFFFFF <- 0000000000007FFF = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 0000000000007FFF = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 0000000000007FFF = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 0000000000007FFF = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 0000000000007FFF = 5555555555555500
+icy 0000000000000000 <- 0000000000007FFF = 0000000000000000
+icy 0000000000000001 <- 0000000000007FFF = 0000000000000000
+icy 000000000000FFFF <- 0000000000007FFF = 000000000000FF00
+icy 0000000000007FFF <- 0000000000007FFF = 0000000000007F00
+icy 0000000000008000 <- 0000000000007FFF = 0000000000008000
+icy 00000000FFFFFFFF <- 0000000000007FFF = 00000000FFFFFF00
+icy 0000000080000000 <- 0000000000007FFF = 0000000080000000
+icy 000000007FFFFFFF <- 0000000000007FFF = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 0000000000007FFF = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 0000000000007FFF = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 0000000000007FFF = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 0000000000007FFF = 5555555555555500
+ic 0000000000000000 <- 0000000000008000 = 0000000000000000
+ic 0000000000000001 <- 0000000000008000 = 0000000000000000
+ic 000000000000FFFF <- 0000000000008000 = 000000000000FF00
+ic 0000000000007FFF <- 0000000000008000 = 0000000000007F00
+ic 0000000000008000 <- 0000000000008000 = 0000000000008000
+ic 00000000FFFFFFFF <- 0000000000008000 = 00000000FFFFFF00
+ic 0000000080000000 <- 0000000000008000 = 0000000080000000
+ic 000000007FFFFFFF <- 0000000000008000 = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 0000000000008000 = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 0000000000008000 = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 0000000000008000 = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 0000000000008000 = 5555555555555500
+icy 0000000000000000 <- 0000000000008000 = 0000000000000000
+icy 0000000000000001 <- 0000000000008000 = 0000000000000000
+icy 000000000000FFFF <- 0000000000008000 = 000000000000FF00
+icy 0000000000007FFF <- 0000000000008000 = 0000000000007F00
+icy 0000000000008000 <- 0000000000008000 = 0000000000008000
+icy 00000000FFFFFFFF <- 0000000000008000 = 00000000FFFFFF00
+icy 0000000080000000 <- 0000000000008000 = 0000000080000000
+icy 000000007FFFFFFF <- 0000000000008000 = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 0000000000008000 = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 0000000000008000 = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 0000000000008000 = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 0000000000008000 = 5555555555555500
+ic 0000000000000000 <- 000000000000FFFF = 0000000000000000
+ic 0000000000000001 <- 000000000000FFFF = 0000000000000000
+ic 000000000000FFFF <- 000000000000FFFF = 000000000000FF00
+ic 0000000000007FFF <- 000000000000FFFF = 0000000000007F00
+ic 0000000000008000 <- 000000000000FFFF = 0000000000008000
+ic 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFF00
+ic 0000000080000000 <- 000000000000FFFF = 0000000080000000
+ic 000000007FFFFFFF <- 000000000000FFFF = 000000007FFFFF00
+ic AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAAAAAAA00
+ic 8000000000000000 <- 000000000000FFFF = 8000000000000000
+ic FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFF00
+ic 5555555555555555 <- 000000000000FFFF = 5555555555555500
+icy 0000000000000000 <- 000000000000FFFF = 0000000000000000
+icy 0000000000000001 <- 000000000000FFFF = 0000000000000000
+icy 000000000000FFFF <- 000000000000FFFF = 000000000000FF00
+icy 0000000000007FFF <- 000000000000FFFF = 0000000000007F00
+icy 0000000000008000 <- 000000000000FFFF = 0000000000008000
+icy 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFF00
+icy 0000000080000000 <- 000000000000FFFF = 0000000080000000
+icy 000000007FFFFFFF <- 000000000000FFFF = 000000007FFFFF00
+icy AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAAAAAAA00
+icy 8000000000000000 <- 000000000000FFFF = 8000000000000000
+icy FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFF00
+icy 5555555555555555 <- 000000000000FFFF = 5555555555555500
+iihh 0000000000000000 <- 0000000000000055 = 0055000000000000
+iihh 0000000000000001 <- 0000000000000055 = 0055000000000001
+iihh 000000000000FFFF <- 0000000000000055 = 005500000000FFFF
+iihh 0000000000007FFF <- 0000000000000055 = 0055000000007FFF
+iihh 0000000000008000 <- 0000000000000055 = 0055000000008000
+iihh 00000000FFFFFFFF <- 0000000000000055 = 00550000FFFFFFFF
+iihh 0000000080000000 <- 0000000000000055 = 0055000080000000
+iihh 000000007FFFFFFF <- 0000000000000055 = 005500007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 0000000000000055 = 0055AAAAAAAAAAAA
+iihh 8000000000000000 <- 0000000000000055 = 0055000000000000
+iihh FFFFFFFFFFFFFFFF <- 0000000000000055 = 0055FFFFFFFFFFFF
+iihh 5555555555555555 <- 0000000000000055 = 0055555555555555
+iihl 0000000000000000 <- 0000000000000055 = 0000005500000000
+iihl 0000000000000001 <- 0000000000000055 = 0000005500000001
+iihl 000000000000FFFF <- 0000000000000055 = 000000550000FFFF
+iihl 0000000000007FFF <- 0000000000000055 = 0000005500007FFF
+iihl 0000000000008000 <- 0000000000000055 = 0000005500008000
+iihl 00000000FFFFFFFF <- 0000000000000055 = 00000055FFFFFFFF
+iihl 0000000080000000 <- 0000000000000055 = 0000005580000000
+iihl 000000007FFFFFFF <- 0000000000000055 = 000000557FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 0000000000000055 = AAAA0055AAAAAAAA
+iihl 8000000000000000 <- 0000000000000055 = 8000005500000000
+iihl FFFFFFFFFFFFFFFF <- 0000000000000055 = FFFF0055FFFFFFFF
+iihl 5555555555555555 <- 0000000000000055 = 5555005555555555
+iilh 0000000000000000 <- 0000000000000055 = 0000000000550000
+iilh 0000000000000001 <- 0000000000000055 = 0000000000550001
+iilh 000000000000FFFF <- 0000000000000055 = 000000000055FFFF
+iilh 0000000000007FFF <- 0000000000000055 = 0000000000557FFF
+iilh 0000000000008000 <- 0000000000000055 = 0000000000558000
+iilh 00000000FFFFFFFF <- 0000000000000055 = 000000000055FFFF
+iilh 0000000080000000 <- 0000000000000055 = 0000000000550000
+iilh 000000007FFFFFFF <- 0000000000000055 = 000000000055FFFF
+iilh AAAAAAAAAAAAAAAA <- 0000000000000055 = AAAAAAAA0055AAAA
+iilh 8000000000000000 <- 0000000000000055 = 8000000000550000
+iilh FFFFFFFFFFFFFFFF <- 0000000000000055 = FFFFFFFF0055FFFF
+iilh 5555555555555555 <- 0000000000000055 = 5555555500555555
+iill 0000000000000000 <- 0000000000000055 = 0000000000000055
+iill 0000000000000001 <- 0000000000000055 = 0000000000000055
+iill 000000000000FFFF <- 0000000000000055 = 0000000000000055
+iill 0000000000007FFF <- 0000000000000055 = 0000000000000055
+iill 0000000000008000 <- 0000000000000055 = 0000000000000055
+iill 00000000FFFFFFFF <- 0000000000000055 = 00000000FFFF0055
+iill 0000000080000000 <- 0000000000000055 = 0000000080000055
+iill 000000007FFFFFFF <- 0000000000000055 = 000000007FFF0055
+iill AAAAAAAAAAAAAAAA <- 0000000000000055 = AAAAAAAAAAAA0055
+iill 8000000000000000 <- 0000000000000055 = 8000000000000055
+iill FFFFFFFFFFFFFFFF <- 0000000000000055 = FFFFFFFFFFFF0055
+iill 5555555555555555 <- 0000000000000055 = 5555555555550055
+iihh 0000000000000000 <- 00000000000000AA = 00AA000000000000
+iihh 0000000000000001 <- 00000000000000AA = 00AA000000000001
+iihh 000000000000FFFF <- 00000000000000AA = 00AA00000000FFFF
+iihh 0000000000007FFF <- 00000000000000AA = 00AA000000007FFF
+iihh 0000000000008000 <- 00000000000000AA = 00AA000000008000
+iihh 00000000FFFFFFFF <- 00000000000000AA = 00AA0000FFFFFFFF
+iihh 0000000080000000 <- 00000000000000AA = 00AA000080000000
+iihh 000000007FFFFFFF <- 00000000000000AA = 00AA00007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 00000000000000AA = 00AAAAAAAAAAAAAA
+iihh 8000000000000000 <- 00000000000000AA = 00AA000000000000
+iihh FFFFFFFFFFFFFFFF <- 00000000000000AA = 00AAFFFFFFFFFFFF
+iihh 5555555555555555 <- 00000000000000AA = 00AA555555555555
+iihl 0000000000000000 <- 00000000000000AA = 000000AA00000000
+iihl 0000000000000001 <- 00000000000000AA = 000000AA00000001
+iihl 000000000000FFFF <- 00000000000000AA = 000000AA0000FFFF
+iihl 0000000000007FFF <- 00000000000000AA = 000000AA00007FFF
+iihl 0000000000008000 <- 00000000000000AA = 000000AA00008000
+iihl 00000000FFFFFFFF <- 00000000000000AA = 000000AAFFFFFFFF
+iihl 0000000080000000 <- 00000000000000AA = 000000AA80000000
+iihl 000000007FFFFFFF <- 00000000000000AA = 000000AA7FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 00000000000000AA = AAAA00AAAAAAAAAA
+iihl 8000000000000000 <- 00000000000000AA = 800000AA00000000
+iihl FFFFFFFFFFFFFFFF <- 00000000000000AA = FFFF00AAFFFFFFFF
+iihl 5555555555555555 <- 00000000000000AA = 555500AA55555555
+iilh 0000000000000000 <- 00000000000000AA = 0000000000AA0000
+iilh 0000000000000001 <- 00000000000000AA = 0000000000AA0001
+iilh 000000000000FFFF <- 00000000000000AA = 0000000000AAFFFF
+iilh 0000000000007FFF <- 00000000000000AA = 0000000000AA7FFF
+iilh 0000000000008000 <- 00000000000000AA = 0000000000AA8000
+iilh 00000000FFFFFFFF <- 00000000000000AA = 0000000000AAFFFF
+iilh 0000000080000000 <- 00000000000000AA = 0000000000AA0000
+iilh 000000007FFFFFFF <- 00000000000000AA = 0000000000AAFFFF
+iilh AAAAAAAAAAAAAAAA <- 00000000000000AA = AAAAAAAA00AAAAAA
+iilh 8000000000000000 <- 00000000000000AA = 8000000000AA0000
+iilh FFFFFFFFFFFFFFFF <- 00000000000000AA = FFFFFFFF00AAFFFF
+iilh 5555555555555555 <- 00000000000000AA = 5555555500AA5555
+iill 0000000000000000 <- 00000000000000AA = 00000000000000AA
+iill 0000000000000001 <- 00000000000000AA = 00000000000000AA
+iill 000000000000FFFF <- 00000000000000AA = 00000000000000AA
+iill 0000000000007FFF <- 00000000000000AA = 00000000000000AA
+iill 0000000000008000 <- 00000000000000AA = 00000000000000AA
+iill 00000000FFFFFFFF <- 00000000000000AA = 00000000FFFF00AA
+iill 0000000080000000 <- 00000000000000AA = 00000000800000AA
+iill 000000007FFFFFFF <- 00000000000000AA = 000000007FFF00AA
+iill AAAAAAAAAAAAAAAA <- 00000000000000AA = AAAAAAAAAAAA00AA
+iill 8000000000000000 <- 00000000000000AA = 80000000000000AA
+iill FFFFFFFFFFFFFFFF <- 00000000000000AA = FFFFFFFFFFFF00AA
+iill 5555555555555555 <- 00000000000000AA = 55555555555500AA
+iihh 0000000000000000 <- 00000000000000FF = 00FF000000000000
+iihh 0000000000000001 <- 00000000000000FF = 00FF000000000001
+iihh 000000000000FFFF <- 00000000000000FF = 00FF00000000FFFF
+iihh 0000000000007FFF <- 00000000000000FF = 00FF000000007FFF
+iihh 0000000000008000 <- 00000000000000FF = 00FF000000008000
+iihh 00000000FFFFFFFF <- 00000000000000FF = 00FF0000FFFFFFFF
+iihh 0000000080000000 <- 00000000000000FF = 00FF000080000000
+iihh 000000007FFFFFFF <- 00000000000000FF = 00FF00007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 00000000000000FF = 00FFAAAAAAAAAAAA
+iihh 8000000000000000 <- 00000000000000FF = 00FF000000000000
+iihh FFFFFFFFFFFFFFFF <- 00000000000000FF = 00FFFFFFFFFFFFFF
+iihh 5555555555555555 <- 00000000000000FF = 00FF555555555555
+iihl 0000000000000000 <- 00000000000000FF = 000000FF00000000
+iihl 0000000000000001 <- 00000000000000FF = 000000FF00000001
+iihl 000000000000FFFF <- 00000000000000FF = 000000FF0000FFFF
+iihl 0000000000007FFF <- 00000000000000FF = 000000FF00007FFF
+iihl 0000000000008000 <- 00000000000000FF = 000000FF00008000
+iihl 00000000FFFFFFFF <- 00000000000000FF = 000000FFFFFFFFFF
+iihl 0000000080000000 <- 00000000000000FF = 000000FF80000000
+iihl 000000007FFFFFFF <- 00000000000000FF = 000000FF7FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 00000000000000FF = AAAA00FFAAAAAAAA
+iihl 8000000000000000 <- 00000000000000FF = 800000FF00000000
+iihl FFFFFFFFFFFFFFFF <- 00000000000000FF = FFFF00FFFFFFFFFF
+iihl 5555555555555555 <- 00000000000000FF = 555500FF55555555
+iilh 0000000000000000 <- 00000000000000FF = 0000000000FF0000
+iilh 0000000000000001 <- 00000000000000FF = 0000000000FF0001
+iilh 000000000000FFFF <- 00000000000000FF = 0000000000FFFFFF
+iilh 0000000000007FFF <- 00000000000000FF = 0000000000FF7FFF
+iilh 0000000000008000 <- 00000000000000FF = 0000000000FF8000
+iilh 00000000FFFFFFFF <- 00000000000000FF = 0000000000FFFFFF
+iilh 0000000080000000 <- 00000000000000FF = 0000000000FF0000
+iilh 000000007FFFFFFF <- 00000000000000FF = 0000000000FFFFFF
+iilh AAAAAAAAAAAAAAAA <- 00000000000000FF = AAAAAAAA00FFAAAA
+iilh 8000000000000000 <- 00000000000000FF = 8000000000FF0000
+iilh FFFFFFFFFFFFFFFF <- 00000000000000FF = FFFFFFFF00FFFFFF
+iilh 5555555555555555 <- 00000000000000FF = 5555555500FF5555
+iill 0000000000000000 <- 00000000000000FF = 00000000000000FF
+iill 0000000000000001 <- 00000000000000FF = 00000000000000FF
+iill 000000000000FFFF <- 00000000000000FF = 00000000000000FF
+iill 0000000000007FFF <- 00000000000000FF = 00000000000000FF
+iill 0000000000008000 <- 00000000000000FF = 00000000000000FF
+iill 00000000FFFFFFFF <- 00000000000000FF = 00000000FFFF00FF
+iill 0000000080000000 <- 00000000000000FF = 00000000800000FF
+iill 000000007FFFFFFF <- 00000000000000FF = 000000007FFF00FF
+iill AAAAAAAAAAAAAAAA <- 00000000000000FF = AAAAAAAAAAAA00FF
+iill 8000000000000000 <- 00000000000000FF = 80000000000000FF
+iill FFFFFFFFFFFFFFFF <- 00000000000000FF = FFFFFFFFFFFF00FF
+iill 5555555555555555 <- 00000000000000FF = 55555555555500FF
+iihh 0000000000000000 <- 0000000000000000 = 0000000000000000
+iihh 0000000000000001 <- 0000000000000000 = 0000000000000001
+iihh 000000000000FFFF <- 0000000000000000 = 000000000000FFFF
+iihh 0000000000007FFF <- 0000000000000000 = 0000000000007FFF
+iihh 0000000000008000 <- 0000000000000000 = 0000000000008000
+iihh 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFFFFFF
+iihh 0000000080000000 <- 0000000000000000 = 0000000080000000
+iihh 000000007FFFFFFF <- 0000000000000000 = 000000007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 0000000000000000 = 0000AAAAAAAAAAAA
+iihh 8000000000000000 <- 0000000000000000 = 0000000000000000
+iihh FFFFFFFFFFFFFFFF <- 0000000000000000 = 0000FFFFFFFFFFFF
+iihh 5555555555555555 <- 0000000000000000 = 0000555555555555
+iihl 0000000000000000 <- 0000000000000000 = 0000000000000000
+iihl 0000000000000001 <- 0000000000000000 = 0000000000000001
+iihl 000000000000FFFF <- 0000000000000000 = 000000000000FFFF
+iihl 0000000000007FFF <- 0000000000000000 = 0000000000007FFF
+iihl 0000000000008000 <- 0000000000000000 = 0000000000008000
+iihl 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFFFFFF
+iihl 0000000080000000 <- 0000000000000000 = 0000000080000000
+iihl 000000007FFFFFFF <- 0000000000000000 = 000000007FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAA0000AAAAAAAA
+iihl 8000000000000000 <- 0000000000000000 = 8000000000000000
+iihl FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFF0000FFFFFFFF
+iihl 5555555555555555 <- 0000000000000000 = 5555000055555555
+iilh 0000000000000000 <- 0000000000000000 = 0000000000000000
+iilh 0000000000000001 <- 0000000000000000 = 0000000000000001
+iilh 000000000000FFFF <- 0000000000000000 = 000000000000FFFF
+iilh 0000000000007FFF <- 0000000000000000 = 0000000000007FFF
+iilh 0000000000008000 <- 0000000000000000 = 0000000000008000
+iilh 00000000FFFFFFFF <- 0000000000000000 = 000000000000FFFF
+iilh 0000000080000000 <- 0000000000000000 = 0000000000000000
+iilh 000000007FFFFFFF <- 0000000000000000 = 000000000000FFFF
+iilh AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAAAAAA0000AAAA
+iilh 8000000000000000 <- 0000000000000000 = 8000000000000000
+iilh FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFFFFFF0000FFFF
+iilh 5555555555555555 <- 0000000000000000 = 5555555500005555
+iill 0000000000000000 <- 0000000000000000 = 0000000000000000
+iill 0000000000000001 <- 0000000000000000 = 0000000000000000
+iill 000000000000FFFF <- 0000000000000000 = 0000000000000000
+iill 0000000000007FFF <- 0000000000000000 = 0000000000000000
+iill 0000000000008000 <- 0000000000000000 = 0000000000000000
+iill 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFF0000
+iill 0000000080000000 <- 0000000000000000 = 0000000080000000
+iill 000000007FFFFFFF <- 0000000000000000 = 000000007FFF0000
+iill AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAAAAAAAAAA0000
+iill 8000000000000000 <- 0000000000000000 = 8000000000000000
+iill FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFFFFFFFFFF0000
+iill 5555555555555555 <- 0000000000000000 = 5555555555550000
+iihh 0000000000000000 <- 000000000000FFFF = FFFF000000000000
+iihh 0000000000000001 <- 000000000000FFFF = FFFF000000000001
+iihh 000000000000FFFF <- 000000000000FFFF = FFFF00000000FFFF
+iihh 0000000000007FFF <- 000000000000FFFF = FFFF000000007FFF
+iihh 0000000000008000 <- 000000000000FFFF = FFFF000000008000
+iihh 00000000FFFFFFFF <- 000000000000FFFF = FFFF0000FFFFFFFF
+iihh 0000000080000000 <- 000000000000FFFF = FFFF000080000000
+iihh 000000007FFFFFFF <- 000000000000FFFF = FFFF00007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 000000000000FFFF = FFFFAAAAAAAAAAAA
+iihh 8000000000000000 <- 000000000000FFFF = FFFF000000000000
+iihh FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFFFF
+iihh 5555555555555555 <- 000000000000FFFF = FFFF555555555555
+iihl 0000000000000000 <- 000000000000FFFF = 0000FFFF00000000
+iihl 0000000000000001 <- 000000000000FFFF = 0000FFFF00000001
+iihl 000000000000FFFF <- 000000000000FFFF = 0000FFFF0000FFFF
+iihl 0000000000007FFF <- 000000000000FFFF = 0000FFFF00007FFF
+iihl 0000000000008000 <- 000000000000FFFF = 0000FFFF00008000
+iihl 00000000FFFFFFFF <- 000000000000FFFF = 0000FFFFFFFFFFFF
+iihl 0000000080000000 <- 000000000000FFFF = 0000FFFF80000000
+iihl 000000007FFFFFFF <- 000000000000FFFF = 0000FFFF7FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAFFFFAAAAAAAA
+iihl 8000000000000000 <- 000000000000FFFF = 8000FFFF00000000
+iihl FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFFFF
+iihl 5555555555555555 <- 000000000000FFFF = 5555FFFF55555555
+iilh 0000000000000000 <- 000000000000FFFF = 00000000FFFF0000
+iilh 0000000000000001 <- 000000000000FFFF = 00000000FFFF0001
+iilh 000000000000FFFF <- 000000000000FFFF = 00000000FFFFFFFF
+iilh 0000000000007FFF <- 000000000000FFFF = 00000000FFFF7FFF
+iilh 0000000000008000 <- 000000000000FFFF = 00000000FFFF8000
+iilh 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFFFF
+iilh 0000000080000000 <- 000000000000FFFF = 00000000FFFF0000
+iilh 000000007FFFFFFF <- 000000000000FFFF = 00000000FFFFFFFF
+iilh AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAFFFFAAAA
+iilh 8000000000000000 <- 000000000000FFFF = 80000000FFFF0000
+iilh FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFFFF
+iilh 5555555555555555 <- 000000000000FFFF = 55555555FFFF5555
+iill 0000000000000000 <- 000000000000FFFF = 000000000000FFFF
+iill 0000000000000001 <- 000000000000FFFF = 000000000000FFFF
+iill 000000000000FFFF <- 000000000000FFFF = 000000000000FFFF
+iill 0000000000007FFF <- 000000000000FFFF = 000000000000FFFF
+iill 0000000000008000 <- 000000000000FFFF = 000000000000FFFF
+iill 00000000FFFFFFFF <- 000000000000FFFF = 00000000FFFFFFFF
+iill 0000000080000000 <- 000000000000FFFF = 000000008000FFFF
+iill 000000007FFFFFFF <- 000000000000FFFF = 000000007FFFFFFF
+iill AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAAAAAAFFFF
+iill 8000000000000000 <- 000000000000FFFF = 800000000000FFFF
+iill FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFFFFFFFFFF
+iill 5555555555555555 <- 000000000000FFFF = 555555555555FFFF
+iihh 0000000000000000 <- 000000000000AAAA = AAAA000000000000
+iihh 0000000000000001 <- 000000000000AAAA = AAAA000000000001
+iihh 000000000000FFFF <- 000000000000AAAA = AAAA00000000FFFF
+iihh 0000000000007FFF <- 000000000000AAAA = AAAA000000007FFF
+iihh 0000000000008000 <- 000000000000AAAA = AAAA000000008000
+iihh 00000000FFFFFFFF <- 000000000000AAAA = AAAA0000FFFFFFFF
+iihh 0000000080000000 <- 000000000000AAAA = AAAA000080000000
+iihh 000000007FFFFFFF <- 000000000000AAAA = AAAA00007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 000000000000AAAA = AAAAAAAAAAAAAAAA
+iihh 8000000000000000 <- 000000000000AAAA = AAAA000000000000
+iihh FFFFFFFFFFFFFFFF <- 000000000000AAAA = AAAAFFFFFFFFFFFF
+iihh 5555555555555555 <- 000000000000AAAA = AAAA555555555555
+iihl 0000000000000000 <- 000000000000AAAA = 0000AAAA00000000
+iihl 0000000000000001 <- 000000000000AAAA = 0000AAAA00000001
+iihl 000000000000FFFF <- 000000000000AAAA = 0000AAAA0000FFFF
+iihl 0000000000007FFF <- 000000000000AAAA = 0000AAAA00007FFF
+iihl 0000000000008000 <- 000000000000AAAA = 0000AAAA00008000
+iihl 00000000FFFFFFFF <- 000000000000AAAA = 0000AAAAFFFFFFFF
+iihl 0000000080000000 <- 000000000000AAAA = 0000AAAA80000000
+iihl 000000007FFFFFFF <- 000000000000AAAA = 0000AAAA7FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 000000000000AAAA = AAAAAAAAAAAAAAAA
+iihl 8000000000000000 <- 000000000000AAAA = 8000AAAA00000000
+iihl FFFFFFFFFFFFFFFF <- 000000000000AAAA = FFFFAAAAFFFFFFFF
+iihl 5555555555555555 <- 000000000000AAAA = 5555AAAA55555555
+iilh 0000000000000000 <- 000000000000AAAA = 00000000AAAA0000
+iilh 0000000000000001 <- 000000000000AAAA = 00000000AAAA0001
+iilh 000000000000FFFF <- 000000000000AAAA = 00000000AAAAFFFF
+iilh 0000000000007FFF <- 000000000000AAAA = 00000000AAAA7FFF
+iilh 0000000000008000 <- 000000000000AAAA = 00000000AAAA8000
+iilh 00000000FFFFFFFF <- 000000000000AAAA = 00000000AAAAFFFF
+iilh 0000000080000000 <- 000000000000AAAA = 00000000AAAA0000
+iilh 000000007FFFFFFF <- 000000000000AAAA = 00000000AAAAFFFF
+iilh AAAAAAAAAAAAAAAA <- 000000000000AAAA = AAAAAAAAAAAAAAAA
+iilh 8000000000000000 <- 000000000000AAAA = 80000000AAAA0000
+iilh FFFFFFFFFFFFFFFF <- 000000000000AAAA = FFFFFFFFAAAAFFFF
+iilh 5555555555555555 <- 000000000000AAAA = 55555555AAAA5555
+iill 0000000000000000 <- 000000000000AAAA = 000000000000AAAA
+iill 0000000000000001 <- 000000000000AAAA = 000000000000AAAA
+iill 000000000000FFFF <- 000000000000AAAA = 000000000000AAAA
+iill 0000000000007FFF <- 000000000000AAAA = 000000000000AAAA
+iill 0000000000008000 <- 000000000000AAAA = 000000000000AAAA
+iill 00000000FFFFFFFF <- 000000000000AAAA = 00000000FFFFAAAA
+iill 0000000080000000 <- 000000000000AAAA = 000000008000AAAA
+iill 000000007FFFFFFF <- 000000000000AAAA = 000000007FFFAAAA
+iill AAAAAAAAAAAAAAAA <- 000000000000AAAA = AAAAAAAAAAAAAAAA
+iill 8000000000000000 <- 000000000000AAAA = 800000000000AAAA
+iill FFFFFFFFFFFFFFFF <- 000000000000AAAA = FFFFFFFFFFFFAAAA
+iill 5555555555555555 <- 000000000000AAAA = 555555555555AAAA
+iihh 0000000000000000 <- 0000000000005555 = 5555000000000000
+iihh 0000000000000001 <- 0000000000005555 = 5555000000000001
+iihh 000000000000FFFF <- 0000000000005555 = 555500000000FFFF
+iihh 0000000000007FFF <- 0000000000005555 = 5555000000007FFF
+iihh 0000000000008000 <- 0000000000005555 = 5555000000008000
+iihh 00000000FFFFFFFF <- 0000000000005555 = 55550000FFFFFFFF
+iihh 0000000080000000 <- 0000000000005555 = 5555000080000000
+iihh 000000007FFFFFFF <- 0000000000005555 = 555500007FFFFFFF
+iihh AAAAAAAAAAAAAAAA <- 0000000000005555 = 5555AAAAAAAAAAAA
+iihh 8000000000000000 <- 0000000000005555 = 5555000000000000
+iihh FFFFFFFFFFFFFFFF <- 0000000000005555 = 5555FFFFFFFFFFFF
+iihh 5555555555555555 <- 0000000000005555 = 5555555555555555
+iihl 0000000000000000 <- 0000000000005555 = 0000555500000000
+iihl 0000000000000001 <- 0000000000005555 = 0000555500000001
+iihl 000000000000FFFF <- 0000000000005555 = 000055550000FFFF
+iihl 0000000000007FFF <- 0000000000005555 = 0000555500007FFF
+iihl 0000000000008000 <- 0000000000005555 = 0000555500008000
+iihl 00000000FFFFFFFF <- 0000000000005555 = 00005555FFFFFFFF
+iihl 0000000080000000 <- 0000000000005555 = 0000555580000000
+iihl 000000007FFFFFFF <- 0000000000005555 = 000055557FFFFFFF
+iihl AAAAAAAAAAAAAAAA <- 0000000000005555 = AAAA5555AAAAAAAA
+iihl 8000000000000000 <- 0000000000005555 = 8000555500000000
+iihl FFFFFFFFFFFFFFFF <- 0000000000005555 = FFFF5555FFFFFFFF
+iihl 5555555555555555 <- 0000000000005555 = 5555555555555555
+iilh 0000000000000000 <- 0000000000005555 = 0000000055550000
+iilh 0000000000000001 <- 0000000000005555 = 0000000055550001
+iilh 000000000000FFFF <- 0000000000005555 = 000000005555FFFF
+iilh 0000000000007FFF <- 0000000000005555 = 0000000055557FFF
+iilh 0000000000008000 <- 0000000000005555 = 0000000055558000
+iilh 00000000FFFFFFFF <- 0000000000005555 = 000000005555FFFF
+iilh 0000000080000000 <- 0000000000005555 = 0000000055550000
+iilh 000000007FFFFFFF <- 0000000000005555 = 000000005555FFFF
+iilh AAAAAAAAAAAAAAAA <- 0000000000005555 = AAAAAAAA5555AAAA
+iilh 8000000000000000 <- 0000000000005555 = 8000000055550000
+iilh FFFFFFFFFFFFFFFF <- 0000000000005555 = FFFFFFFF5555FFFF
+iilh 5555555555555555 <- 0000000000005555 = 5555555555555555
+iill 0000000000000000 <- 0000000000005555 = 0000000000005555
+iill 0000000000000001 <- 0000000000005555 = 0000000000005555
+iill 000000000000FFFF <- 0000000000005555 = 0000000000005555
+iill 0000000000007FFF <- 0000000000005555 = 0000000000005555
+iill 0000000000008000 <- 0000000000005555 = 0000000000005555
+iill 00000000FFFFFFFF <- 0000000000005555 = 00000000FFFF5555
+iill 0000000080000000 <- 0000000000005555 = 0000000080005555
+iill 000000007FFFFFFF <- 0000000000005555 = 000000007FFF5555
+iill AAAAAAAAAAAAAAAA <- 0000000000005555 = AAAAAAAAAAAA5555
+iill 8000000000000000 <- 0000000000005555 = 8000000000005555
+iill FFFFFFFFFFFFFFFF <- 0000000000005555 = FFFFFFFFFFFF5555
+iill 5555555555555555 <- 0000000000005555 = 5555555555555555
diff --git a/none/tests/s390x/insert.vgtest b/none/tests/s390x/insert.vgtest
new file mode 100644 (file)
index 0000000..f32f411
--- /dev/null
@@ -0,0 +1 @@
+prog: insert
diff --git a/none/tests/s390x/insert_EI.c b/none/tests/s390x/insert_EI.c
new file mode 100644 (file)
index 0000000..1a3d113
--- /dev/null
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include "insert.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(iihf, 0);
+       immsweep(iihf, 0xff);
+       immsweep(iihf, 0x55);
+       immsweep(iihf, 0xaa);
+       immsweep(iihf, 0xffff);
+       immsweep(iihf, 0x5555);
+       immsweep(iihf, 0xaaaa);
+       immsweep(iihf, 0xffff0000);
+       immsweep(iihf, 0x55550000);
+       immsweep(iihf, 0xaaaa0000);
+       immsweep(iihf, 0xffffffff);
+       immsweep(iihf, 0x55555555);
+       immsweep(iihf, 0xaaaaaaaa);
+       immsweep(iilf, 0);
+       immsweep(iilf, 0xff);
+       immsweep(iilf, 0x55);
+       immsweep(iilf, 0xaa);
+       immsweep(iilf, 0xffff);
+       immsweep(iilf, 0x5555);
+       immsweep(iilf, 0xaaaa);
+       immsweep(iilf, 0xffff0000);
+       immsweep(iilf, 0x55550000);
+       immsweep(iilf, 0xaaaa0000);
+       immsweep(iilf, 0xffffffff);
+       immsweep(iilf, 0x55555555);
+       immsweep(iilf, 0xaaaaaaaa);
+}
+
+int main()
+{
+       do_imm_insns();
+       return 0;
+}
diff --git a/none/tests/s390x/insert_EI.stderr.exp b/none/tests/s390x/insert_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/insert_EI.stdout.exp b/none/tests/s390x/insert_EI.stdout.exp
new file mode 100644 (file)
index 0000000..34bbdd9
--- /dev/null
@@ -0,0 +1,312 @@
+iihf 0000000000000000 <- 0000000000000000 = 0000000000000000
+iihf 0000000000000001 <- 0000000000000000 = 0000000000000001
+iihf 000000000000FFFF <- 0000000000000000 = 000000000000FFFF
+iihf 0000000000007FFF <- 0000000000000000 = 0000000000007FFF
+iihf 0000000000008000 <- 0000000000000000 = 0000000000008000
+iihf 00000000FFFFFFFF <- 0000000000000000 = 00000000FFFFFFFF
+iihf 0000000080000000 <- 0000000000000000 = 0000000080000000
+iihf 000000007FFFFFFF <- 0000000000000000 = 000000007FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 0000000000000000 = 00000000AAAAAAAA
+iihf 8000000000000000 <- 0000000000000000 = 0000000000000000
+iihf FFFFFFFFFFFFFFFF <- 0000000000000000 = 00000000FFFFFFFF
+iihf 5555555555555555 <- 0000000000000000 = 0000000055555555
+iihf 0000000000000000 <- 00000000000000FF = 000000FF00000000
+iihf 0000000000000001 <- 00000000000000FF = 000000FF00000001
+iihf 000000000000FFFF <- 00000000000000FF = 000000FF0000FFFF
+iihf 0000000000007FFF <- 00000000000000FF = 000000FF00007FFF
+iihf 0000000000008000 <- 00000000000000FF = 000000FF00008000
+iihf 00000000FFFFFFFF <- 00000000000000FF = 000000FFFFFFFFFF
+iihf 0000000080000000 <- 00000000000000FF = 000000FF80000000
+iihf 000000007FFFFFFF <- 00000000000000FF = 000000FF7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000000000FF = 000000FFAAAAAAAA
+iihf 8000000000000000 <- 00000000000000FF = 000000FF00000000
+iihf FFFFFFFFFFFFFFFF <- 00000000000000FF = 000000FFFFFFFFFF
+iihf 5555555555555555 <- 00000000000000FF = 000000FF55555555
+iihf 0000000000000000 <- 0000000000000055 = 0000005500000000
+iihf 0000000000000001 <- 0000000000000055 = 0000005500000001
+iihf 000000000000FFFF <- 0000000000000055 = 000000550000FFFF
+iihf 0000000000007FFF <- 0000000000000055 = 0000005500007FFF
+iihf 0000000000008000 <- 0000000000000055 = 0000005500008000
+iihf 00000000FFFFFFFF <- 0000000000000055 = 00000055FFFFFFFF
+iihf 0000000080000000 <- 0000000000000055 = 0000005580000000
+iihf 000000007FFFFFFF <- 0000000000000055 = 000000557FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 0000000000000055 = 00000055AAAAAAAA
+iihf 8000000000000000 <- 0000000000000055 = 0000005500000000
+iihf FFFFFFFFFFFFFFFF <- 0000000000000055 = 00000055FFFFFFFF
+iihf 5555555555555555 <- 0000000000000055 = 0000005555555555
+iihf 0000000000000000 <- 00000000000000AA = 000000AA00000000
+iihf 0000000000000001 <- 00000000000000AA = 000000AA00000001
+iihf 000000000000FFFF <- 00000000000000AA = 000000AA0000FFFF
+iihf 0000000000007FFF <- 00000000000000AA = 000000AA00007FFF
+iihf 0000000000008000 <- 00000000000000AA = 000000AA00008000
+iihf 00000000FFFFFFFF <- 00000000000000AA = 000000AAFFFFFFFF
+iihf 0000000080000000 <- 00000000000000AA = 000000AA80000000
+iihf 000000007FFFFFFF <- 00000000000000AA = 000000AA7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000000000AA = 000000AAAAAAAAAA
+iihf 8000000000000000 <- 00000000000000AA = 000000AA00000000
+iihf FFFFFFFFFFFFFFFF <- 00000000000000AA = 000000AAFFFFFFFF
+iihf 5555555555555555 <- 00000000000000AA = 000000AA55555555
+iihf 0000000000000000 <- 000000000000FFFF = 0000FFFF00000000
+iihf 0000000000000001 <- 000000000000FFFF = 0000FFFF00000001
+iihf 000000000000FFFF <- 000000000000FFFF = 0000FFFF0000FFFF
+iihf 0000000000007FFF <- 000000000000FFFF = 0000FFFF00007FFF
+iihf 0000000000008000 <- 000000000000FFFF = 0000FFFF00008000
+iihf 00000000FFFFFFFF <- 000000000000FFFF = 0000FFFFFFFFFFFF
+iihf 0000000080000000 <- 000000000000FFFF = 0000FFFF80000000
+iihf 000000007FFFFFFF <- 000000000000FFFF = 0000FFFF7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 000000000000FFFF = 0000FFFFAAAAAAAA
+iihf 8000000000000000 <- 000000000000FFFF = 0000FFFF00000000
+iihf FFFFFFFFFFFFFFFF <- 000000000000FFFF = 0000FFFFFFFFFFFF
+iihf 5555555555555555 <- 000000000000FFFF = 0000FFFF55555555
+iihf 0000000000000000 <- 0000000000005555 = 0000555500000000
+iihf 0000000000000001 <- 0000000000005555 = 0000555500000001
+iihf 000000000000FFFF <- 0000000000005555 = 000055550000FFFF
+iihf 0000000000007FFF <- 0000000000005555 = 0000555500007FFF
+iihf 0000000000008000 <- 0000000000005555 = 0000555500008000
+iihf 00000000FFFFFFFF <- 0000000000005555 = 00005555FFFFFFFF
+iihf 0000000080000000 <- 0000000000005555 = 0000555580000000
+iihf 000000007FFFFFFF <- 0000000000005555 = 000055557FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 0000000000005555 = 00005555AAAAAAAA
+iihf 8000000000000000 <- 0000000000005555 = 0000555500000000
+iihf FFFFFFFFFFFFFFFF <- 0000000000005555 = 00005555FFFFFFFF
+iihf 5555555555555555 <- 0000000000005555 = 0000555555555555
+iihf 0000000000000000 <- 000000000000AAAA = 0000AAAA00000000
+iihf 0000000000000001 <- 000000000000AAAA = 0000AAAA00000001
+iihf 000000000000FFFF <- 000000000000AAAA = 0000AAAA0000FFFF
+iihf 0000000000007FFF <- 000000000000AAAA = 0000AAAA00007FFF
+iihf 0000000000008000 <- 000000000000AAAA = 0000AAAA00008000
+iihf 00000000FFFFFFFF <- 000000000000AAAA = 0000AAAAFFFFFFFF
+iihf 0000000080000000 <- 000000000000AAAA = 0000AAAA80000000
+iihf 000000007FFFFFFF <- 000000000000AAAA = 0000AAAA7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 000000000000AAAA = 0000AAAAAAAAAAAA
+iihf 8000000000000000 <- 000000000000AAAA = 0000AAAA00000000
+iihf FFFFFFFFFFFFFFFF <- 000000000000AAAA = 0000AAAAFFFFFFFF
+iihf 5555555555555555 <- 000000000000AAAA = 0000AAAA55555555
+iihf 0000000000000000 <- 00000000FFFF0000 = FFFF000000000000
+iihf 0000000000000001 <- 00000000FFFF0000 = FFFF000000000001
+iihf 000000000000FFFF <- 00000000FFFF0000 = FFFF00000000FFFF
+iihf 0000000000007FFF <- 00000000FFFF0000 = FFFF000000007FFF
+iihf 0000000000008000 <- 00000000FFFF0000 = FFFF000000008000
+iihf 00000000FFFFFFFF <- 00000000FFFF0000 = FFFF0000FFFFFFFF
+iihf 0000000080000000 <- 00000000FFFF0000 = FFFF000080000000
+iihf 000000007FFFFFFF <- 00000000FFFF0000 = FFFF00007FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000FFFF0000 = FFFF0000AAAAAAAA
+iihf 8000000000000000 <- 00000000FFFF0000 = FFFF000000000000
+iihf FFFFFFFFFFFFFFFF <- 00000000FFFF0000 = FFFF0000FFFFFFFF
+iihf 5555555555555555 <- 00000000FFFF0000 = FFFF000055555555
+iihf 0000000000000000 <- 0000000055550000 = 5555000000000000
+iihf 0000000000000001 <- 0000000055550000 = 5555000000000001
+iihf 000000000000FFFF <- 0000000055550000 = 555500000000FFFF
+iihf 0000000000007FFF <- 0000000055550000 = 5555000000007FFF
+iihf 0000000000008000 <- 0000000055550000 = 5555000000008000
+iihf 00000000FFFFFFFF <- 0000000055550000 = 55550000FFFFFFFF
+iihf 0000000080000000 <- 0000000055550000 = 5555000080000000
+iihf 000000007FFFFFFF <- 0000000055550000 = 555500007FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 0000000055550000 = 55550000AAAAAAAA
+iihf 8000000000000000 <- 0000000055550000 = 5555000000000000
+iihf FFFFFFFFFFFFFFFF <- 0000000055550000 = 55550000FFFFFFFF
+iihf 5555555555555555 <- 0000000055550000 = 5555000055555555
+iihf 0000000000000000 <- 00000000AAAA0000 = AAAA000000000000
+iihf 0000000000000001 <- 00000000AAAA0000 = AAAA000000000001
+iihf 000000000000FFFF <- 00000000AAAA0000 = AAAA00000000FFFF
+iihf 0000000000007FFF <- 00000000AAAA0000 = AAAA000000007FFF
+iihf 0000000000008000 <- 00000000AAAA0000 = AAAA000000008000
+iihf 00000000FFFFFFFF <- 00000000AAAA0000 = AAAA0000FFFFFFFF
+iihf 0000000080000000 <- 00000000AAAA0000 = AAAA000080000000
+iihf 000000007FFFFFFF <- 00000000AAAA0000 = AAAA00007FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000AAAA0000 = AAAA0000AAAAAAAA
+iihf 8000000000000000 <- 00000000AAAA0000 = AAAA000000000000
+iihf FFFFFFFFFFFFFFFF <- 00000000AAAA0000 = AAAA0000FFFFFFFF
+iihf 5555555555555555 <- 00000000AAAA0000 = AAAA000055555555
+iihf 0000000000000000 <- 00000000FFFFFFFF = FFFFFFFF00000000
+iihf 0000000000000001 <- 00000000FFFFFFFF = FFFFFFFF00000001
+iihf 000000000000FFFF <- 00000000FFFFFFFF = FFFFFFFF0000FFFF
+iihf 0000000000007FFF <- 00000000FFFFFFFF = FFFFFFFF00007FFF
+iihf 0000000000008000 <- 00000000FFFFFFFF = FFFFFFFF00008000
+iihf 00000000FFFFFFFF <- 00000000FFFFFFFF = FFFFFFFFFFFFFFFF
+iihf 0000000080000000 <- 00000000FFFFFFFF = FFFFFFFF80000000
+iihf 000000007FFFFFFF <- 00000000FFFFFFFF = FFFFFFFF7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000FFFFFFFF = FFFFFFFFAAAAAAAA
+iihf 8000000000000000 <- 00000000FFFFFFFF = FFFFFFFF00000000
+iihf FFFFFFFFFFFFFFFF <- 00000000FFFFFFFF = FFFFFFFFFFFFFFFF
+iihf 5555555555555555 <- 00000000FFFFFFFF = FFFFFFFF55555555
+iihf 0000000000000000 <- 0000000055555555 = 5555555500000000
+iihf 0000000000000001 <- 0000000055555555 = 5555555500000001
+iihf 000000000000FFFF <- 0000000055555555 = 555555550000FFFF
+iihf 0000000000007FFF <- 0000000055555555 = 5555555500007FFF
+iihf 0000000000008000 <- 0000000055555555 = 5555555500008000
+iihf 00000000FFFFFFFF <- 0000000055555555 = 55555555FFFFFFFF
+iihf 0000000080000000 <- 0000000055555555 = 5555555580000000
+iihf 000000007FFFFFFF <- 0000000055555555 = 555555557FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 0000000055555555 = 55555555AAAAAAAA
+iihf 8000000000000000 <- 0000000055555555 = 5555555500000000
+iihf FFFFFFFFFFFFFFFF <- 0000000055555555 = 55555555FFFFFFFF
+iihf 5555555555555555 <- 0000000055555555 = 5555555555555555
+iihf 0000000000000000 <- 00000000AAAAAAAA = AAAAAAAA00000000
+iihf 0000000000000001 <- 00000000AAAAAAAA = AAAAAAAA00000001
+iihf 000000000000FFFF <- 00000000AAAAAAAA = AAAAAAAA0000FFFF
+iihf 0000000000007FFF <- 00000000AAAAAAAA = AAAAAAAA00007FFF
+iihf 0000000000008000 <- 00000000AAAAAAAA = AAAAAAAA00008000
+iihf 00000000FFFFFFFF <- 00000000AAAAAAAA = AAAAAAAAFFFFFFFF
+iihf 0000000080000000 <- 00000000AAAAAAAA = AAAAAAAA80000000
+iihf 000000007FFFFFFF <- 00000000AAAAAAAA = AAAAAAAA7FFFFFFF
+iihf AAAAAAAAAAAAAAAA <- 00000000AAAAAAAA = AAAAAAAAAAAAAAAA
+iihf 8000000000000000 <- 00000000AAAAAAAA = AAAAAAAA00000000
+iihf FFFFFFFFFFFFFFFF <- 00000000AAAAAAAA = AAAAAAAAFFFFFFFF
+iihf 5555555555555555 <- 00000000AAAAAAAA = AAAAAAAA55555555
+iilf 0000000000000000 <- 0000000000000000 = 0000000000000000
+iilf 0000000000000001 <- 0000000000000000 = 0000000000000000
+iilf 000000000000FFFF <- 0000000000000000 = 0000000000000000
+iilf 0000000000007FFF <- 0000000000000000 = 0000000000000000
+iilf 0000000000008000 <- 0000000000000000 = 0000000000000000
+iilf 00000000FFFFFFFF <- 0000000000000000 = 0000000000000000
+iilf 0000000080000000 <- 0000000000000000 = 0000000000000000
+iilf 000000007FFFFFFF <- 0000000000000000 = 0000000000000000
+iilf AAAAAAAAAAAAAAAA <- 0000000000000000 = AAAAAAAA00000000
+iilf 8000000000000000 <- 0000000000000000 = 8000000000000000
+iilf FFFFFFFFFFFFFFFF <- 0000000000000000 = FFFFFFFF00000000
+iilf 5555555555555555 <- 0000000000000000 = 5555555500000000
+iilf 0000000000000000 <- 00000000000000FF = 00000000000000FF
+iilf 0000000000000001 <- 00000000000000FF = 00000000000000FF
+iilf 000000000000FFFF <- 00000000000000FF = 00000000000000FF
+iilf 0000000000007FFF <- 00000000000000FF = 00000000000000FF
+iilf 0000000000008000 <- 00000000000000FF = 00000000000000FF
+iilf 00000000FFFFFFFF <- 00000000000000FF = 00000000000000FF
+iilf 0000000080000000 <- 00000000000000FF = 00000000000000FF
+iilf 000000007FFFFFFF <- 00000000000000FF = 00000000000000FF
+iilf AAAAAAAAAAAAAAAA <- 00000000000000FF = AAAAAAAA000000FF
+iilf 8000000000000000 <- 00000000000000FF = 80000000000000FF
+iilf FFFFFFFFFFFFFFFF <- 00000000000000FF = FFFFFFFF000000FF
+iilf 5555555555555555 <- 00000000000000FF = 55555555000000FF
+iilf 0000000000000000 <- 0000000000000055 = 0000000000000055
+iilf 0000000000000001 <- 0000000000000055 = 0000000000000055
+iilf 000000000000FFFF <- 0000000000000055 = 0000000000000055
+iilf 0000000000007FFF <- 0000000000000055 = 0000000000000055
+iilf 0000000000008000 <- 0000000000000055 = 0000000000000055
+iilf 00000000FFFFFFFF <- 0000000000000055 = 0000000000000055
+iilf 0000000080000000 <- 0000000000000055 = 0000000000000055
+iilf 000000007FFFFFFF <- 0000000000000055 = 0000000000000055
+iilf AAAAAAAAAAAAAAAA <- 0000000000000055 = AAAAAAAA00000055
+iilf 8000000000000000 <- 0000000000000055 = 8000000000000055
+iilf FFFFFFFFFFFFFFFF <- 0000000000000055 = FFFFFFFF00000055
+iilf 5555555555555555 <- 0000000000000055 = 5555555500000055
+iilf 0000000000000000 <- 00000000000000AA = 00000000000000AA
+iilf 0000000000000001 <- 00000000000000AA = 00000000000000AA
+iilf 000000000000FFFF <- 00000000000000AA = 00000000000000AA
+iilf 0000000000007FFF <- 00000000000000AA = 00000000000000AA
+iilf 0000000000008000 <- 00000000000000AA = 00000000000000AA
+iilf 00000000FFFFFFFF <- 00000000000000AA = 00000000000000AA
+iilf 0000000080000000 <- 00000000000000AA = 00000000000000AA
+iilf 000000007FFFFFFF <- 00000000000000AA = 00000000000000AA
+iilf AAAAAAAAAAAAAAAA <- 00000000000000AA = AAAAAAAA000000AA
+iilf 8000000000000000 <- 00000000000000AA = 80000000000000AA
+iilf FFFFFFFFFFFFFFFF <- 00000000000000AA = FFFFFFFF000000AA
+iilf 5555555555555555 <- 00000000000000AA = 55555555000000AA
+iilf 0000000000000000 <- 000000000000FFFF = 000000000000FFFF
+iilf 0000000000000001 <- 000000000000FFFF = 000000000000FFFF
+iilf 000000000000FFFF <- 000000000000FFFF = 000000000000FFFF
+iilf 0000000000007FFF <- 000000000000FFFF = 000000000000FFFF
+iilf 0000000000008000 <- 000000000000FFFF = 000000000000FFFF
+iilf 00000000FFFFFFFF <- 000000000000FFFF = 000000000000FFFF
+iilf 0000000080000000 <- 000000000000FFFF = 000000000000FFFF
+iilf 000000007FFFFFFF <- 000000000000FFFF = 000000000000FFFF
+iilf AAAAAAAAAAAAAAAA <- 000000000000FFFF = AAAAAAAA0000FFFF
+iilf 8000000000000000 <- 000000000000FFFF = 800000000000FFFF
+iilf FFFFFFFFFFFFFFFF <- 000000000000FFFF = FFFFFFFF0000FFFF
+iilf 5555555555555555 <- 000000000000FFFF = 555555550000FFFF
+iilf 0000000000000000 <- 0000000000005555 = 0000000000005555
+iilf 0000000000000001 <- 0000000000005555 = 0000000000005555
+iilf 000000000000FFFF <- 0000000000005555 = 0000000000005555
+iilf 0000000000007FFF <- 0000000000005555 = 0000000000005555
+iilf 0000000000008000 <- 0000000000005555 = 0000000000005555
+iilf 00000000FFFFFFFF <- 0000000000005555 = 0000000000005555
+iilf 0000000080000000 <- 0000000000005555 = 0000000000005555
+iilf 000000007FFFFFFF <- 0000000000005555 = 0000000000005555
+iilf AAAAAAAAAAAAAAAA <- 0000000000005555 = AAAAAAAA00005555
+iilf 8000000000000000 <- 0000000000005555 = 8000000000005555
+iilf FFFFFFFFFFFFFFFF <- 0000000000005555 = FFFFFFFF00005555
+iilf 5555555555555555 <- 0000000000005555 = 5555555500005555
+iilf 0000000000000000 <- 000000000000AAAA = 000000000000AAAA
+iilf 0000000000000001 <- 000000000000AAAA = 000000000000AAAA
+iilf 000000000000FFFF <- 000000000000AAAA = 000000000000AAAA
+iilf 0000000000007FFF <- 000000000000AAAA = 000000000000AAAA
+iilf 0000000000008000 <- 000000000000AAAA = 000000000000AAAA
+iilf 00000000FFFFFFFF <- 000000000000AAAA = 000000000000AAAA
+iilf 0000000080000000 <- 000000000000AAAA = 000000000000AAAA
+iilf 000000007FFFFFFF <- 000000000000AAAA = 000000000000AAAA
+iilf AAAAAAAAAAAAAAAA <- 000000000000AAAA = AAAAAAAA0000AAAA
+iilf 8000000000000000 <- 000000000000AAAA = 800000000000AAAA
+iilf FFFFFFFFFFFFFFFF <- 000000000000AAAA = FFFFFFFF0000AAAA
+iilf 5555555555555555 <- 000000000000AAAA = 555555550000AAAA
+iilf 0000000000000000 <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 0000000000000001 <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 000000000000FFFF <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 0000000000007FFF <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 0000000000008000 <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 00000000FFFFFFFF <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 0000000080000000 <- 00000000FFFF0000 = 00000000FFFF0000
+iilf 000000007FFFFFFF <- 00000000FFFF0000 = 00000000FFFF0000
+iilf AAAAAAAAAAAAAAAA <- 00000000FFFF0000 = AAAAAAAAFFFF0000
+iilf 8000000000000000 <- 00000000FFFF0000 = 80000000FFFF0000
+iilf FFFFFFFFFFFFFFFF <- 00000000FFFF0000 = FFFFFFFFFFFF0000
+iilf 5555555555555555 <- 00000000FFFF0000 = 55555555FFFF0000
+iilf 0000000000000000 <- 0000000055550000 = 0000000055550000
+iilf 0000000000000001 <- 0000000055550000 = 0000000055550000
+iilf 000000000000FFFF <- 0000000055550000 = 0000000055550000
+iilf 0000000000007FFF <- 0000000055550000 = 0000000055550000
+iilf 0000000000008000 <- 0000000055550000 = 0000000055550000
+iilf 00000000FFFFFFFF <- 0000000055550000 = 0000000055550000
+iilf 0000000080000000 <- 0000000055550000 = 0000000055550000
+iilf 000000007FFFFFFF <- 0000000055550000 = 0000000055550000
+iilf AAAAAAAAAAAAAAAA <- 0000000055550000 = AAAAAAAA55550000
+iilf 8000000000000000 <- 0000000055550000 = 8000000055550000
+iilf FFFFFFFFFFFFFFFF <- 0000000055550000 = FFFFFFFF55550000
+iilf 5555555555555555 <- 0000000055550000 = 5555555555550000
+iilf 0000000000000000 <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 0000000000000001 <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 000000000000FFFF <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 0000000000007FFF <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 0000000000008000 <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 00000000FFFFFFFF <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 0000000080000000 <- 00000000AAAA0000 = 00000000AAAA0000
+iilf 000000007FFFFFFF <- 00000000AAAA0000 = 00000000AAAA0000
+iilf AAAAAAAAAAAAAAAA <- 00000000AAAA0000 = AAAAAAAAAAAA0000
+iilf 8000000000000000 <- 00000000AAAA0000 = 80000000AAAA0000
+iilf FFFFFFFFFFFFFFFF <- 00000000AAAA0000 = FFFFFFFFAAAA0000
+iilf 5555555555555555 <- 00000000AAAA0000 = 55555555AAAA0000
+iilf 0000000000000000 <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 0000000000000001 <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 000000000000FFFF <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 0000000000007FFF <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 0000000000008000 <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 00000000FFFFFFFF <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 0000000080000000 <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf 000000007FFFFFFF <- 00000000FFFFFFFF = 00000000FFFFFFFF
+iilf AAAAAAAAAAAAAAAA <- 00000000FFFFFFFF = AAAAAAAAFFFFFFFF
+iilf 8000000000000000 <- 00000000FFFFFFFF = 80000000FFFFFFFF
+iilf FFFFFFFFFFFFFFFF <- 00000000FFFFFFFF = FFFFFFFFFFFFFFFF
+iilf 5555555555555555 <- 00000000FFFFFFFF = 55555555FFFFFFFF
+iilf 0000000000000000 <- 0000000055555555 = 0000000055555555
+iilf 0000000000000001 <- 0000000055555555 = 0000000055555555
+iilf 000000000000FFFF <- 0000000055555555 = 0000000055555555
+iilf 0000000000007FFF <- 0000000055555555 = 0000000055555555
+iilf 0000000000008000 <- 0000000055555555 = 0000000055555555
+iilf 00000000FFFFFFFF <- 0000000055555555 = 0000000055555555
+iilf 0000000080000000 <- 0000000055555555 = 0000000055555555
+iilf 000000007FFFFFFF <- 0000000055555555 = 0000000055555555
+iilf AAAAAAAAAAAAAAAA <- 0000000055555555 = AAAAAAAA55555555
+iilf 8000000000000000 <- 0000000055555555 = 8000000055555555
+iilf FFFFFFFFFFFFFFFF <- 0000000055555555 = FFFFFFFF55555555
+iilf 5555555555555555 <- 0000000055555555 = 5555555555555555
+iilf 0000000000000000 <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 0000000000000001 <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 000000000000FFFF <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 0000000000007FFF <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 0000000000008000 <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 00000000FFFFFFFF <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 0000000080000000 <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf 000000007FFFFFFF <- 00000000AAAAAAAA = 00000000AAAAAAAA
+iilf AAAAAAAAAAAAAAAA <- 00000000AAAAAAAA = AAAAAAAAAAAAAAAA
+iilf 8000000000000000 <- 00000000AAAAAAAA = 80000000AAAAAAAA
+iilf FFFFFFFFFFFFFFFF <- 00000000AAAAAAAA = FFFFFFFFAAAAAAAA
+iilf 5555555555555555 <- 00000000AAAAAAAA = 55555555AAAAAAAA
diff --git a/none/tests/s390x/insert_EI.vgtest b/none/tests/s390x/insert_EI.vgtest
new file mode 100644 (file)
index 0000000..31daf83
--- /dev/null
@@ -0,0 +1,2 @@
+prog: insert_EI
+prereq: test -x insert_EI
diff --git a/none/tests/s390x/lam_stam.c b/none/tests/s390x/lam_stam.c
new file mode 100644 (file)
index 0000000..0e7bdae
--- /dev/null
@@ -0,0 +1,20 @@
+/* LAM, STAM, load,store access multiple */
+#include <stdio.h>
+#include <unistd.h>
+
+char output[44];
+char input[44] = "0123456789\n"
+                 "0123456789\n"
+                 "0123456789\n"
+                 "0123456789\n";
+
+int main()
+{
+  asm volatile( "larl  1,input\n\t"
+                "larl  2,output\n\t"
+                "lam   3,13,0(1)\n\t"
+                "stam  3,13,0(2)\n\t":::"1", "2");
+
+  write(1, output, sizeof output);
+  return 0;
+}
diff --git a/none/tests/s390x/lam_stam.stderr.exp b/none/tests/s390x/lam_stam.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/lam_stam.stdout.exp b/none/tests/s390x/lam_stam.stdout.exp
new file mode 100644 (file)
index 0000000..dec3dd0
--- /dev/null
@@ -0,0 +1,4 @@
+0123456789
+0123456789
+0123456789
+0123456789
diff --git a/none/tests/s390x/lam_stam.vgtest b/none/tests/s390x/lam_stam.vgtest
new file mode 100644 (file)
index 0000000..79b780d
--- /dev/null
@@ -0,0 +1 @@
+prog: lam_stam
diff --git a/none/tests/s390x/lpr.c b/none/tests/s390x/lpr.c
new file mode 100644 (file)
index 0000000..2b03da1
--- /dev/null
@@ -0,0 +1,95 @@
+#include <limits.h>
+#include <stdio.h>
+
+int lpr(int org, int *new)
+{
+       int _new, cc;
+       asm volatile(   "lpr %0,%2\n\t"
+                       "ipm %1\n\t"
+                       "srl %1,28\n\t"
+                       : "=d" (_new), "=d" (cc)
+                       : "d" (org)
+                       : "cc");
+       *new = _new;
+       return cc;
+}
+
+int lpgr(unsigned long org, unsigned long *new)
+{
+       unsigned long _new;
+        int cc;
+       asm volatile(   "lpgr %0,%2\n\t"
+                       "ipm %1\n\t"
+                       "srl %1,28\n\t"
+                       : "=d" (_new), "=d" (cc)
+                       : "d" (org)
+                       : "cc");
+       *new = _new;
+       return cc;
+}
+
+int lpgfr(unsigned long org, unsigned long *new)
+{
+       unsigned long _new;
+        int cc;
+       asm volatile(   "lpgfr %0,%2\n\t"
+                       "ipm %1\n\t"
+                       "srl %1,28\n\t"
+                       : "=d" (_new), "=d" (cc)
+                       : "d" (org)
+                       : "cc");
+       *new = _new;
+       return cc;
+}
+
+
+void t32(int value)
+{
+       int n,cc;
+
+       cc = lpr(value, &n);
+
+       printf("new: %d cc: %d\n", n, cc);
+}
+
+void t64(unsigned long value)
+{
+       int cc;
+        unsigned long n;
+
+       cc = lpgr(value, &n);
+
+       printf("new: %ld cc: %d\n", n, cc);
+}
+
+void t3264(unsigned long value)
+{
+       int cc;
+        unsigned long n;
+
+       cc = lpgfr(value, &n);
+
+       printf("new: %ld cc: %d\n", n, cc);
+}
+
+
+
+int main()
+{
+       printf("lpr\n");
+       t32(0); t32(1); t32(-1);
+       t32(INT_MAX); t32(INT_MIN); t32(UINT_MAX);
+
+       printf("lpgr\n");
+       t64(0); t64(1); t64(-1);
+       t64(INT_MAX); t64(INT_MIN); t64(UINT_MAX);
+       t64(LONG_MAX); t64(LONG_MIN); t64(ULONG_MAX);
+
+       printf("lpgfr\n");
+       t3264(0); t3264(1); t64(-1);
+       t3264(INT_MAX); t3264(INT_MIN); t3264(UINT_MAX);
+       t3264(LONG_MAX); t3264(LONG_MIN); t3264(ULONG_MAX);
+
+       return 0;
+}
+
diff --git a/none/tests/s390x/lpr.stderr.exp b/none/tests/s390x/lpr.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/lpr.stdout.exp b/none/tests/s390x/lpr.stdout.exp
new file mode 100644 (file)
index 0000000..e917b59
--- /dev/null
@@ -0,0 +1,27 @@
+lpr
+new: 0 cc: 0
+new: 1 cc: 2
+new: 1 cc: 2
+new: 2147483647 cc: 2
+new: -2147483648 cc: 3
+new: 1 cc: 2
+lpgr
+new: 0 cc: 0
+new: 1 cc: 2
+new: 1 cc: 2
+new: 2147483647 cc: 2
+new: 2147483648 cc: 2
+new: 4294967295 cc: 2
+new: 9223372036854775807 cc: 2
+new: -9223372036854775808 cc: 3
+new: 1 cc: 2
+lpgfr
+new: 0 cc: 0
+new: 1 cc: 2
+new: 1 cc: 2
+new: 2147483647 cc: 2
+new: 2147483648 cc: 2
+new: 1 cc: 2
+new: 1 cc: 2
+new: 0 cc: 0
+new: 1 cc: 2
diff --git a/none/tests/s390x/lpr.vgtest b/none/tests/s390x/lpr.vgtest
new file mode 100644 (file)
index 0000000..9b2c167
--- /dev/null
@@ -0,0 +1 @@
+prog: lpr
diff --git a/none/tests/s390x/mul.c b/none/tests/s390x/mul.c
new file mode 100644 (file)
index 0000000..810bc96
--- /dev/null
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include "mul.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(mhi, 0);
+       immsweep(mhi, -1);
+       immsweep(mhi, -32768);
+       immsweep(mhi, 32767);
+       immsweep(mghi, 0);
+       immsweep(mghi, -1);
+       immsweep(mghi, -32768);
+       immsweep(mghi, 32767);
+}
+
+
+static void do_regmem_insns(unsigned long m2)
+{
+       memsweep(m, m2);
+       regsweep(mr, m2);
+       memsweep(mh, m2);
+       memsweep(mlg, m2);
+       regsweep(mlgr, m2);
+       memsweep(ml, m2);
+       regsweep(mlr, m2);
+       memsweep(ms, m2);
+       regsweep(msr, m2);
+       memsweep(msg, m2);
+       regsweep(msgr, m2);
+       memsweep(msgf, m2);
+       regsweep(msgfr, m2);
+       memsweep(msy, m2);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x7ffffffffffffffful);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+       do_imm_insns();
+       return 0;
+}
diff --git a/none/tests/s390x/mul.h b/none/tests/s390x/mul.h
new file mode 100644 (file)
index 0000000..e306f42
--- /dev/null
@@ -0,0 +1,92 @@
+#include <stdio.h>
+
+#define MUL_REG_MEM(insn, m1, m2)                      \
+({                                                     \
+       unsigned long tmp1 = m1;                        \
+       unsigned long tmp2 = m1;                        \
+       asm volatile(   "lgr 2, %0\n"                   \
+                       "lgr 3, %1\n"                   \
+                       #insn " 2, %2\n"                \
+                       "lgr %0,2\n"                    \
+                       "lgr %1,3\n"                    \
+                       : "+d" (tmp1), "+d" (tmp2)      \
+                       : "Q" (m2)                      \
+                       : "2","3");                     \
+       printf(#insn " %16.16lX * %16.16lX = %16.16lX%16.16lX\n", m1, m2, tmp1, tmp2); \
+})
+
+#define MUL_REG_REG(insn, m1, m2)                      \
+({                                                     \
+       unsigned long tmp1 = m1;                        \
+       unsigned long tmp2 = m1;                        \
+       asm volatile(   "lgr 2, %0\n"                   \
+                       "lgr 3, %1\n"                   \
+                       #insn " 2, %2\n"                \
+                       "lgr %0,2\n"                    \
+                       "lgr %1,3\n"                    \
+                       : "+d" (tmp1), "+d" (tmp2)      \
+                       : "d" (m2)                      \
+                       : "2","3");                     \
+       printf(#insn " %16.16lX * %16.16lX = %16.16lX%16.16lX\n", m1, m2, tmp1, tmp2); \
+})
+
+#define MUL_REG_IMM(insn, m1, m2)                      \
+({                                                     \
+       unsigned long tmp1 = m1;                        \
+       unsigned long tmp2 = m1;                        \
+       asm volatile(   "lgr 2, %0\n"                   \
+                       "lgr 3, %1\n"                   \
+                       #insn " 2, " #m2 "\n"           \
+                       "lgr %0,2\n"                    \
+                       "lgr %1,3\n"                    \
+                       : "+d" (tmp1), "+d" (tmp2)      \
+                       :: "2","3");                    \
+       printf(#insn " %16.16lX * %16.16lX = %16.16lX%16.16lX\n", m1, (unsigned long) m2, tmp1, tmp2); \
+})
+
+
+#define memsweep(i, m2)                                        \
+({                                                     \
+       MUL_REG_MEM(i, 0ul, m2);                        \
+       MUL_REG_MEM(i, 1ul, m2);                        \
+       MUL_REG_MEM(i, 0xfffful, m2);                   \
+       MUL_REG_MEM(i, 0x7ffful, m2);                   \
+       MUL_REG_MEM(i, 0x8000ul, m2);                   \
+       MUL_REG_MEM(i, 0xfffffffful, m2);               \
+       MUL_REG_MEM(i, 0x80000000ul, m2);               \
+       MUL_REG_MEM(i, 0x7ffffffful, m2);               \
+       MUL_REG_MEM(i, 0xfffffffffffffffful, m2);       \
+       MUL_REG_MEM(i, 0x8000000000000000ul, m2);       \
+       MUL_REG_MEM(i, 0x7ffffffffffffffful, m2);       \
+})
+
+#define regsweep(i, m2)                                        \
+({                                                     \
+       MUL_REG_REG(i, 0ul, m2);                        \
+       MUL_REG_REG(i, 1ul, m2);                        \
+       MUL_REG_REG(i, 0xfffful, m2);                   \
+       MUL_REG_REG(i, 0x7ffful, m2);                   \
+       MUL_REG_REG(i, 0x8000ul, m2);                   \
+       MUL_REG_REG(i, 0xfffffffful, m2);               \
+       MUL_REG_REG(i, 0x80000000ul, m2);               \
+       MUL_REG_REG(i, 0x7ffffffful, m2);               \
+       MUL_REG_REG(i, 0xfffffffffffffffful, m2);       \
+       MUL_REG_REG(i, 0x8000000000000000ul, m2);       \
+       MUL_REG_REG(i, 0x7ffffffffffffffful, m2);       \
+})
+
+#define immsweep(i, m2)                                        \
+({                                                     \
+       MUL_REG_IMM(i, 0ul, m2);                        \
+       MUL_REG_IMM(i, 1ul, m2);                        \
+       MUL_REG_IMM(i, 0xfffful, m2);                   \
+       MUL_REG_IMM(i, 0x7ffful, m2);                   \
+       MUL_REG_IMM(i, 0x8000ul, m2);                   \
+       MUL_REG_IMM(i, 0xfffffffful, m2);               \
+       MUL_REG_IMM(i, 0x80000000ul, m2);               \
+       MUL_REG_IMM(i, 0x7ffffffful, m2);               \
+       MUL_REG_IMM(i, 0xfffffffffffffffful, m2);       \
+       MUL_REG_IMM(i, 0x8000000000000000ul, m2);       \
+       MUL_REG_IMM(i, 0x7ffffffffffffffful, m2);       \
+})
+
diff --git a/none/tests/s390x/mul.stderr.exp b/none/tests/s390x/mul.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/mul.stdout.exp b/none/tests/s390x/mul.stdout.exp
new file mode 100644 (file)
index 0000000..0c4a5c5
--- /dev/null
@@ -0,0 +1,2244 @@
+m 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+m 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+m 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+m 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+m 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+m 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+m 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+mr 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+mr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+mr 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+mr 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mr 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+mr 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mr FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mr 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mh 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mh 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+mh 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+mh 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+mlg 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+mlg 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+mlg 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+mlg 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlg 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+mlg 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlg FFFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlg 8000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+mlgr 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+mlgr 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+mlgr 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr FFFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlgr 8000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+ml 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+ml 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+ml 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+ml 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+ml 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+ml 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+mlr 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+mlr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+mlr 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+mlr 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlr 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+mlr 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mlr FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mlr 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+ms 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+ms 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+ms 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+ms 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msr 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msr 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msr 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msg 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msg 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msg 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msg 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msg 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msg 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msg 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msgr 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msgr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msgr 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msgr 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msgr 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msgr 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msgf 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msgfr 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msgfr 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msgfr 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msgfr 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msgfr 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msgfr 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msy 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msy 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msy 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+m 0000000000000001 * 7FFFFFFFFFFFFFFF = 0000000000000000000000007FFFFFFF
+m 000000000000FFFF * 7FFFFFFFFFFFFFFF = 0000000000007FFF000000007FFF0001
+m 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000003FFF000000007FFF8001
+m 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000003FFF00000000FFFF8000
+m 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+m 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000C00000000000000080000000
+m 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF0000000000000001
+m FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFFFFFFFFFF80000001
+m 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF7FFFFFFF80000001
+mr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mr 0000000000000001 * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFFFFFF
+mr 000000000000FFFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF0001
+mr 0000000000007FFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8001
+mr 0000000000008000 * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8000
+mr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000001
+mr 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000080000000
+mr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+mr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF00000000FFFFFFFF00000001
+mr 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF000000007FFFFFFF00000001
+mh 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mh 0000000000000001 * 7FFFFFFFFFFFFFFF = 0000000000007FFF0000000000000001
+mh 000000000000FFFF * 7FFFFFFFFFFFFFFF = 000000007FFE8001000000000000FFFF
+mh 0000000000007FFF * 7FFFFFFFFFFFFFFF = 000000003FFF00010000000000007FFF
+mh 0000000000008000 * 7FFFFFFFFFFFFFFF = 000000003FFF80000000000000008000
+mh 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFF800100000000FFFFFFFF
+mh 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000800000000000000080000000
+mh 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFF8001000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 7FFFFFFFFFFFFFFF = 00000000000000007FFFFFFFFFFFFFFF
+mlg 000000000000FFFF * 7FFFFFFFFFFFFFFF = 0000000000007FFF7FFFFFFFFFFF0001
+mlg 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000003FFF7FFFFFFFFFFF8001
+mlg 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000003FFFFFFFFFFFFFFF8000
+mlg 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF7FFFFFFF00000001
+mlg 0000000080000000 * 7FFFFFFFFFFFFFFF = 000000003FFFFFFFFFFFFFFF80000000
+mlg 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF7FFFFFFF80000001
+mlg FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE8000000000000001
+mlg 8000000000000000 * 7FFFFFFFFFFFFFFF = 3FFFFFFFFFFFFFFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 3FFFFFFFFFFFFFFF0000000000000001
+mlgr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 7FFFFFFFFFFFFFFF = 00000000000000007FFFFFFFFFFFFFFF
+mlgr 000000000000FFFF * 7FFFFFFFFFFFFFFF = 0000000000007FFF7FFFFFFFFFFF0001
+mlgr 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000003FFF7FFFFFFFFFFF8001
+mlgr 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000003FFFFFFFFFFFFFFF8000
+mlgr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF7FFFFFFF00000001
+mlgr 0000000080000000 * 7FFFFFFFFFFFFFFF = 000000003FFFFFFFFFFFFFFF80000000
+mlgr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF7FFFFFFF80000001
+mlgr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE8000000000000001
+mlgr 8000000000000000 * 7FFFFFFFFFFFFFFF = 3FFFFFFFFFFFFFFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 3FFFFFFFFFFFFFFF0000000000000001
+ml 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+ml 0000000000000001 * 7FFFFFFFFFFFFFFF = 0000000000000000000000007FFFFFFF
+ml 000000000000FFFF * 7FFFFFFFFFFFFFFF = 0000000000007FFF000000007FFF0001
+ml 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000003FFF000000007FFF8001
+ml 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000003FFF00000000FFFF8000
+ml 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFFFFFE0000000080000001
+ml 0000000080000000 * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF0000000080000000
+ml 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF0000000000000001
+ml FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFEFFFFFFFF80000001
+ml 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF7FFFFFFE7FFFFFFF80000001
+mlr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 7FFFFFFFFFFFFFFF = 000000000000000000000000FFFFFFFF
+mlr 000000000000FFFF * 7FFFFFFFFFFFFFFF = 000000000000FFFE00000000FFFF0001
+mlr 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000007FFE00000000FFFF8001
+mlr 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000007FFF00000000FFFF8000
+mlr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFE0000000000000001
+mlr 0000000080000000 * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF0000000080000000
+mlr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFFFFFE0000000080000001
+mlr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFEFFFFFFFF00000001
+mlr 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE7FFFFFFF00000001
+ms 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+ms 0000000000000001 * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF0000000000000001
+ms 000000000000FFFF * 7FFFFFFFFFFFFFFF = 000000007FFF0001000000000000FFFF
+ms 0000000000007FFF * 7FFFFFFFFFFFFFFF = 000000007FFF80010000000000007FFF
+ms 0000000000008000 * 7FFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+ms 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000008000000100000000FFFFFFFF
+ms 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000800000000000000080000000
+ms 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 0000000000000001000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msr 0000000000000001 * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+msr 000000000000FFFF * 7FFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+msr 0000000000007FFF * 7FFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+msr 0000000000008000 * 7FFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+msr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+msr 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msg 0000000000000001 * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF0000000000000001
+msg 000000000000FFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF0001000000000000FFFF
+msg 0000000000007FFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF80010000000000007FFF
+msg 0000000000008000 * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msg 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF0000000100000000FFFFFFFF
+msg 0000000080000000 * 7FFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msg 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF80000001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 8000000000000001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000000000017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF0000000000000001
+msgr 000000000000FFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF0001000000000000FFFF
+msgr 0000000000007FFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF80010000000000007FFF
+msgr 0000000000008000 * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF0000000100000000FFFFFFFF
+msgr 0000000080000000 * 7FFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF80000001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 8000000000000001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000000000017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF0000000000000001
+msgf 000000000000FFFF * 7FFFFFFFFFFFFFFF = 00007FFF7FFF0001000000000000FFFF
+msgf 0000000000007FFF * 7FFFFFFFFFFFFFFF = 00003FFF7FFF80010000000000007FFF
+msgf 0000000000008000 * 7FFFFFFFFFFFFFFF = 00003FFFFFFF80000000000000008000
+msgf 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFE8000000100000000FFFFFFFF
+msgf 0000000080000000 * 7FFFFFFFFFFFFFFF = 3FFFFFFF800000000000000080000000
+msgf 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 3FFFFFFF00000001000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgfr 000000000000FFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgfr 0000000000007FFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgfr 0000000000008000 * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgfr 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgfr 0000000080000000 * 7FFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgfr 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msy 0000000000000001 * 7FFFFFFFFFFFFFFF = 000000007FFFFFFF0000000000000001
+msy 000000000000FFFF * 7FFFFFFFFFFFFFFF = 000000007FFF0001000000000000FFFF
+msy 0000000000007FFF * 7FFFFFFFFFFFFFFF = 000000007FFF80010000000000007FFF
+msy 0000000000008000 * 7FFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+msy 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 000000008000000100000000FFFFFFFF
+msy 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000800000000000000080000000
+msy 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 0000000000000001000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+m 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+m 0000000000000001 * 8000000000000000 = 00000000FFFFFFFF0000000080000000
+m 000000000000FFFF * 8000000000000000 = 00000000FFFF80000000000080000000
+m 0000000000007FFF * 8000000000000000 = 00000000FFFFC0000000000080000000
+m 0000000000008000 * 8000000000000000 = 00000000FFFFC0000000000000000000
+m 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000080000000
+m 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+m 000000007FFFFFFF * 8000000000000000 = 00000000C00000000000000080000000
+m FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF80000000
+m 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF80000000
+mr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000000
+mr 000000000000FFFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000008000 * 8000000000000000 = 00000000000000000000000000000000
+mr 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000080000000 * 8000000000000000 = 00000000000000000000000000000000
+mr 000000007FFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mh 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mh 0000000000000001 * 8000000000000000 = 00000000FFFF80000000000000000001
+mh 000000000000FFFF * 8000000000000000 = 0000000080008000000000000000FFFF
+mh 0000000000007FFF * 8000000000000000 = 00000000C00080000000000000007FFF
+mh 0000000000008000 * 8000000000000000 = 00000000C00000000000000000008000
+mh 00000000FFFFFFFF * 8000000000000000 = 000000000000800000000000FFFFFFFF
+mh 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 8000000000000000 = 0000000000008000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 8000000000000000 = 00000000000000008000000000000000
+mlg 000000000000FFFF * 8000000000000000 = 0000000000007FFF8000000000000000
+mlg 0000000000007FFF * 8000000000000000 = 0000000000003FFF8000000000000000
+mlg 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+mlg 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF8000000000000000
+mlg 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mlg 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF8000000000000000
+mlg FFFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFFFFFFFFFF8000000000000000
+mlg 8000000000000000 * 8000000000000000 = 40000000000000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 8000000000000000 = 3FFFFFFFFFFFFFFF8000000000000000
+mlgr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 8000000000000000 = 00000000000000008000000000000000
+mlgr 000000000000FFFF * 8000000000000000 = 0000000000007FFF8000000000000000
+mlgr 0000000000007FFF * 8000000000000000 = 0000000000003FFF8000000000000000
+mlgr 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+mlgr 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF8000000000000000
+mlgr 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mlgr 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF8000000000000000
+mlgr FFFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFFFFFFFFFF8000000000000000
+mlgr 8000000000000000 * 8000000000000000 = 40000000000000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 8000000000000000 = 3FFFFFFFFFFFFFFF8000000000000000
+ml 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+ml 0000000000000001 * 8000000000000000 = 00000000000000000000000080000000
+ml 000000000000FFFF * 8000000000000000 = 0000000000007FFF0000000080000000
+ml 0000000000007FFF * 8000000000000000 = 0000000000003FFF0000000080000000
+ml 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+ml 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF0000000080000000
+ml 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+ml 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF0000000080000000
+ml FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF7FFFFFFFFFFFFFFF80000000
+ml 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF7FFFFFFF7FFFFFFF80000000
+mlr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000000
+mlr 000000000000FFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000008000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000080000000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 000000007FFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mlr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+ms 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+ms 0000000000000001 * 8000000000000000 = 00000000800000000000000000000001
+ms 000000000000FFFF * 8000000000000000 = 0000000080000000000000000000FFFF
+ms 0000000000007FFF * 8000000000000000 = 00000000800000000000000000007FFF
+ms 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 8000000000000000 = 000000008000000000000000FFFFFFFF
+ms 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 8000000000000000 = 0000000080000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000001
+msr 000000000000FFFF * 8000000000000000 = 0000000000000000000000000000FFFF
+msr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000007FFF
+msr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * 8000000000000000 = 000000000000000000000000FFFFFFFF
+msr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 8000000000000000 = 0000000000000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msg 0000000000000001 * 8000000000000000 = 80000000000000000000000000000001
+msg 000000000000FFFF * 8000000000000000 = 8000000000000000000000000000FFFF
+msg 0000000000007FFF * 8000000000000000 = 80000000000000000000000000007FFF
+msg 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msg 00000000FFFFFFFF * 8000000000000000 = 800000000000000000000000FFFFFFFF
+msg 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msg 000000007FFFFFFF * 8000000000000000 = 8000000000000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 8000000000000000 = 8000000000000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 8000000000000000 = 80000000000000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 8000000000000000 = 80000000000000000000000000000001
+msgr 000000000000FFFF * 8000000000000000 = 8000000000000000000000000000FFFF
+msgr 0000000000007FFF * 8000000000000000 = 80000000000000000000000000007FFF
+msgr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msgr 00000000FFFFFFFF * 8000000000000000 = 800000000000000000000000FFFFFFFF
+msgr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msgr 000000007FFFFFFF * 8000000000000000 = 8000000000000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 8000000000000000 = 8000000000000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 8000000000000000 = 80000000000000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 8000000000000000 = FFFFFFFF800000000000000000000001
+msgf 000000000000FFFF * 8000000000000000 = FFFF800080000000000000000000FFFF
+msgf 0000000000007FFF * 8000000000000000 = FFFFC000800000000000000000007FFF
+msgf 0000000000008000 * 8000000000000000 = FFFFC000000000000000000000008000
+msgf 00000000FFFFFFFF * 8000000000000000 = 800000008000000000000000FFFFFFFF
+msgf 0000000080000000 * 8000000000000000 = C0000000000000000000000080000000
+msgf 000000007FFFFFFF * 8000000000000000 = C000000080000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 8000000000000000 = 0000000080000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 8000000000000000 = 00000000800000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000001
+msgfr 000000000000FFFF * 8000000000000000 = 0000000000000000000000000000FFFF
+msgfr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000007FFF
+msgfr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msgfr 00000000FFFFFFFF * 8000000000000000 = 000000000000000000000000FFFFFFFF
+msgfr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msgfr 000000007FFFFFFF * 8000000000000000 = 0000000000000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 8000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 8000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msy 0000000000000001 * 8000000000000000 = 00000000800000000000000000000001
+msy 000000000000FFFF * 8000000000000000 = 0000000080000000000000000000FFFF
+msy 0000000000007FFF * 8000000000000000 = 00000000800000000000000000007FFF
+msy 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 8000000000000000 = 000000008000000000000000FFFFFFFF
+msy 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 8000000000000000 = 0000000080000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+m 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+m 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFFFFFF
+m 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF0001
+m 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8001
+m 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8000
+m 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000000000000000000000000001
+m 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000080000000
+m 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+m FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000000FFFFFFFF00000001
+m 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000007FFFFFFF00000001
+mr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mr 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFFFFFF
+mr 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF0001
+mr 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8001
+mr 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8000
+mr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000000000000000000000000001
+mr 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000080000000
+mr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+mr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000000FFFFFFFF00000001
+mr 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000007FFFFFFF00000001
+mh 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mh 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+mh 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+mh 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+mh 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+mh 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+mh 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+mh 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+mh 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+mlg 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * FFFFFFFFFFFFFFFF = 0000000000000000FFFFFFFFFFFFFFFF
+mlg 000000000000FFFF * FFFFFFFFFFFFFFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlg 0000000000007FFF * FFFFFFFFFFFFFFFF = 0000000000007FFEFFFFFFFFFFFF8001
+mlg 0000000000008000 * FFFFFFFFFFFFFFFF = 0000000000007FFFFFFFFFFFFFFF8000
+mlg 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFEFFFFFFFF00000001
+mlg 0000000080000000 * FFFFFFFFFFFFFFFF = 000000007FFFFFFFFFFFFFFF80000000
+mlg 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 000000007FFFFFFEFFFFFFFF80000001
+mlg FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE0000000000000001
+mlg 8000000000000000 * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE8000000000000001
+mlgr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * FFFFFFFFFFFFFFFF = 0000000000000000FFFFFFFFFFFFFFFF
+mlgr 000000000000FFFF * FFFFFFFFFFFFFFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlgr 0000000000007FFF * FFFFFFFFFFFFFFFF = 0000000000007FFEFFFFFFFFFFFF8001
+mlgr 0000000000008000 * FFFFFFFFFFFFFFFF = 0000000000007FFFFFFFFFFFFFFF8000
+mlgr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFEFFFFFFFF00000001
+mlgr 0000000080000000 * FFFFFFFFFFFFFFFF = 000000007FFFFFFFFFFFFFFF80000000
+mlgr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 000000007FFFFFFEFFFFFFFF80000001
+mlgr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE0000000000000001
+mlgr 8000000000000000 * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE8000000000000001
+ml 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+ml 0000000000000001 * FFFFFFFFFFFFFFFF = 000000000000000000000000FFFFFFFF
+ml 000000000000FFFF * FFFFFFFFFFFFFFFF = 000000000000FFFE00000000FFFF0001
+ml 0000000000007FFF * FFFFFFFFFFFFFFFF = 0000000000007FFE00000000FFFF8001
+ml 0000000000008000 * FFFFFFFFFFFFFFFF = 0000000000007FFF00000000FFFF8000
+ml 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFE0000000000000001
+ml 0000000080000000 * FFFFFFFFFFFFFFFF = 000000007FFFFFFF0000000080000000
+ml 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 000000007FFFFFFE0000000080000001
+ml FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFEFFFFFFFF00000001
+ml 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE7FFFFFFF00000001
+mlr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * FFFFFFFFFFFFFFFF = 000000000000000000000000FFFFFFFF
+mlr 000000000000FFFF * FFFFFFFFFFFFFFFF = 000000000000FFFE00000000FFFF0001
+mlr 0000000000007FFF * FFFFFFFFFFFFFFFF = 0000000000007FFE00000000FFFF8001
+mlr 0000000000008000 * FFFFFFFFFFFFFFFF = 0000000000007FFF00000000FFFF8000
+mlr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFE0000000000000001
+mlr 0000000080000000 * FFFFFFFFFFFFFFFF = 000000007FFFFFFF0000000080000000
+mlr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 000000007FFFFFFE0000000080000001
+mlr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFEFFFFFFFF00000001
+mlr 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFE7FFFFFFF00000001
+ms 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+ms 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+ms 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+ms 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+ms 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+ms 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+ms 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+ms 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+ms 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msr 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+msr 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+msr 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+msr 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+msr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+msr 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msg 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msg 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msg 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msg 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msg 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msg 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msg 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msg 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgr 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgr 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgr 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgr 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgf 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgf 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgf 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgf 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgf 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgf 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgfr 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgfr 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgfr 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgfr 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgfr 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgfr 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msy 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msy 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+msy 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+msy 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+msy 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+msy 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+msy 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+msy 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msy 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+m 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+m 0000000000000001 * 7FFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+m 000000000000FFFF * 7FFFFFFF00000000 = 0000000000007FFF000000007FFF0001
+m 0000000000007FFF * 7FFFFFFF00000000 = 0000000000003FFF000000007FFF8001
+m 0000000000008000 * 7FFFFFFF00000000 = 0000000000003FFF00000000FFFF8000
+m 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000FFFFFFFF0000000080000001
+m 0000000080000000 * 7FFFFFFF00000000 = 00000000C00000000000000080000000
+m 000000007FFFFFFF * 7FFFFFFF00000000 = 000000003FFFFFFF0000000000000001
+m FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFFFFFFFFFFFFFFFFFF80000001
+m 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF7FFFFFFF80000001
+mr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000000001 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 000000000000FFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000007FFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000008000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000080000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr 000000007FFFFFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000000
+mr 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000000
+mh 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mh 0000000000000001 * 7FFFFFFF00000000 = 0000000000007FFF0000000000000001
+mh 000000000000FFFF * 7FFFFFFF00000000 = 000000007FFE8001000000000000FFFF
+mh 0000000000007FFF * 7FFFFFFF00000000 = 000000003FFF00010000000000007FFF
+mh 0000000000008000 * 7FFFFFFF00000000 = 000000003FFF80000000000000008000
+mh 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000FFFF800100000000FFFFFFFF
+mh 0000000080000000 * 7FFFFFFF00000000 = 00000000800000000000000080000000
+mh 000000007FFFFFFF * 7FFFFFFF00000000 = 000000007FFF8001000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 7FFFFFFF00000000 = 00000000000000007FFFFFFF00000000
+mlg 000000000000FFFF * 7FFFFFFF00000000 = 0000000000007FFF7FFF000100000000
+mlg 0000000000007FFF * 7FFFFFFF00000000 = 0000000000003FFF7FFF800100000000
+mlg 0000000000008000 * 7FFFFFFF00000000 = 0000000000003FFFFFFF800000000000
+mlg 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000007FFFFFFE8000000100000000
+mlg 0000000080000000 * 7FFFFFFF00000000 = 000000003FFFFFFF8000000000000000
+mlg 000000007FFFFFFF * 7FFFFFFF00000000 = 000000003FFFFFFF0000000100000000
+mlg FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF8000000100000000
+mlg 8000000000000000 * 7FFFFFFF00000000 = 3FFFFFFF800000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 3FFFFFFF7FFFFFFF8000000100000000
+mlgr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 7FFFFFFF00000000 = 00000000000000007FFFFFFF00000000
+mlgr 000000000000FFFF * 7FFFFFFF00000000 = 0000000000007FFF7FFF000100000000
+mlgr 0000000000007FFF * 7FFFFFFF00000000 = 0000000000003FFF7FFF800100000000
+mlgr 0000000000008000 * 7FFFFFFF00000000 = 0000000000003FFFFFFF800000000000
+mlgr 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000007FFFFFFE8000000100000000
+mlgr 0000000080000000 * 7FFFFFFF00000000 = 000000003FFFFFFF8000000000000000
+mlgr 000000007FFFFFFF * 7FFFFFFF00000000 = 000000003FFFFFFF0000000100000000
+mlgr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFEFFFFFFFF8000000100000000
+mlgr 8000000000000000 * 7FFFFFFF00000000 = 3FFFFFFF800000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 3FFFFFFF7FFFFFFF8000000100000000
+ml 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+ml 0000000000000001 * 7FFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+ml 000000000000FFFF * 7FFFFFFF00000000 = 0000000000007FFF000000007FFF0001
+ml 0000000000007FFF * 7FFFFFFF00000000 = 0000000000003FFF000000007FFF8001
+ml 0000000000008000 * 7FFFFFFF00000000 = 0000000000003FFF00000000FFFF8000
+ml 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000007FFFFFFE0000000080000001
+ml 0000000080000000 * 7FFFFFFF00000000 = 000000003FFFFFFF0000000080000000
+ml 000000007FFFFFFF * 7FFFFFFF00000000 = 000000003FFFFFFF0000000000000001
+ml FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF7FFFFFFEFFFFFFFF80000001
+ml 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFE7FFFFFFF80000001
+mlr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 000000000000FFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000007FFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000008000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000080000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr 000000007FFFFFFF * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mlr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000000
+mlr 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000000
+ms 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+ms 0000000000000001 * 7FFFFFFF00000000 = 000000007FFFFFFF0000000000000001
+ms 000000000000FFFF * 7FFFFFFF00000000 = 000000007FFF0001000000000000FFFF
+ms 0000000000007FFF * 7FFFFFFF00000000 = 000000007FFF80010000000000007FFF
+ms 0000000000008000 * 7FFFFFFF00000000 = 00000000FFFF80000000000000008000
+ms 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000008000000100000000FFFFFFFF
+ms 0000000080000000 * 7FFFFFFF00000000 = 00000000800000000000000080000000
+ms 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000000000001000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msr 0000000000000001 * 7FFFFFFF00000000 = 00000000000000000000000000000001
+msr 000000000000FFFF * 7FFFFFFF00000000 = 0000000000000000000000000000FFFF
+msr 0000000000007FFF * 7FFFFFFF00000000 = 00000000000000000000000000007FFF
+msr 0000000000008000 * 7FFFFFFF00000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000000000000000000000FFFFFFFF
+msr 0000000080000000 * 7FFFFFFF00000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msg 0000000000000001 * 7FFFFFFF00000000 = 7FFFFFFF000000000000000000000001
+msg 000000000000FFFF * 7FFFFFFF00000000 = 7FFF000100000000000000000000FFFF
+msg 0000000000007FFF * 7FFFFFFF00000000 = 7FFF8001000000000000000000007FFF
+msg 0000000000008000 * 7FFFFFFF00000000 = FFFF8000000000000000000000008000
+msg 00000000FFFFFFFF * 7FFFFFFF00000000 = 800000010000000000000000FFFFFFFF
+msg 0000000080000000 * 7FFFFFFF00000000 = 80000000000000000000000080000000
+msg 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000100000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 8000000100000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 7FFFFFFF00000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 80000001000000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 7FFFFFFF00000000 = 7FFFFFFF000000000000000000000001
+msgr 000000000000FFFF * 7FFFFFFF00000000 = 7FFF000100000000000000000000FFFF
+msgr 0000000000007FFF * 7FFFFFFF00000000 = 7FFF8001000000000000000000007FFF
+msgr 0000000000008000 * 7FFFFFFF00000000 = FFFF8000000000000000000000008000
+msgr 00000000FFFFFFFF * 7FFFFFFF00000000 = 800000010000000000000000FFFFFFFF
+msgr 0000000080000000 * 7FFFFFFF00000000 = 80000000000000000000000080000000
+msgr 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000100000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 8000000100000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 7FFFFFFF00000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 80000001000000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 7FFFFFFF00000000 = 000000007FFFFFFF0000000000000001
+msgf 000000000000FFFF * 7FFFFFFF00000000 = 00007FFF7FFF0001000000000000FFFF
+msgf 0000000000007FFF * 7FFFFFFF00000000 = 00003FFF7FFF80010000000000007FFF
+msgf 0000000000008000 * 7FFFFFFF00000000 = 00003FFFFFFF80000000000000008000
+msgf 00000000FFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFE8000000100000000FFFFFFFF
+msgf 0000000080000000 * 7FFFFFFF00000000 = 3FFFFFFF800000000000000080000000
+msgf 000000007FFFFFFF * 7FFFFFFF00000000 = 3FFFFFFF00000001000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 7FFFFFFF00000000 = 00000000000000000000000000000001
+msgfr 000000000000FFFF * 7FFFFFFF00000000 = 0000000000000000000000000000FFFF
+msgfr 0000000000007FFF * 7FFFFFFF00000000 = 00000000000000000000000000007FFF
+msgfr 0000000000008000 * 7FFFFFFF00000000 = 00000000000000000000000000008000
+msgfr 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000000000000000000000FFFFFFFF
+msgfr 0000000080000000 * 7FFFFFFF00000000 = 00000000000000000000000080000000
+msgfr 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 7FFFFFFF00000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 00000000000000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+msy 0000000000000001 * 7FFFFFFF00000000 = 000000007FFFFFFF0000000000000001
+msy 000000000000FFFF * 7FFFFFFF00000000 = 000000007FFF0001000000000000FFFF
+msy 0000000000007FFF * 7FFFFFFF00000000 = 000000007FFF80010000000000007FFF
+msy 0000000000008000 * 7FFFFFFF00000000 = 00000000FFFF80000000000000008000
+msy 00000000FFFFFFFF * 7FFFFFFF00000000 = 000000008000000100000000FFFFFFFF
+msy 0000000080000000 * 7FFFFFFF00000000 = 00000000800000000000000080000000
+msy 000000007FFFFFFF * 7FFFFFFF00000000 = 0000000000000001000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+m 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+m 0000000000000001 * 8000000000000000 = 00000000FFFFFFFF0000000080000000
+m 000000000000FFFF * 8000000000000000 = 00000000FFFF80000000000080000000
+m 0000000000007FFF * 8000000000000000 = 00000000FFFFC0000000000080000000
+m 0000000000008000 * 8000000000000000 = 00000000FFFFC0000000000000000000
+m 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000080000000
+m 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+m 000000007FFFFFFF * 8000000000000000 = 00000000C00000000000000080000000
+m FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF80000000
+m 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF80000000
+mr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000000
+mr 000000000000FFFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000000008000 * 8000000000000000 = 00000000000000000000000000000000
+mr 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mr 0000000080000000 * 8000000000000000 = 00000000000000000000000000000000
+mr 000000007FFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mh 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mh 0000000000000001 * 8000000000000000 = 00000000FFFF80000000000000000001
+mh 000000000000FFFF * 8000000000000000 = 0000000080008000000000000000FFFF
+mh 0000000000007FFF * 8000000000000000 = 00000000C00080000000000000007FFF
+mh 0000000000008000 * 8000000000000000 = 00000000C00000000000000000008000
+mh 00000000FFFFFFFF * 8000000000000000 = 000000000000800000000000FFFFFFFF
+mh 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 8000000000000000 = 0000000000008000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 8000000000000000 = 00000000000000008000000000000000
+mlg 000000000000FFFF * 8000000000000000 = 0000000000007FFF8000000000000000
+mlg 0000000000007FFF * 8000000000000000 = 0000000000003FFF8000000000000000
+mlg 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+mlg 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF8000000000000000
+mlg 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mlg 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF8000000000000000
+mlg FFFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFFFFFFFFFF8000000000000000
+mlg 8000000000000000 * 8000000000000000 = 40000000000000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 8000000000000000 = 3FFFFFFFFFFFFFFF8000000000000000
+mlgr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 8000000000000000 = 00000000000000008000000000000000
+mlgr 000000000000FFFF * 8000000000000000 = 0000000000007FFF8000000000000000
+mlgr 0000000000007FFF * 8000000000000000 = 0000000000003FFF8000000000000000
+mlgr 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+mlgr 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF8000000000000000
+mlgr 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mlgr 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF8000000000000000
+mlgr FFFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFFFFFFFFFF8000000000000000
+mlgr 8000000000000000 * 8000000000000000 = 40000000000000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 8000000000000000 = 3FFFFFFFFFFFFFFF8000000000000000
+ml 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+ml 0000000000000001 * 8000000000000000 = 00000000000000000000000080000000
+ml 000000000000FFFF * 8000000000000000 = 0000000000007FFF0000000080000000
+ml 0000000000007FFF * 8000000000000000 = 0000000000003FFF0000000080000000
+ml 0000000000008000 * 8000000000000000 = 00000000000040000000000000000000
+ml 00000000FFFFFFFF * 8000000000000000 = 000000007FFFFFFF0000000080000000
+ml 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+ml 000000007FFFFFFF * 8000000000000000 = 000000003FFFFFFF0000000080000000
+ml FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF7FFFFFFFFFFFFFFF80000000
+ml 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF7FFFFFFF7FFFFFFF80000000
+mlr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000000
+mlr 000000000000FFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000000008000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr 0000000080000000 * 8000000000000000 = 00000000000000000000000000000000
+mlr 000000007FFFFFFF * 8000000000000000 = 00000000000000000000000000000000
+mlr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mlr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+ms 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+ms 0000000000000001 * 8000000000000000 = 00000000800000000000000000000001
+ms 000000000000FFFF * 8000000000000000 = 0000000080000000000000000000FFFF
+ms 0000000000007FFF * 8000000000000000 = 00000000800000000000000000007FFF
+ms 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 8000000000000000 = 000000008000000000000000FFFFFFFF
+ms 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 8000000000000000 = 0000000080000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000001
+msr 000000000000FFFF * 8000000000000000 = 0000000000000000000000000000FFFF
+msr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000007FFF
+msr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * 8000000000000000 = 000000000000000000000000FFFFFFFF
+msr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 8000000000000000 = 0000000000000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msg 0000000000000001 * 8000000000000000 = 80000000000000000000000000000001
+msg 000000000000FFFF * 8000000000000000 = 8000000000000000000000000000FFFF
+msg 0000000000007FFF * 8000000000000000 = 80000000000000000000000000007FFF
+msg 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msg 00000000FFFFFFFF * 8000000000000000 = 800000000000000000000000FFFFFFFF
+msg 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msg 000000007FFFFFFF * 8000000000000000 = 8000000000000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 8000000000000000 = 8000000000000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 8000000000000000 = 80000000000000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 8000000000000000 = 80000000000000000000000000000001
+msgr 000000000000FFFF * 8000000000000000 = 8000000000000000000000000000FFFF
+msgr 0000000000007FFF * 8000000000000000 = 80000000000000000000000000007FFF
+msgr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msgr 00000000FFFFFFFF * 8000000000000000 = 800000000000000000000000FFFFFFFF
+msgr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msgr 000000007FFFFFFF * 8000000000000000 = 8000000000000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 8000000000000000 = 8000000000000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 8000000000000000 = 80000000000000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 8000000000000000 = FFFFFFFF800000000000000000000001
+msgf 000000000000FFFF * 8000000000000000 = FFFF800080000000000000000000FFFF
+msgf 0000000000007FFF * 8000000000000000 = FFFFC000800000000000000000007FFF
+msgf 0000000000008000 * 8000000000000000 = FFFFC000000000000000000000008000
+msgf 00000000FFFFFFFF * 8000000000000000 = 800000008000000000000000FFFFFFFF
+msgf 0000000080000000 * 8000000000000000 = C0000000000000000000000080000000
+msgf 000000007FFFFFFF * 8000000000000000 = C000000080000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 8000000000000000 = 0000000080000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 8000000000000000 = 00000000800000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 8000000000000000 = 00000000000000000000000000000001
+msgfr 000000000000FFFF * 8000000000000000 = 0000000000000000000000000000FFFF
+msgfr 0000000000007FFF * 8000000000000000 = 00000000000000000000000000007FFF
+msgfr 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msgfr 00000000FFFFFFFF * 8000000000000000 = 000000000000000000000000FFFFFFFF
+msgfr 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msgfr 000000007FFFFFFF * 8000000000000000 = 0000000000000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 8000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 8000000000000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 8000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+msy 0000000000000001 * 8000000000000000 = 00000000800000000000000000000001
+msy 000000000000FFFF * 8000000000000000 = 0000000080000000000000000000FFFF
+msy 0000000000007FFF * 8000000000000000 = 00000000800000000000000000007FFF
+msy 0000000000008000 * 8000000000000000 = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 8000000000000000 = 000000008000000000000000FFFFFFFF
+msy 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 8000000000000000 = 0000000080000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+m 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+m 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFFFFFF
+m 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF0001
+m 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF8001
+m 0000000000008000 * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF8000
+m 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000001
+m 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000080000000
+m 000000007FFFFFFF * FFFFFFFF00000000 = 00000000FFFFFFFF0000000080000001
+m FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000001
+m 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000001
+mr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000000001 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 000000000000FFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000007FFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000000008000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr 000000007FFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000000
+mr 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000000
+mh 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mh 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF0000000000000001
+mh 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFF0001000000000000FFFF
+mh 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFF80010000000000007FFF
+mh 0000000000008000 * FFFFFFFF00000000 = 00000000FFFF80000000000000008000
+mh 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000100000000FFFFFFFF
+mh 0000000080000000 * FFFFFFFF00000000 = 00000000800000000000000080000000
+mh 000000007FFFFFFF * FFFFFFFF00000000 = 0000000080000001000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+mh 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+mlg 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * FFFFFFFF00000000 = 0000000000000000FFFFFFFF00000000
+mlg 000000000000FFFF * FFFFFFFF00000000 = 000000000000FFFEFFFF000100000000
+mlg 0000000000007FFF * FFFFFFFF00000000 = 0000000000007FFEFFFF800100000000
+mlg 0000000000008000 * FFFFFFFF00000000 = 0000000000007FFFFFFF800000000000
+mlg 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000FFFFFFFE0000000100000000
+mlg 0000000080000000 * FFFFFFFF00000000 = 000000007FFFFFFF8000000000000000
+mlg 000000007FFFFFFF * FFFFFFFF00000000 = 000000007FFFFFFE8000000100000000
+mlg FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFEFFFFFFFF0000000100000000
+mlg 8000000000000000 * FFFFFFFF00000000 = 7FFFFFFF800000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF7FFFFFFF0000000100000000
+mlgr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * FFFFFFFF00000000 = 0000000000000000FFFFFFFF00000000
+mlgr 000000000000FFFF * FFFFFFFF00000000 = 000000000000FFFEFFFF000100000000
+mlgr 0000000000007FFF * FFFFFFFF00000000 = 0000000000007FFEFFFF800100000000
+mlgr 0000000000008000 * FFFFFFFF00000000 = 0000000000007FFFFFFF800000000000
+mlgr 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000FFFFFFFE0000000100000000
+mlgr 0000000080000000 * FFFFFFFF00000000 = 000000007FFFFFFF8000000000000000
+mlgr 000000007FFFFFFF * FFFFFFFF00000000 = 000000007FFFFFFE8000000100000000
+mlgr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFEFFFFFFFF0000000100000000
+mlgr 8000000000000000 * FFFFFFFF00000000 = 7FFFFFFF800000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF7FFFFFFF0000000100000000
+ml 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+ml 0000000000000001 * FFFFFFFF00000000 = 000000000000000000000000FFFFFFFF
+ml 000000000000FFFF * FFFFFFFF00000000 = 000000000000FFFE00000000FFFF0001
+ml 0000000000007FFF * FFFFFFFF00000000 = 0000000000007FFE00000000FFFF8001
+ml 0000000000008000 * FFFFFFFF00000000 = 0000000000007FFF00000000FFFF8000
+ml 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000FFFFFFFE0000000000000001
+ml 0000000080000000 * FFFFFFFF00000000 = 000000007FFFFFFF0000000080000000
+ml 000000007FFFFFFF * FFFFFFFF00000000 = 000000007FFFFFFE0000000080000001
+ml FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFFFFFFFFFEFFFFFFFF00000001
+ml 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFFFFFFFFFE7FFFFFFF00000001
+mlr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 000000000000FFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000007FFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000000008000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr 000000007FFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000000
+mlr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000000
+mlr 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000000
+ms 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+ms 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF0000000000000001
+ms 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFF0001000000000000FFFF
+ms 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFF80010000000000007FFF
+ms 0000000000008000 * FFFFFFFF00000000 = 00000000FFFF80000000000000008000
+ms 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000100000000FFFFFFFF
+ms 0000000080000000 * FFFFFFFF00000000 = 00000000800000000000000080000000
+ms 000000007FFFFFFF * FFFFFFFF00000000 = 0000000080000001000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+ms 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msr 0000000000000001 * FFFFFFFF00000000 = 00000000000000000000000000000001
+msr 000000000000FFFF * FFFFFFFF00000000 = 0000000000000000000000000000FFFF
+msr 0000000000007FFF * FFFFFFFF00000000 = 00000000000000000000000000007FFF
+msr 0000000000008000 * FFFFFFFF00000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000000000000FFFFFFFF
+msr 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * FFFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msg 0000000000000001 * FFFFFFFF00000000 = FFFFFFFF000000000000000000000001
+msg 000000000000FFFF * FFFFFFFF00000000 = FFFF000100000000000000000000FFFF
+msg 0000000000007FFF * FFFFFFFF00000000 = FFFF8001000000000000000000007FFF
+msg 0000000000008000 * FFFFFFFF00000000 = FFFF8000000000000000000000008000
+msg 00000000FFFFFFFF * FFFFFFFF00000000 = 000000010000000000000000FFFFFFFF
+msg 0000000080000000 * FFFFFFFF00000000 = 80000000000000000000000080000000
+msg 000000007FFFFFFF * FFFFFFFF00000000 = 8000000100000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = 0000000100000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * FFFFFFFF00000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 00000001000000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * FFFFFFFF00000000 = FFFFFFFF000000000000000000000001
+msgr 000000000000FFFF * FFFFFFFF00000000 = FFFF000100000000000000000000FFFF
+msgr 0000000000007FFF * FFFFFFFF00000000 = FFFF8001000000000000000000007FFF
+msgr 0000000000008000 * FFFFFFFF00000000 = FFFF8000000000000000000000008000
+msgr 00000000FFFFFFFF * FFFFFFFF00000000 = 000000010000000000000000FFFFFFFF
+msgr 0000000080000000 * FFFFFFFF00000000 = 80000000000000000000000080000000
+msgr 000000007FFFFFFF * FFFFFFFF00000000 = 8000000100000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = 0000000100000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * FFFFFFFF00000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 00000001000000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * FFFFFFFF00000000 = FFFFFFFFFFFFFFFF0000000000000001
+msgf 000000000000FFFF * FFFFFFFF00000000 = FFFFFFFFFFFF0001000000000000FFFF
+msgf 0000000000007FFF * FFFFFFFF00000000 = FFFFFFFFFFFF80010000000000007FFF
+msgf 0000000000008000 * FFFFFFFF00000000 = FFFFFFFFFFFF80000000000000008000
+msgf 00000000FFFFFFFF * FFFFFFFF00000000 = FFFFFFFF0000000100000000FFFFFFFF
+msgf 0000000080000000 * FFFFFFFF00000000 = FFFFFFFF800000000000000080000000
+msgf 000000007FFFFFFF * FFFFFFFF00000000 = FFFFFFFF80000001000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = 0000000000000001FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 80000000000000017FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * FFFFFFFF00000000 = 00000000000000000000000000000001
+msgfr 000000000000FFFF * FFFFFFFF00000000 = 0000000000000000000000000000FFFF
+msgfr 0000000000007FFF * FFFFFFFF00000000 = 00000000000000000000000000007FFF
+msgfr 0000000000008000 * FFFFFFFF00000000 = 00000000000000000000000000008000
+msgfr 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000000000000FFFFFFFF
+msgfr 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000080000000
+msgfr 000000007FFFFFFF * FFFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * FFFFFFFF00000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 00000000000000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+msy 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF0000000000000001
+msy 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFF0001000000000000FFFF
+msy 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFF80010000000000007FFF
+msy 0000000000008000 * FFFFFFFF00000000 = 00000000FFFF80000000000000008000
+msy 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000100000000FFFFFFFF
+msy 0000000080000000 * FFFFFFFF00000000 = 00000000800000000000000080000000
+msy 000000007FFFFFFF * FFFFFFFF00000000 = 0000000080000001000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msy 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+m 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+m 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000000
+m 000000000000FFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+m 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000000000
+m 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+m 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+m 000000007FFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mr 0000000000000001 * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mr 000000000000FFFF * 000000007FFFFFFF = 0000000000007FFF000000007FFF0001
+mr 0000000000007FFF * 000000007FFFFFFF = 0000000000003FFF000000007FFF8001
+mr 0000000000008000 * 000000007FFFFFFF = 0000000000003FFF00000000FFFF8000
+mr 00000000FFFFFFFF * 000000007FFFFFFF = 00000000FFFFFFFF0000000080000001
+mr 0000000080000000 * 000000007FFFFFFF = 00000000C00000000000000080000000
+mr 000000007FFFFFFF * 000000007FFFFFFF = 000000003FFFFFFF0000000000000001
+mr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFFFFFFFFFFFFFFFFFF80000001
+mr 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFFFFFFFFFF7FFFFFFF80000001
+mh 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mh 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000001
+mh 000000000000FFFF * 000000007FFFFFFF = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000007FFF
+mh 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 000000007FFFFFFF = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mlg 000000000000FFFF * 000000007FFFFFFF = 000000000000000000007FFF7FFF0001
+mlg 0000000000007FFF * 000000007FFFFFFF = 000000000000000000003FFF7FFF8001
+mlg 0000000000008000 * 000000007FFFFFFF = 000000000000000000003FFFFFFF8000
+mlg 00000000FFFFFFFF * 000000007FFFFFFF = 00000000000000007FFFFFFE80000001
+mlg 0000000080000000 * 000000007FFFFFFF = 00000000000000003FFFFFFF80000000
+mlg 000000007FFFFFFF * 000000007FFFFFFF = 00000000000000003FFFFFFF00000001
+mlg FFFFFFFFFFFFFFFF * 000000007FFFFFFF = 000000007FFFFFFEFFFFFFFF80000001
+mlg 8000000000000000 * 000000007FFFFFFF = 000000003FFFFFFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 000000003FFFFFFF7FFFFFFF80000001
+mlgr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mlgr 000000000000FFFF * 000000007FFFFFFF = 000000000000000000007FFF7FFF0001
+mlgr 0000000000007FFF * 000000007FFFFFFF = 000000000000000000003FFF7FFF8001
+mlgr 0000000000008000 * 000000007FFFFFFF = 000000000000000000003FFFFFFF8000
+mlgr 00000000FFFFFFFF * 000000007FFFFFFF = 00000000000000007FFFFFFE80000001
+mlgr 0000000080000000 * 000000007FFFFFFF = 00000000000000003FFFFFFF80000000
+mlgr 000000007FFFFFFF * 000000007FFFFFFF = 00000000000000003FFFFFFF00000001
+mlgr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = 000000007FFFFFFEFFFFFFFF80000001
+mlgr 8000000000000000 * 000000007FFFFFFF = 000000003FFFFFFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 000000003FFFFFFF7FFFFFFF80000001
+ml 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 000000000000FFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mlr 000000000000FFFF * 000000007FFFFFFF = 0000000000007FFF000000007FFF0001
+mlr 0000000000007FFF * 000000007FFFFFFF = 0000000000003FFF000000007FFF8001
+mlr 0000000000008000 * 000000007FFFFFFF = 0000000000003FFF00000000FFFF8000
+mlr 00000000FFFFFFFF * 000000007FFFFFFF = 000000007FFFFFFE0000000080000001
+mlr 0000000080000000 * 000000007FFFFFFF = 000000003FFFFFFF0000000080000000
+mlr 000000007FFFFFFF * 000000007FFFFFFF = 000000003FFFFFFF0000000000000001
+mlr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF7FFFFFFEFFFFFFFF80000001
+mlr 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF7FFFFFFE7FFFFFFF80000001
+ms 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+ms 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000001
+ms 000000000000FFFF * 000000007FFFFFFF = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000007FFF
+ms 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 000000007FFFFFFF = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msr 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msr 000000000000FFFF * 000000007FFFFFFF = 000000007FFF0001000000000000FFFF
+msr 0000000000007FFF * 000000007FFFFFFF = 000000007FFF80010000000000007FFF
+msr 0000000000008000 * 000000007FFFFFFF = 00000000FFFF80000000000000008000
+msr 00000000FFFFFFFF * 000000007FFFFFFF = 000000008000000100000000FFFFFFFF
+msr 0000000080000000 * 000000007FFFFFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msg 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msg 000000000000FFFF * 000000007FFFFFFF = 00007FFF7FFF0001000000000000FFFF
+msg 0000000000007FFF * 000000007FFFFFFF = 00003FFF7FFF80010000000000007FFF
+msg 0000000000008000 * 000000007FFFFFFF = 00003FFFFFFF80000000000000008000
+msg 00000000FFFFFFFF * 000000007FFFFFFF = 7FFFFFFE8000000100000000FFFFFFFF
+msg 0000000080000000 * 000000007FFFFFFF = 3FFFFFFF800000000000000080000000
+msg 000000007FFFFFFF * 000000007FFFFFFF = 3FFFFFFF00000001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msgr 000000000000FFFF * 000000007FFFFFFF = 00007FFF7FFF0001000000000000FFFF
+msgr 0000000000007FFF * 000000007FFFFFFF = 00003FFF7FFF80010000000000007FFF
+msgr 0000000000008000 * 000000007FFFFFFF = 00003FFFFFFF80000000000000008000
+msgr 00000000FFFFFFFF * 000000007FFFFFFF = 7FFFFFFE8000000100000000FFFFFFFF
+msgr 0000000080000000 * 000000007FFFFFFF = 3FFFFFFF800000000000000080000000
+msgr 000000007FFFFFFF * 000000007FFFFFFF = 3FFFFFFF00000001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000001
+msgf 000000000000FFFF * 000000007FFFFFFF = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 000000007FFFFFFF = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 000000007FFFFFFF = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 000000007FFFFFFF = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msgfr 000000000000FFFF * 000000007FFFFFFF = 00007FFF7FFF0001000000000000FFFF
+msgfr 0000000000007FFF * 000000007FFFFFFF = 00003FFF7FFF80010000000000007FFF
+msgfr 0000000000008000 * 000000007FFFFFFF = 00003FFFFFFF80000000000000008000
+msgfr 00000000FFFFFFFF * 000000007FFFFFFF = 7FFFFFFE8000000100000000FFFFFFFF
+msgfr 0000000080000000 * 000000007FFFFFFF = 3FFFFFFF800000000000000080000000
+msgfr 000000007FFFFFFF * 000000007FFFFFFF = 3FFFFFFF00000001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msy 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000001
+msy 000000000000FFFF * 000000007FFFFFFF = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000007FFF
+msy 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 000000007FFFFFFF = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+m 0000000000000001 * 0000000080000000 = 00000000000000000000000000000000
+m 000000000000FFFF * 0000000080000000 = 00000000000000000000000000000000
+m 0000000000007FFF * 0000000080000000 = 00000000000000000000000000000000
+m 0000000000008000 * 0000000080000000 = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+m 0000000080000000 * 0000000080000000 = 00000000000000000000000000000000
+m 000000007FFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mr 0000000000000001 * 0000000080000000 = 00000000FFFFFFFF0000000080000000
+mr 000000000000FFFF * 0000000080000000 = 00000000FFFF80000000000080000000
+mr 0000000000007FFF * 0000000080000000 = 00000000FFFFC0000000000080000000
+mr 0000000000008000 * 0000000080000000 = 00000000FFFFC0000000000000000000
+mr 00000000FFFFFFFF * 0000000080000000 = 00000000000000000000000080000000
+mr 0000000080000000 * 0000000080000000 = 00000000400000000000000000000000
+mr 000000007FFFFFFF * 0000000080000000 = 00000000C00000000000000080000000
+mr FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFF80000000
+mr 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFF80000000
+mh 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mh 0000000000000001 * 0000000080000000 = 00000000000000000000000000000001
+mh 000000000000FFFF * 0000000080000000 = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 0000000080000000 = 00000000000000000000000000007FFF
+mh 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 0000000080000000 = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 0000000080000000 = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 0000000080000000 = 00000000000000000000000080000000
+mlg 000000000000FFFF * 0000000080000000 = 000000000000000000007FFF80000000
+mlg 0000000000007FFF * 0000000080000000 = 000000000000000000003FFF80000000
+mlg 0000000000008000 * 0000000080000000 = 00000000000000000000400000000000
+mlg 00000000FFFFFFFF * 0000000080000000 = 00000000000000007FFFFFFF80000000
+mlg 0000000080000000 * 0000000080000000 = 00000000000000004000000000000000
+mlg 000000007FFFFFFF * 0000000080000000 = 00000000000000003FFFFFFF80000000
+mlg FFFFFFFFFFFFFFFF * 0000000080000000 = 000000007FFFFFFFFFFFFFFF80000000
+mlg 8000000000000000 * 0000000080000000 = 00000000400000000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 0000000080000000 = 000000003FFFFFFFFFFFFFFF80000000
+mlgr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 0000000080000000 = 00000000000000000000000080000000
+mlgr 000000000000FFFF * 0000000080000000 = 000000000000000000007FFF80000000
+mlgr 0000000000007FFF * 0000000080000000 = 000000000000000000003FFF80000000
+mlgr 0000000000008000 * 0000000080000000 = 00000000000000000000400000000000
+mlgr 00000000FFFFFFFF * 0000000080000000 = 00000000000000007FFFFFFF80000000
+mlgr 0000000080000000 * 0000000080000000 = 00000000000000004000000000000000
+mlgr 000000007FFFFFFF * 0000000080000000 = 00000000000000003FFFFFFF80000000
+mlgr FFFFFFFFFFFFFFFF * 0000000080000000 = 000000007FFFFFFFFFFFFFFF80000000
+mlgr 8000000000000000 * 0000000080000000 = 00000000400000000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 0000000080000000 = 000000003FFFFFFFFFFFFFFF80000000
+ml 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+ml 0000000000000001 * 0000000080000000 = 00000000000000000000000000000000
+ml 000000000000FFFF * 0000000080000000 = 00000000000000000000000000000000
+ml 0000000000007FFF * 0000000080000000 = 00000000000000000000000000000000
+ml 0000000000008000 * 0000000080000000 = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+ml 0000000080000000 * 0000000080000000 = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 0000000080000000 = 00000000000000000000000080000000
+mlr 000000000000FFFF * 0000000080000000 = 0000000000007FFF0000000080000000
+mlr 0000000000007FFF * 0000000080000000 = 0000000000003FFF0000000080000000
+mlr 0000000000008000 * 0000000080000000 = 00000000000040000000000000000000
+mlr 00000000FFFFFFFF * 0000000080000000 = 000000007FFFFFFF0000000080000000
+mlr 0000000080000000 * 0000000080000000 = 00000000400000000000000000000000
+mlr 000000007FFFFFFF * 0000000080000000 = 000000003FFFFFFF0000000080000000
+mlr FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF7FFFFFFFFFFFFFFF80000000
+mlr 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF7FFFFFFF7FFFFFFF80000000
+ms 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+ms 0000000000000001 * 0000000080000000 = 00000000000000000000000000000001
+ms 000000000000FFFF * 0000000080000000 = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 0000000080000000 = 00000000000000000000000000007FFF
+ms 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 0000000080000000 = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 0000000080000000 = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msr 0000000000000001 * 0000000080000000 = 00000000800000000000000000000001
+msr 000000000000FFFF * 0000000080000000 = 0000000080000000000000000000FFFF
+msr 0000000000007FFF * 0000000080000000 = 00000000800000000000000000007FFF
+msr 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+msr 00000000FFFFFFFF * 0000000080000000 = 000000008000000000000000FFFFFFFF
+msr 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 0000000080000000 = 0000000080000000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msg 0000000000000001 * 0000000080000000 = 00000000800000000000000000000001
+msg 000000000000FFFF * 0000000080000000 = 00007FFF80000000000000000000FFFF
+msg 0000000000007FFF * 0000000080000000 = 00003FFF800000000000000000007FFF
+msg 0000000000008000 * 0000000080000000 = 00004000000000000000000000008000
+msg 00000000FFFFFFFF * 0000000080000000 = 7FFFFFFF8000000000000000FFFFFFFF
+msg 0000000080000000 * 0000000080000000 = 40000000000000000000000080000000
+msg 000000007FFFFFFF * 0000000080000000 = 3FFFFFFF80000000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 0000000080000000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF800000007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 0000000080000000 = 00000000800000000000000000000001
+msgr 000000000000FFFF * 0000000080000000 = 00007FFF80000000000000000000FFFF
+msgr 0000000000007FFF * 0000000080000000 = 00003FFF800000000000000000007FFF
+msgr 0000000000008000 * 0000000080000000 = 00004000000000000000000000008000
+msgr 00000000FFFFFFFF * 0000000080000000 = 7FFFFFFF8000000000000000FFFFFFFF
+msgr 0000000080000000 * 0000000080000000 = 40000000000000000000000080000000
+msgr 000000007FFFFFFF * 0000000080000000 = 3FFFFFFF80000000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 0000000080000000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF800000007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 0000000080000000 = 00000000000000000000000000000001
+msgf 000000000000FFFF * 0000000080000000 = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 0000000080000000 = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 0000000080000000 = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 0000000080000000 = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 0000000080000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 0000000080000000 = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 0000000080000000 = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 0000000080000000 = FFFFFFFF800000000000000000000001
+msgfr 000000000000FFFF * 0000000080000000 = FFFF800080000000000000000000FFFF
+msgfr 0000000000007FFF * 0000000080000000 = FFFFC000800000000000000000007FFF
+msgfr 0000000000008000 * 0000000080000000 = FFFFC000000000000000000000008000
+msgfr 00000000FFFFFFFF * 0000000080000000 = 800000008000000000000000FFFFFFFF
+msgfr 0000000080000000 * 0000000080000000 = C0000000000000000000000080000000
+msgfr 000000007FFFFFFF * 0000000080000000 = C000000080000000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 0000000080000000 = 0000000080000000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 0000000080000000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 0000000080000000 = 00000000800000007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+msy 0000000000000001 * 0000000080000000 = 00000000000000000000000000000001
+msy 000000000000FFFF * 0000000080000000 = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 0000000080000000 = 00000000000000000000000000007FFF
+msy 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 0000000080000000 = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 0000000080000000 = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 000000000000FFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+m 000000007FFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mr 0000000000000001 * 00000000FFFFFFFF = 00000000FFFFFFFF00000000FFFFFFFF
+mr 000000000000FFFF * 00000000FFFFFFFF = 00000000FFFFFFFF00000000FFFF0001
+mr 0000000000007FFF * 00000000FFFFFFFF = 00000000FFFFFFFF00000000FFFF8001
+mr 0000000000008000 * 00000000FFFFFFFF = 00000000FFFFFFFF00000000FFFF8000
+mr 00000000FFFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000001
+mr 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+mr 000000007FFFFFFF * 00000000FFFFFFFF = 00000000FFFFFFFF0000000080000001
+mr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFF00000001
+mr 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFF00000001
+mh 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mh 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000001
+mh 000000000000FFFF * 00000000FFFFFFFF = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000007FFF
+mh 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 00000000FFFFFFFF = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+mlg 000000000000FFFF * 00000000FFFFFFFF = 00000000000000000000FFFEFFFF0001
+mlg 0000000000007FFF * 00000000FFFFFFFF = 000000000000000000007FFEFFFF8001
+mlg 0000000000008000 * 00000000FFFFFFFF = 000000000000000000007FFFFFFF8000
+mlg 00000000FFFFFFFF * 00000000FFFFFFFF = 0000000000000000FFFFFFFE00000001
+mlg 0000000080000000 * 00000000FFFFFFFF = 00000000000000007FFFFFFF80000000
+mlg 000000007FFFFFFF * 00000000FFFFFFFF = 00000000000000007FFFFFFE80000001
+mlg FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = 00000000FFFFFFFEFFFFFFFF00000001
+mlg 8000000000000000 * 00000000FFFFFFFF = 000000007FFFFFFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 000000007FFFFFFF7FFFFFFF00000001
+mlgr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+mlgr 000000000000FFFF * 00000000FFFFFFFF = 00000000000000000000FFFEFFFF0001
+mlgr 0000000000007FFF * 00000000FFFFFFFF = 000000000000000000007FFEFFFF8001
+mlgr 0000000000008000 * 00000000FFFFFFFF = 000000000000000000007FFFFFFF8000
+mlgr 00000000FFFFFFFF * 00000000FFFFFFFF = 0000000000000000FFFFFFFE00000001
+mlgr 0000000080000000 * 00000000FFFFFFFF = 00000000000000007FFFFFFF80000000
+mlgr 000000007FFFFFFF * 00000000FFFFFFFF = 00000000000000007FFFFFFE80000001
+mlgr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = 00000000FFFFFFFEFFFFFFFF00000001
+mlgr 8000000000000000 * 00000000FFFFFFFF = 000000007FFFFFFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 000000007FFFFFFF7FFFFFFF00000001
+ml 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 000000000000FFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+mlr 000000000000FFFF * 00000000FFFFFFFF = 000000000000FFFE00000000FFFF0001
+mlr 0000000000007FFF * 00000000FFFFFFFF = 0000000000007FFE00000000FFFF8001
+mlr 0000000000008000 * 00000000FFFFFFFF = 0000000000007FFF00000000FFFF8000
+mlr 00000000FFFFFFFF * 00000000FFFFFFFF = 00000000FFFFFFFE0000000000000001
+mlr 0000000080000000 * 00000000FFFFFFFF = 000000007FFFFFFF0000000080000000
+mlr 000000007FFFFFFF * 00000000FFFFFFFF = 000000007FFFFFFE0000000080000001
+mlr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFFFFFFFFFEFFFFFFFF00000001
+mlr 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFFFFFFFFFE7FFFFFFF00000001
+ms 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+ms 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000001
+ms 000000000000FFFF * 00000000FFFFFFFF = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000007FFF
+ms 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 00000000FFFFFFFF = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msr 0000000000000001 * 00000000FFFFFFFF = 00000000FFFFFFFF0000000000000001
+msr 000000000000FFFF * 00000000FFFFFFFF = 00000000FFFF0001000000000000FFFF
+msr 0000000000007FFF * 00000000FFFFFFFF = 00000000FFFF80010000000000007FFF
+msr 0000000000008000 * 00000000FFFFFFFF = 00000000FFFF80000000000000008000
+msr 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000100000000FFFFFFFF
+msr 0000000080000000 * 00000000FFFFFFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 00000000FFFFFFFF = 0000000080000001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msg 0000000000000001 * 00000000FFFFFFFF = 00000000FFFFFFFF0000000000000001
+msg 000000000000FFFF * 00000000FFFFFFFF = 0000FFFEFFFF0001000000000000FFFF
+msg 0000000000007FFF * 00000000FFFFFFFF = 00007FFEFFFF80010000000000007FFF
+msg 0000000000008000 * 00000000FFFFFFFF = 00007FFFFFFF80000000000000008000
+msg 00000000FFFFFFFF * 00000000FFFFFFFF = FFFFFFFE0000000100000000FFFFFFFF
+msg 0000000080000000 * 00000000FFFFFFFF = 7FFFFFFF800000000000000080000000
+msg 000000007FFFFFFF * 00000000FFFFFFFF = 7FFFFFFE80000001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 00000000FFFFFFFF = 00000000FFFFFFFF0000000000000001
+msgr 000000000000FFFF * 00000000FFFFFFFF = 0000FFFEFFFF0001000000000000FFFF
+msgr 0000000000007FFF * 00000000FFFFFFFF = 00007FFEFFFF80010000000000007FFF
+msgr 0000000000008000 * 00000000FFFFFFFF = 00007FFFFFFF80000000000000008000
+msgr 00000000FFFFFFFF * 00000000FFFFFFFF = FFFFFFFE0000000100000000FFFFFFFF
+msgr 0000000080000000 * 00000000FFFFFFFF = 7FFFFFFF800000000000000080000000
+msgr 000000007FFFFFFF * 00000000FFFFFFFF = 7FFFFFFE80000001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000001
+msgf 000000000000FFFF * 00000000FFFFFFFF = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 00000000FFFFFFFF = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 00000000FFFFFFFF = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 00000000FFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgfr 000000000000FFFF * 00000000FFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgfr 0000000000007FFF * 00000000FFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgfr 0000000000008000 * 00000000FFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgfr 00000000FFFFFFFF * 00000000FFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgfr 0000000080000000 * 00000000FFFFFFFF = FFFFFFFF800000000000000080000000
+msgfr 000000007FFFFFFF * 00000000FFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+msy 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000001
+msy 000000000000FFFF * 00000000FFFFFFFF = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000007FFF
+msy 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 00000000FFFFFFFF = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+m 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+m 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mr 00000000FFFFFFFF * 000000000000FFFF = 00000000FFFFFFFF00000000FFFF0001
+mr 0000000080000000 * 000000000000FFFF = 00000000FFFF80000000000080000000
+mr 000000007FFFFFFF * 000000000000FFFF = 0000000000007FFF000000007FFF0001
+mr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFFFFFFFFFFFFFFFFFF0001
+mr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFFFFFF7FFFFFFFFFFF0001
+mh 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mh 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+mh 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+mh 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlg 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlg 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlg 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlg 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000FFFEFFFF0001
+mlg 0000000080000000 * 000000000000FFFF = 000000000000000000007FFF80000000
+mlg 000000007FFFFFFF * 000000000000FFFF = 000000000000000000007FFF7FFF0001
+mlg FFFFFFFFFFFFFFFF * 000000000000FFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlg 8000000000000000 * 000000000000FFFF = 0000000000007FFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000007FFF7FFFFFFFFFFF0001
+mlgr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlgr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlgr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlgr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlgr 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000FFFEFFFF0001
+mlgr 0000000080000000 * 000000000000FFFF = 000000000000000000007FFF80000000
+mlgr 000000007FFFFFFF * 000000000000FFFF = 000000000000000000007FFF7FFF0001
+mlgr FFFFFFFFFFFFFFFF * 000000000000FFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlgr 8000000000000000 * 000000000000FFFF = 0000000000007FFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000007FFF7FFFFFFFFFFF0001
+ml 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+ml 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlr 00000000FFFFFFFF * 000000000000FFFF = 000000000000FFFE00000000FFFF0001
+mlr 0000000080000000 * 000000000000FFFF = 0000000000007FFF0000000080000000
+mlr 000000007FFFFFFF * 000000000000FFFF = 0000000000007FFF000000007FFF0001
+mlr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF0000FFFEFFFFFFFFFFFF0001
+mlr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF0000FFFE7FFFFFFFFFFF0001
+ms 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+ms 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+ms 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+ms 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msr 00000000FFFFFFFF * 000000000000FFFF = 00000000FFFF000100000000FFFFFFFF
+msr 0000000080000000 * 000000000000FFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 000000000000FFFF = 000000007FFF0001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msg 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msg 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msg 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msg 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msg 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msg 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msg 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msgr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msgr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msgr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msgr 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msgr 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msgr 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+msgf 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 000000000000FFFF = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 000000000000FFFF = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msgfr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msgfr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msgfr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msgfr 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msgfr 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msgfr 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+msy 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+msy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+m 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000000
+m 000000000000FFFF * 0000000000007FFF = 00000000000000000000000000000000
+m 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000000000
+m 0000000000008000 * 0000000000007FFF = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+m 0000000080000000 * 0000000000007FFF = 00000000000000000000000000000000
+m 000000007FFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mr 0000000000000001 * 0000000000007FFF = 00000000000000000000000000007FFF
+mr 000000000000FFFF * 0000000000007FFF = 0000000000000000000000007FFE8001
+mr 0000000000007FFF * 0000000000007FFF = 0000000000000000000000003FFF0001
+mr 0000000000008000 * 0000000000007FFF = 0000000000000000000000003FFF8000
+mr 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFFFFFF00000000FFFF8001
+mr 0000000080000000 * 0000000000007FFF = 00000000FFFFC0000000000080000000
+mr 000000007FFFFFFF * 0000000000007FFF = 0000000000003FFF000000007FFF8001
+mr FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFFFFFFFFFFFFFFFFFF8001
+mr 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFFFFFF7FFFFFFFFFFF8001
+mh 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mh 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000001
+mh 000000000000FFFF * 0000000000007FFF = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000007FFF
+mh 0000000000008000 * 0000000000007FFF = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 0000000000007FFF = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 0000000000007FFF = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 0000000000007FFF = 00000000000000000000000000007FFF
+mlg 000000000000FFFF * 0000000000007FFF = 0000000000000000000000007FFE8001
+mlg 0000000000007FFF * 0000000000007FFF = 0000000000000000000000003FFF0001
+mlg 0000000000008000 * 0000000000007FFF = 0000000000000000000000003FFF8000
+mlg 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000007FFEFFFF8001
+mlg 0000000080000000 * 0000000000007FFF = 000000000000000000003FFF80000000
+mlg 000000007FFFFFFF * 0000000000007FFF = 000000000000000000003FFF7FFF8001
+mlg FFFFFFFFFFFFFFFF * 0000000000007FFF = 0000000000007FFEFFFFFFFFFFFF8001
+mlg 8000000000000000 * 0000000000007FFF = 0000000000003FFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 0000000000007FFF = 0000000000003FFF7FFFFFFFFFFF8001
+mlgr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 0000000000007FFF = 00000000000000000000000000007FFF
+mlgr 000000000000FFFF * 0000000000007FFF = 0000000000000000000000007FFE8001
+mlgr 0000000000007FFF * 0000000000007FFF = 0000000000000000000000003FFF0001
+mlgr 0000000000008000 * 0000000000007FFF = 0000000000000000000000003FFF8000
+mlgr 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000007FFEFFFF8001
+mlgr 0000000080000000 * 0000000000007FFF = 000000000000000000003FFF80000000
+mlgr 000000007FFFFFFF * 0000000000007FFF = 000000000000000000003FFF7FFF8001
+mlgr FFFFFFFFFFFFFFFF * 0000000000007FFF = 0000000000007FFEFFFFFFFFFFFF8001
+mlgr 8000000000000000 * 0000000000007FFF = 0000000000003FFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 0000000000003FFF7FFFFFFFFFFF8001
+ml 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+ml 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000000
+ml 000000000000FFFF * 0000000000007FFF = 00000000000000000000000000000000
+ml 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000000000
+ml 0000000000008000 * 0000000000007FFF = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+ml 0000000080000000 * 0000000000007FFF = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 0000000000007FFF = 00000000000000000000000000007FFF
+mlr 000000000000FFFF * 0000000000007FFF = 0000000000000000000000007FFE8001
+mlr 0000000000007FFF * 0000000000007FFF = 0000000000000000000000003FFF0001
+mlr 0000000000008000 * 0000000000007FFF = 0000000000000000000000003FFF8000
+mlr 00000000FFFFFFFF * 0000000000007FFF = 0000000000007FFE00000000FFFF8001
+mlr 0000000080000000 * 0000000000007FFF = 0000000000003FFF0000000080000000
+mlr 000000007FFFFFFF * 0000000000007FFF = 0000000000003FFF000000007FFF8001
+mlr FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00007FFEFFFFFFFFFFFF8001
+mlr 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF00007FFE7FFFFFFFFFFF8001
+ms 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+ms 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000001
+ms 000000000000FFFF * 0000000000007FFF = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000007FFF
+ms 0000000000008000 * 0000000000007FFF = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 0000000000007FFF = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 0000000000007FFF = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msr 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msr 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msr 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msr 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msr 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFF800100000000FFFFFFFF
+msr 0000000080000000 * 0000000000007FFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 0000000000007FFF = 000000007FFF8001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msg 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msg 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msg 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msg 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msg 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msg 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msg 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msgr 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msgr 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msgr 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msgr 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msgr 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msgr 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000001
+msgf 000000000000FFFF * 0000000000007FFF = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 0000000000007FFF = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 0000000000007FFF = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 0000000000007FFF = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 0000000000007FFF = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 0000000000007FFF = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 0000000000007FFF = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msgfr 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msgfr 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msgfr 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msgfr 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msgfr 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msgfr 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msy 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000001
+msy 000000000000FFFF * 0000000000007FFF = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000007FFF
+msy 0000000000008000 * 0000000000007FFF = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 0000000000007FFF = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 0000000000007FFF = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+m 0000000000000001 * 0000000000008000 = 00000000000000000000000000000000
+m 000000000000FFFF * 0000000000008000 = 00000000000000000000000000000000
+m 0000000000007FFF * 0000000000008000 = 00000000000000000000000000000000
+m 0000000000008000 * 0000000000008000 = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+m 0000000080000000 * 0000000000008000 = 00000000000000000000000000000000
+m 000000007FFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mr 0000000000000001 * 0000000000008000 = 00000000000000000000000000008000
+mr 000000000000FFFF * 0000000000008000 = 0000000000000000000000007FFF8000
+mr 0000000000007FFF * 0000000000008000 = 0000000000000000000000003FFF8000
+mr 0000000000008000 * 0000000000008000 = 00000000000000000000000040000000
+mr 00000000FFFFFFFF * 0000000000008000 = 00000000FFFFFFFF00000000FFFF8000
+mr 0000000080000000 * 0000000000008000 = 00000000FFFFC0000000000000000000
+mr 000000007FFFFFFF * 0000000000008000 = 0000000000003FFF00000000FFFF8000
+mr FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
+mr 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFFFFFFFFFF7FFFFFFFFFFF8000
+mh 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mh 0000000000000001 * 0000000000008000 = 00000000000000000000000000000001
+mh 000000000000FFFF * 0000000000008000 = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 0000000000008000 = 00000000000000000000000000007FFF
+mh 0000000000008000 * 0000000000008000 = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 0000000000008000 = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 0000000000008000 = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mlg 0000000000000001 * 0000000000008000 = 00000000000000000000000000008000
+mlg 000000000000FFFF * 0000000000008000 = 0000000000000000000000007FFF8000
+mlg 0000000000007FFF * 0000000000008000 = 0000000000000000000000003FFF8000
+mlg 0000000000008000 * 0000000000008000 = 00000000000000000000000040000000
+mlg 00000000FFFFFFFF * 0000000000008000 = 000000000000000000007FFFFFFF8000
+mlg 0000000080000000 * 0000000000008000 = 00000000000000000000400000000000
+mlg 000000007FFFFFFF * 0000000000008000 = 000000000000000000003FFFFFFF8000
+mlg FFFFFFFFFFFFFFFF * 0000000000008000 = 0000000000007FFFFFFFFFFFFFFF8000
+mlg 8000000000000000 * 0000000000008000 = 00000000000040000000000000000000
+mlg 7FFFFFFFFFFFFFFF * 0000000000008000 = 0000000000003FFFFFFFFFFFFFFF8000
+mlgr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mlgr 0000000000000001 * 0000000000008000 = 00000000000000000000000000008000
+mlgr 000000000000FFFF * 0000000000008000 = 0000000000000000000000007FFF8000
+mlgr 0000000000007FFF * 0000000000008000 = 0000000000000000000000003FFF8000
+mlgr 0000000000008000 * 0000000000008000 = 00000000000000000000000040000000
+mlgr 00000000FFFFFFFF * 0000000000008000 = 000000000000000000007FFFFFFF8000
+mlgr 0000000080000000 * 0000000000008000 = 00000000000000000000400000000000
+mlgr 000000007FFFFFFF * 0000000000008000 = 000000000000000000003FFFFFFF8000
+mlgr FFFFFFFFFFFFFFFF * 0000000000008000 = 0000000000007FFFFFFFFFFFFFFF8000
+mlgr 8000000000000000 * 0000000000008000 = 00000000000040000000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 0000000000008000 = 0000000000003FFFFFFFFFFFFFFF8000
+ml 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+ml 0000000000000001 * 0000000000008000 = 00000000000000000000000000000000
+ml 000000000000FFFF * 0000000000008000 = 00000000000000000000000000000000
+ml 0000000000007FFF * 0000000000008000 = 00000000000000000000000000000000
+ml 0000000000008000 * 0000000000008000 = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+ml 0000000080000000 * 0000000000008000 = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mlr 0000000000000001 * 0000000000008000 = 00000000000000000000000000008000
+mlr 000000000000FFFF * 0000000000008000 = 0000000000000000000000007FFF8000
+mlr 0000000000007FFF * 0000000000008000 = 0000000000000000000000003FFF8000
+mlr 0000000000008000 * 0000000000008000 = 00000000000000000000000040000000
+mlr 00000000FFFFFFFF * 0000000000008000 = 0000000000007FFF00000000FFFF8000
+mlr 0000000080000000 * 0000000000008000 = 00000000000040000000000000000000
+mlr 000000007FFFFFFF * 0000000000008000 = 0000000000003FFF00000000FFFF8000
+mlr FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00007FFFFFFFFFFFFFFF8000
+mlr 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF00007FFF7FFFFFFFFFFF8000
+ms 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+ms 0000000000000001 * 0000000000008000 = 00000000000000000000000000000001
+ms 000000000000FFFF * 0000000000008000 = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 0000000000008000 = 00000000000000000000000000007FFF
+ms 0000000000008000 * 0000000000008000 = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 0000000000008000 = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 0000000000008000 = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msr 0000000000000001 * 0000000000008000 = 00000000000080000000000000000001
+msr 000000000000FFFF * 0000000000008000 = 000000007FFF8000000000000000FFFF
+msr 0000000000007FFF * 0000000000008000 = 000000003FFF80000000000000007FFF
+msr 0000000000008000 * 0000000000008000 = 00000000400000000000000000008000
+msr 00000000FFFFFFFF * 0000000000008000 = 00000000FFFF800000000000FFFFFFFF
+msr 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+msr 000000007FFFFFFF * 0000000000008000 = 00000000FFFF8000000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF8000FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFFFFFF80007FFFFFFFFFFFFFFF
+msg 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msg 0000000000000001 * 0000000000008000 = 00000000000080000000000000000001
+msg 000000000000FFFF * 0000000000008000 = 000000007FFF8000000000000000FFFF
+msg 0000000000007FFF * 0000000000008000 = 000000003FFF80000000000000007FFF
+msg 0000000000008000 * 0000000000008000 = 00000000400000000000000000008000
+msg 00000000FFFFFFFF * 0000000000008000 = 00007FFFFFFF800000000000FFFFFFFF
+msg 0000000080000000 * 0000000000008000 = 00004000000000000000000080000000
+msg 000000007FFFFFFF * 0000000000008000 = 00003FFFFFFF8000000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF8000FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 0000000000008000 = 00000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF80007FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msgr 0000000000000001 * 0000000000008000 = 00000000000080000000000000000001
+msgr 000000000000FFFF * 0000000000008000 = 000000007FFF8000000000000000FFFF
+msgr 0000000000007FFF * 0000000000008000 = 000000003FFF80000000000000007FFF
+msgr 0000000000008000 * 0000000000008000 = 00000000400000000000000000008000
+msgr 00000000FFFFFFFF * 0000000000008000 = 00007FFFFFFF800000000000FFFFFFFF
+msgr 0000000080000000 * 0000000000008000 = 00004000000000000000000080000000
+msgr 000000007FFFFFFF * 0000000000008000 = 00003FFFFFFF8000000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF8000FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 0000000000008000 = 00000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF80007FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msgf 0000000000000001 * 0000000000008000 = 00000000000000000000000000000001
+msgf 000000000000FFFF * 0000000000008000 = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 0000000000008000 = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 0000000000008000 = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 0000000000008000 = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 0000000000008000 = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 0000000000008000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 0000000000008000 = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 0000000000008000 = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msgfr 0000000000000001 * 0000000000008000 = 00000000000080000000000000000001
+msgfr 000000000000FFFF * 0000000000008000 = 000000007FFF8000000000000000FFFF
+msgfr 0000000000007FFF * 0000000000008000 = 000000003FFF80000000000000007FFF
+msgfr 0000000000008000 * 0000000000008000 = 00000000400000000000000000008000
+msgfr 00000000FFFFFFFF * 0000000000008000 = 00007FFFFFFF800000000000FFFFFFFF
+msgfr 0000000080000000 * 0000000000008000 = 00004000000000000000000080000000
+msgfr 000000007FFFFFFF * 0000000000008000 = 00003FFFFFFF8000000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF8000FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 0000000000008000 = 00000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFFFFFF80007FFFFFFFFFFFFFFF
+msy 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+msy 0000000000000001 * 0000000000008000 = 00000000000000000000000000000001
+msy 000000000000FFFF * 0000000000008000 = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 0000000000008000 = 00000000000000000000000000007FFF
+msy 0000000000008000 * 0000000000008000 = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 0000000000008000 = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 0000000000008000 = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+m 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+m 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+m 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+m 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+m 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+m FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+m 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+m 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+mr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mr 00000000FFFFFFFF * 000000000000FFFF = 00000000FFFFFFFF00000000FFFF0001
+mr 0000000080000000 * 000000000000FFFF = 00000000FFFF80000000000080000000
+mr 000000007FFFFFFF * 000000000000FFFF = 0000000000007FFF000000007FFF0001
+mr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFFFFFFFFFFFFFFFFFF0001
+mr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFFFFFF7FFFFFFFFFFF0001
+mh 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mh 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+mh 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+mh 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+mh 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+mh 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+mh 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+mh 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+mh FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mh 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mh 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mlg 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlg 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlg 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlg 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlg 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlg 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000FFFEFFFF0001
+mlg 0000000080000000 * 000000000000FFFF = 000000000000000000007FFF80000000
+mlg 000000007FFFFFFF * 000000000000FFFF = 000000000000000000007FFF7FFF0001
+mlg FFFFFFFFFFFFFFFF * 000000000000FFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlg 8000000000000000 * 000000000000FFFF = 0000000000007FFF8000000000000000
+mlg 7FFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000007FFF7FFFFFFFFFFF0001
+mlgr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlgr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlgr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlgr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlgr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlgr 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000FFFEFFFF0001
+mlgr 0000000080000000 * 000000000000FFFF = 000000000000000000007FFF80000000
+mlgr 000000007FFFFFFF * 000000000000FFFF = 000000000000000000007FFF7FFF0001
+mlgr FFFFFFFFFFFFFFFF * 000000000000FFFF = 000000000000FFFEFFFFFFFFFFFF0001
+mlgr 8000000000000000 * 000000000000FFFF = 0000000000007FFF8000000000000000
+mlgr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000007FFF7FFFFFFFFFFF0001
+ml 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+ml 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+ml 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+ml FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+ml 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+ml 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+mlr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mlr 0000000000000001 * 000000000000FFFF = 0000000000000000000000000000FFFF
+mlr 000000000000FFFF * 000000000000FFFF = 000000000000000000000000FFFE0001
+mlr 0000000000007FFF * 000000000000FFFF = 0000000000000000000000007FFE8001
+mlr 0000000000008000 * 000000000000FFFF = 0000000000000000000000007FFF8000
+mlr 00000000FFFFFFFF * 000000000000FFFF = 000000000000FFFE00000000FFFF0001
+mlr 0000000080000000 * 000000000000FFFF = 0000000000007FFF0000000080000000
+mlr 000000007FFFFFFF * 000000000000FFFF = 0000000000007FFF000000007FFF0001
+mlr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF0000FFFEFFFFFFFFFFFF0001
+mlr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mlr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF0000FFFE7FFFFFFFFFFF0001
+ms 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+ms 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+ms 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+ms 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+ms 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+ms 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+ms 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+ms 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+ms FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+ms 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+ms 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msr 00000000FFFFFFFF * 000000000000FFFF = 00000000FFFF000100000000FFFFFFFF
+msr 0000000080000000 * 000000000000FFFF = 00000000800000000000000080000000
+msr 000000007FFFFFFF * 000000000000FFFF = 000000007FFF0001000000007FFFFFFF
+msr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msg 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msg 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msg 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msg 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msg 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msg 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msg 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msg 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msg FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msg 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msg 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msgr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msgr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msgr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msgr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msgr 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msgr 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msgr 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msgr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msgr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msgr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msgf 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgf 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+msgf 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+msgf 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+msgf 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+msgf 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+msgf 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+msgf 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+msgf FFFFFFFFFFFFFFFF * 000000000000FFFF = 0000000000000000FFFFFFFFFFFFFFFF
+msgf 8000000000000000 * 000000000000FFFF = 00000000000000008000000000000000
+msgf 7FFFFFFFFFFFFFFF * 000000000000FFFF = 00000000000000007FFFFFFFFFFFFFFF
+msgfr 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msgfr 0000000000000001 * 000000000000FFFF = 000000000000FFFF0000000000000001
+msgfr 000000000000FFFF * 000000000000FFFF = 00000000FFFE0001000000000000FFFF
+msgfr 0000000000007FFF * 000000000000FFFF = 000000007FFE80010000000000007FFF
+msgfr 0000000000008000 * 000000000000FFFF = 000000007FFF80000000000000008000
+msgfr 00000000FFFFFFFF * 000000000000FFFF = 0000FFFEFFFF000100000000FFFFFFFF
+msgfr 0000000080000000 * 000000000000FFFF = 00007FFF800000000000000080000000
+msgfr 000000007FFFFFFF * 000000000000FFFF = 00007FFF7FFF0001000000007FFFFFFF
+msgfr FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFFFFFF0001FFFFFFFFFFFFFFFF
+msgfr 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msgfr 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFFFFFF00017FFFFFFFFFFFFFFF
+msy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+msy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+msy 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+msy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+msy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+msy 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+msy 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+msy 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+msy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+msy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mhi 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mhi 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+mhi 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+mhi 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+mhi 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+mhi 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+mhi 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+mhi 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+mhi FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhi 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mhi 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mhi 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mhi 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+mhi 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+mhi 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+mhi 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+mhi 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+mhi 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+mhi 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+mhi FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+mhi 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mhi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+mhi 0000000000000000 * FFFFFFFFFFFF8000 = 00000000000000000000000000000000
+mhi 0000000000000001 * FFFFFFFFFFFF8000 = 00000000FFFF80000000000000000001
+mhi 000000000000FFFF * FFFFFFFFFFFF8000 = 0000000080008000000000000000FFFF
+mhi 0000000000007FFF * FFFFFFFFFFFF8000 = 00000000C00080000000000000007FFF
+mhi 0000000000008000 * FFFFFFFFFFFF8000 = 00000000C00000000000000000008000
+mhi 00000000FFFFFFFF * FFFFFFFFFFFF8000 = 000000000000800000000000FFFFFFFF
+mhi 0000000080000000 * FFFFFFFFFFFF8000 = 00000000000000000000000080000000
+mhi 000000007FFFFFFF * FFFFFFFFFFFF8000 = 0000000000008000000000007FFFFFFF
+mhi FFFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+mhi 8000000000000000 * FFFFFFFFFFFF8000 = 80000000000000008000000000000000
+mhi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+mhi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mhi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+mhi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+mhi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+mhi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+mhi 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFF800100000000FFFFFFFF
+mhi 0000000080000000 * 0000000000007FFF = 00000000800000000000000080000000
+mhi 000000007FFFFFFF * 0000000000007FFF = 000000007FFF8001000000007FFFFFFF
+mhi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mhi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mhi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+mghi 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mghi 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+mghi 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+mghi 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+mghi 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+mghi 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+mghi 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+mghi 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+mghi FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+mghi 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+mghi 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+mghi 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mghi 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+mghi 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+mghi 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+mghi 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+mghi 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+mghi 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+mghi 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+mghi FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+mghi 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mghi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+mghi 0000000000000000 * FFFFFFFFFFFF8000 = 00000000000000000000000000000000
+mghi 0000000000000001 * FFFFFFFFFFFF8000 = FFFFFFFFFFFF80000000000000000001
+mghi 000000000000FFFF * FFFFFFFFFFFF8000 = FFFFFFFF80008000000000000000FFFF
+mghi 0000000000007FFF * FFFFFFFFFFFF8000 = FFFFFFFFC00080000000000000007FFF
+mghi 0000000000008000 * FFFFFFFFFFFF8000 = FFFFFFFFC00000000000000000008000
+mghi 00000000FFFFFFFF * FFFFFFFFFFFF8000 = FFFF80000000800000000000FFFFFFFF
+mghi 0000000080000000 * FFFFFFFFFFFF8000 = FFFFC000000000000000000080000000
+mghi 000000007FFFFFFF * FFFFFFFFFFFF8000 = FFFFC00000008000000000007FFFFFFF
+mghi FFFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 0000000000008000FFFFFFFFFFFFFFFF
+mghi 8000000000000000 * FFFFFFFFFFFF8000 = 00000000000000008000000000000000
+mghi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 00000000000080007FFFFFFFFFFFFFFF
+mghi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mghi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+mghi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+mghi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+mghi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+mghi 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+mghi 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+mghi 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+mghi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mghi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mghi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
diff --git a/none/tests/s390x/mul.vgtest b/none/tests/s390x/mul.vgtest
new file mode 100644 (file)
index 0000000..580765c
--- /dev/null
@@ -0,0 +1 @@
+prog: mul
diff --git a/none/tests/s390x/mul_GE.c b/none/tests/s390x/mul_GE.c
new file mode 100644 (file)
index 0000000..bf45f15
--- /dev/null
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include "mul.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(msfi, 0);
+       immsweep(msfi, -1);
+       immsweep(msfi, -32768);
+       immsweep(msfi, 32767);
+       immsweep(msfi, 32767);
+       immsweep(msfi, 32767);
+       immsweep(msfi, -2147483648);
+       immsweep(msfi, 2147483647);
+       immsweep(msgfi, 0);
+       immsweep(msgfi, -1);
+       immsweep(msgfi, -32768);
+       immsweep(msgfi, 32767);
+       immsweep(msgfi, 32767);
+       immsweep(msgfi, 32767);
+       immsweep(msgfi, -2147483648);
+       immsweep(msgfi, 2147483647);
+
+}
+
+
+static void do_regmem_insns(unsigned long m2)
+{
+       memsweep(mhy, m2);
+       memsweep(mfy, m2);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x7ffffffffffffffful);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+       do_imm_insns();
+       return 0;
+}
diff --git a/none/tests/s390x/mul_GE.stderr.exp b/none/tests/s390x/mul_GE.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/mul_GE.stdout.exp b/none/tests/s390x/mul_GE.stdout.exp
new file mode 100644 (file)
index 0000000..2c0b67d
--- /dev/null
@@ -0,0 +1,484 @@
+mhy 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+mhy 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 0000000000000000 = 00000000000000000000000000000000
+mfy 000000000000FFFF * 0000000000000000 = 00000000000000000000000000000000
+mfy 0000000000007FFF * 0000000000000000 = 00000000000000000000000000000000
+mfy 0000000000008000 * 0000000000000000 = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mfy 0000000080000000 * 0000000000000000 = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 0000000000000000 = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 7FFFFFFFFFFFFFFF = 0000000000007FFF0000000000000001
+mhy 000000000000FFFF * 7FFFFFFFFFFFFFFF = 000000007FFE8001000000000000FFFF
+mhy 0000000000007FFF * 7FFFFFFFFFFFFFFF = 000000003FFF00010000000000007FFF
+mhy 0000000000008000 * 7FFFFFFFFFFFFFFF = 000000003FFF80000000000000008000
+mhy 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFF800100000000FFFFFFFF
+mhy 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000800000000000000080000000
+mhy 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000007FFF8001000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 7FFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 7FFFFFFFFFFFFFFF = 0000000000000000000000007FFFFFFF
+mfy 000000000000FFFF * 7FFFFFFFFFFFFFFF = 0000000000007FFF000000007FFF0001
+mfy 0000000000007FFF * 7FFFFFFFFFFFFFFF = 0000000000003FFF000000007FFF8001
+mfy 0000000000008000 * 7FFFFFFFFFFFFFFF = 0000000000003FFF00000000FFFF8000
+mfy 00000000FFFFFFFF * 7FFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+mfy 0000000080000000 * 7FFFFFFFFFFFFFFF = 00000000C00000000000000080000000
+mfy 000000007FFFFFFF * 7FFFFFFFFFFFFFFF = 000000003FFFFFFF0000000000000001
+mfy FFFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFFFFFFFFFF80000001
+mfy 8000000000000000 * 7FFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 7FFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF7FFFFFFF80000001
+mhy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 8000000000000000 = 00000000FFFF80000000000000000001
+mhy 000000000000FFFF * 8000000000000000 = 0000000080008000000000000000FFFF
+mhy 0000000000007FFF * 8000000000000000 = 00000000C00080000000000000007FFF
+mhy 0000000000008000 * 8000000000000000 = 00000000C00000000000000000008000
+mhy 00000000FFFFFFFF * 8000000000000000 = 000000000000800000000000FFFFFFFF
+mhy 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 8000000000000000 = 0000000000008000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 8000000000000000 = 00000000FFFFFFFF0000000080000000
+mfy 000000000000FFFF * 8000000000000000 = 00000000FFFF80000000000080000000
+mfy 0000000000007FFF * 8000000000000000 = 00000000FFFFC0000000000080000000
+mfy 0000000000008000 * 8000000000000000 = 00000000FFFFC0000000000000000000
+mfy 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000080000000
+mfy 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mfy 000000007FFFFFFF * 8000000000000000 = 00000000C00000000000000080000000
+mfy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF80000000
+mfy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF80000000
+mhy 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+mhy 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+mhy 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+mhy 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+mhy 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+mhy 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+mhy 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+mfy 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFFFFFF
+mfy 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF0001
+mfy 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8001
+mfy 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF00000000FFFF8000
+mfy 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 00000000000000000000000000000001
+mfy 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000080000000
+mfy 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000080000001
+mfy FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000000FFFFFFFF00000001
+mfy 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000007FFFFFFF00000001
+mhy 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 7FFFFFFF00000000 = 0000000000007FFF0000000000000001
+mhy 000000000000FFFF * 7FFFFFFF00000000 = 000000007FFE8001000000000000FFFF
+mhy 0000000000007FFF * 7FFFFFFF00000000 = 000000003FFF00010000000000007FFF
+mhy 0000000000008000 * 7FFFFFFF00000000 = 000000003FFF80000000000000008000
+mhy 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000FFFF800100000000FFFFFFFF
+mhy 0000000080000000 * 7FFFFFFF00000000 = 00000000800000000000000080000000
+mhy 000000007FFFFFFF * 7FFFFFFF00000000 = 000000007FFF8001000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 7FFFFFFF00000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 7FFFFFFF00000000 = 0000000000000000000000007FFFFFFF
+mfy 000000000000FFFF * 7FFFFFFF00000000 = 0000000000007FFF000000007FFF0001
+mfy 0000000000007FFF * 7FFFFFFF00000000 = 0000000000003FFF000000007FFF8001
+mfy 0000000000008000 * 7FFFFFFF00000000 = 0000000000003FFF00000000FFFF8000
+mfy 00000000FFFFFFFF * 7FFFFFFF00000000 = 00000000FFFFFFFF0000000080000001
+mfy 0000000080000000 * 7FFFFFFF00000000 = 00000000C00000000000000080000000
+mfy 000000007FFFFFFF * 7FFFFFFF00000000 = 000000003FFFFFFF0000000000000001
+mfy FFFFFFFFFFFFFFFF * 7FFFFFFF00000000 = FFFFFFFFFFFFFFFFFFFFFFFF80000001
+mfy 8000000000000000 * 7FFFFFFF00000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF7FFFFFFF80000001
+mhy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 8000000000000000 = 00000000FFFF80000000000000000001
+mhy 000000000000FFFF * 8000000000000000 = 0000000080008000000000000000FFFF
+mhy 0000000000007FFF * 8000000000000000 = 00000000C00080000000000000007FFF
+mhy 0000000000008000 * 8000000000000000 = 00000000C00000000000000000008000
+mhy 00000000FFFFFFFF * 8000000000000000 = 000000000000800000000000FFFFFFFF
+mhy 0000000080000000 * 8000000000000000 = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 8000000000000000 = 0000000000008000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 8000000000000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 8000000000000000 = 00000000FFFFFFFF0000000080000000
+mfy 000000000000FFFF * 8000000000000000 = 00000000FFFF80000000000080000000
+mfy 0000000000007FFF * 8000000000000000 = 00000000FFFFC0000000000080000000
+mfy 0000000000008000 * 8000000000000000 = 00000000FFFFC0000000000000000000
+mfy 00000000FFFFFFFF * 8000000000000000 = 00000000000000000000000080000000
+mfy 0000000080000000 * 8000000000000000 = 00000000400000000000000000000000
+mfy 000000007FFFFFFF * 8000000000000000 = 00000000C00000000000000080000000
+mfy FFFFFFFFFFFFFFFF * 8000000000000000 = FFFFFFFF00000000FFFFFFFF80000000
+mfy 8000000000000000 * 8000000000000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 8000000000000000 = 7FFFFFFF000000007FFFFFFF80000000
+mhy 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF0000000000000001
+mhy 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFF0001000000000000FFFF
+mhy 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFF80010000000000007FFF
+mhy 0000000000008000 * FFFFFFFF00000000 = 00000000FFFF80000000000000008000
+mhy 00000000FFFFFFFF * FFFFFFFF00000000 = 000000000000000100000000FFFFFFFF
+mhy 0000000080000000 * FFFFFFFF00000000 = 00000000800000000000000080000000
+mhy 000000007FFFFFFF * FFFFFFFF00000000 = 0000000080000001000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+mfy 0000000000000000 * FFFFFFFF00000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFFFFFF
+mfy 000000000000FFFF * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF0001
+mfy 0000000000007FFF * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF8001
+mfy 0000000000008000 * FFFFFFFF00000000 = 00000000FFFFFFFF00000000FFFF8000
+mfy 00000000FFFFFFFF * FFFFFFFF00000000 = 00000000000000000000000000000001
+mfy 0000000080000000 * FFFFFFFF00000000 = 00000000000000000000000080000000
+mfy 000000007FFFFFFF * FFFFFFFF00000000 = 00000000FFFFFFFF0000000080000001
+mfy FFFFFFFFFFFFFFFF * FFFFFFFF00000000 = FFFFFFFF00000000FFFFFFFF00000001
+mfy 8000000000000000 * FFFFFFFF00000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * FFFFFFFF00000000 = 7FFFFFFF000000007FFFFFFF00000001
+mhy 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000001
+mhy 000000000000FFFF * 000000007FFFFFFF = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 000000007FFFFFFF = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 000000000000FFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 0000000000007FFF * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 0000000000008000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 0000000080000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 000000007FFFFFFF = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 0000000080000000 = 00000000000000000000000000000001
+mhy 000000000000FFFF * 0000000080000000 = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 0000000080000000 = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 0000000080000000 = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 0000000080000000 = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 0000000080000000 = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 0000000080000000 = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 0000000080000000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 0000000080000000 = 00000000000000000000000000000000
+mfy 000000000000FFFF * 0000000080000000 = 00000000000000000000000000000000
+mfy 0000000000007FFF * 0000000080000000 = 00000000000000000000000000000000
+mfy 0000000000008000 * 0000000080000000 = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+mfy 0000000080000000 * 0000000080000000 = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 0000000080000000 = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 0000000080000000 = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 0000000080000000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 0000000080000000 = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000001
+mhy 000000000000FFFF * 00000000FFFFFFFF = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 00000000FFFFFFFF = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 00000000FFFFFFFF = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 000000000000FFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 0000000000007FFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 0000000000008000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 0000000080000000 * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 00000000FFFFFFFF = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 00000000FFFFFFFF = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 00000000FFFFFFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 00000000FFFFFFFF = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+mhy 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000001
+mhy 000000000000FFFF * 0000000000007FFF = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 0000000000007FFF = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 0000000000007FFF = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 0000000000007FFF = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 0000000000007FFF = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 0000000000007FFF = 00000000000000000000000000000000
+mfy 000000000000FFFF * 0000000000007FFF = 00000000000000000000000000000000
+mfy 0000000000007FFF * 0000000000007FFF = 00000000000000000000000000000000
+mfy 0000000000008000 * 0000000000007FFF = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+mfy 0000000080000000 * 0000000000007FFF = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 0000000000007FFF = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mhy 0000000000000001 * 0000000000008000 = 00000000000000000000000000000001
+mhy 000000000000FFFF * 0000000000008000 = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 0000000000008000 = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 0000000000008000 = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 0000000000008000 = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 0000000000008000 = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 0000000000008000 = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 0000000000008000 = 00000000000000000000000000000000
+mfy 0000000000000001 * 0000000000008000 = 00000000000000000000000000000000
+mfy 000000000000FFFF * 0000000000008000 = 00000000000000000000000000000000
+mfy 0000000000007FFF * 0000000000008000 = 00000000000000000000000000000000
+mfy 0000000000008000 * 0000000000008000 = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+mfy 0000000080000000 * 0000000000008000 = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 0000000000008000 = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 0000000000008000 = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 0000000000008000 = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 0000000000008000 = 7FFFFFFF000000007FFFFFFF00000000
+mhy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mhy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000001
+mhy 000000000000FFFF * 000000000000FFFF = 0000000000000000000000000000FFFF
+mhy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000007FFF
+mhy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000008000
+mhy 00000000FFFFFFFF * 000000000000FFFF = 000000000000000000000000FFFFFFFF
+mhy 0000000080000000 * 000000000000FFFF = 00000000000000000000000080000000
+mhy 000000007FFFFFFF * 000000000000FFFF = 0000000000000000000000007FFFFFFF
+mhy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+mhy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mhy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+mfy 0000000000000000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000000001 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 000000000000FFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000007FFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000000008000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 00000000FFFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy 0000000080000000 * 000000000000FFFF = 00000000000000000000000000000000
+mfy 000000007FFFFFFF * 000000000000FFFF = 00000000000000000000000000000000
+mfy FFFFFFFFFFFFFFFF * 000000000000FFFF = FFFFFFFF00000000FFFFFFFF00000000
+mfy 8000000000000000 * 000000000000FFFF = 80000000000000008000000000000000
+mfy 7FFFFFFFFFFFFFFF * 000000000000FFFF = 7FFFFFFF000000007FFFFFFF00000000
+msfi 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msfi 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msfi 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msfi 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msfi 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msfi 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msfi 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msfi 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * 0000000000000000 = FFFFFFFF00000000FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * 0000000000000000 = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * 0000000000000000 = 7FFFFFFF000000007FFFFFFFFFFFFFFF
+msfi 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msfi 0000000000000001 * FFFFFFFFFFFFFFFF = 00000000FFFFFFFF0000000000000001
+msfi 000000000000FFFF * FFFFFFFFFFFFFFFF = 00000000FFFF0001000000000000FFFF
+msfi 0000000000007FFF * FFFFFFFFFFFFFFFF = 00000000FFFF80010000000000007FFF
+msfi 0000000000008000 * FFFFFFFFFFFFFFFF = 00000000FFFF80000000000000008000
+msfi 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = 000000000000000100000000FFFFFFFF
+msfi 0000000080000000 * FFFFFFFFFFFFFFFF = 00000000800000000000000080000000
+msfi 000000007FFFFFFF * FFFFFFFFFFFFFFFF = 0000000080000001000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF00000001FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 7FFFFFFF000000017FFFFFFFFFFFFFFF
+msfi 0000000000000000 * FFFFFFFFFFFF8000 = 00000000000000000000000000000000
+msfi 0000000000000001 * FFFFFFFFFFFF8000 = 00000000FFFF80000000000000000001
+msfi 000000000000FFFF * FFFFFFFFFFFF8000 = 0000000080008000000000000000FFFF
+msfi 0000000000007FFF * FFFFFFFFFFFF8000 = 00000000C00080000000000000007FFF
+msfi 0000000000008000 * FFFFFFFFFFFF8000 = 00000000C00000000000000000008000
+msfi 00000000FFFFFFFF * FFFFFFFFFFFF8000 = 000000000000800000000000FFFFFFFF
+msfi 0000000080000000 * FFFFFFFFFFFF8000 = 00000000000000000000000080000000
+msfi 000000007FFFFFFF * FFFFFFFFFFFF8000 = 0000000000008000000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = FFFFFFFF00008000FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * FFFFFFFFFFFF8000 = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 7FFFFFFF000080007FFFFFFFFFFFFFFF
+msfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msfi 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFF800100000000FFFFFFFF
+msfi 0000000080000000 * 0000000000007FFF = 00000000800000000000000080000000
+msfi 000000007FFFFFFF * 0000000000007FFF = 000000007FFF8001000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msfi 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFF800100000000FFFFFFFF
+msfi 0000000080000000 * 0000000000007FFF = 00000000800000000000000080000000
+msfi 000000007FFFFFFF * 0000000000007FFF = 000000007FFF8001000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msfi 00000000FFFFFFFF * 0000000000007FFF = 00000000FFFF800100000000FFFFFFFF
+msfi 0000000080000000 * 0000000000007FFF = 00000000800000000000000080000000
+msfi 000000007FFFFFFF * 0000000000007FFF = 000000007FFF8001000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msfi 0000000000000000 * FFFFFFFF80000000 = 00000000000000000000000000000000
+msfi 0000000000000001 * FFFFFFFF80000000 = 00000000800000000000000000000001
+msfi 000000000000FFFF * FFFFFFFF80000000 = 0000000080000000000000000000FFFF
+msfi 0000000000007FFF * FFFFFFFF80000000 = 00000000800000000000000000007FFF
+msfi 0000000000008000 * FFFFFFFF80000000 = 00000000000000000000000000008000
+msfi 00000000FFFFFFFF * FFFFFFFF80000000 = 000000008000000000000000FFFFFFFF
+msfi 0000000080000000 * FFFFFFFF80000000 = 00000000000000000000000080000000
+msfi 000000007FFFFFFF * FFFFFFFF80000000 = 0000000080000000000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * FFFFFFFF80000000 = FFFFFFFF80000000FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * FFFFFFFF80000000 = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * FFFFFFFF80000000 = 7FFFFFFF800000007FFFFFFFFFFFFFFF
+msfi 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msfi 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msfi 000000000000FFFF * 000000007FFFFFFF = 000000007FFF0001000000000000FFFF
+msfi 0000000000007FFF * 000000007FFFFFFF = 000000007FFF80010000000000007FFF
+msfi 0000000000008000 * 000000007FFFFFFF = 00000000FFFF80000000000000008000
+msfi 00000000FFFFFFFF * 000000007FFFFFFF = 000000008000000100000000FFFFFFFF
+msfi 0000000080000000 * 000000007FFFFFFF = 00000000800000000000000080000000
+msfi 000000007FFFFFFF * 000000007FFFFFFF = 0000000000000001000000007FFFFFFF
+msfi FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msfi 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msfi 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * 0000000000000000 = 00000000000000000000000000000000
+msgfi 0000000000000001 * 0000000000000000 = 00000000000000000000000000000001
+msgfi 000000000000FFFF * 0000000000000000 = 0000000000000000000000000000FFFF
+msgfi 0000000000007FFF * 0000000000000000 = 00000000000000000000000000007FFF
+msgfi 0000000000008000 * 0000000000000000 = 00000000000000000000000000008000
+msgfi 00000000FFFFFFFF * 0000000000000000 = 000000000000000000000000FFFFFFFF
+msgfi 0000000080000000 * 0000000000000000 = 00000000000000000000000080000000
+msgfi 000000007FFFFFFF * 0000000000000000 = 0000000000000000000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * 0000000000000000 = 0000000000000000FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * 0000000000000000 = 00000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * 0000000000000000 = 00000000000000007FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * FFFFFFFFFFFFFFFF = 00000000000000000000000000000000
+msgfi 0000000000000001 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF0000000000000001
+msgfi 000000000000FFFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0001000000000000FFFF
+msgfi 0000000000007FFF * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80010000000000007FFF
+msgfi 0000000000008000 * FFFFFFFFFFFFFFFF = FFFFFFFFFFFF80000000000000008000
+msgfi 00000000FFFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF0000000100000000FFFFFFFF
+msgfi 0000000080000000 * FFFFFFFFFFFFFFFF = FFFFFFFF800000000000000080000000
+msgfi 000000007FFFFFFF * FFFFFFFFFFFFFFFF = FFFFFFFF80000001000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 0000000000000001FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * FFFFFFFFFFFFFFFF = 80000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFFFFFF = 80000000000000017FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * FFFFFFFFFFFF8000 = 00000000000000000000000000000000
+msgfi 0000000000000001 * FFFFFFFFFFFF8000 = FFFFFFFFFFFF80000000000000000001
+msgfi 000000000000FFFF * FFFFFFFFFFFF8000 = FFFFFFFF80008000000000000000FFFF
+msgfi 0000000000007FFF * FFFFFFFFFFFF8000 = FFFFFFFFC00080000000000000007FFF
+msgfi 0000000000008000 * FFFFFFFFFFFF8000 = FFFFFFFFC00000000000000000008000
+msgfi 00000000FFFFFFFF * FFFFFFFFFFFF8000 = FFFF80000000800000000000FFFFFFFF
+msgfi 0000000080000000 * FFFFFFFFFFFF8000 = FFFFC000000000000000000080000000
+msgfi 000000007FFFFFFF * FFFFFFFFFFFF8000 = FFFFC00000008000000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 0000000000008000FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * FFFFFFFFFFFF8000 = 00000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * FFFFFFFFFFFF8000 = 00000000000080007FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msgfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msgfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msgfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msgfi 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msgfi 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msgfi 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msgfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msgfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msgfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msgfi 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msgfi 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msgfi 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * 0000000000007FFF = 00000000000000000000000000000000
+msgfi 0000000000000001 * 0000000000007FFF = 0000000000007FFF0000000000000001
+msgfi 000000000000FFFF * 0000000000007FFF = 000000007FFE8001000000000000FFFF
+msgfi 0000000000007FFF * 0000000000007FFF = 000000003FFF00010000000000007FFF
+msgfi 0000000000008000 * 0000000000007FFF = 000000003FFF80000000000000008000
+msgfi 00000000FFFFFFFF * 0000000000007FFF = 00007FFEFFFF800100000000FFFFFFFF
+msgfi 0000000080000000 * 0000000000007FFF = 00003FFF800000000000000080000000
+msgfi 000000007FFFFFFF * 0000000000007FFF = 00003FFF7FFF8001000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * 0000000000007FFF = FFFFFFFFFFFF8001FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * 0000000000007FFF = 80000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * 0000000000007FFF = 7FFFFFFFFFFF80017FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * FFFFFFFF80000000 = 00000000000000000000000000000000
+msgfi 0000000000000001 * FFFFFFFF80000000 = FFFFFFFF800000000000000000000001
+msgfi 000000000000FFFF * FFFFFFFF80000000 = FFFF800080000000000000000000FFFF
+msgfi 0000000000007FFF * FFFFFFFF80000000 = FFFFC000800000000000000000007FFF
+msgfi 0000000000008000 * FFFFFFFF80000000 = FFFFC000000000000000000000008000
+msgfi 00000000FFFFFFFF * FFFFFFFF80000000 = 800000008000000000000000FFFFFFFF
+msgfi 0000000080000000 * FFFFFFFF80000000 = C0000000000000000000000080000000
+msgfi 000000007FFFFFFF * FFFFFFFF80000000 = C000000080000000000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * FFFFFFFF80000000 = 0000000080000000FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * FFFFFFFF80000000 = 00000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * FFFFFFFF80000000 = 00000000800000007FFFFFFFFFFFFFFF
+msgfi 0000000000000000 * 000000007FFFFFFF = 00000000000000000000000000000000
+msgfi 0000000000000001 * 000000007FFFFFFF = 000000007FFFFFFF0000000000000001
+msgfi 000000000000FFFF * 000000007FFFFFFF = 00007FFF7FFF0001000000000000FFFF
+msgfi 0000000000007FFF * 000000007FFFFFFF = 00003FFF7FFF80010000000000007FFF
+msgfi 0000000000008000 * 000000007FFFFFFF = 00003FFFFFFF80000000000000008000
+msgfi 00000000FFFFFFFF * 000000007FFFFFFF = 7FFFFFFE8000000100000000FFFFFFFF
+msgfi 0000000080000000 * 000000007FFFFFFF = 3FFFFFFF800000000000000080000000
+msgfi 000000007FFFFFFF * 000000007FFFFFFF = 3FFFFFFF00000001000000007FFFFFFF
+msgfi FFFFFFFFFFFFFFFF * 000000007FFFFFFF = FFFFFFFF80000001FFFFFFFFFFFFFFFF
+msgfi 8000000000000000 * 000000007FFFFFFF = 80000000000000008000000000000000
+msgfi 7FFFFFFFFFFFFFFF * 000000007FFFFFFF = 7FFFFFFF800000017FFFFFFFFFFFFFFF
diff --git a/none/tests/s390x/mul_GE.vgtest b/none/tests/s390x/mul_GE.vgtest
new file mode 100644 (file)
index 0000000..8ed8428
--- /dev/null
@@ -0,0 +1,2 @@
+prog: mul_GE
+prereq: test -x mul_GE
diff --git a/none/tests/s390x/mvst.c b/none/tests/s390x/mvst.c
new file mode 100644 (file)
index 0000000..ac85f12
--- /dev/null
@@ -0,0 +1,51 @@
+#include "test.h"
+
+char buffer[23] ="0123456789abcdef\0XXXXX";
+char bigbuf[512]=
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
+       "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde\0";
+
+char target[512];
+
+int mvst(void *targetp, void *source)
+{
+       asm volatile(
+               "       lhi 0, 0\n"
+               "       mvst %0, %1\n"
+               ::"a" (targetp),"a" (source): "0", "memory", "cc");
+       return get_cc();
+}
+
+int mvst_full(void *targetp, void *source)
+{
+       asm volatile(
+               "       lhi 0, 0\n"
+               "0:     mvst %0, %1\n"
+               "       jo 0b\n"
+               ::"a" (targetp),"a" (source): "0", "memory", "cc");
+       return get_cc();
+}
+
+
+int main()
+{
+       short t;
+       char s;
+       printf("CC:%d\n", mvst(target, buffer));
+       printf("%s\n", target);
+       printf("CC:%d\n",mvst_full(target, bigbuf));
+       printf("%s\n", target);
+       t = 0x6161;
+       s = 0;
+       printf("%s\n", (char *) &t);
+       printf("CC:%d\n",mvst(&t,&s));
+       printf("%s\n", (char *) &t);
+       return 0;
+}
+
diff --git a/none/tests/s390x/mvst.stderr.exp b/none/tests/s390x/mvst.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/mvst.stdout.exp b/none/tests/s390x/mvst.stdout.exp
new file mode 100644 (file)
index 0000000..c654bd3
--- /dev/null
@@ -0,0 +1,7 @@
+CC:1
+0123456789abcdef
+CC:1
+0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
+aa
+CC:1
+
diff --git a/none/tests/s390x/mvst.vgtest b/none/tests/s390x/mvst.vgtest
new file mode 100644 (file)
index 0000000..3e83f5c
--- /dev/null
@@ -0,0 +1 @@
+prog: mvst
diff --git a/none/tests/s390x/or.c b/none/tests/s390x/or.c
new file mode 100644 (file)
index 0000000..1a54e7d
--- /dev/null
@@ -0,0 +1,79 @@
+#include <stdio.h>
+#include "or.h"
+
+static void do_imm_insns(void)
+{
+       memimmsweep(oi, 0);
+       memimmsweep(oi, 255);
+       memimmsweep(oi, 128);
+       memimmsweep(oi, 0xaa);
+       memimmsweep(oi, 0x55);
+       memimmsweep(oiy, 0);
+       memimmsweep(oiy, 255);
+       memimmsweep(oiy, 128);
+       memimmsweep(oiy, 0xaa);
+       memimmsweep(oiy, 0x55);
+       immsweep(oihh, 0x55);
+       immsweep(oihl, 0x55);
+       immsweep(oilh, 0x55);
+       immsweep(oill, 0x55);
+       immsweep(oihh, 0xaa);
+       immsweep(oihl, 0xaa);
+       immsweep(oilh, 0xaa);
+       immsweep(oill, 0xaa);
+       immsweep(oihh, 0xff);
+       immsweep(oihl, 0xff);
+       immsweep(oilh, 0xff);
+       immsweep(oill, 0xff);
+       immsweep(oihh, 0x0);
+       immsweep(oihl, 0x0);
+       immsweep(oilh, 0x0);
+       immsweep(oill, 0x0);
+       immsweep(oihh, 0xffff);
+       immsweep(oihl, 0xffff);
+       immsweep(oilh, 0xffff);
+       immsweep(oill, 0xffff);
+       immsweep(oihh, 0xaaaa);
+       immsweep(oihl, 0xaaaa);
+       immsweep(oilh, 0xaaaa);
+       immsweep(oill, 0xaaaa);
+       immsweep(oihh, 0x5555);
+       immsweep(oihl, 0x5555);
+       immsweep(oilh, 0x5555);
+       immsweep(oill, 0x5555);
+}
+
+
+static void do_regmem_insns(unsigned long s2)
+{
+       memsweep(o, s2);
+       memsweep(og, s2);
+       regsweep(or, s2);
+       regsweep(ogr, s2);
+       memsweep(oy, s2);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x5555555555555555ul);
+       do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xaaaaaaaa00000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x0000000055555555ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/or.h b/none/tests/s390x/or.h
new file mode 100644 (file)
index 0000000..2f6a85e
--- /dev/null
@@ -0,0 +1,120 @@
+#include <stdio.h>
+
+#define OR_REG_MEM(insn, s1, s2)                       \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX | %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define OR_REG_REG(insn, s1, s2)                       \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "d" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX | %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define OR_REG_IMM(insn, s1, s2)                       \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX | %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+#define OR_MEM_IMM(insn, s1, s2)                       \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+Q" (tmp), "=d" (cc)         \
+                       : "Q" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX | %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+
+#define memsweep(i, s2)                                        \
+({                                                     \
+       OR_REG_MEM(i, 0ul, s2);                         \
+       OR_REG_MEM(i, 1ul, s2);                         \
+       OR_REG_MEM(i, 0xfffful, s2);                    \
+       OR_REG_MEM(i, 0x7ffful, s2);                    \
+       OR_REG_MEM(i, 0x8000ul, s2);                    \
+       OR_REG_MEM(i, 0xfffffffful, s2);                \
+       OR_REG_MEM(i, 0x80000000ul, s2);                \
+       OR_REG_MEM(i, 0x7ffffffful, s2);                \
+       OR_REG_MEM(i, 0xaaaaaaaaaaaaaaaaul, s2);        \
+       OR_REG_MEM(i, 0x8000000000000000ul, s2);        \
+       OR_REG_MEM(i, 0xfffffffffffffffful, s2);        \
+       OR_REG_MEM(i, 0x5555555555555555ul, s2);        \
+})
+
+#define regsweep(i, s2)                                        \
+({                                                     \
+       OR_REG_REG(i, 0ul, s2);                         \
+       OR_REG_REG(i, 1ul, s2);                         \
+       OR_REG_REG(i, 0xfffful, s2);                    \
+       OR_REG_REG(i, 0x7ffful, s2);                    \
+       OR_REG_REG(i, 0x8000ul, s2);                    \
+       OR_REG_REG(i, 0xfffffffful, s2);                \
+       OR_REG_REG(i, 0x80000000ul, s2);                \
+       OR_REG_REG(i, 0x7ffffffful, s2);                \
+       OR_REG_REG(i, 0xaaaaaaaaaaaaaaaaul, s2);        \
+       OR_REG_REG(i, 0x8000000000000000ul, s2);        \
+       OR_REG_REG(i, 0xfffffffffffffffful, s2);        \
+       OR_REG_REG(i, 0x5555555555555555ul, s2);        \
+})
+
+#define immsweep(i, s2)                                        \
+({                                                     \
+       OR_REG_IMM(i, 0ul, s2);                         \
+       OR_REG_IMM(i, 1ul, s2);                         \
+       OR_REG_IMM(i, 0xfffful, s2);                    \
+       OR_REG_IMM(i, 0x7ffful, s2);                    \
+       OR_REG_IMM(i, 0x8000ul, s2);                    \
+       OR_REG_IMM(i, 0xfffffffful, s2);                \
+       OR_REG_IMM(i, 0x80000000ul, s2);                \
+       OR_REG_IMM(i, 0x7ffffffful, s2);                \
+       OR_REG_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);        \
+       OR_REG_IMM(i, 0x8000000000000000ul, s2);        \
+       OR_REG_IMM(i, 0xfffffffffffffffful, s2);        \
+       OR_REG_IMM(i, 0x5555555555555555ul, s2);        \
+})
+
+#define memimmsweep(i, s2)                             \
+({                                                     \
+       OR_MEM_IMM(i, 0ul, s2);                         \
+       OR_MEM_IMM(i, 1ul, s2);                         \
+       OR_MEM_IMM(i, 0xfffful, s2);                    \
+       OR_MEM_IMM(i, 0x7ffful, s2);                    \
+       OR_MEM_IMM(i, 0x8000ul, s2);                    \
+       OR_MEM_IMM(i, 0xfffffffful, s2);                \
+       OR_MEM_IMM(i, 0x80000000ul, s2);                \
+       OR_MEM_IMM(i, 0x7ffffffful, s2);                \
+       OR_MEM_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);        \
+       OR_MEM_IMM(i, 0x8000000000000000ul, s2);        \
+       OR_MEM_IMM(i, 0xfffffffffffffffful, s2);        \
+       OR_MEM_IMM(i, 0x5555555555555555ul, s2);        \
+})
+
+
diff --git a/none/tests/s390x/or.stderr.exp b/none/tests/s390x/or.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/or.stdout.exp b/none/tests/s390x/or.stdout.exp
new file mode 100644 (file)
index 0000000..e8c6db3
--- /dev/null
@@ -0,0 +1,1476 @@
+o 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+o 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+o 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+o 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+og 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+og 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+og 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+og 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+og 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+og 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+og 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+og FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+or 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+ogr 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+ogr 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+ogr 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+ogr 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+ogr 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+ogr 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oy 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oy 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+o 0000000000000000 | 5555555555555555 = 0000000055555555 (cc=1)
+o 0000000000000001 | 5555555555555555 = 0000000055555555 (cc=1)
+o 000000000000FFFF | 5555555555555555 = 000000005555FFFF (cc=1)
+o 0000000000007FFF | 5555555555555555 = 0000000055557FFF (cc=1)
+o 0000000000008000 | 5555555555555555 = 000000005555D555 (cc=1)
+o 00000000FFFFFFFF | 5555555555555555 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 5555555555555555 = 00000000D5555555 (cc=1)
+o 000000007FFFFFFF | 5555555555555555 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+o 8000000000000000 | 5555555555555555 = 8000000055555555 (cc=1)
+o FFFFFFFFFFFFFFFF | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 5555555555555555 = 5555555555555555 (cc=1)
+og 0000000000000000 | 5555555555555555 = 5555555555555555 (cc=1)
+og 0000000000000001 | 5555555555555555 = 5555555555555555 (cc=1)
+og 000000000000FFFF | 5555555555555555 = 555555555555FFFF (cc=1)
+og 0000000000007FFF | 5555555555555555 = 5555555555557FFF (cc=1)
+og 0000000000008000 | 5555555555555555 = 555555555555D555 (cc=1)
+og 00000000FFFFFFFF | 5555555555555555 = 55555555FFFFFFFF (cc=1)
+og 0000000080000000 | 5555555555555555 = 55555555D5555555 (cc=1)
+og 000000007FFFFFFF | 5555555555555555 = 555555557FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+og 8000000000000000 | 5555555555555555 = D555555555555555 (cc=1)
+og FFFFFFFFFFFFFFFF | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 5555555555555555 = 5555555555555555 (cc=1)
+or 0000000000000000 | 5555555555555555 = 0000000055555555 (cc=1)
+or 0000000000000001 | 5555555555555555 = 0000000055555555 (cc=1)
+or 000000000000FFFF | 5555555555555555 = 000000005555FFFF (cc=1)
+or 0000000000007FFF | 5555555555555555 = 0000000055557FFF (cc=1)
+or 0000000000008000 | 5555555555555555 = 000000005555D555 (cc=1)
+or 00000000FFFFFFFF | 5555555555555555 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 5555555555555555 = 00000000D5555555 (cc=1)
+or 000000007FFFFFFF | 5555555555555555 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+or 8000000000000000 | 5555555555555555 = 8000000055555555 (cc=1)
+or FFFFFFFFFFFFFFFF | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 5555555555555555 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 5555555555555555 = 5555555555555555 (cc=1)
+ogr 0000000000000001 | 5555555555555555 = 5555555555555555 (cc=1)
+ogr 000000000000FFFF | 5555555555555555 = 555555555555FFFF (cc=1)
+ogr 0000000000007FFF | 5555555555555555 = 5555555555557FFF (cc=1)
+ogr 0000000000008000 | 5555555555555555 = 555555555555D555 (cc=1)
+ogr 00000000FFFFFFFF | 5555555555555555 = 55555555FFFFFFFF (cc=1)
+ogr 0000000080000000 | 5555555555555555 = 55555555D5555555 (cc=1)
+ogr 000000007FFFFFFF | 5555555555555555 = 555555557FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 8000000000000000 | 5555555555555555 = D555555555555555 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 5555555555555555 = 5555555555555555 (cc=1)
+oy 0000000000000000 | 5555555555555555 = 0000000055555555 (cc=1)
+oy 0000000000000001 | 5555555555555555 = 0000000055555555 (cc=1)
+oy 000000000000FFFF | 5555555555555555 = 000000005555FFFF (cc=1)
+oy 0000000000007FFF | 5555555555555555 = 0000000055557FFF (cc=1)
+oy 0000000000008000 | 5555555555555555 = 000000005555D555 (cc=1)
+oy 00000000FFFFFFFF | 5555555555555555 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 5555555555555555 = 00000000D5555555 (cc=1)
+oy 000000007FFFFFFF | 5555555555555555 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+oy 8000000000000000 | 5555555555555555 = 8000000055555555 (cc=1)
+oy FFFFFFFFFFFFFFFF | 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 5555555555555555 = 5555555555555555 (cc=1)
+o 0000000000000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+o 0000000000000001 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+o 000000000000FFFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+o 0000000000007FFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+o 0000000000008000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+o 00000000FFFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+o 000000007FFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+o FFFFFFFFFFFFFFFF | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+og 0000000000000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+og 0000000000000001 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAB (cc=1)
+og 000000000000FFFF | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAFFFF (cc=1)
+og 0000000000007FFF | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAFFFF (cc=1)
+og 0000000000008000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+og 00000000FFFFFFFF | AAAAAAAAAAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+og 0000000080000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+og 000000007FFFFFFF | AAAAAAAAAAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+og FFFFFFFFFFFFFFFF | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+or 0000000000000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+or 0000000000000001 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+or 000000000000FFFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+or 0000000000007FFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+or 0000000000008000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+or 00000000FFFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+or 000000007FFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+or FFFFFFFFFFFFFFFF | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+ogr 0000000000000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ogr 0000000000000001 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAB (cc=1)
+ogr 000000000000FFFF | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAFFFF (cc=1)
+ogr 0000000000007FFF | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAFFFF (cc=1)
+ogr 0000000000008000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ogr 00000000FFFFFFFF | AAAAAAAAAAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+ogr 0000000080000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ogr 000000007FFFFFFF | AAAAAAAAAAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+ogr FFFFFFFFFFFFFFFF | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+oy 0000000000000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+oy 0000000000000001 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+oy 000000000000FFFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+oy 0000000000007FFF | AAAAAAAAAAAAAAAA = 00000000AAAAFFFF (cc=1)
+oy 0000000000008000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+oy 00000000FFFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+oy 000000007FFFFFFF | AAAAAAAAAAAAAAAA = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+oy FFFFFFFFFFFFFFFF | AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+o 0000000000000000 | 8000000000000000 = 0000000080000000 (cc=1)
+o 0000000000000001 | 8000000000000000 = 0000000080000001 (cc=1)
+o 000000000000FFFF | 8000000000000000 = 000000008000FFFF (cc=1)
+o 0000000000007FFF | 8000000000000000 = 0000000080007FFF (cc=1)
+o 0000000000008000 | 8000000000000000 = 0000000080008000 (cc=1)
+o 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 8000000000000000 = 8000000080000000 (cc=1)
+o FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 8000000000000000 = 55555555D5555555 (cc=1)
+og 0000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+og 0000000000000001 | 8000000000000000 = 8000000000000001 (cc=1)
+og 000000000000FFFF | 8000000000000000 = 800000000000FFFF (cc=1)
+og 0000000000007FFF | 8000000000000000 = 8000000000007FFF (cc=1)
+og 0000000000008000 | 8000000000000000 = 8000000000008000 (cc=1)
+og 00000000FFFFFFFF | 8000000000000000 = 80000000FFFFFFFF (cc=1)
+og 0000000080000000 | 8000000000000000 = 8000000080000000 (cc=1)
+og 000000007FFFFFFF | 8000000000000000 = 800000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+og FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 8000000000000000 = D555555555555555 (cc=1)
+or 0000000000000000 | 8000000000000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | 8000000000000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | 8000000000000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 8000000000000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | 8000000000000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | 8000000000000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 8000000000000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+ogr 0000000000000001 | 8000000000000000 = 8000000000000001 (cc=1)
+ogr 000000000000FFFF | 8000000000000000 = 800000000000FFFF (cc=1)
+ogr 0000000000007FFF | 8000000000000000 = 8000000000007FFF (cc=1)
+ogr 0000000000008000 | 8000000000000000 = 8000000000008000 (cc=1)
+ogr 00000000FFFFFFFF | 8000000000000000 = 80000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 8000000000000000 = 8000000080000000 (cc=1)
+ogr 000000007FFFFFFF | 8000000000000000 = 800000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 8000000000000000 = D555555555555555 (cc=1)
+oy 0000000000000000 | 8000000000000000 = 0000000080000000 (cc=1)
+oy 0000000000000001 | 8000000000000000 = 0000000080000001 (cc=1)
+oy 000000000000FFFF | 8000000000000000 = 000000008000FFFF (cc=1)
+oy 0000000000007FFF | 8000000000000000 = 0000000080007FFF (cc=1)
+oy 0000000000008000 | 8000000000000000 = 0000000080008000 (cc=1)
+oy 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 8000000000000000 = 8000000080000000 (cc=1)
+oy FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 8000000000000000 = 55555555D5555555 (cc=1)
+o 0000000000000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000000000001 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 000000000000FFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000000007FFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000000008000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 00000000FFFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 000000007FFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | FFFFFFFFFFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+o 8000000000000000 | FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+o FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | FFFFFFFFFFFFFFFF = 55555555FFFFFFFF (cc=1)
+og 0000000000000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 0000000000000001 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 000000000000FFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 0000000000007FFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 0000000000008000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 00000000FFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 0000000080000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 000000007FFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 8000000000000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 0000000000000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000000001 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 000000000000FFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000007FFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000008000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 00000000FFFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 000000007FFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | FFFFFFFFFFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+or 8000000000000000 | FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+or FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | FFFFFFFFFFFFFFFF = 55555555FFFFFFFF (cc=1)
+ogr 0000000000000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 0000000000000001 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 000000000000FFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 0000000000007FFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 0000000000008000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 00000000FFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 0000000080000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 000000007FFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 8000000000000000 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 0000000000000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000000000001 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 000000000000FFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000000007FFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000000008000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 00000000FFFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 000000007FFFFFFF | FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | FFFFFFFFFFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+oy 8000000000000000 | FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+oy FFFFFFFFFFFFFFFF | FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | FFFFFFFFFFFFFFFF = 55555555FFFFFFFF (cc=1)
+o 0000000000000000 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o 0000000000000001 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o 000000000000FFFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o 0000000000007FFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o 0000000000008000 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o 00000000FFFFFFFF | 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 000000007FFFFFFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 7FFFFFFF00000000 = AAAAAAAAFFFFFFFF (cc=1)
+o 8000000000000000 | 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+o FFFFFFFFFFFFFFFF | 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 7FFFFFFF00000000 = 555555557FFFFFFF (cc=1)
+og 0000000000000000 | 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+og 0000000000000001 | 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+og 000000000000FFFF | 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+og 0000000000007FFF | 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+og 0000000000008000 | 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+og 00000000FFFFFFFF | 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+og 0000000080000000 | 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+og 000000007FFFFFFF | 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 7FFFFFFF00000000 = FFFFFFFFAAAAAAAA (cc=1)
+og 8000000000000000 | 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+og FFFFFFFFFFFFFFFF | 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 7FFFFFFF00000000 = 7FFFFFFF55555555 (cc=1)
+or 0000000000000000 | 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 7FFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 7FFFFFFF00000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+ogr 0000000000000001 | 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+ogr 000000000000FFFF | 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+ogr 0000000000007FFF | 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+ogr 0000000000008000 | 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+ogr 00000000FFFFFFFF | 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+ogr 0000000080000000 | 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+ogr 000000007FFFFFFF | 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 7FFFFFFF00000000 = FFFFFFFFAAAAAAAA (cc=1)
+ogr 8000000000000000 | 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 7FFFFFFF00000000 = 7FFFFFFF55555555 (cc=1)
+oy 0000000000000000 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy 0000000000000001 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy 000000000000FFFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy 0000000000007FFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy 0000000000008000 | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy 00000000FFFFFFFF | 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 000000007FFFFFFF | 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 7FFFFFFF00000000 = AAAAAAAAFFFFFFFF (cc=1)
+oy 8000000000000000 | 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+oy FFFFFFFFFFFFFFFF | 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 7FFFFFFF00000000 = 555555557FFFFFFF (cc=1)
+o 0000000000000000 | 8000000000000000 = 0000000080000000 (cc=1)
+o 0000000000000001 | 8000000000000000 = 0000000080000001 (cc=1)
+o 000000000000FFFF | 8000000000000000 = 000000008000FFFF (cc=1)
+o 0000000000007FFF | 8000000000000000 = 0000000080007FFF (cc=1)
+o 0000000000008000 | 8000000000000000 = 0000000080008000 (cc=1)
+o 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 8000000000000000 = 8000000080000000 (cc=1)
+o FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 8000000000000000 = 55555555D5555555 (cc=1)
+og 0000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+og 0000000000000001 | 8000000000000000 = 8000000000000001 (cc=1)
+og 000000000000FFFF | 8000000000000000 = 800000000000FFFF (cc=1)
+og 0000000000007FFF | 8000000000000000 = 8000000000007FFF (cc=1)
+og 0000000000008000 | 8000000000000000 = 8000000000008000 (cc=1)
+og 00000000FFFFFFFF | 8000000000000000 = 80000000FFFFFFFF (cc=1)
+og 0000000080000000 | 8000000000000000 = 8000000080000000 (cc=1)
+og 000000007FFFFFFF | 8000000000000000 = 800000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+og FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 8000000000000000 = D555555555555555 (cc=1)
+or 0000000000000000 | 8000000000000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | 8000000000000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | 8000000000000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 8000000000000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | 8000000000000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | 8000000000000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 8000000000000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+ogr 0000000000000001 | 8000000000000000 = 8000000000000001 (cc=1)
+ogr 000000000000FFFF | 8000000000000000 = 800000000000FFFF (cc=1)
+ogr 0000000000007FFF | 8000000000000000 = 8000000000007FFF (cc=1)
+ogr 0000000000008000 | 8000000000000000 = 8000000000008000 (cc=1)
+ogr 00000000FFFFFFFF | 8000000000000000 = 80000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 8000000000000000 = 8000000080000000 (cc=1)
+ogr 000000007FFFFFFF | 8000000000000000 = 800000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | 8000000000000000 = 8000000000000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 8000000000000000 = D555555555555555 (cc=1)
+oy 0000000000000000 | 8000000000000000 = 0000000080000000 (cc=1)
+oy 0000000000000001 | 8000000000000000 = 0000000080000001 (cc=1)
+oy 000000000000FFFF | 8000000000000000 = 000000008000FFFF (cc=1)
+oy 0000000000007FFF | 8000000000000000 = 0000000080007FFF (cc=1)
+oy 0000000000008000 | 8000000000000000 = 0000000080008000 (cc=1)
+oy 00000000FFFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 8000000000000000 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 8000000000000000 = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 8000000000000000 = 8000000080000000 (cc=1)
+oy FFFFFFFFFFFFFFFF | 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 8000000000000000 = 55555555D5555555 (cc=1)
+o 0000000000000000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+o 0000000000000001 | AAAAAAAA00000000 = 00000000AAAAAAAB (cc=1)
+o 000000000000FFFF | AAAAAAAA00000000 = 00000000AAAAFFFF (cc=1)
+o 0000000000007FFF | AAAAAAAA00000000 = 00000000AAAAFFFF (cc=1)
+o 0000000000008000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+o 00000000FFFFFFFF | AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+o 000000007FFFFFFF | AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | AAAAAAAA00000000 = 80000000AAAAAAAA (cc=1)
+o FFFFFFFFFFFFFFFF | AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+og 0000000000000000 | AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+og 0000000000000001 | AAAAAAAA00000000 = AAAAAAAA00000001 (cc=1)
+og 000000000000FFFF | AAAAAAAA00000000 = AAAAAAAA0000FFFF (cc=1)
+og 0000000000007FFF | AAAAAAAA00000000 = AAAAAAAA00007FFF (cc=1)
+og 0000000000008000 | AAAAAAAA00000000 = AAAAAAAA00008000 (cc=1)
+og 00000000FFFFFFFF | AAAAAAAA00000000 = AAAAAAAAFFFFFFFF (cc=1)
+og 0000000080000000 | AAAAAAAA00000000 = AAAAAAAA80000000 (cc=1)
+og 000000007FFFFFFF | AAAAAAAA00000000 = AAAAAAAA7FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+og FFFFFFFFFFFFFFFF | AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+or 0000000000000000 | AAAAAAAA00000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | AAAAAAAA00000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | AAAAAAAA00000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | AAAAAAAA00000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | AAAAAAAA00000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | AAAAAAAA00000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | AAAAAAAA00000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | AAAAAAAA00000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | AAAAAAAA00000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ogr 0000000000000001 | AAAAAAAA00000000 = AAAAAAAA00000001 (cc=1)
+ogr 000000000000FFFF | AAAAAAAA00000000 = AAAAAAAA0000FFFF (cc=1)
+ogr 0000000000007FFF | AAAAAAAA00000000 = AAAAAAAA00007FFF (cc=1)
+ogr 0000000000008000 | AAAAAAAA00000000 = AAAAAAAA00008000 (cc=1)
+ogr 00000000FFFFFFFF | AAAAAAAA00000000 = AAAAAAAAFFFFFFFF (cc=1)
+ogr 0000000080000000 | AAAAAAAA00000000 = AAAAAAAA80000000 (cc=1)
+ogr 000000007FFFFFFF | AAAAAAAA00000000 = AAAAAAAA7FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+oy 0000000000000000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+oy 0000000000000001 | AAAAAAAA00000000 = 00000000AAAAAAAB (cc=1)
+oy 000000000000FFFF | AAAAAAAA00000000 = 00000000AAAAFFFF (cc=1)
+oy 0000000000007FFF | AAAAAAAA00000000 = 00000000AAAAFFFF (cc=1)
+oy 0000000000008000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+oy 00000000FFFFFFFF | AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+oy 000000007FFFFFFF | AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | AAAAAAAA00000000 = 80000000AAAAAAAA (cc=1)
+oy FFFFFFFFFFFFFFFF | AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+o 0000000000000000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000000000001 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 000000000000FFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000000007FFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000000008000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 00000000FFFFFFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o 000000007FFFFFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | FFFFFFFF00000000 = AAAAAAAAFFFFFFFF (cc=1)
+o 8000000000000000 | FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+o FFFFFFFFFFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | FFFFFFFF00000000 = 55555555FFFFFFFF (cc=1)
+og 0000000000000000 | FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+og 0000000000000001 | FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+og 000000000000FFFF | FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+og 0000000000007FFF | FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+og 0000000000008000 | FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+og 00000000FFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 0000000080000000 | FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+og 000000007FFFFFFF | FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | FFFFFFFF00000000 = FFFFFFFFAAAAAAAA (cc=1)
+og 8000000000000000 | FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+og FFFFFFFFFFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | FFFFFFFF00000000 = FFFFFFFF55555555 (cc=1)
+or 0000000000000000 | FFFFFFFF00000000 = 0000000000000000 (cc=0)
+or 0000000000000001 | FFFFFFFF00000000 = 0000000000000001 (cc=1)
+or 000000000000FFFF | FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+or 0000000000008000 | FFFFFFFF00000000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | FFFFFFFF00000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | FFFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | FFFFFFFF00000000 = 8000000000000000 (cc=0)
+or FFFFFFFFFFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | FFFFFFFF00000000 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ogr 0000000000000001 | FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+ogr 000000000000FFFF | FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+ogr 0000000000007FFF | FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+ogr 0000000000008000 | FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+ogr 00000000FFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 0000000080000000 | FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+ogr 000000007FFFFFFF | FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | FFFFFFFF00000000 = FFFFFFFFAAAAAAAA (cc=1)
+ogr 8000000000000000 | FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | FFFFFFFF00000000 = FFFFFFFF55555555 (cc=1)
+oy 0000000000000000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000000000001 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 000000000000FFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000000007FFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000000008000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 00000000FFFFFFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy 000000007FFFFFFF | FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | FFFFFFFF00000000 = AAAAAAAAFFFFFFFF (cc=1)
+oy 8000000000000000 | FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+oy FFFFFFFFFFFFFFFF | FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | FFFFFFFF00000000 = 55555555FFFFFFFF (cc=1)
+o 0000000000000000 | 000000007FFFFFFF = 0000000000000000 (cc=0)
+o 0000000000000001 | 000000007FFFFFFF = 0000000000000001 (cc=1)
+o 000000000000FFFF | 000000007FFFFFFF = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 000000007FFFFFFF = 0000000000007FFF (cc=1)
+o 0000000000008000 | 000000007FFFFFFF = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 000000007FFFFFFF = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 000000007FFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 000000007FFFFFFF = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 000000007FFFFFFF = 5555555555555555 (cc=1)
+og 0000000000000000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og 0000000000000001 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og 000000000000FFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og 0000000000007FFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og 0000000000008000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og 00000000FFFFFFFF | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+og 000000007FFFFFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 000000007FFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+og 8000000000000000 | 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+og FFFFFFFFFFFFFFFF | 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 000000007FFFFFFF = 555555557FFFFFFF (cc=1)
+or 0000000000000000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or 0000000000000001 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or 000000000000FFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or 0000000000007FFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or 0000000000008000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or 00000000FFFFFFFF | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+or 000000007FFFFFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 000000007FFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+or 8000000000000000 | 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+or FFFFFFFFFFFFFFFF | 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 000000007FFFFFFF = 555555557FFFFFFF (cc=1)
+ogr 0000000000000000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr 0000000000000001 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr 000000000000FFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr 0000000000007FFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr 0000000000008000 | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr 00000000FFFFFFFF | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 000000007FFFFFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 000000007FFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+ogr 8000000000000000 | 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 000000007FFFFFFF = 555555557FFFFFFF (cc=1)
+oy 0000000000000000 | 000000007FFFFFFF = 0000000000000000 (cc=0)
+oy 0000000000000001 | 000000007FFFFFFF = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 000000007FFFFFFF = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 000000007FFFFFFF = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 000000007FFFFFFF = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 000000007FFFFFFF = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 000000007FFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 000000007FFFFFFF = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 000000007FFFFFFF = 5555555555555555 (cc=1)
+o 0000000000000000 | 0000000080000000 = 0000000000000000 (cc=0)
+o 0000000000000001 | 0000000080000000 = 0000000000000001 (cc=1)
+o 000000000000FFFF | 0000000080000000 = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 0000000080000000 = 0000000000007FFF (cc=1)
+o 0000000000008000 | 0000000080000000 = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 0000000080000000 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 0000000080000000 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 0000000080000000 = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 0000000080000000 = 5555555555555555 (cc=1)
+og 0000000000000000 | 0000000080000000 = 0000000080000000 (cc=1)
+og 0000000000000001 | 0000000080000000 = 0000000080000001 (cc=1)
+og 000000000000FFFF | 0000000080000000 = 000000008000FFFF (cc=1)
+og 0000000000007FFF | 0000000080000000 = 0000000080007FFF (cc=1)
+og 0000000000008000 | 0000000080000000 = 0000000080008000 (cc=1)
+og 00000000FFFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 0000000080000000 = 0000000080000000 (cc=1)
+og 000000007FFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | 0000000080000000 = 8000000080000000 (cc=1)
+og FFFFFFFFFFFFFFFF | 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 0000000080000000 = 55555555D5555555 (cc=1)
+or 0000000000000000 | 0000000080000000 = 0000000080000000 (cc=1)
+or 0000000000000001 | 0000000080000000 = 0000000080000001 (cc=1)
+or 000000000000FFFF | 0000000080000000 = 000000008000FFFF (cc=1)
+or 0000000000007FFF | 0000000080000000 = 0000000080007FFF (cc=1)
+or 0000000000008000 | 0000000080000000 = 0000000080008000 (cc=1)
+or 00000000FFFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 0000000080000000 = 0000000080000000 (cc=1)
+or 000000007FFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 0000000080000000 = 8000000080000000 (cc=1)
+or FFFFFFFFFFFFFFFF | 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 0000000080000000 = 55555555D5555555 (cc=1)
+ogr 0000000000000000 | 0000000080000000 = 0000000080000000 (cc=1)
+ogr 0000000000000001 | 0000000080000000 = 0000000080000001 (cc=1)
+ogr 000000000000FFFF | 0000000080000000 = 000000008000FFFF (cc=1)
+ogr 0000000000007FFF | 0000000080000000 = 0000000080007FFF (cc=1)
+ogr 0000000000008000 | 0000000080000000 = 0000000080008000 (cc=1)
+ogr 00000000FFFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 0000000080000000 = 0000000080000000 (cc=1)
+ogr 000000007FFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | 0000000080000000 = 8000000080000000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 0000000080000000 = 55555555D5555555 (cc=1)
+oy 0000000000000000 | 0000000080000000 = 0000000000000000 (cc=0)
+oy 0000000000000001 | 0000000080000000 = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 0000000080000000 = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 0000000080000000 = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 0000000080000000 = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 0000000080000000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 0000000080000000 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 0000000080000000 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 0000000080000000 = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 0000000080000000 = 5555555555555555 (cc=1)
+o 0000000000000000 | 0000000055555555 = 0000000000000000 (cc=0)
+o 0000000000000001 | 0000000055555555 = 0000000000000001 (cc=1)
+o 000000000000FFFF | 0000000055555555 = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 0000000055555555 = 0000000000007FFF (cc=1)
+o 0000000000008000 | 0000000055555555 = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 0000000055555555 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 0000000055555555 = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+og 0000000000000000 | 0000000055555555 = 0000000055555555 (cc=1)
+og 0000000000000001 | 0000000055555555 = 0000000055555555 (cc=1)
+og 000000000000FFFF | 0000000055555555 = 000000005555FFFF (cc=1)
+og 0000000000007FFF | 0000000055555555 = 0000000055557FFF (cc=1)
+og 0000000000008000 | 0000000055555555 = 000000005555D555 (cc=1)
+og 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 0000000055555555 = 00000000D5555555 (cc=1)
+og 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+og 8000000000000000 | 0000000055555555 = 8000000055555555 (cc=1)
+og FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+or 0000000000000000 | 0000000055555555 = 0000000055555555 (cc=1)
+or 0000000000000001 | 0000000055555555 = 0000000055555555 (cc=1)
+or 000000000000FFFF | 0000000055555555 = 000000005555FFFF (cc=1)
+or 0000000000007FFF | 0000000055555555 = 0000000055557FFF (cc=1)
+or 0000000000008000 | 0000000055555555 = 000000005555D555 (cc=1)
+or 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 0000000055555555 = 00000000D5555555 (cc=1)
+or 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+or 8000000000000000 | 0000000055555555 = 8000000055555555 (cc=1)
+or FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+ogr 0000000000000000 | 0000000055555555 = 0000000055555555 (cc=1)
+ogr 0000000000000001 | 0000000055555555 = 0000000055555555 (cc=1)
+ogr 000000000000FFFF | 0000000055555555 = 000000005555FFFF (cc=1)
+ogr 0000000000007FFF | 0000000055555555 = 0000000055557FFF (cc=1)
+ogr 0000000000008000 | 0000000055555555 = 000000005555D555 (cc=1)
+ogr 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 0000000055555555 = 00000000D5555555 (cc=1)
+ogr 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+ogr 8000000000000000 | 0000000055555555 = 8000000055555555 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+oy 0000000000000000 | 0000000055555555 = 0000000000000000 (cc=0)
+oy 0000000000000001 | 0000000055555555 = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 0000000055555555 = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 0000000055555555 = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 0000000055555555 = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 0000000055555555 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 0000000055555555 = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+o 0000000000000000 | 00000000FFFFFFFF = 0000000000000000 (cc=0)
+o 0000000000000001 | 00000000FFFFFFFF = 0000000000000001 (cc=1)
+o 000000000000FFFF | 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+o 0000000000008000 | 00000000FFFFFFFF = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 00000000FFFFFFFF = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 00000000FFFFFFFF = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 00000000FFFFFFFF = 5555555555555555 (cc=1)
+og 0000000000000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 0000000000000001 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 000000000000FFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 0000000000007FFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 0000000000008000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og 000000007FFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+og 8000000000000000 | 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+og FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 00000000FFFFFFFF = 55555555FFFFFFFF (cc=1)
+or 0000000000000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000000001 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 000000000000FFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000007FFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000000008000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or 000000007FFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+or 8000000000000000 | 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+or FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 00000000FFFFFFFF = 55555555FFFFFFFF (cc=1)
+ogr 0000000000000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000000000001 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 000000000000FFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000000007FFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000000008000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr 000000007FFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+ogr 8000000000000000 | 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 00000000FFFFFFFF = 55555555FFFFFFFF (cc=1)
+oy 0000000000000000 | 00000000FFFFFFFF = 0000000000000000 (cc=0)
+oy 0000000000000001 | 00000000FFFFFFFF = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 00000000FFFFFFFF = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 00000000FFFFFFFF = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 00000000FFFFFFFF = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 00000000FFFFFFFF = 5555555555555555 (cc=1)
+o 0000000000000000 | 000000000000FFFF = 0000000000000000 (cc=0)
+o 0000000000000001 | 000000000000FFFF = 0000000000000001 (cc=1)
+o 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 000000000000FFFF = 0000000000007FFF (cc=1)
+o 0000000000008000 | 000000000000FFFF = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 000000000000FFFF = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 000000000000FFFF = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 000000000000FFFF = 5555555555555555 (cc=1)
+og 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+og 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+og 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+og FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+or 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+or 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+or 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+or FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+ogr 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+ogr 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+ogr 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+oy 0000000000000000 | 000000000000FFFF = 0000000000000000 (cc=0)
+oy 0000000000000001 | 000000000000FFFF = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 000000000000FFFF = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 000000000000FFFF = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 000000000000FFFF = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 000000000000FFFF = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 000000000000FFFF = 5555555555555555 (cc=1)
+o 0000000000000000 | 0000000000007FFF = 0000000000000000 (cc=0)
+o 0000000000000001 | 0000000000007FFF = 0000000000000001 (cc=1)
+o 000000000000FFFF | 0000000000007FFF = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 0000000000007FFF = 0000000000007FFF (cc=1)
+o 0000000000008000 | 0000000000007FFF = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 0000000000007FFF = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 0000000000007FFF = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 0000000000007FFF = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 0000000000007FFF = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 0000000000007FFF = 5555555555555555 (cc=1)
+og 0000000000000000 | 0000000000007FFF = 0000000000007FFF (cc=1)
+og 0000000000000001 | 0000000000007FFF = 0000000000007FFF (cc=1)
+og 000000000000FFFF | 0000000000007FFF = 000000000000FFFF (cc=1)
+og 0000000000007FFF | 0000000000007FFF = 0000000000007FFF (cc=1)
+og 0000000000008000 | 0000000000007FFF = 000000000000FFFF (cc=1)
+og 00000000FFFFFFFF | 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 0000000000007FFF = 0000000080007FFF (cc=1)
+og 000000007FFFFFFF | 0000000000007FFF = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 0000000000007FFF = AAAAAAAAAAAAFFFF (cc=1)
+og 8000000000000000 | 0000000000007FFF = 8000000000007FFF (cc=1)
+og FFFFFFFFFFFFFFFF | 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 0000000000007FFF = 5555555555557FFF (cc=1)
+or 0000000000000000 | 0000000000007FFF = 0000000000007FFF (cc=1)
+or 0000000000000001 | 0000000000007FFF = 0000000000007FFF (cc=1)
+or 000000000000FFFF | 0000000000007FFF = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 0000000000007FFF = 0000000000007FFF (cc=1)
+or 0000000000008000 | 0000000000007FFF = 000000000000FFFF (cc=1)
+or 00000000FFFFFFFF | 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 0000000000007FFF = 0000000080007FFF (cc=1)
+or 000000007FFFFFFF | 0000000000007FFF = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 0000000000007FFF = AAAAAAAAAAAAFFFF (cc=1)
+or 8000000000000000 | 0000000000007FFF = 8000000000007FFF (cc=1)
+or FFFFFFFFFFFFFFFF | 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 0000000000007FFF = 5555555555557FFF (cc=1)
+ogr 0000000000000000 | 0000000000007FFF = 0000000000007FFF (cc=1)
+ogr 0000000000000001 | 0000000000007FFF = 0000000000007FFF (cc=1)
+ogr 000000000000FFFF | 0000000000007FFF = 000000000000FFFF (cc=1)
+ogr 0000000000007FFF | 0000000000007FFF = 0000000000007FFF (cc=1)
+ogr 0000000000008000 | 0000000000007FFF = 000000000000FFFF (cc=1)
+ogr 00000000FFFFFFFF | 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 0000000000007FFF = 0000000080007FFF (cc=1)
+ogr 000000007FFFFFFF | 0000000000007FFF = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 0000000000007FFF = AAAAAAAAAAAAFFFF (cc=1)
+ogr 8000000000000000 | 0000000000007FFF = 8000000000007FFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 0000000000007FFF = 5555555555557FFF (cc=1)
+oy 0000000000000000 | 0000000000007FFF = 0000000000000000 (cc=0)
+oy 0000000000000001 | 0000000000007FFF = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 0000000000007FFF = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 0000000000007FFF = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 0000000000007FFF = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 0000000000007FFF = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 0000000000007FFF = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 0000000000007FFF = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 0000000000007FFF = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 0000000000007FFF = 5555555555555555 (cc=1)
+o 0000000000000000 | 0000000000008000 = 0000000000000000 (cc=0)
+o 0000000000000001 | 0000000000008000 = 0000000000000001 (cc=1)
+o 000000000000FFFF | 0000000000008000 = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 0000000000008000 = 0000000000007FFF (cc=1)
+o 0000000000008000 | 0000000000008000 = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 0000000000008000 = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 0000000000008000 = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 0000000000008000 = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 0000000000008000 = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 0000000000008000 = 5555555555555555 (cc=1)
+og 0000000000000000 | 0000000000008000 = 0000000000008000 (cc=1)
+og 0000000000000001 | 0000000000008000 = 0000000000008001 (cc=1)
+og 000000000000FFFF | 0000000000008000 = 000000000000FFFF (cc=1)
+og 0000000000007FFF | 0000000000008000 = 000000000000FFFF (cc=1)
+og 0000000000008000 | 0000000000008000 = 0000000000008000 (cc=1)
+og 00000000FFFFFFFF | 0000000000008000 = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 0000000000008000 = 0000000080008000 (cc=1)
+og 000000007FFFFFFF | 0000000000008000 = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+og 8000000000000000 | 0000000000008000 = 8000000000008000 (cc=1)
+og FFFFFFFFFFFFFFFF | 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 0000000000008000 = 555555555555D555 (cc=1)
+or 0000000000000000 | 0000000000008000 = 0000000000008000 (cc=1)
+or 0000000000000001 | 0000000000008000 = 0000000000008001 (cc=1)
+or 000000000000FFFF | 0000000000008000 = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 0000000000008000 = 000000000000FFFF (cc=1)
+or 0000000000008000 | 0000000000008000 = 0000000000008000 (cc=1)
+or 00000000FFFFFFFF | 0000000000008000 = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 0000000000008000 = 0000000080008000 (cc=1)
+or 000000007FFFFFFF | 0000000000008000 = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+or 8000000000000000 | 0000000000008000 = 8000000000008000 (cc=1)
+or FFFFFFFFFFFFFFFF | 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 0000000000008000 = 555555555555D555 (cc=1)
+ogr 0000000000000000 | 0000000000008000 = 0000000000008000 (cc=1)
+ogr 0000000000000001 | 0000000000008000 = 0000000000008001 (cc=1)
+ogr 000000000000FFFF | 0000000000008000 = 000000000000FFFF (cc=1)
+ogr 0000000000007FFF | 0000000000008000 = 000000000000FFFF (cc=1)
+ogr 0000000000008000 | 0000000000008000 = 0000000000008000 (cc=1)
+ogr 00000000FFFFFFFF | 0000000000008000 = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 0000000000008000 = 0000000080008000 (cc=1)
+ogr 000000007FFFFFFF | 0000000000008000 = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+ogr 8000000000000000 | 0000000000008000 = 8000000000008000 (cc=1)
+ogr FFFFFFFFFFFFFFFF | 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 0000000000008000 = 555555555555D555 (cc=1)
+oy 0000000000000000 | 0000000000008000 = 0000000000000000 (cc=0)
+oy 0000000000000001 | 0000000000008000 = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 0000000000008000 = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 0000000000008000 = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 0000000000008000 = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 0000000000008000 = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 0000000000008000 = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 0000000000008000 = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 0000000000008000 = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 0000000000008000 = 5555555555555555 (cc=1)
+o 0000000000000000 | 000000000000FFFF = 0000000000000000 (cc=0)
+o 0000000000000001 | 000000000000FFFF = 0000000000000001 (cc=1)
+o 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+o 0000000000007FFF | 000000000000FFFF = 0000000000007FFF (cc=1)
+o 0000000000008000 | 000000000000FFFF = 0000000000008000 (cc=1)
+o 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+o 0000000080000000 | 000000000000FFFF = 0000000080000000 (cc=1)
+o 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+o AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+o 8000000000000000 | 000000000000FFFF = 8000000000000000 (cc=0)
+o FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+o 5555555555555555 | 000000000000FFFF = 5555555555555555 (cc=1)
+og 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+og 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+og 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+og 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+og AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+og 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+og FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+og 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+or 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+or 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+or 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+or 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+or AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+or 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+or FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+or 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+ogr 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+ogr 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+ogr 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+ogr 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+ogr AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+ogr 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+ogr FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+ogr 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+oy 0000000000000000 | 000000000000FFFF = 0000000000000000 (cc=0)
+oy 0000000000000001 | 000000000000FFFF = 0000000000000001 (cc=1)
+oy 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oy 0000000000007FFF | 000000000000FFFF = 0000000000007FFF (cc=1)
+oy 0000000000008000 | 000000000000FFFF = 0000000000008000 (cc=1)
+oy 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oy 0000000080000000 | 000000000000FFFF = 0000000080000000 (cc=1)
+oy 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+oy AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+oy 8000000000000000 | 000000000000FFFF = 8000000000000000 (cc=0)
+oy FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oy 5555555555555555 | 000000000000FFFF = 5555555555555555 (cc=1)
+oi 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oi 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oi 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oi 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oi 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oi 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=0)
+oi 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oi 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=0)
+oi AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oi 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+oi FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oi 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oi 0000000000000000 | 00000000000000FF = FF00000000000000 (cc=1)
+oi 0000000000000001 | 00000000000000FF = FF00000000000001 (cc=1)
+oi 000000000000FFFF | 00000000000000FF = FF0000000000FFFF (cc=1)
+oi 0000000000007FFF | 00000000000000FF = FF00000000007FFF (cc=1)
+oi 0000000000008000 | 00000000000000FF = FF00000000008000 (cc=1)
+oi 00000000FFFFFFFF | 00000000000000FF = FF000000FFFFFFFF (cc=1)
+oi 0000000080000000 | 00000000000000FF = FF00000080000000 (cc=1)
+oi 000000007FFFFFFF | 00000000000000FF = FF0000007FFFFFFF (cc=1)
+oi AAAAAAAAAAAAAAAA | 00000000000000FF = FFAAAAAAAAAAAAAA (cc=1)
+oi 8000000000000000 | 00000000000000FF = FF00000000000000 (cc=1)
+oi FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oi 5555555555555555 | 00000000000000FF = FF55555555555555 (cc=1)
+oi 0000000000000000 | 0000000000000080 = 8000000000000000 (cc=1)
+oi 0000000000000001 | 0000000000000080 = 8000000000000001 (cc=1)
+oi 000000000000FFFF | 0000000000000080 = 800000000000FFFF (cc=1)
+oi 0000000000007FFF | 0000000000000080 = 8000000000007FFF (cc=1)
+oi 0000000000008000 | 0000000000000080 = 8000000000008000 (cc=1)
+oi 00000000FFFFFFFF | 0000000000000080 = 80000000FFFFFFFF (cc=1)
+oi 0000000080000000 | 0000000000000080 = 8000000080000000 (cc=1)
+oi 000000007FFFFFFF | 0000000000000080 = 800000007FFFFFFF (cc=1)
+oi AAAAAAAAAAAAAAAA | 0000000000000080 = AAAAAAAAAAAAAAAA (cc=1)
+oi 8000000000000000 | 0000000000000080 = 8000000000000000 (cc=1)
+oi FFFFFFFFFFFFFFFF | 0000000000000080 = FFFFFFFFFFFFFFFF (cc=1)
+oi 5555555555555555 | 0000000000000080 = D555555555555555 (cc=1)
+oi 0000000000000000 | 00000000000000AA = AA00000000000000 (cc=1)
+oi 0000000000000001 | 00000000000000AA = AA00000000000001 (cc=1)
+oi 000000000000FFFF | 00000000000000AA = AA0000000000FFFF (cc=1)
+oi 0000000000007FFF | 00000000000000AA = AA00000000007FFF (cc=1)
+oi 0000000000008000 | 00000000000000AA = AA00000000008000 (cc=1)
+oi 00000000FFFFFFFF | 00000000000000AA = AA000000FFFFFFFF (cc=1)
+oi 0000000080000000 | 00000000000000AA = AA00000080000000 (cc=1)
+oi 000000007FFFFFFF | 00000000000000AA = AA0000007FFFFFFF (cc=1)
+oi AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oi 8000000000000000 | 00000000000000AA = AA00000000000000 (cc=1)
+oi FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oi 5555555555555555 | 00000000000000AA = FF55555555555555 (cc=1)
+oi 0000000000000000 | 0000000000000055 = 5500000000000000 (cc=1)
+oi 0000000000000001 | 0000000000000055 = 5500000000000001 (cc=1)
+oi 000000000000FFFF | 0000000000000055 = 550000000000FFFF (cc=1)
+oi 0000000000007FFF | 0000000000000055 = 5500000000007FFF (cc=1)
+oi 0000000000008000 | 0000000000000055 = 5500000000008000 (cc=1)
+oi 00000000FFFFFFFF | 0000000000000055 = 55000000FFFFFFFF (cc=1)
+oi 0000000080000000 | 0000000000000055 = 5500000080000000 (cc=1)
+oi 000000007FFFFFFF | 0000000000000055 = 550000007FFFFFFF (cc=1)
+oi AAAAAAAAAAAAAAAA | 0000000000000055 = FFAAAAAAAAAAAAAA (cc=1)
+oi 8000000000000000 | 0000000000000055 = D500000000000000 (cc=1)
+oi FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oi 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oiy 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oiy 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oiy 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oiy 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oiy 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oiy 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=0)
+oiy 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oiy 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=0)
+oiy AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oiy 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+oiy FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oiy 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oiy 0000000000000000 | 00000000000000FF = FF00000000000000 (cc=1)
+oiy 0000000000000001 | 00000000000000FF = FF00000000000001 (cc=1)
+oiy 000000000000FFFF | 00000000000000FF = FF0000000000FFFF (cc=1)
+oiy 0000000000007FFF | 00000000000000FF = FF00000000007FFF (cc=1)
+oiy 0000000000008000 | 00000000000000FF = FF00000000008000 (cc=1)
+oiy 00000000FFFFFFFF | 00000000000000FF = FF000000FFFFFFFF (cc=1)
+oiy 0000000080000000 | 00000000000000FF = FF00000080000000 (cc=1)
+oiy 000000007FFFFFFF | 00000000000000FF = FF0000007FFFFFFF (cc=1)
+oiy AAAAAAAAAAAAAAAA | 00000000000000FF = FFAAAAAAAAAAAAAA (cc=1)
+oiy 8000000000000000 | 00000000000000FF = FF00000000000000 (cc=1)
+oiy FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oiy 5555555555555555 | 00000000000000FF = FF55555555555555 (cc=1)
+oiy 0000000000000000 | 0000000000000080 = 8000000000000000 (cc=1)
+oiy 0000000000000001 | 0000000000000080 = 8000000000000001 (cc=1)
+oiy 000000000000FFFF | 0000000000000080 = 800000000000FFFF (cc=1)
+oiy 0000000000007FFF | 0000000000000080 = 8000000000007FFF (cc=1)
+oiy 0000000000008000 | 0000000000000080 = 8000000000008000 (cc=1)
+oiy 00000000FFFFFFFF | 0000000000000080 = 80000000FFFFFFFF (cc=1)
+oiy 0000000080000000 | 0000000000000080 = 8000000080000000 (cc=1)
+oiy 000000007FFFFFFF | 0000000000000080 = 800000007FFFFFFF (cc=1)
+oiy AAAAAAAAAAAAAAAA | 0000000000000080 = AAAAAAAAAAAAAAAA (cc=1)
+oiy 8000000000000000 | 0000000000000080 = 8000000000000000 (cc=1)
+oiy FFFFFFFFFFFFFFFF | 0000000000000080 = FFFFFFFFFFFFFFFF (cc=1)
+oiy 5555555555555555 | 0000000000000080 = D555555555555555 (cc=1)
+oiy 0000000000000000 | 00000000000000AA = AA00000000000000 (cc=1)
+oiy 0000000000000001 | 00000000000000AA = AA00000000000001 (cc=1)
+oiy 000000000000FFFF | 00000000000000AA = AA0000000000FFFF (cc=1)
+oiy 0000000000007FFF | 00000000000000AA = AA00000000007FFF (cc=1)
+oiy 0000000000008000 | 00000000000000AA = AA00000000008000 (cc=1)
+oiy 00000000FFFFFFFF | 00000000000000AA = AA000000FFFFFFFF (cc=1)
+oiy 0000000080000000 | 00000000000000AA = AA00000080000000 (cc=1)
+oiy 000000007FFFFFFF | 00000000000000AA = AA0000007FFFFFFF (cc=1)
+oiy AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oiy 8000000000000000 | 00000000000000AA = AA00000000000000 (cc=1)
+oiy FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oiy 5555555555555555 | 00000000000000AA = FF55555555555555 (cc=1)
+oiy 0000000000000000 | 0000000000000055 = 5500000000000000 (cc=1)
+oiy 0000000000000001 | 0000000000000055 = 5500000000000001 (cc=1)
+oiy 000000000000FFFF | 0000000000000055 = 550000000000FFFF (cc=1)
+oiy 0000000000007FFF | 0000000000000055 = 5500000000007FFF (cc=1)
+oiy 0000000000008000 | 0000000000000055 = 5500000000008000 (cc=1)
+oiy 00000000FFFFFFFF | 0000000000000055 = 55000000FFFFFFFF (cc=1)
+oiy 0000000080000000 | 0000000000000055 = 5500000080000000 (cc=1)
+oiy 000000007FFFFFFF | 0000000000000055 = 550000007FFFFFFF (cc=1)
+oiy AAAAAAAAAAAAAAAA | 0000000000000055 = FFAAAAAAAAAAAAAA (cc=1)
+oiy 8000000000000000 | 0000000000000055 = D500000000000000 (cc=1)
+oiy FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oiy 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oihh 0000000000000000 | 0000000000000055 = 0055000000000000 (cc=1)
+oihh 0000000000000001 | 0000000000000055 = 0055000000000001 (cc=1)
+oihh 000000000000FFFF | 0000000000000055 = 005500000000FFFF (cc=1)
+oihh 0000000000007FFF | 0000000000000055 = 0055000000007FFF (cc=1)
+oihh 0000000000008000 | 0000000000000055 = 0055000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 0000000000000055 = 00550000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 0000000000000055 = 0055000080000000 (cc=1)
+oihh 000000007FFFFFFF | 0000000000000055 = 005500007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 0000000000000055 = AAFFAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 0000000000000055 = 8055000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oihl 0000000000000000 | 0000000000000055 = 0000005500000000 (cc=1)
+oihl 0000000000000001 | 0000000000000055 = 0000005500000001 (cc=1)
+oihl 000000000000FFFF | 0000000000000055 = 000000550000FFFF (cc=1)
+oihl 0000000000007FFF | 0000000000000055 = 0000005500007FFF (cc=1)
+oihl 0000000000008000 | 0000000000000055 = 0000005500008000 (cc=1)
+oihl 00000000FFFFFFFF | 0000000000000055 = 00000055FFFFFFFF (cc=1)
+oihl 0000000080000000 | 0000000000000055 = 0000005580000000 (cc=1)
+oihl 000000007FFFFFFF | 0000000000000055 = 000000557FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 0000000000000055 = AAAAAAFFAAAAAAAA (cc=1)
+oihl 8000000000000000 | 0000000000000055 = 8000005500000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oilh 0000000000000000 | 0000000000000055 = 0000000000550000 (cc=1)
+oilh 0000000000000001 | 0000000000000055 = 0000000000550001 (cc=1)
+oilh 000000000000FFFF | 0000000000000055 = 000000000055FFFF (cc=1)
+oilh 0000000000007FFF | 0000000000000055 = 0000000000557FFF (cc=1)
+oilh 0000000000008000 | 0000000000000055 = 0000000000558000 (cc=1)
+oilh 00000000FFFFFFFF | 0000000000000055 = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 0000000000000055 = 0000000080550000 (cc=1)
+oilh 000000007FFFFFFF | 0000000000000055 = 000000007FFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 0000000000000055 = AAAAAAAAAAFFAAAA (cc=1)
+oilh 8000000000000000 | 0000000000000055 = 8000000000550000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oill 0000000000000000 | 0000000000000055 = 0000000000000055 (cc=1)
+oill 0000000000000001 | 0000000000000055 = 0000000000000055 (cc=1)
+oill 000000000000FFFF | 0000000000000055 = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 0000000000000055 = 0000000000007FFF (cc=1)
+oill 0000000000008000 | 0000000000000055 = 0000000000008055 (cc=1)
+oill 00000000FFFFFFFF | 0000000000000055 = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 0000000000000055 = 0000000080000055 (cc=1)
+oill 000000007FFFFFFF | 0000000000000055 = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 0000000000000055 = AAAAAAAAAAAAAAFF (cc=1)
+oill 8000000000000000 | 0000000000000055 = 8000000000000055 (cc=1)
+oill FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oihh 0000000000000000 | 00000000000000AA = 00AA000000000000 (cc=1)
+oihh 0000000000000001 | 00000000000000AA = 00AA000000000001 (cc=1)
+oihh 000000000000FFFF | 00000000000000AA = 00AA00000000FFFF (cc=1)
+oihh 0000000000007FFF | 00000000000000AA = 00AA000000007FFF (cc=1)
+oihh 0000000000008000 | 00000000000000AA = 00AA000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 00000000000000AA = 00AA0000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 00000000000000AA = 00AA000080000000 (cc=1)
+oihh 000000007FFFFFFF | 00000000000000AA = 00AA00007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 00000000000000AA = 80AA000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 00000000000000AA = 55FF555555555555 (cc=1)
+oihl 0000000000000000 | 00000000000000AA = 000000AA00000000 (cc=1)
+oihl 0000000000000001 | 00000000000000AA = 000000AA00000001 (cc=1)
+oihl 000000000000FFFF | 00000000000000AA = 000000AA0000FFFF (cc=1)
+oihl 0000000000007FFF | 00000000000000AA = 000000AA00007FFF (cc=1)
+oihl 0000000000008000 | 00000000000000AA = 000000AA00008000 (cc=1)
+oihl 00000000FFFFFFFF | 00000000000000AA = 000000AAFFFFFFFF (cc=1)
+oihl 0000000080000000 | 00000000000000AA = 000000AA80000000 (cc=1)
+oihl 000000007FFFFFFF | 00000000000000AA = 000000AA7FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oihl 8000000000000000 | 00000000000000AA = 800000AA00000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 00000000000000AA = 555555FF55555555 (cc=1)
+oilh 0000000000000000 | 00000000000000AA = 0000000000AA0000 (cc=1)
+oilh 0000000000000001 | 00000000000000AA = 0000000000AA0001 (cc=1)
+oilh 000000000000FFFF | 00000000000000AA = 0000000000AAFFFF (cc=1)
+oilh 0000000000007FFF | 00000000000000AA = 0000000000AA7FFF (cc=1)
+oilh 0000000000008000 | 00000000000000AA = 0000000000AA8000 (cc=1)
+oilh 00000000FFFFFFFF | 00000000000000AA = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 00000000000000AA = 0000000080AA0000 (cc=1)
+oilh 000000007FFFFFFF | 00000000000000AA = 000000007FFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oilh 8000000000000000 | 00000000000000AA = 8000000000AA0000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 00000000000000AA = 5555555555FF5555 (cc=1)
+oill 0000000000000000 | 00000000000000AA = 00000000000000AA (cc=1)
+oill 0000000000000001 | 00000000000000AA = 00000000000000AB (cc=1)
+oill 000000000000FFFF | 00000000000000AA = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 00000000000000AA = 0000000000007FFF (cc=1)
+oill 0000000000008000 | 00000000000000AA = 00000000000080AA (cc=1)
+oill 00000000FFFFFFFF | 00000000000000AA = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 00000000000000AA = 00000000800000AA (cc=1)
+oill 000000007FFFFFFF | 00000000000000AA = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oill 8000000000000000 | 00000000000000AA = 80000000000000AA (cc=1)
+oill FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 00000000000000AA = 55555555555555FF (cc=1)
+oihh 0000000000000000 | 00000000000000FF = 00FF000000000000 (cc=1)
+oihh 0000000000000001 | 00000000000000FF = 00FF000000000001 (cc=1)
+oihh 000000000000FFFF | 00000000000000FF = 00FF00000000FFFF (cc=1)
+oihh 0000000000007FFF | 00000000000000FF = 00FF000000007FFF (cc=1)
+oihh 0000000000008000 | 00000000000000FF = 00FF000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 00000000000000FF = 00FF0000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 00000000000000FF = 00FF000080000000 (cc=1)
+oihh 000000007FFFFFFF | 00000000000000FF = 00FF00007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 00000000000000FF = AAFFAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 00000000000000FF = 80FF000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 00000000000000FF = 55FF555555555555 (cc=1)
+oihl 0000000000000000 | 00000000000000FF = 000000FF00000000 (cc=1)
+oihl 0000000000000001 | 00000000000000FF = 000000FF00000001 (cc=1)
+oihl 000000000000FFFF | 00000000000000FF = 000000FF0000FFFF (cc=1)
+oihl 0000000000007FFF | 00000000000000FF = 000000FF00007FFF (cc=1)
+oihl 0000000000008000 | 00000000000000FF = 000000FF00008000 (cc=1)
+oihl 00000000FFFFFFFF | 00000000000000FF = 000000FFFFFFFFFF (cc=1)
+oihl 0000000080000000 | 00000000000000FF = 000000FF80000000 (cc=1)
+oihl 000000007FFFFFFF | 00000000000000FF = 000000FF7FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 00000000000000FF = AAAAAAFFAAAAAAAA (cc=1)
+oihl 8000000000000000 | 00000000000000FF = 800000FF00000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 00000000000000FF = 555555FF55555555 (cc=1)
+oilh 0000000000000000 | 00000000000000FF = 0000000000FF0000 (cc=1)
+oilh 0000000000000001 | 00000000000000FF = 0000000000FF0001 (cc=1)
+oilh 000000000000FFFF | 00000000000000FF = 0000000000FFFFFF (cc=1)
+oilh 0000000000007FFF | 00000000000000FF = 0000000000FF7FFF (cc=1)
+oilh 0000000000008000 | 00000000000000FF = 0000000000FF8000 (cc=1)
+oilh 00000000FFFFFFFF | 00000000000000FF = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 00000000000000FF = 0000000080FF0000 (cc=1)
+oilh 000000007FFFFFFF | 00000000000000FF = 000000007FFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 00000000000000FF = AAAAAAAAAAFFAAAA (cc=1)
+oilh 8000000000000000 | 00000000000000FF = 8000000000FF0000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 00000000000000FF = 5555555555FF5555 (cc=1)
+oill 0000000000000000 | 00000000000000FF = 00000000000000FF (cc=1)
+oill 0000000000000001 | 00000000000000FF = 00000000000000FF (cc=1)
+oill 000000000000FFFF | 00000000000000FF = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 00000000000000FF = 0000000000007FFF (cc=1)
+oill 0000000000008000 | 00000000000000FF = 00000000000080FF (cc=1)
+oill 00000000FFFFFFFF | 00000000000000FF = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 00000000000000FF = 00000000800000FF (cc=1)
+oill 000000007FFFFFFF | 00000000000000FF = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 00000000000000FF = AAAAAAAAAAAAAAFF (cc=1)
+oill 8000000000000000 | 00000000000000FF = 80000000000000FF (cc=1)
+oill FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 00000000000000FF = 55555555555555FF (cc=1)
+oihh 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oihh 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oihh 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oihh 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oihh 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oihh 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=0)
+oihh 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oihh 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=0)
+oihh AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oihl 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oihl 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oihl 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oihl 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oihl 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oihl 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=0)
+oihl 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oihl 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=0)
+oihl AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oihl 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+oihl FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oilh 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oilh 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oilh 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oilh 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oilh 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oilh 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+oilh 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oilh 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+oilh FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oill 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oill 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+oill 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+oill 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+oill 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oill 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oill 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+oill FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oihh 0000000000000000 | 000000000000FFFF = FFFF000000000000 (cc=1)
+oihh 0000000000000001 | 000000000000FFFF = FFFF000000000001 (cc=1)
+oihh 000000000000FFFF | 000000000000FFFF = FFFF00000000FFFF (cc=1)
+oihh 0000000000007FFF | 000000000000FFFF = FFFF000000007FFF (cc=1)
+oihh 0000000000008000 | 000000000000FFFF = FFFF000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 000000000000FFFF = FFFF0000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 000000000000FFFF = FFFF000080000000 (cc=1)
+oihh 000000007FFFFFFF | 000000000000FFFF = FFFF00007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 000000000000FFFF = FFFFAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 000000000000FFFF = FFFF000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 000000000000FFFF = FFFF555555555555 (cc=1)
+oihl 0000000000000000 | 000000000000FFFF = 0000FFFF00000000 (cc=1)
+oihl 0000000000000001 | 000000000000FFFF = 0000FFFF00000001 (cc=1)
+oihl 000000000000FFFF | 000000000000FFFF = 0000FFFF0000FFFF (cc=1)
+oihl 0000000000007FFF | 000000000000FFFF = 0000FFFF00007FFF (cc=1)
+oihl 0000000000008000 | 000000000000FFFF = 0000FFFF00008000 (cc=1)
+oihl 00000000FFFFFFFF | 000000000000FFFF = 0000FFFFFFFFFFFF (cc=1)
+oihl 0000000080000000 | 000000000000FFFF = 0000FFFF80000000 (cc=1)
+oihl 000000007FFFFFFF | 000000000000FFFF = 0000FFFF7FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAFFFFAAAAAAAA (cc=1)
+oihl 8000000000000000 | 000000000000FFFF = 8000FFFF00000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 000000000000FFFF = 5555FFFF55555555 (cc=1)
+oilh 0000000000000000 | 000000000000FFFF = 00000000FFFF0000 (cc=1)
+oilh 0000000000000001 | 000000000000FFFF = 00000000FFFF0001 (cc=1)
+oilh 000000000000FFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oilh 0000000000007FFF | 000000000000FFFF = 00000000FFFF7FFF (cc=1)
+oilh 0000000000008000 | 000000000000FFFF = 00000000FFFF8000 (cc=1)
+oilh 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 000000000000FFFF = 00000000FFFF0000 (cc=1)
+oilh 000000007FFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAFFFFAAAA (cc=1)
+oilh 8000000000000000 | 000000000000FFFF = 80000000FFFF0000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 000000000000FFFF = 55555555FFFF5555 (cc=1)
+oill 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oill 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oill 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oill 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oill 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+oill 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+oill 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+oill FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+oihh 0000000000000000 | 000000000000AAAA = AAAA000000000000 (cc=1)
+oihh 0000000000000001 | 000000000000AAAA = AAAA000000000001 (cc=1)
+oihh 000000000000FFFF | 000000000000AAAA = AAAA00000000FFFF (cc=1)
+oihh 0000000000007FFF | 000000000000AAAA = AAAA000000007FFF (cc=1)
+oihh 0000000000008000 | 000000000000AAAA = AAAA000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 000000000000AAAA = AAAA0000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 000000000000AAAA = AAAA000080000000 (cc=1)
+oihh 000000007FFFFFFF | 000000000000AAAA = AAAA00007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 000000000000AAAA = AAAA000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 000000000000AAAA = FFFF555555555555 (cc=1)
+oihl 0000000000000000 | 000000000000AAAA = 0000AAAA00000000 (cc=1)
+oihl 0000000000000001 | 000000000000AAAA = 0000AAAA00000001 (cc=1)
+oihl 000000000000FFFF | 000000000000AAAA = 0000AAAA0000FFFF (cc=1)
+oihl 0000000000007FFF | 000000000000AAAA = 0000AAAA00007FFF (cc=1)
+oihl 0000000000008000 | 000000000000AAAA = 0000AAAA00008000 (cc=1)
+oihl 00000000FFFFFFFF | 000000000000AAAA = 0000AAAAFFFFFFFF (cc=1)
+oihl 0000000080000000 | 000000000000AAAA = 0000AAAA80000000 (cc=1)
+oihl 000000007FFFFFFF | 000000000000AAAA = 0000AAAA7FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oihl 8000000000000000 | 000000000000AAAA = 8000AAAA00000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 000000000000AAAA = 5555FFFF55555555 (cc=1)
+oilh 0000000000000000 | 000000000000AAAA = 00000000AAAA0000 (cc=1)
+oilh 0000000000000001 | 000000000000AAAA = 00000000AAAA0001 (cc=1)
+oilh 000000000000FFFF | 000000000000AAAA = 00000000AAAAFFFF (cc=1)
+oilh 0000000000007FFF | 000000000000AAAA = 00000000AAAA7FFF (cc=1)
+oilh 0000000000008000 | 000000000000AAAA = 00000000AAAA8000 (cc=1)
+oilh 00000000FFFFFFFF | 000000000000AAAA = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 000000000000AAAA = 00000000AAAA0000 (cc=1)
+oilh 000000007FFFFFFF | 000000000000AAAA = 00000000FFFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oilh 8000000000000000 | 000000000000AAAA = 80000000AAAA0000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 000000000000AAAA = 55555555FFFF5555 (cc=1)
+oill 0000000000000000 | 000000000000AAAA = 000000000000AAAA (cc=1)
+oill 0000000000000001 | 000000000000AAAA = 000000000000AAAB (cc=1)
+oill 000000000000FFFF | 000000000000AAAA = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 000000000000AAAA = 000000000000FFFF (cc=1)
+oill 0000000000008000 | 000000000000AAAA = 000000000000AAAA (cc=1)
+oill 00000000FFFFFFFF | 000000000000AAAA = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 000000000000AAAA = 000000008000AAAA (cc=1)
+oill 000000007FFFFFFF | 000000000000AAAA = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oill 8000000000000000 | 000000000000AAAA = 800000000000AAAA (cc=1)
+oill FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 000000000000AAAA = 555555555555FFFF (cc=1)
+oihh 0000000000000000 | 0000000000005555 = 5555000000000000 (cc=1)
+oihh 0000000000000001 | 0000000000005555 = 5555000000000001 (cc=1)
+oihh 000000000000FFFF | 0000000000005555 = 555500000000FFFF (cc=1)
+oihh 0000000000007FFF | 0000000000005555 = 5555000000007FFF (cc=1)
+oihh 0000000000008000 | 0000000000005555 = 5555000000008000 (cc=1)
+oihh 00000000FFFFFFFF | 0000000000005555 = 55550000FFFFFFFF (cc=1)
+oihh 0000000080000000 | 0000000000005555 = 5555000080000000 (cc=1)
+oihh 000000007FFFFFFF | 0000000000005555 = 555500007FFFFFFF (cc=1)
+oihh AAAAAAAAAAAAAAAA | 0000000000005555 = FFFFAAAAAAAAAAAA (cc=1)
+oihh 8000000000000000 | 0000000000005555 = D555000000000000 (cc=1)
+oihh FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oihh 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
+oihl 0000000000000000 | 0000000000005555 = 0000555500000000 (cc=1)
+oihl 0000000000000001 | 0000000000005555 = 0000555500000001 (cc=1)
+oihl 000000000000FFFF | 0000000000005555 = 000055550000FFFF (cc=1)
+oihl 0000000000007FFF | 0000000000005555 = 0000555500007FFF (cc=1)
+oihl 0000000000008000 | 0000000000005555 = 0000555500008000 (cc=1)
+oihl 00000000FFFFFFFF | 0000000000005555 = 00005555FFFFFFFF (cc=1)
+oihl 0000000080000000 | 0000000000005555 = 0000555580000000 (cc=1)
+oihl 000000007FFFFFFF | 0000000000005555 = 000055557FFFFFFF (cc=1)
+oihl AAAAAAAAAAAAAAAA | 0000000000005555 = AAAAFFFFAAAAAAAA (cc=1)
+oihl 8000000000000000 | 0000000000005555 = 8000555500000000 (cc=1)
+oihl FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oihl 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
+oilh 0000000000000000 | 0000000000005555 = 0000000055550000 (cc=1)
+oilh 0000000000000001 | 0000000000005555 = 0000000055550001 (cc=1)
+oilh 000000000000FFFF | 0000000000005555 = 000000005555FFFF (cc=1)
+oilh 0000000000007FFF | 0000000000005555 = 0000000055557FFF (cc=1)
+oilh 0000000000008000 | 0000000000005555 = 0000000055558000 (cc=1)
+oilh 00000000FFFFFFFF | 0000000000005555 = 00000000FFFFFFFF (cc=1)
+oilh 0000000080000000 | 0000000000005555 = 00000000D5550000 (cc=1)
+oilh 000000007FFFFFFF | 0000000000005555 = 000000007FFFFFFF (cc=1)
+oilh AAAAAAAAAAAAAAAA | 0000000000005555 = AAAAAAAAFFFFAAAA (cc=1)
+oilh 8000000000000000 | 0000000000005555 = 8000000055550000 (cc=1)
+oilh FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oilh 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
+oill 0000000000000000 | 0000000000005555 = 0000000000005555 (cc=1)
+oill 0000000000000001 | 0000000000005555 = 0000000000005555 (cc=1)
+oill 000000000000FFFF | 0000000000005555 = 000000000000FFFF (cc=1)
+oill 0000000000007FFF | 0000000000005555 = 0000000000007FFF (cc=1)
+oill 0000000000008000 | 0000000000005555 = 000000000000D555 (cc=1)
+oill 00000000FFFFFFFF | 0000000000005555 = 00000000FFFFFFFF (cc=1)
+oill 0000000080000000 | 0000000000005555 = 0000000080005555 (cc=1)
+oill 000000007FFFFFFF | 0000000000005555 = 000000007FFFFFFF (cc=1)
+oill AAAAAAAAAAAAAAAA | 0000000000005555 = AAAAAAAAAAAAFFFF (cc=1)
+oill 8000000000000000 | 0000000000005555 = 8000000000005555 (cc=1)
+oill FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oill 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
diff --git a/none/tests/s390x/or.vgtest b/none/tests/s390x/or.vgtest
new file mode 100644 (file)
index 0000000..ab47cc8
--- /dev/null
@@ -0,0 +1 @@
+prog: or
diff --git a/none/tests/s390x/or_EI.c b/none/tests/s390x/or_EI.c
new file mode 100644 (file)
index 0000000..cbfa0ff
--- /dev/null
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include "or.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(oihf, 0);
+       immsweep(oihf, 0xff);
+       immsweep(oihf, 0x55);
+       immsweep(oihf, 0xaa);
+       immsweep(oihf, 0xffff);
+       immsweep(oihf, 0x5555);
+       immsweep(oihf, 0xaaaa);
+       immsweep(oihf, 0xffff0000);
+       immsweep(oihf, 0x55550000);
+       immsweep(oihf, 0xaaaa0000);
+       immsweep(oihf, 0xffffffff);
+       immsweep(oihf, 0x55555555);
+       immsweep(oihf, 0xaaaaaaaa);
+       immsweep(oilf, 0);
+       immsweep(oilf, 0xff);
+       immsweep(oilf, 0x55);
+       immsweep(oilf, 0xaa);
+       immsweep(oilf, 0xffff);
+       immsweep(oilf, 0x5555);
+       immsweep(oilf, 0xaaaa);
+       immsweep(oilf, 0xffff0000);
+       immsweep(oilf, 0x55550000);
+       immsweep(oilf, 0xaaaa0000);
+       immsweep(oilf, 0xffffffff);
+       immsweep(oilf, 0x55555555);
+       immsweep(oilf, 0xaaaaaaaa);
+}
+
+
+int main()
+{
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/or_EI.stderr.exp b/none/tests/s390x/or_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/or_EI.stdout.exp b/none/tests/s390x/or_EI.stdout.exp
new file mode 100644 (file)
index 0000000..31115d7
--- /dev/null
@@ -0,0 +1,312 @@
+oihf 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oihf 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=0)
+oihf 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=0)
+oihf 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=0)
+oihf 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=0)
+oihf 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=0)
+oihf 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=0)
+oihf 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=0)
+oihf AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oihf 0000000000000000 | 00000000000000FF = 000000FF00000000 (cc=1)
+oihf 0000000000000001 | 00000000000000FF = 000000FF00000001 (cc=1)
+oihf 000000000000FFFF | 00000000000000FF = 000000FF0000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000000000FF = 000000FF00007FFF (cc=1)
+oihf 0000000000008000 | 00000000000000FF = 000000FF00008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000000000FF = 000000FFFFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000000000FF = 000000FF80000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000000000FF = 000000FF7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000000000FF = AAAAAAFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000000000FF = 800000FF00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000000000FF = 555555FF55555555 (cc=1)
+oihf 0000000000000000 | 0000000000000055 = 0000005500000000 (cc=1)
+oihf 0000000000000001 | 0000000000000055 = 0000005500000001 (cc=1)
+oihf 000000000000FFFF | 0000000000000055 = 000000550000FFFF (cc=1)
+oihf 0000000000007FFF | 0000000000000055 = 0000005500007FFF (cc=1)
+oihf 0000000000008000 | 0000000000000055 = 0000005500008000 (cc=1)
+oihf 00000000FFFFFFFF | 0000000000000055 = 00000055FFFFFFFF (cc=1)
+oihf 0000000080000000 | 0000000000000055 = 0000005580000000 (cc=1)
+oihf 000000007FFFFFFF | 0000000000000055 = 000000557FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 0000000000000055 = AAAAAAFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 0000000000000055 = 8000005500000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oihf 0000000000000000 | 00000000000000AA = 000000AA00000000 (cc=1)
+oihf 0000000000000001 | 00000000000000AA = 000000AA00000001 (cc=1)
+oihf 000000000000FFFF | 00000000000000AA = 000000AA0000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000000000AA = 000000AA00007FFF (cc=1)
+oihf 0000000000008000 | 00000000000000AA = 000000AA00008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000000000AA = 000000AAFFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000000000AA = 000000AA80000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000000000AA = 000000AA7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000000000AA = 800000AA00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000000000AA = 555555FF55555555 (cc=1)
+oihf 0000000000000000 | 000000000000FFFF = 0000FFFF00000000 (cc=1)
+oihf 0000000000000001 | 000000000000FFFF = 0000FFFF00000001 (cc=1)
+oihf 000000000000FFFF | 000000000000FFFF = 0000FFFF0000FFFF (cc=1)
+oihf 0000000000007FFF | 000000000000FFFF = 0000FFFF00007FFF (cc=1)
+oihf 0000000000008000 | 000000000000FFFF = 0000FFFF00008000 (cc=1)
+oihf 00000000FFFFFFFF | 000000000000FFFF = 0000FFFFFFFFFFFF (cc=1)
+oihf 0000000080000000 | 000000000000FFFF = 0000FFFF80000000 (cc=1)
+oihf 000000007FFFFFFF | 000000000000FFFF = 0000FFFF7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAFFFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 000000000000FFFF = 8000FFFF00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 000000000000FFFF = 5555FFFF55555555 (cc=1)
+oihf 0000000000000000 | 0000000000005555 = 0000555500000000 (cc=1)
+oihf 0000000000000001 | 0000000000005555 = 0000555500000001 (cc=1)
+oihf 000000000000FFFF | 0000000000005555 = 000055550000FFFF (cc=1)
+oihf 0000000000007FFF | 0000000000005555 = 0000555500007FFF (cc=1)
+oihf 0000000000008000 | 0000000000005555 = 0000555500008000 (cc=1)
+oihf 00000000FFFFFFFF | 0000000000005555 = 00005555FFFFFFFF (cc=1)
+oihf 0000000080000000 | 0000000000005555 = 0000555580000000 (cc=1)
+oihf 000000007FFFFFFF | 0000000000005555 = 000055557FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 0000000000005555 = AAAAFFFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 0000000000005555 = 8000555500000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
+oihf 0000000000000000 | 000000000000AAAA = 0000AAAA00000000 (cc=1)
+oihf 0000000000000001 | 000000000000AAAA = 0000AAAA00000001 (cc=1)
+oihf 000000000000FFFF | 000000000000AAAA = 0000AAAA0000FFFF (cc=1)
+oihf 0000000000007FFF | 000000000000AAAA = 0000AAAA00007FFF (cc=1)
+oihf 0000000000008000 | 000000000000AAAA = 0000AAAA00008000 (cc=1)
+oihf 00000000FFFFFFFF | 000000000000AAAA = 0000AAAAFFFFFFFF (cc=1)
+oihf 0000000080000000 | 000000000000AAAA = 0000AAAA80000000 (cc=1)
+oihf 000000007FFFFFFF | 000000000000AAAA = 0000AAAA7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 000000000000AAAA = 8000AAAA00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 000000000000AAAA = 5555FFFF55555555 (cc=1)
+oihf 0000000000000000 | 00000000FFFF0000 = FFFF000000000000 (cc=1)
+oihf 0000000000000001 | 00000000FFFF0000 = FFFF000000000001 (cc=1)
+oihf 000000000000FFFF | 00000000FFFF0000 = FFFF00000000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000FFFF0000 = FFFF000000007FFF (cc=1)
+oihf 0000000000008000 | 00000000FFFF0000 = FFFF000000008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000FFFF0000 = FFFF0000FFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000FFFF0000 = FFFF000080000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000FFFF0000 = FFFF00007FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000FFFF0000 = FFFFAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000FFFF0000 = FFFF000000000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000FFFF0000 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000FFFF0000 = FFFF555555555555 (cc=1)
+oihf 0000000000000000 | 0000000055550000 = 5555000000000000 (cc=1)
+oihf 0000000000000001 | 0000000055550000 = 5555000000000001 (cc=1)
+oihf 000000000000FFFF | 0000000055550000 = 555500000000FFFF (cc=1)
+oihf 0000000000007FFF | 0000000055550000 = 5555000000007FFF (cc=1)
+oihf 0000000000008000 | 0000000055550000 = 5555000000008000 (cc=1)
+oihf 00000000FFFFFFFF | 0000000055550000 = 55550000FFFFFFFF (cc=1)
+oihf 0000000080000000 | 0000000055550000 = 5555000080000000 (cc=1)
+oihf 000000007FFFFFFF | 0000000055550000 = 555500007FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 0000000055550000 = FFFFAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 0000000055550000 = D555000000000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 0000000055550000 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 0000000055550000 = 5555555555555555 (cc=1)
+oihf 0000000000000000 | 00000000AAAA0000 = AAAA000000000000 (cc=1)
+oihf 0000000000000001 | 00000000AAAA0000 = AAAA000000000001 (cc=1)
+oihf 000000000000FFFF | 00000000AAAA0000 = AAAA00000000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000AAAA0000 = AAAA000000007FFF (cc=1)
+oihf 0000000000008000 | 00000000AAAA0000 = AAAA000000008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000AAAA0000 = AAAA0000FFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000AAAA0000 = AAAA000080000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000AAAA0000 = AAAA00007FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000AAAA0000 = AAAAAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000AAAA0000 = AAAA000000000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000AAAA0000 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000AAAA0000 = FFFF555555555555 (cc=1)
+oihf 0000000000000000 | 00000000FFFFFFFF = FFFFFFFF00000000 (cc=1)
+oihf 0000000000000001 | 00000000FFFFFFFF = FFFFFFFF00000001 (cc=1)
+oihf 000000000000FFFF | 00000000FFFFFFFF = FFFFFFFF0000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000FFFFFFFF = FFFFFFFF00007FFF (cc=1)
+oihf 0000000000008000 | 00000000FFFFFFFF = FFFFFFFF00008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000FFFFFFFF = FFFFFFFF80000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000FFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = FFFFFFFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000FFFFFFFF = FFFFFFFF00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000FFFFFFFF = FFFFFFFF55555555 (cc=1)
+oihf 0000000000000000 | 0000000055555555 = 5555555500000000 (cc=1)
+oihf 0000000000000001 | 0000000055555555 = 5555555500000001 (cc=1)
+oihf 000000000000FFFF | 0000000055555555 = 555555550000FFFF (cc=1)
+oihf 0000000000007FFF | 0000000055555555 = 5555555500007FFF (cc=1)
+oihf 0000000000008000 | 0000000055555555 = 5555555500008000 (cc=1)
+oihf 00000000FFFFFFFF | 0000000055555555 = 55555555FFFFFFFF (cc=1)
+oihf 0000000080000000 | 0000000055555555 = 5555555580000000 (cc=1)
+oihf 000000007FFFFFFF | 0000000055555555 = 555555557FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+oihf 8000000000000000 | 0000000055555555 = D555555500000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+oihf 0000000000000000 | 00000000AAAAAAAA = AAAAAAAA00000000 (cc=1)
+oihf 0000000000000001 | 00000000AAAAAAAA = AAAAAAAA00000001 (cc=1)
+oihf 000000000000FFFF | 00000000AAAAAAAA = AAAAAAAA0000FFFF (cc=1)
+oihf 0000000000007FFF | 00000000AAAAAAAA = AAAAAAAA00007FFF (cc=1)
+oihf 0000000000008000 | 00000000AAAAAAAA = AAAAAAAA00008000 (cc=1)
+oihf 00000000FFFFFFFF | 00000000AAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+oihf 0000000080000000 | 00000000AAAAAAAA = AAAAAAAA80000000 (cc=1)
+oihf 000000007FFFFFFF | 00000000AAAAAAAA = AAAAAAAA7FFFFFFF (cc=1)
+oihf AAAAAAAAAAAAAAAA | 00000000AAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+oihf 8000000000000000 | 00000000AAAAAAAA = AAAAAAAA00000000 (cc=1)
+oihf FFFFFFFFFFFFFFFF | 00000000AAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+oihf 5555555555555555 | 00000000AAAAAAAA = FFFFFFFF55555555 (cc=1)
+oilf 0000000000000000 | 0000000000000000 = 0000000000000000 (cc=0)
+oilf 0000000000000001 | 0000000000000000 = 0000000000000001 (cc=1)
+oilf 000000000000FFFF | 0000000000000000 = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 0000000000000000 = 0000000000007FFF (cc=1)
+oilf 0000000000008000 | 0000000000000000 = 0000000000008000 (cc=1)
+oilf 00000000FFFFFFFF | 0000000000000000 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 0000000000000000 = 0000000080000000 (cc=1)
+oilf 000000007FFFFFFF | 0000000000000000 = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+oilf 8000000000000000 | 0000000000000000 = 8000000000000000 (cc=0)
+oilf FFFFFFFFFFFFFFFF | 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 0000000000000000 = 5555555555555555 (cc=1)
+oilf 0000000000000000 | 00000000000000FF = 00000000000000FF (cc=1)
+oilf 0000000000000001 | 00000000000000FF = 00000000000000FF (cc=1)
+oilf 000000000000FFFF | 00000000000000FF = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 00000000000000FF = 0000000000007FFF (cc=1)
+oilf 0000000000008000 | 00000000000000FF = 00000000000080FF (cc=1)
+oilf 00000000FFFFFFFF | 00000000000000FF = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000000000FF = 00000000800000FF (cc=1)
+oilf 000000007FFFFFFF | 00000000000000FF = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000000000FF = AAAAAAAAAAAAAAFF (cc=1)
+oilf 8000000000000000 | 00000000000000FF = 80000000000000FF (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000000000FF = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000000000FF = 55555555555555FF (cc=1)
+oilf 0000000000000000 | 0000000000000055 = 0000000000000055 (cc=1)
+oilf 0000000000000001 | 0000000000000055 = 0000000000000055 (cc=1)
+oilf 000000000000FFFF | 0000000000000055 = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 0000000000000055 = 0000000000007FFF (cc=1)
+oilf 0000000000008000 | 0000000000000055 = 0000000000008055 (cc=1)
+oilf 00000000FFFFFFFF | 0000000000000055 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 0000000000000055 = 0000000080000055 (cc=1)
+oilf 000000007FFFFFFF | 0000000000000055 = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 0000000000000055 = AAAAAAAAAAAAAAFF (cc=1)
+oilf 8000000000000000 | 0000000000000055 = 8000000000000055 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 0000000000000055 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 0000000000000055 = 5555555555555555 (cc=1)
+oilf 0000000000000000 | 00000000000000AA = 00000000000000AA (cc=1)
+oilf 0000000000000001 | 00000000000000AA = 00000000000000AB (cc=1)
+oilf 000000000000FFFF | 00000000000000AA = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 00000000000000AA = 0000000000007FFF (cc=1)
+oilf 0000000000008000 | 00000000000000AA = 00000000000080AA (cc=1)
+oilf 00000000FFFFFFFF | 00000000000000AA = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000000000AA = 00000000800000AA (cc=1)
+oilf 000000007FFFFFFF | 00000000000000AA = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000000000AA = AAAAAAAAAAAAAAAA (cc=1)
+oilf 8000000000000000 | 00000000000000AA = 80000000000000AA (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000000000AA = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000000000AA = 55555555555555FF (cc=1)
+oilf 0000000000000000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oilf 0000000000000001 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oilf 000000000000FFFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 000000000000FFFF = 000000000000FFFF (cc=1)
+oilf 0000000000008000 | 000000000000FFFF = 000000000000FFFF (cc=1)
+oilf 00000000FFFFFFFF | 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 000000000000FFFF = 000000008000FFFF (cc=1)
+oilf 000000007FFFFFFF | 000000000000FFFF = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 000000000000FFFF = AAAAAAAAAAAAFFFF (cc=1)
+oilf 8000000000000000 | 000000000000FFFF = 800000000000FFFF (cc=1)
+oilf FFFFFFFFFFFFFFFF | 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 000000000000FFFF = 555555555555FFFF (cc=1)
+oilf 0000000000000000 | 0000000000005555 = 0000000000005555 (cc=1)
+oilf 0000000000000001 | 0000000000005555 = 0000000000005555 (cc=1)
+oilf 000000000000FFFF | 0000000000005555 = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 0000000000005555 = 0000000000007FFF (cc=1)
+oilf 0000000000008000 | 0000000000005555 = 000000000000D555 (cc=1)
+oilf 00000000FFFFFFFF | 0000000000005555 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 0000000000005555 = 0000000080005555 (cc=1)
+oilf 000000007FFFFFFF | 0000000000005555 = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 0000000000005555 = AAAAAAAAAAAAFFFF (cc=1)
+oilf 8000000000000000 | 0000000000005555 = 8000000000005555 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 0000000000005555 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 0000000000005555 = 5555555555555555 (cc=1)
+oilf 0000000000000000 | 000000000000AAAA = 000000000000AAAA (cc=1)
+oilf 0000000000000001 | 000000000000AAAA = 000000000000AAAB (cc=1)
+oilf 000000000000FFFF | 000000000000AAAA = 000000000000FFFF (cc=1)
+oilf 0000000000007FFF | 000000000000AAAA = 000000000000FFFF (cc=1)
+oilf 0000000000008000 | 000000000000AAAA = 000000000000AAAA (cc=1)
+oilf 00000000FFFFFFFF | 000000000000AAAA = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 000000000000AAAA = 000000008000AAAA (cc=1)
+oilf 000000007FFFFFFF | 000000000000AAAA = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 000000000000AAAA = AAAAAAAAAAAAAAAA (cc=1)
+oilf 8000000000000000 | 000000000000AAAA = 800000000000AAAA (cc=1)
+oilf FFFFFFFFFFFFFFFF | 000000000000AAAA = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 000000000000AAAA = 555555555555FFFF (cc=1)
+oilf 0000000000000000 | 00000000FFFF0000 = 00000000FFFF0000 (cc=1)
+oilf 0000000000000001 | 00000000FFFF0000 = 00000000FFFF0001 (cc=1)
+oilf 000000000000FFFF | 00000000FFFF0000 = 00000000FFFFFFFF (cc=1)
+oilf 0000000000007FFF | 00000000FFFF0000 = 00000000FFFF7FFF (cc=1)
+oilf 0000000000008000 | 00000000FFFF0000 = 00000000FFFF8000 (cc=1)
+oilf 00000000FFFFFFFF | 00000000FFFF0000 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000FFFF0000 = 00000000FFFF0000 (cc=1)
+oilf 000000007FFFFFFF | 00000000FFFF0000 = 00000000FFFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000FFFF0000 = AAAAAAAAFFFFAAAA (cc=1)
+oilf 8000000000000000 | 00000000FFFF0000 = 80000000FFFF0000 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000FFFF0000 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000FFFF0000 = 55555555FFFF5555 (cc=1)
+oilf 0000000000000000 | 0000000055550000 = 0000000055550000 (cc=1)
+oilf 0000000000000001 | 0000000055550000 = 0000000055550001 (cc=1)
+oilf 000000000000FFFF | 0000000055550000 = 000000005555FFFF (cc=1)
+oilf 0000000000007FFF | 0000000055550000 = 0000000055557FFF (cc=1)
+oilf 0000000000008000 | 0000000055550000 = 0000000055558000 (cc=1)
+oilf 00000000FFFFFFFF | 0000000055550000 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 0000000055550000 = 00000000D5550000 (cc=1)
+oilf 000000007FFFFFFF | 0000000055550000 = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 0000000055550000 = AAAAAAAAFFFFAAAA (cc=1)
+oilf 8000000000000000 | 0000000055550000 = 8000000055550000 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 0000000055550000 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 0000000055550000 = 5555555555555555 (cc=1)
+oilf 0000000000000000 | 00000000AAAA0000 = 00000000AAAA0000 (cc=1)
+oilf 0000000000000001 | 00000000AAAA0000 = 00000000AAAA0001 (cc=1)
+oilf 000000000000FFFF | 00000000AAAA0000 = 00000000AAAAFFFF (cc=1)
+oilf 0000000000007FFF | 00000000AAAA0000 = 00000000AAAA7FFF (cc=1)
+oilf 0000000000008000 | 00000000AAAA0000 = 00000000AAAA8000 (cc=1)
+oilf 00000000FFFFFFFF | 00000000AAAA0000 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000AAAA0000 = 00000000AAAA0000 (cc=1)
+oilf 000000007FFFFFFF | 00000000AAAA0000 = 00000000FFFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000AAAA0000 = AAAAAAAAAAAAAAAA (cc=1)
+oilf 8000000000000000 | 00000000AAAA0000 = 80000000AAAA0000 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000AAAA0000 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000AAAA0000 = 55555555FFFF5555 (cc=1)
+oilf 0000000000000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 0000000000000001 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 000000000000FFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 0000000000007FFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 0000000000008000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 00000000FFFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf 000000007FFFFFFF | 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000FFFFFFFF = AAAAAAAAFFFFFFFF (cc=1)
+oilf 8000000000000000 | 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000FFFFFFFF = 55555555FFFFFFFF (cc=1)
+oilf 0000000000000000 | 0000000055555555 = 0000000055555555 (cc=1)
+oilf 0000000000000001 | 0000000055555555 = 0000000055555555 (cc=1)
+oilf 000000000000FFFF | 0000000055555555 = 000000005555FFFF (cc=1)
+oilf 0000000000007FFF | 0000000055555555 = 0000000055557FFF (cc=1)
+oilf 0000000000008000 | 0000000055555555 = 000000005555D555 (cc=1)
+oilf 00000000FFFFFFFF | 0000000055555555 = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 0000000055555555 = 00000000D5555555 (cc=1)
+oilf 000000007FFFFFFF | 0000000055555555 = 000000007FFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+oilf 8000000000000000 | 0000000055555555 = 8000000055555555 (cc=1)
+oilf FFFFFFFFFFFFFFFF | 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 0000000055555555 = 5555555555555555 (cc=1)
+oilf 0000000000000000 | 00000000AAAAAAAA = 00000000AAAAAAAA (cc=1)
+oilf 0000000000000001 | 00000000AAAAAAAA = 00000000AAAAAAAB (cc=1)
+oilf 000000000000FFFF | 00000000AAAAAAAA = 00000000AAAAFFFF (cc=1)
+oilf 0000000000007FFF | 00000000AAAAAAAA = 00000000AAAAFFFF (cc=1)
+oilf 0000000000008000 | 00000000AAAAAAAA = 00000000AAAAAAAA (cc=1)
+oilf 00000000FFFFFFFF | 00000000AAAAAAAA = 00000000FFFFFFFF (cc=1)
+oilf 0000000080000000 | 00000000AAAAAAAA = 00000000AAAAAAAA (cc=1)
+oilf 000000007FFFFFFF | 00000000AAAAAAAA = 00000000FFFFFFFF (cc=1)
+oilf AAAAAAAAAAAAAAAA | 00000000AAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+oilf 8000000000000000 | 00000000AAAAAAAA = 80000000AAAAAAAA (cc=1)
+oilf FFFFFFFFFFFFFFFF | 00000000AAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+oilf 5555555555555555 | 00000000AAAAAAAA = 55555555FFFFFFFF (cc=1)
diff --git a/none/tests/s390x/or_EI.vgtest b/none/tests/s390x/or_EI.vgtest
new file mode 100644 (file)
index 0000000..f455267
--- /dev/null
@@ -0,0 +1,2 @@
+prog: or_EI
+prereq: test -x or_EI
diff --git a/none/tests/s390x/srst.c b/none/tests/s390x/srst.c
new file mode 100644 (file)
index 0000000..9358783
--- /dev/null
@@ -0,0 +1,93 @@
+#include "test.h"
+char buffer[24] ="0123456789abcdefghijklmn";
+char *buflong = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.,}[]"
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS%UVWXYZ0123456789_.,}[]";
+
+static char * srst3(char *__next, char *__start, char __what, int *__cc)
+{
+       register unsigned long what asm ("0") = __what;
+       register char *next asm ("2") = __next;
+       register char *start asm ("4") = __start;
+       int cc;
+
+       asm volatile(   "0: srst 2,4\n"
+                       "jo 0b\n"
+                       "ipm %2\n"
+                       "srl %2,28\n"
+                       :"+d" (start), "+d" (next), "=d" (cc) :"d" (what): "cc");
+       *__cc = cc;
+       return next;
+}
+
+static char * srst2(char *__start, char __what,  int *__cc)
+{
+       register unsigned long what asm ("0") = __what;
+       register char *start asm ("4") = __start;
+       int cc;
+
+       asm volatile(   "0: srst 0,4\n"
+                       "jo 0b\n"
+                       "ipm %2\n"
+                       "srl %2,28\n"
+                       :"+d" (start), "+d" (what), "=d" (cc) :: "cc");
+       *__cc = cc;
+       return (char *) what;
+}
+
+int main()
+{
+       char *buf;
+       int cc;
+
+
+       /* len=0 and start== next should not fault */
+       srst3((char *)0x12345678,(char *)0x12345678,'0', &cc);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(&buffer[23], &buffer[23], '0', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(&buffer[23], &buffer[0], '0', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(&buffer[23], &buffer[0], 'a', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(&buffer[23], &buffer[0], 'm', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(&buffer[23], &buffer[0], 'n', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst2(&buffer[0], '0', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst2(&buffer[0], 'a', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst2(&buffer[0], 'm', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst2(&buffer[0], 'n', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+
+       buf = srst3(buflong + 469, buflong, '%', &cc);
+       dump_field(buf, 1);
+       printf("(cc=%d)\n", cc);
+       return 0;
+}
+
diff --git a/none/tests/s390x/srst.stderr.exp b/none/tests/s390x/srst.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/srst.stdout.exp b/none/tests/s390x/srst.stdout.exp
new file mode 100644 (file)
index 0000000..cf250f8
--- /dev/null
@@ -0,0 +1,11 @@
+(cc=2)
+6E (cc=2)
+30 (cc=1)
+61 (cc=1)
+6D (cc=1)
+6E (cc=2)
+30 (cc=1)
+61 (cc=1)
+6D (cc=1)
+6E (cc=1)
+25 (cc=1)
diff --git a/none/tests/s390x/srst.vgtest b/none/tests/s390x/srst.vgtest
new file mode 100644 (file)
index 0000000..1ee8752
--- /dev/null
@@ -0,0 +1 @@
+prog: srst
diff --git a/none/tests/s390x/sub.c b/none/tests/s390x/sub.c
new file mode 100644 (file)
index 0000000..2bc5fe3
--- /dev/null
@@ -0,0 +1,51 @@
+#include <stdio.h>
+#include "sub.h"
+
+static void do_regmem_insns(unsigned long s2)
+{
+       memsweep(s, s2, 0);
+       memsweep(sh, s2, 0);
+       memsweep(sg, s2, 0);
+       memsweep(sgf, s2, 0);
+       memsweep(sl, s2, 0);
+       memsweep(slg, s2, 0);
+       memsweep(sgf, s2, 0);
+       memsweep(slgf, s2, 0);
+       regsweep(sr, s2, 0);
+       regsweep(sgr, s2, 0);
+       regsweep(sgfr, s2, 0);
+       regsweep(slr, s2, 0);
+       regsweep(slgr, s2, 0);
+       regsweep(slgfr, s2, 0);
+       memsweep(slb, s2, 0);
+       memsweep(slbg, s2, 0);
+       regsweep(slbr, s2, 0);
+       regsweep(slbgr, s2, 0);
+       memsweep(slb, s2, 1);
+       memsweep(slbg, s2, 1);
+       regsweep(slbr, s2, 1);
+       regsweep(slbgr, s2, 1);
+       memsweep(shy, s2, 0);
+       memsweep(sly, s2, 0);
+       memsweep(sy, s2, 0);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x7ffffffffffffffful);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+
+       return 0;
+}
diff --git a/none/tests/s390x/sub.h b/none/tests/s390x/sub.h
new file mode 100644 (file)
index 0000000..6b3c80e
--- /dev/null
@@ -0,0 +1,92 @@
+#include <stdio.h>
+
+#define SUB_REG_MEM(insn, s1, s2, NOBORROW)            \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #NOBORROW "\n"                \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX - %16.16lX - %d = %16.16lX (cc=%d)\n", s1, s2, !NOBORROW, tmp, cc); \
+})
+
+#define SUB_REG_REG(insn, s1, s2, NOBORROW)            \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #NOBORROW "\n"                \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "d" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX - %16.16lX - %d = %16.16lX (cc=%d)\n", s1, s2, !NOBORROW, tmp, cc); \
+})
+
+#define SUB_REG_IMM(insn, s1, s2, NOBORROW)            \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   "lghi 0," #NOBORROW "\n"                \
+                       "aghi 0, 0\n"                   \
+                       #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX - %16.16lX - %d = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, !NOBORROW, tmp, cc); \
+})
+
+#define memsweep(i, s2, carryset)                              \
+({                                                             \
+       SUB_REG_MEM(i, 0ul, s2, carryset);                      \
+       SUB_REG_MEM(i, 1ul, s2, carryset);                      \
+       SUB_REG_MEM(i, 0xfffful, s2, carryset);                 \
+       SUB_REG_MEM(i, 0x7ffful, s2, carryset);                 \
+       SUB_REG_MEM(i, 0x8000ul, s2, carryset);                 \
+       SUB_REG_MEM(i, 0xfffffffful, s2, carryset);             \
+       SUB_REG_MEM(i, 0x80000000ul, s2, carryset);             \
+       SUB_REG_MEM(i, 0x7ffffffful, s2, carryset);             \
+       SUB_REG_MEM(i, 0xfffffffffffffffful, s2, carryset);     \
+       SUB_REG_MEM(i, 0x8000000000000000ul, s2, carryset);     \
+       SUB_REG_MEM(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
+#define regsweep(i, s2, carryset)                              \
+({                                                             \
+       SUB_REG_REG(i, 0ul, s2, carryset);                      \
+       SUB_REG_REG(i, 1ul, s2, carryset);                      \
+       SUB_REG_REG(i, 0xfffful, s2, carryset);                 \
+       SUB_REG_REG(i, 0x7ffful, s2, carryset);                 \
+       SUB_REG_REG(i, 0x8000ul, s2, carryset);                 \
+       SUB_REG_REG(i, 0xfffffffful, s2, carryset);             \
+       SUB_REG_REG(i, 0x80000000ul, s2, carryset);             \
+       SUB_REG_REG(i, 0x7ffffffful, s2, carryset);             \
+       SUB_REG_REG(i, 0xfffffffffffffffful, s2, carryset);     \
+       SUB_REG_REG(i, 0x8000000000000000ul, s2, carryset);     \
+       SUB_REG_REG(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
+#define immsweep(i, s2, carryset)                              \
+({                                                             \
+       SUB_REG_IMM(i, 0ul, s2, carryset);                      \
+       SUB_REG_IMM(i, 1ul, s2, carryset);                      \
+       SUB_REG_IMM(i, 0xfffful, s2, carryset);                 \
+       SUB_REG_IMM(i, 0x7ffful, s2, carryset);                 \
+       SUB_REG_IMM(i, 0x8000ul, s2, carryset);                 \
+       SUB_REG_IMM(i, 0xfffffffful, s2, carryset);             \
+       SUB_REG_IMM(i, 0x80000000ul, s2, carryset);             \
+       SUB_REG_IMM(i, 0x7ffffffful, s2, carryset);             \
+       SUB_REG_IMM(i, 0xfffffffffffffffful, s2, carryset);     \
+       SUB_REG_IMM(i, 0x8000000000000000ul, s2, carryset);     \
+       SUB_REG_IMM(i, 0x7ffffffffffffffful, s2, carryset);     \
+})
+
diff --git a/none/tests/s390x/sub.stderr.exp b/none/tests/s390x/sub.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/sub.stdout.exp b/none/tests/s390x/sub.stdout.exp
new file mode 100644 (file)
index 0000000..4a797e3
--- /dev/null
@@ -0,0 +1,3850 @@
+s 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sg 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sg 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sg 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sg 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sg 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sg 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=2)
+sg 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sg FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sg 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=1)
+sg 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sgf 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slg 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slg 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slg 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slg 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slg 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slg 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slg 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slg FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slg 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sgf 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=1)
+sr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=0)
+sr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sgr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sgr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sgr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=2)
+sgr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=1)
+sgr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sgfr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sgfr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgfr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sgfr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=2)
+sgfr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=2)
+slr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slgr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slgr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slgr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slgr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgfr 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slgfr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgfr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slgfr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slgfr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfr 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slb 0000000000000000 - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 0000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000000001 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slbg 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFE (cc=3)
+slbg 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFE (cc=3)
+slbg 0000000000008000 - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slbg 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbg 0000000080000000 - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slbg 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbg 8000000000000000 - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbr 0000000000000000 - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000000001 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slbr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFE (cc=3)
+slbr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000008000 - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slbr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000080000000 - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slbr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbr 8000000000000000 - 0000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 0000000000000000 - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000001 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slbgr 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFE (cc=3)
+slbgr 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFE (cc=3)
+slbgr 0000000000008000 - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slbgr 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbgr 0000000080000000 - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slbgr 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbgr 8000000000000000 - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slb 0000000000000000 - 0000000000000000 - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 0000000000000000 - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 0000000000000000 - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 0000000000000000 - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 0000000000000000 - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 0000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 0000000000000000 - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 0000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 0000000000000000 - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 0000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 0000000000000000 - 0 = 0000000000000000 (cc=2)
+slbg 0000000000000001 - 0000000000000000 - 0 = 0000000000000001 (cc=3)
+slbg 000000000000FFFF - 0000000000000000 - 0 = 000000000000FFFF (cc=3)
+slbg 0000000000007FFF - 0000000000000000 - 0 = 0000000000007FFF (cc=3)
+slbg 0000000000008000 - 0000000000000000 - 0 = 0000000000008000 (cc=3)
+slbg 00000000FFFFFFFF - 0000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbg 0000000080000000 - 0000000000000000 - 0 = 0000000080000000 (cc=3)
+slbg 000000007FFFFFFF - 0000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbg 8000000000000000 - 0000000000000000 - 0 = 8000000000000000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbr 0000000000000000 - 0000000000000000 - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000001 - 0000000000000000 - 0 = 0000000000000001 (cc=3)
+slbr 000000000000FFFF - 0000000000000000 - 0 = 000000000000FFFF (cc=3)
+slbr 0000000000007FFF - 0000000000000000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000008000 - 0000000000000000 - 0 = 0000000000008000 (cc=3)
+slbr 00000000FFFFFFFF - 0000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000080000000 - 0000000000000000 - 0 = 0000000080000000 (cc=3)
+slbr 000000007FFFFFFF - 0000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbr 8000000000000000 - 0000000000000000 - 0 = 8000000000000000 (cc=2)
+slbr 7FFFFFFFFFFFFFFF - 0000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 0000000000000000 - 0000000000000000 - 0 = 0000000000000000 (cc=2)
+slbgr 0000000000000001 - 0000000000000000 - 0 = 0000000000000001 (cc=3)
+slbgr 000000000000FFFF - 0000000000000000 - 0 = 000000000000FFFF (cc=3)
+slbgr 0000000000007FFF - 0000000000000000 - 0 = 0000000000007FFF (cc=3)
+slbgr 0000000000008000 - 0000000000000000 - 0 = 0000000000008000 (cc=3)
+slbgr 00000000FFFFFFFF - 0000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbgr 0000000080000000 - 0000000000000000 - 0 = 0000000080000000 (cc=3)
+slbgr 000000007FFFFFFF - 0000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbgr 8000000000000000 - 0000000000000000 - 0 = 8000000000000000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+shy 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+s 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000002 (cc=1)
+s 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080010000 (cc=1)
+s 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080008000 (cc=1)
+s 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080008001 (cc=1)
+s 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+s 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+s 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+s FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+s 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+s 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=1)
+sh 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8001 (cc=1)
+sh 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8002 (cc=1)
+sh 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sh 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sh 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8000 (cc=1)
+sh 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 000000007FFF8001 (cc=3)
+sh 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 000000007FFF8000 (cc=2)
+sh FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sh 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 80000000FFFF8001 (cc=1)
+sh 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFF8000 (cc=1)
+sg 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sg 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000002 (cc=1)
+sg 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000010000 (cc=1)
+sg 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+sg 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008001 (cc=1)
+sg 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000100000000 (cc=1)
+sg 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+sg 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+sg FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+sg 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sgf 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+sgf 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+sgf 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+sgf 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+sgf 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sgf 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+sgf 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=2)
+sl 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sl 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000002 (cc=1)
+sl 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080010000 (cc=1)
+sl 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080008000 (cc=1)
+sl 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080008001 (cc=1)
+sl 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sl 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+sl 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+sl FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+sl 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+sl 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slg 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slg 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000002 (cc=1)
+slg 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000010000 (cc=1)
+slg 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+slg 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008001 (cc=1)
+slg 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000100000000 (cc=1)
+slg 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+slg 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+slg FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+slg 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+sgf 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sgf 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+sgf 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+sgf 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+sgf 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+sgf 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sgf 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+sgf 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=2)
+slgf 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgf 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+slgf 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+slgf 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slgf 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+slgf 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+slgf 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+slgf 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgf FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slgf 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+sr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+sr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+sr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sgr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000002 (cc=1)
+sgr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000010000 (cc=1)
+sgr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+sgr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008001 (cc=1)
+sgr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000100000000 (cc=1)
+sgr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+sgr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+sgr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+sgr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgfr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgfr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgfr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgfr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgfr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgfr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgfr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgfr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+slr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+slr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+slr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+slr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+slr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+slr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+slgr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slgr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000002 (cc=1)
+slgr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000010000 (cc=1)
+slgr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+slgr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008001 (cc=1)
+slgr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000100000000 (cc=1)
+slgr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+slgr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+slgr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+slgr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgfr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgfr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgfr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgfr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgfr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgfr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgfr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slb 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slb 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+slb 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 000000008000FFFF (cc=1)
+slb 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080007FFF (cc=1)
+slb 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080008000 (cc=1)
+slb 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slb 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slb 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slb 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbg 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+slbg 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slbg 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 800000000000FFFF (cc=1)
+slbg 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000007FFF (cc=1)
+slbg 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+slbg 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 80000000FFFFFFFF (cc=1)
+slbg 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+slbg 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 800000007FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slbg 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+slbr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slbr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slbr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slbr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slbr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slbr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slbr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=0)
+slbr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+slbgr 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slbgr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 800000000000FFFF (cc=1)
+slbgr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 8000000000007FFF (cc=1)
+slbgr 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 8000000000008000 (cc=1)
+slbgr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 80000000FFFFFFFF (cc=1)
+slbgr 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000000 (cc=1)
+slbgr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 800000007FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slbgr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slb 0000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slb 0000000000000001 - 7FFFFFFFFFFFFFFF - 0 = 0000000080000002 (cc=1)
+slb 000000000000FFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000080010000 (cc=1)
+slb 0000000000007FFF - 7FFFFFFFFFFFFFFF - 0 = 0000000080008000 (cc=1)
+slb 0000000000008000 - 7FFFFFFFFFFFFFFF - 0 = 0000000080008001 (cc=1)
+slb 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=3)
+slb 0000000080000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=3)
+slb 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slb FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = FFFFFFFF80000000 (cc=3)
+slb 8000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000080000001 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 7FFFFFFF80000000 (cc=3)
+slbg 0000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbg 0000000000000001 - 7FFFFFFFFFFFFFFF - 0 = 8000000000000002 (cc=1)
+slbg 000000000000FFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000010000 (cc=1)
+slbg 0000000000007FFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000008000 (cc=1)
+slbg 0000000000008000 - 7FFFFFFFFFFFFFFF - 0 = 8000000000008001 (cc=1)
+slbg 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000100000000 (cc=1)
+slbg 0000000080000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000080000001 (cc=1)
+slbg 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000080000000 (cc=1)
+slbg FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000000000 (cc=3)
+slbg 8000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=1)
+slbr 0000000000000001 - 7FFFFFFFFFFFFFFF - 0 = 0000000000000002 (cc=1)
+slbr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000010000 (cc=1)
+slbr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000008000 (cc=1)
+slbr 0000000000008000 - 7FFFFFFFFFFFFFFF - 0 = 0000000000008001 (cc=1)
+slbr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000080000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slbr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=1)
+slbr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = FFFFFFFF00000000 (cc=2)
+slbr 8000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 7FFFFFFF00000000 (cc=2)
+slbgr 0000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbgr 0000000000000001 - 7FFFFFFFFFFFFFFF - 0 = 8000000000000002 (cc=1)
+slbgr 000000000000FFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000010000 (cc=1)
+slbgr 0000000000007FFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000008000 (cc=1)
+slbgr 0000000000008000 - 7FFFFFFFFFFFFFFF - 0 = 8000000000008001 (cc=1)
+slbgr 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000100000000 (cc=1)
+slbgr 0000000080000000 - 7FFFFFFFFFFFFFFF - 0 = 8000000080000001 (cc=1)
+slbgr 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000080000000 (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 8000000000000000 (cc=3)
+slbgr 8000000000000000 - 7FFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+shy 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8001 (cc=1)
+shy 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8002 (cc=1)
+shy 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+shy 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+shy 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 00000000FFFF8000 (cc=1)
+shy 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 000000007FFF8001 (cc=3)
+shy 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 000000007FFF8000 (cc=2)
+shy FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+shy 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 80000000FFFF8001 (cc=1)
+shy 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFF8000 (cc=1)
+sly 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sly 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000002 (cc=1)
+sly 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080010000 (cc=1)
+sly 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080008000 (cc=1)
+sly 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080008001 (cc=1)
+sly 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sly 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+sly 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+sly FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+sly 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+sly 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+sy 0000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sy 0000000000000001 - 7FFFFFFFFFFFFFFF - 1 = 0000000080000002 (cc=1)
+sy 000000000000FFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080010000 (cc=1)
+sy 0000000000007FFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080008000 (cc=1)
+sy 0000000000008000 - 7FFFFFFFFFFFFFFF - 1 = 0000000080008001 (cc=1)
+sy 00000000FFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+sy 0000000080000000 - 7FFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=3)
+sy 000000007FFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sy FFFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sy 8000000000000000 - 7FFFFFFFFFFFFFFF - 1 = 8000000080000001 (cc=1)
+sy 7FFFFFFFFFFFFFFF - 7FFFFFFFFFFFFFFF - 1 = 7FFFFFFF80000000 (cc=1)
+s 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+s 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=3)
+s 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=3)
+s 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+s 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=3)
+s 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+s 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+s 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+s FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=2)
+s 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+s 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+sh 0000000000000000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sh 0000000000000001 - 8000000000000000 - 1 = 0000000000008001 (cc=2)
+sh 000000000000FFFF - 8000000000000000 - 1 = 0000000000017FFF (cc=2)
+sh 0000000000007FFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sh 0000000000008000 - 8000000000000000 - 1 = 0000000000010000 (cc=2)
+sh 00000000FFFFFFFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sh 0000000080000000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sh 000000007FFFFFFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+sh FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF00007FFF (cc=2)
+sh 8000000000000000 - 8000000000000000 - 1 = 8000000000008000 (cc=2)
+sh 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF00007FFF (cc=2)
+sg 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+sg 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=3)
+sg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=3)
+sg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=3)
+sg 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=3)
+sg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=3)
+sg 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sg 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sgf 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=2)
+sgf 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=2)
+sgf 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=2)
+sgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000017FFFFFFF (cc=2)
+sgf 0000000080000000 - 8000000000000000 - 1 = 0000000100000000 (cc=2)
+sgf 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sl 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sl 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=1)
+sl 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=1)
+sl 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+sl 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sl 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sl 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+sl 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sl FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+sl 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sl 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slg 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slg 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=1)
+slg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=1)
+slg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slg 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=1)
+slg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slg 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+slg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=2)
+sgf 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=2)
+sgf 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=2)
+sgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000017FFFFFFF (cc=2)
+sgf 0000000080000000 - 8000000000000000 - 1 = 0000000100000000 (cc=2)
+sgf 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+slgf 0000000000000000 - 8000000000000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgf 0000000000000001 - 8000000000000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgf 000000000000FFFF - 8000000000000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slgf 0000000000007FFF - 8000000000000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slgf 0000000000008000 - 8000000000000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgf 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgf 000000007FFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slgf 8000000000000000 - 8000000000000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+sr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=2)
+sr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=0)
+sr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+sgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=3)
+sgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=3)
+sgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=3)
+sgr 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=3)
+sgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=3)
+sgr 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sgr 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sgfr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=2)
+sgfr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgfr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sgfr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgfr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=3)
+slr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=3)
+slr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=3)
+slr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+slr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=2)
+slr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=1)
+slgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=1)
+slgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slgr 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=1)
+slgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slgr 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+slgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=3)
+slgfr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgfr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=3)
+slgfr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+slgfr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slb 0000000000000000 - 8000000000000000 - 1 = 000000007FFFFFFF (cc=1)
+slb 0000000000000001 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+slb 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFE (cc=1)
+slb 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFE (cc=1)
+slb 0000000000008000 - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+slb 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slb 0000000080000000 - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFE (cc=1)
+slb FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFE (cc=3)
+slb 8000000000000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFE (cc=3)
+slbg 0000000000000000 - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000000001 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slbg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFE (cc=1)
+slbg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFE (cc=1)
+slbg 0000000000008000 - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slbg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFE (cc=1)
+slbg 0000000080000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slbg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFE (cc=1)
+slbg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 8000000000000000 - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbr 0000000000000000 - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000000001 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slbr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFE (cc=3)
+slbr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000008000 - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slbr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000080000000 - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slbr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbr 8000000000000000 - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 0000000000000000 - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slbgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFE (cc=1)
+slbgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFE (cc=1)
+slbgr 0000000000008000 - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slbgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFE (cc=1)
+slbgr 0000000080000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slbgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFE (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 8000000000000000 - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slb 0000000000000000 - 8000000000000000 - 0 = 0000000080000000 (cc=1)
+slb 0000000000000001 - 8000000000000000 - 0 = 0000000080000001 (cc=1)
+slb 000000000000FFFF - 8000000000000000 - 0 = 000000008000FFFF (cc=1)
+slb 0000000000007FFF - 8000000000000000 - 0 = 0000000080007FFF (cc=1)
+slb 0000000000008000 - 8000000000000000 - 0 = 0000000080008000 (cc=1)
+slb 00000000FFFFFFFF - 8000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slb 0000000080000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slb 000000007FFFFFFF - 8000000000000000 - 0 = 00000000FFFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFF7FFFFFFF (cc=3)
+slb 8000000000000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFF7FFFFFFF (cc=3)
+slbg 0000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=1)
+slbg 0000000000000001 - 8000000000000000 - 0 = 8000000000000001 (cc=1)
+slbg 000000000000FFFF - 8000000000000000 - 0 = 800000000000FFFF (cc=1)
+slbg 0000000000007FFF - 8000000000000000 - 0 = 8000000000007FFF (cc=1)
+slbg 0000000000008000 - 8000000000000000 - 0 = 8000000000008000 (cc=1)
+slbg 00000000FFFFFFFF - 8000000000000000 - 0 = 80000000FFFFFFFF (cc=1)
+slbg 0000000080000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slbg 000000007FFFFFFF - 8000000000000000 - 0 = 800000007FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 8000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbg 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 0000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000001 - 8000000000000000 - 0 = 0000000000000001 (cc=3)
+slbr 000000000000FFFF - 8000000000000000 - 0 = 000000000000FFFF (cc=3)
+slbr 0000000000007FFF - 8000000000000000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000008000 - 8000000000000000 - 0 = 0000000000008000 (cc=3)
+slbr 00000000FFFFFFFF - 8000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000080000000 - 8000000000000000 - 0 = 0000000080000000 (cc=3)
+slbr 000000007FFFFFFF - 8000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbr 8000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=2)
+slbr 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 0000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=1)
+slbgr 0000000000000001 - 8000000000000000 - 0 = 8000000000000001 (cc=1)
+slbgr 000000000000FFFF - 8000000000000000 - 0 = 800000000000FFFF (cc=1)
+slbgr 0000000000007FFF - 8000000000000000 - 0 = 8000000000007FFF (cc=1)
+slbgr 0000000000008000 - 8000000000000000 - 0 = 8000000000008000 (cc=1)
+slbgr 00000000FFFFFFFF - 8000000000000000 - 0 = 80000000FFFFFFFF (cc=1)
+slbgr 0000000080000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slbgr 000000007FFFFFFF - 8000000000000000 - 0 = 800000007FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 8000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+shy 0000000000000000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+shy 0000000000000001 - 8000000000000000 - 1 = 0000000000008001 (cc=2)
+shy 000000000000FFFF - 8000000000000000 - 1 = 0000000000017FFF (cc=2)
+shy 0000000000007FFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+shy 0000000000008000 - 8000000000000000 - 1 = 0000000000010000 (cc=2)
+shy 00000000FFFFFFFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+shy 0000000080000000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+shy 000000007FFFFFFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+shy FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF00007FFF (cc=2)
+shy 8000000000000000 - 8000000000000000 - 1 = 8000000000008000 (cc=2)
+shy 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF00007FFF (cc=2)
+sly 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sly 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=1)
+sly 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=1)
+sly 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+sly 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sly 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sly 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+sly 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sly FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+sly 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sly 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+sy 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+sy 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=3)
+sy 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=3)
+sy 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+sy 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=3)
+sy 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sy 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sy 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+sy FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=2)
+sy 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sy 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+s 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+s 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+s 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+s 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+s 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+s 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+s 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+s 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+s FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+s 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+s 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sh 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sh 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sh 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sh 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sh 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sh 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sh 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sh FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+sh 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+sh 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sg 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sg 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sg 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sg 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sg 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sg 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sg 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sg 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sg FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sg 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sg 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+sgf 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgf 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgf 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgf 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgf 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgf 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+sl 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+sl 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+sl 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+sl 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+sl 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+sl 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+sl 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sl 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+sl FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+sl 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sl 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+slg 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slg 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+slg 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+slg 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slg 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+slg 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=1)
+slg 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+slg 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slg FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slg 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slg 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+sgf 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgf 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgf 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgf 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgf 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgf 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+slgf 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgf 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgf 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgf 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgf 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgf 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgf 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgf FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgf 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+sr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+sr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+sr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sgr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+sgfr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgfr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgfr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgfr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgfr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgfr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgfr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgfr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgfr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=3)
+slr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+slr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+slr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+slr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+slr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+slr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+slgr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slgr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+slgr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+slgr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slgr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+slgr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000100000000 (cc=1)
+slgr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+slgr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slgr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+slgr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+slgfr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgfr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgfr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgfr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgfr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgfr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgfr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgfr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slb 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+slb 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slb 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slb 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slb 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slb 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slb 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slb 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=0)
+slb 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+slbg 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slbg 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slbg 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slbg 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slbg 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbg 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slbg 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+slbg 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+slbr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slbr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slbr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slbr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slbr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slbr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slbr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=0)
+slbr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+slbgr 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+slbgr 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slbgr 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slbgr 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+slbgr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbgr 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+slbgr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000000 (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slb 0000000000000000 - FFFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=1)
+slb 0000000000000001 - FFFFFFFFFFFFFFFF - 0 = 0000000000000002 (cc=1)
+slb 000000000000FFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000010000 (cc=1)
+slb 0000000000007FFF - FFFFFFFFFFFFFFFF - 0 = 0000000000008000 (cc=1)
+slb 0000000000008000 - FFFFFFFFFFFFFFFF - 0 = 0000000000008001 (cc=1)
+slb 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slb 0000000080000000 - FFFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slb 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=1)
+slb FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = FFFFFFFF00000000 (cc=2)
+slb 8000000000000000 - FFFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slb 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 7FFFFFFF00000000 (cc=2)
+slbg 0000000000000000 - FFFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=1)
+slbg 0000000000000001 - FFFFFFFFFFFFFFFF - 0 = 0000000000000002 (cc=1)
+slbg 000000000000FFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000010000 (cc=1)
+slbg 0000000000007FFF - FFFFFFFFFFFFFFFF - 0 = 0000000000008000 (cc=1)
+slbg 0000000000008000 - FFFFFFFFFFFFFFFF - 0 = 0000000000008001 (cc=1)
+slbg 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000100000000 (cc=1)
+slbg 0000000080000000 - FFFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slbg 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=1)
+slbg FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbg 8000000000000000 - FFFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbg 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 8000000000000000 (cc=1)
+slbr 0000000000000000 - FFFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=1)
+slbr 0000000000000001 - FFFFFFFFFFFFFFFF - 0 = 0000000000000002 (cc=1)
+slbr 000000000000FFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000010000 (cc=1)
+slbr 0000000000007FFF - FFFFFFFFFFFFFFFF - 0 = 0000000000008000 (cc=1)
+slbr 0000000000008000 - FFFFFFFFFFFFFFFF - 0 = 0000000000008001 (cc=1)
+slbr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000080000000 - FFFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slbr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=1)
+slbr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = FFFFFFFF00000000 (cc=2)
+slbr 8000000000000000 - FFFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 7FFFFFFF00000000 (cc=2)
+slbgr 0000000000000000 - FFFFFFFFFFFFFFFF - 0 = 0000000000000001 (cc=1)
+slbgr 0000000000000001 - FFFFFFFFFFFFFFFF - 0 = 0000000000000002 (cc=1)
+slbgr 000000000000FFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000010000 (cc=1)
+slbgr 0000000000007FFF - FFFFFFFFFFFFFFFF - 0 = 0000000000008000 (cc=1)
+slbgr 0000000000008000 - FFFFFFFFFFFFFFFF - 0 = 0000000000008001 (cc=1)
+slbgr 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000100000000 (cc=1)
+slbgr 0000000080000000 - FFFFFFFFFFFFFFFF - 0 = 0000000080000001 (cc=1)
+slbgr 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000080000000 (cc=1)
+slbgr FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbgr 8000000000000000 - FFFFFFFFFFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 0 = 8000000000000000 (cc=1)
+shy 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+shy 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+shy 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+shy 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+shy 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+shy 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+shy 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+shy FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+shy 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+shy 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sly 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=1)
+sly 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=1)
+sly 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=1)
+sly 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=1)
+sly 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=1)
+sly 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=2)
+sly 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sly 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=1)
+sly FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+sly 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=1)
+sly 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+sy 0000000000000000 - FFFFFFFFFFFFFFFF - 1 = 0000000000000001 (cc=2)
+sy 0000000000000001 - FFFFFFFFFFFFFFFF - 1 = 0000000000000002 (cc=2)
+sy 000000000000FFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000010000 (cc=2)
+sy 0000000000007FFF - FFFFFFFFFFFFFFFF - 1 = 0000000000008000 (cc=2)
+sy 0000000000008000 - FFFFFFFFFFFFFFFF - 1 = 0000000000008001 (cc=2)
+sy 00000000FFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000000000000 (cc=0)
+sy 0000000080000000 - FFFFFFFFFFFFFFFF - 1 = 0000000080000001 (cc=1)
+sy 000000007FFFFFFF - FFFFFFFFFFFFFFFF - 1 = 0000000080000000 (cc=3)
+sy FFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+sy 8000000000000000 - FFFFFFFFFFFFFFFF - 1 = 8000000000000001 (cc=2)
+sy 7FFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+s 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+s 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000080000002 (cc=1)
+s 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000080010000 (cc=1)
+s 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000080008000 (cc=1)
+s 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000080008001 (cc=1)
+s 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+s 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+s 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+s FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=1)
+s 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000080000001 (cc=1)
+s 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=1)
+sh 0000000000000000 - 7FFFFFFF00000000 - 1 = 00000000FFFF8001 (cc=1)
+sh 0000000000000001 - 7FFFFFFF00000000 - 1 = 00000000FFFF8002 (cc=1)
+sh 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sh 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sh 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sh 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFF8000 (cc=1)
+sh 0000000080000000 - 7FFFFFFF00000000 - 1 = 000000007FFF8001 (cc=3)
+sh 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFF8000 (cc=2)
+sh FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+sh 8000000000000000 - 7FFFFFFF00000000 - 1 = 80000000FFFF8001 (cc=1)
+sh 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFF8000 (cc=1)
+sg 0000000000000000 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+sg 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000001 (cc=1)
+sg 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFF (cc=1)
+sg 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+sg 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100008000 (cc=1)
+sg 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFF (cc=1)
+sg 0000000080000000 - 7FFFFFFF00000000 - 1 = 8000000180000000 (cc=1)
+sg 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+sg FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+sg 8000000000000000 - 7FFFFFFF00000000 - 1 = 0000000100000000 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000000000000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000001 (cc=1)
+sgf 0000000000000001 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000002 (cc=1)
+sgf 000000000000FFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80010000 (cc=1)
+sgf 0000000000007FFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80008000 (cc=1)
+sgf 0000000000008000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80008001 (cc=1)
+sgf 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgf FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=1)
+sgf 8000000000000000 - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000001 (cc=3)
+sgf 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=2)
+sl 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sl 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000080000002 (cc=1)
+sl 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000080010000 (cc=1)
+sl 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000080008000 (cc=1)
+sl 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000080008001 (cc=1)
+sl 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+sl 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+sl 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+sl FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=3)
+sl 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000080000001 (cc=1)
+sl 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slg 0000000000000000 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slg 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000001 (cc=1)
+slg 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFF (cc=1)
+slg 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+slg 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100008000 (cc=1)
+slg 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFF (cc=1)
+slg 0000000080000000 - 7FFFFFFF00000000 - 1 = 8000000180000000 (cc=1)
+slg 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+slg FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=3)
+slg 8000000000000000 - 7FFFFFFF00000000 - 1 = 0000000100000000 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+sgf 0000000000000000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000001 (cc=1)
+sgf 0000000000000001 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000002 (cc=1)
+sgf 000000000000FFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80010000 (cc=1)
+sgf 0000000000007FFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80008000 (cc=1)
+sgf 0000000000008000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80008001 (cc=1)
+sgf 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgf FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=1)
+sgf 8000000000000000 - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000001 (cc=3)
+sgf 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=2)
+slgf 0000000000000000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgf 0000000000000001 - 7FFFFFFF00000000 - 1 = FFFFFFFF80000002 (cc=1)
+slgf 000000000000FFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80010000 (cc=1)
+slgf 0000000000007FFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgf 0000000000008000 - 7FFFFFFF00000000 - 1 = FFFFFFFF80008001 (cc=1)
+slgf 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+slgf 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+slgf 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slgf FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=3)
+slgf 8000000000000000 - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000001 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=3)
+sr 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sr 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000000000FFFF (cc=2)
+sr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+sr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=2)
+sr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sr 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000000000000 (cc=0)
+sr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000000000 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+sgr 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000001 (cc=1)
+sgr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFF (cc=1)
+sgr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+sgr 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100008000 (cc=1)
+sgr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFF (cc=1)
+sgr 0000000080000000 - 7FFFFFFF00000000 - 1 = 8000000180000000 (cc=1)
+sgr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+sgr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+sgr 8000000000000000 - 7FFFFFFF00000000 - 1 = 0000000100000000 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgfr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000000000FFFF (cc=2)
+sgfr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sgfr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgfr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000000000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slr 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slr 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+slr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000000000FFFF (cc=3)
+slr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=3)
+slr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slr 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+slr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slr 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000000000000 (cc=2)
+slr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 0000000000000000 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slgr 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000001 (cc=1)
+slgr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFF (cc=1)
+slgr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+slgr 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100008000 (cc=1)
+slgr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFF (cc=1)
+slgr 0000000080000000 - 7FFFFFFF00000000 - 1 = 8000000180000000 (cc=1)
+slgr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+slgr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=3)
+slgr 8000000000000000 - 7FFFFFFF00000000 - 1 = 0000000100000000 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+slgfr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000000000FFFF (cc=3)
+slgfr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=3)
+slgfr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+slgfr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfr 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000000000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slb 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+slb 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+slb 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000008000FFFF (cc=1)
+slb 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000080007FFF (cc=1)
+slb 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000080008000 (cc=1)
+slb 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slb 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slb 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slb 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000080000000 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbg 0000000000000000 - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbg 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slbg 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFE (cc=1)
+slbg 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFE (cc=1)
+slbg 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+slbg 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFE (cc=1)
+slbg 0000000080000000 - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+slbg 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFE (cc=1)
+slbg FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFE (cc=3)
+slbg 8000000000000000 - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000000000000 - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slbr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 000000000000FFFE (cc=3)
+slbr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slbr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000080000000 - 7FFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slbr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbr 8000000000000000 - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 0000000000000000 - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbgr 0000000000000001 - 7FFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slbgr 000000000000FFFF - 7FFFFFFF00000000 - 1 = 800000010000FFFE (cc=1)
+slbgr 0000000000007FFF - 7FFFFFFF00000000 - 1 = 8000000100007FFE (cc=1)
+slbgr 0000000000008000 - 7FFFFFFF00000000 - 1 = 8000000100007FFF (cc=1)
+slbgr 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 80000001FFFFFFFE (cc=1)
+slbgr 0000000080000000 - 7FFFFFFF00000000 - 1 = 800000017FFFFFFF (cc=1)
+slbgr 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 800000017FFFFFFE (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 80000000FFFFFFFE (cc=3)
+slbgr 8000000000000000 - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000000000000 - 7FFFFFFF00000000 - 0 = 0000000080000001 (cc=1)
+slb 0000000000000001 - 7FFFFFFF00000000 - 0 = 0000000080000002 (cc=1)
+slb 000000000000FFFF - 7FFFFFFF00000000 - 0 = 0000000080010000 (cc=1)
+slb 0000000000007FFF - 7FFFFFFF00000000 - 0 = 0000000080008000 (cc=1)
+slb 0000000000008000 - 7FFFFFFF00000000 - 0 = 0000000080008001 (cc=1)
+slb 00000000FFFFFFFF - 7FFFFFFF00000000 - 0 = 0000000080000000 (cc=3)
+slb 0000000080000000 - 7FFFFFFF00000000 - 0 = 0000000000000001 (cc=3)
+slb 000000007FFFFFFF - 7FFFFFFF00000000 - 0 = 0000000000000000 (cc=2)
+slb FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = FFFFFFFF80000000 (cc=3)
+slb 8000000000000000 - 7FFFFFFF00000000 - 0 = 8000000080000001 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 7FFFFFFF80000000 (cc=3)
+slbg 0000000000000000 - 7FFFFFFF00000000 - 0 = 8000000100000000 (cc=1)
+slbg 0000000000000001 - 7FFFFFFF00000000 - 0 = 8000000100000001 (cc=1)
+slbg 000000000000FFFF - 7FFFFFFF00000000 - 0 = 800000010000FFFF (cc=1)
+slbg 0000000000007FFF - 7FFFFFFF00000000 - 0 = 8000000100007FFF (cc=1)
+slbg 0000000000008000 - 7FFFFFFF00000000 - 0 = 8000000100008000 (cc=1)
+slbg 00000000FFFFFFFF - 7FFFFFFF00000000 - 0 = 80000001FFFFFFFF (cc=1)
+slbg 0000000080000000 - 7FFFFFFF00000000 - 0 = 8000000180000000 (cc=1)
+slbg 000000007FFFFFFF - 7FFFFFFF00000000 - 0 = 800000017FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 80000000FFFFFFFF (cc=3)
+slbg 8000000000000000 - 7FFFFFFF00000000 - 0 = 0000000100000000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000000000000 - 7FFFFFFF00000000 - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000001 - 7FFFFFFF00000000 - 0 = 0000000000000001 (cc=3)
+slbr 000000000000FFFF - 7FFFFFFF00000000 - 0 = 000000000000FFFF (cc=3)
+slbr 0000000000007FFF - 7FFFFFFF00000000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000008000 - 7FFFFFFF00000000 - 0 = 0000000000008000 (cc=3)
+slbr 00000000FFFFFFFF - 7FFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000080000000 - 7FFFFFFF00000000 - 0 = 0000000080000000 (cc=3)
+slbr 000000007FFFFFFF - 7FFFFFFF00000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbr 8000000000000000 - 7FFFFFFF00000000 - 0 = 8000000000000000 (cc=2)
+slbr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 0000000000000000 - 7FFFFFFF00000000 - 0 = 8000000100000000 (cc=1)
+slbgr 0000000000000001 - 7FFFFFFF00000000 - 0 = 8000000100000001 (cc=1)
+slbgr 000000000000FFFF - 7FFFFFFF00000000 - 0 = 800000010000FFFF (cc=1)
+slbgr 0000000000007FFF - 7FFFFFFF00000000 - 0 = 8000000100007FFF (cc=1)
+slbgr 0000000000008000 - 7FFFFFFF00000000 - 0 = 8000000100008000 (cc=1)
+slbgr 00000000FFFFFFFF - 7FFFFFFF00000000 - 0 = 80000001FFFFFFFF (cc=1)
+slbgr 0000000080000000 - 7FFFFFFF00000000 - 0 = 8000000180000000 (cc=1)
+slbgr 000000007FFFFFFF - 7FFFFFFF00000000 - 0 = 800000017FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 80000000FFFFFFFF (cc=3)
+slbgr 8000000000000000 - 7FFFFFFF00000000 - 0 = 0000000100000000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+shy 0000000000000000 - 7FFFFFFF00000000 - 1 = 00000000FFFF8001 (cc=1)
+shy 0000000000000001 - 7FFFFFFF00000000 - 1 = 00000000FFFF8002 (cc=1)
+shy 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+shy 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+shy 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+shy 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 00000000FFFF8000 (cc=1)
+shy 0000000080000000 - 7FFFFFFF00000000 - 1 = 000000007FFF8001 (cc=3)
+shy 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 000000007FFF8000 (cc=2)
+shy FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+shy 8000000000000000 - 7FFFFFFF00000000 - 1 = 80000000FFFF8001 (cc=1)
+shy 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFFFFFF8000 (cc=1)
+sly 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sly 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000080000002 (cc=1)
+sly 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000080010000 (cc=1)
+sly 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000080008000 (cc=1)
+sly 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000080008001 (cc=1)
+sly 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+sly 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+sly 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+sly FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=3)
+sly 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000080000001 (cc=1)
+sly 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=3)
+sy 0000000000000000 - 7FFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sy 0000000000000001 - 7FFFFFFF00000000 - 1 = 0000000080000002 (cc=1)
+sy 000000000000FFFF - 7FFFFFFF00000000 - 1 = 0000000080010000 (cc=1)
+sy 0000000000007FFF - 7FFFFFFF00000000 - 1 = 0000000080008000 (cc=1)
+sy 0000000000008000 - 7FFFFFFF00000000 - 1 = 0000000080008001 (cc=1)
+sy 00000000FFFFFFFF - 7FFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+sy 0000000080000000 - 7FFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+sy 000000007FFFFFFF - 7FFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sy FFFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=1)
+sy 8000000000000000 - 7FFFFFFF00000000 - 1 = 8000000080000001 (cc=1)
+sy 7FFFFFFFFFFFFFFF - 7FFFFFFF00000000 - 1 = 7FFFFFFF80000000 (cc=1)
+s 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+s 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=3)
+s 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=3)
+s 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+s 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=3)
+s 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+s 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+s 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+s FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=2)
+s 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+s 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+sh 0000000000000000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sh 0000000000000001 - 8000000000000000 - 1 = 0000000000008001 (cc=2)
+sh 000000000000FFFF - 8000000000000000 - 1 = 0000000000017FFF (cc=2)
+sh 0000000000007FFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sh 0000000000008000 - 8000000000000000 - 1 = 0000000000010000 (cc=2)
+sh 00000000FFFFFFFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sh 0000000080000000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sh 000000007FFFFFFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+sh FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF00007FFF (cc=2)
+sh 8000000000000000 - 8000000000000000 - 1 = 8000000000008000 (cc=2)
+sh 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF00007FFF (cc=2)
+sg 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+sg 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=3)
+sg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=3)
+sg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=3)
+sg 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=3)
+sg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=3)
+sg 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sg 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sgf 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=2)
+sgf 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=2)
+sgf 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=2)
+sgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000017FFFFFFF (cc=2)
+sgf 0000000080000000 - 8000000000000000 - 1 = 0000000100000000 (cc=2)
+sgf 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sl 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sl 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=1)
+sl 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=1)
+sl 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+sl 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sl 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sl 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+sl 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sl FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+sl 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sl 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slg 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slg 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=1)
+slg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=1)
+slg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slg 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=1)
+slg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slg 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+slg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgf 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=2)
+sgf 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=2)
+sgf 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=2)
+sgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000017FFFFFFF (cc=2)
+sgf 0000000080000000 - 8000000000000000 - 1 = 0000000100000000 (cc=2)
+sgf 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+slgf 0000000000000000 - 8000000000000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgf 0000000000000001 - 8000000000000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgf 000000000000FFFF - 8000000000000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slgf 0000000000007FFF - 8000000000000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slgf 0000000000008000 - 8000000000000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgf 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgf 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgf 000000007FFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgf FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slgf 8000000000000000 - 8000000000000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+sr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=2)
+sr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=0)
+sr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+sgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=3)
+sgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=3)
+sgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=3)
+sgr 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=3)
+sgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=3)
+sgr 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=3)
+sgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sgr 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sgfr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=2)
+sgfr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+sgfr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+sgfr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=2)
+sgfr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=3)
+slr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=3)
+slr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=3)
+slr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+slr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=2)
+slr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 0000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000001 (cc=1)
+slgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFF (cc=1)
+slgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slgr 0000000000008000 - 8000000000000000 - 1 = 8000000000008000 (cc=1)
+slgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slgr 0000000080000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+slgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 8000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfr 0000000000000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000001 - 8000000000000000 - 1 = 0000000000000001 (cc=3)
+slgfr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgfr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000008000 - 8000000000000000 - 1 = 0000000000008000 (cc=3)
+slgfr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000080000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+slgfr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfr 8000000000000000 - 8000000000000000 - 1 = 8000000000000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slb 0000000000000000 - 8000000000000000 - 1 = 000000007FFFFFFF (cc=1)
+slb 0000000000000001 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+slb 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFE (cc=1)
+slb 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFE (cc=1)
+slb 0000000000008000 - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+slb 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slb 0000000080000000 - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFE (cc=1)
+slb FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFE (cc=3)
+slb 8000000000000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFE (cc=3)
+slbg 0000000000000000 - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000000001 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slbg 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFE (cc=1)
+slbg 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFE (cc=1)
+slbg 0000000000008000 - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slbg 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFE (cc=1)
+slbg 0000000080000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slbg 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFE (cc=1)
+slbg FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 8000000000000000 - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbr 0000000000000000 - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000000001 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+slbr 000000000000FFFF - 8000000000000000 - 1 = 000000000000FFFE (cc=3)
+slbr 0000000000007FFF - 8000000000000000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000008000 - 8000000000000000 - 1 = 0000000000007FFF (cc=3)
+slbr 00000000FFFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000080000000 - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slbr 000000007FFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbr 8000000000000000 - 8000000000000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 0000000000000000 - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000001 - 8000000000000000 - 1 = 8000000000000000 (cc=1)
+slbgr 000000000000FFFF - 8000000000000000 - 1 = 800000000000FFFE (cc=1)
+slbgr 0000000000007FFF - 8000000000000000 - 1 = 8000000000007FFE (cc=1)
+slbgr 0000000000008000 - 8000000000000000 - 1 = 8000000000007FFF (cc=1)
+slbgr 00000000FFFFFFFF - 8000000000000000 - 1 = 80000000FFFFFFFE (cc=1)
+slbgr 0000000080000000 - 8000000000000000 - 1 = 800000007FFFFFFF (cc=1)
+slbgr 000000007FFFFFFF - 8000000000000000 - 1 = 800000007FFFFFFE (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 8000000000000000 - 8000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slb 0000000000000000 - 8000000000000000 - 0 = 0000000080000000 (cc=1)
+slb 0000000000000001 - 8000000000000000 - 0 = 0000000080000001 (cc=1)
+slb 000000000000FFFF - 8000000000000000 - 0 = 000000008000FFFF (cc=1)
+slb 0000000000007FFF - 8000000000000000 - 0 = 0000000080007FFF (cc=1)
+slb 0000000000008000 - 8000000000000000 - 0 = 0000000080008000 (cc=1)
+slb 00000000FFFFFFFF - 8000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slb 0000000080000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slb 000000007FFFFFFF - 8000000000000000 - 0 = 00000000FFFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFF7FFFFFFF (cc=3)
+slb 8000000000000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slb 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFF7FFFFFFF (cc=3)
+slbg 0000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=1)
+slbg 0000000000000001 - 8000000000000000 - 0 = 8000000000000001 (cc=1)
+slbg 000000000000FFFF - 8000000000000000 - 0 = 800000000000FFFF (cc=1)
+slbg 0000000000007FFF - 8000000000000000 - 0 = 8000000000007FFF (cc=1)
+slbg 0000000000008000 - 8000000000000000 - 0 = 8000000000008000 (cc=1)
+slbg 00000000FFFFFFFF - 8000000000000000 - 0 = 80000000FFFFFFFF (cc=1)
+slbg 0000000080000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slbg 000000007FFFFFFF - 8000000000000000 - 0 = 800000007FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 8000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbg 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 0000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000001 - 8000000000000000 - 0 = 0000000000000001 (cc=3)
+slbr 000000000000FFFF - 8000000000000000 - 0 = 000000000000FFFF (cc=3)
+slbr 0000000000007FFF - 8000000000000000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000008000 - 8000000000000000 - 0 = 0000000000008000 (cc=3)
+slbr 00000000FFFFFFFF - 8000000000000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000080000000 - 8000000000000000 - 0 = 0000000080000000 (cc=3)
+slbr 000000007FFFFFFF - 8000000000000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbr 8000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=2)
+slbr 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 0000000000000000 - 8000000000000000 - 0 = 8000000000000000 (cc=1)
+slbgr 0000000000000001 - 8000000000000000 - 0 = 8000000000000001 (cc=1)
+slbgr 000000000000FFFF - 8000000000000000 - 0 = 800000000000FFFF (cc=1)
+slbgr 0000000000007FFF - 8000000000000000 - 0 = 8000000000007FFF (cc=1)
+slbgr 0000000000008000 - 8000000000000000 - 0 = 8000000000008000 (cc=1)
+slbgr 00000000FFFFFFFF - 8000000000000000 - 0 = 80000000FFFFFFFF (cc=1)
+slbgr 0000000080000000 - 8000000000000000 - 0 = 8000000080000000 (cc=1)
+slbgr 000000007FFFFFFF - 8000000000000000 - 0 = 800000007FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 8000000000000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 8000000000000000 - 8000000000000000 - 0 = 0000000000000000 (cc=2)
+slbgr 7FFFFFFFFFFFFFFF - 8000000000000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+shy 0000000000000000 - 8000000000000000 - 1 = 0000000000008000 (cc=2)
+shy 0000000000000001 - 8000000000000000 - 1 = 0000000000008001 (cc=2)
+shy 000000000000FFFF - 8000000000000000 - 1 = 0000000000017FFF (cc=2)
+shy 0000000000007FFF - 8000000000000000 - 1 = 000000000000FFFF (cc=2)
+shy 0000000000008000 - 8000000000000000 - 1 = 0000000000010000 (cc=2)
+shy 00000000FFFFFFFF - 8000000000000000 - 1 = 0000000000007FFF (cc=2)
+shy 0000000080000000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+shy 000000007FFFFFFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+shy FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF00007FFF (cc=2)
+shy 8000000000000000 - 8000000000000000 - 1 = 8000000000008000 (cc=2)
+shy 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF00007FFF (cc=2)
+sly 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=1)
+sly 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=1)
+sly 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=1)
+sly 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=1)
+sly 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=1)
+sly 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+sly 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=2)
+sly 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=1)
+sly FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+sly 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=1)
+sly 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+sy 0000000000000000 - 8000000000000000 - 1 = 0000000080000000 (cc=3)
+sy 0000000000000001 - 8000000000000000 - 1 = 0000000080000001 (cc=3)
+sy 000000000000FFFF - 8000000000000000 - 1 = 000000008000FFFF (cc=3)
+sy 0000000000007FFF - 8000000000000000 - 1 = 0000000080007FFF (cc=3)
+sy 0000000000008000 - 8000000000000000 - 1 = 0000000080008000 (cc=3)
+sy 00000000FFFFFFFF - 8000000000000000 - 1 = 000000007FFFFFFF (cc=2)
+sy 0000000080000000 - 8000000000000000 - 1 = 0000000000000000 (cc=0)
+sy 000000007FFFFFFF - 8000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+sy FFFFFFFFFFFFFFFF - 8000000000000000 - 1 = FFFFFFFF7FFFFFFF (cc=2)
+sy 8000000000000000 - 8000000000000000 - 1 = 8000000080000000 (cc=3)
+sy 7FFFFFFFFFFFFFFF - 8000000000000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+s 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+s 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+s 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+s 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+s 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+s 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+s 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+s 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+s FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=0)
+s 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=2)
+s 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=0)
+sh 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sh 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+sh 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+sh 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sh 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+sh 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sh 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sh 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+sh FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=0)
+sh 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=2)
+sh 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=0)
+sg 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=2)
+sg 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000001 (cc=2)
+sg 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFF (cc=2)
+sg 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=2)
+sg 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100008000 (cc=2)
+sg 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFF (cc=2)
+sg 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000180000000 (cc=2)
+sg 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=2)
+sg FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sg 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+sg 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=3)
+sgf 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgf 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+sgf 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+sgf 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sgf 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+sgf 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=2)
+sgf 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgf FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgf 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=3)
+sl 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=1)
+sl 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=1)
+sl 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=1)
+sl 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=1)
+sl 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=1)
+sl 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+sl 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sl 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+sl FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=2)
+sl 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=1)
+sl 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=2)
+slg 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=1)
+slg 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000001 (cc=1)
+slg 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFF (cc=1)
+slg 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=1)
+slg 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100008000 (cc=1)
+slg 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFF (cc=1)
+slg 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000180000000 (cc=1)
+slg 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=1)
+slg FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slg 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slg 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+sgf 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgf 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+sgf 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+sgf 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sgf 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+sgf 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=2)
+sgf 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=2)
+sgf 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgf FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgf 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=3)
+slgf 0000000000000000 - FFFFFFFF00000000 - 1 = FFFFFFFF00000001 (cc=1)
+slgf 0000000000000001 - FFFFFFFF00000000 - 1 = FFFFFFFF00000002 (cc=1)
+slgf 000000000000FFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00010000 (cc=1)
+slgf 0000000000007FFF - FFFFFFFF00000000 - 1 = FFFFFFFF00008000 (cc=1)
+slgf 0000000000008000 - FFFFFFFF00000000 - 1 = FFFFFFFF00008001 (cc=1)
+slgf 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slgf 0000000080000000 - FFFFFFFF00000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgf 000000007FFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgf FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=3)
+slgf 8000000000000000 - FFFFFFFF00000000 - 1 = 7FFFFFFF00000001 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=3)
+sr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFF (cc=2)
+sr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+sr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=2)
+sr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=0)
+sr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=2)
+sgr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000001 (cc=2)
+sgr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFF (cc=2)
+sgr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=2)
+sgr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100008000 (cc=2)
+sgr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFF (cc=2)
+sgr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000180000000 (cc=2)
+sgr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=2)
+sgr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+sgr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=3)
+sgfr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sgfr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFF (cc=2)
+sgfr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sgfr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=2)
+sgfr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+slr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFF (cc=3)
+slr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=3)
+slr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+slr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=2)
+slr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=1)
+slgr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000001 (cc=1)
+slgr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFF (cc=1)
+slgr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=1)
+slgr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100008000 (cc=1)
+slgr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFF (cc=1)
+slgr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000180000000 (cc=1)
+slgr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=1)
+slgr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000100000000 (cc=1)
+slgr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slgfr 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=3)
+slgfr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFF (cc=3)
+slgfr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=3)
+slgfr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfr 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+slgfr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfr 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slb 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+slb 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=1)
+slb 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFF (cc=1)
+slb 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=1)
+slb 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=1)
+slb 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+slb 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=1)
+slb FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slb 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000000 (cc=0)
+slb 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000000000 - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbg 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=1)
+slbg 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFE (cc=1)
+slbg 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFE (cc=1)
+slbg 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=1)
+slbg 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFE (cc=1)
+slbg 0000000080000000 - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=1)
+slbg 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFE (cc=1)
+slbg FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbg 8000000000000000 - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbg 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFE (cc=1)
+slbr 0000000000000000 - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+slbr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000000000FFFE (cc=3)
+slbr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000007FFF (cc=3)
+slbr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbr 0000000080000000 - FFFFFFFF00000000 - 1 = 000000007FFFFFFF (cc=3)
+slbr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slbr 8000000000000000 - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbgr 0000000000000000 - FFFFFFFF00000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbgr 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000100000000 (cc=1)
+slbgr 000000000000FFFF - FFFFFFFF00000000 - 1 = 000000010000FFFE (cc=1)
+slbgr 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000100007FFE (cc=1)
+slbgr 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000100007FFF (cc=1)
+slbgr 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 00000001FFFFFFFE (cc=1)
+slbgr 0000000080000000 - FFFFFFFF00000000 - 1 = 000000017FFFFFFF (cc=1)
+slbgr 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 000000017FFFFFFE (cc=1)
+slbgr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 00000000FFFFFFFE (cc=3)
+slbgr 8000000000000000 - FFFFFFFF00000000 - 1 = 80000000FFFFFFFF (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 80000000FFFFFFFE (cc=1)
+slb 0000000000000000 - FFFFFFFF00000000 - 0 = 0000000000000001 (cc=1)
+slb 0000000000000001 - FFFFFFFF00000000 - 0 = 0000000000000002 (cc=1)
+slb 000000000000FFFF - FFFFFFFF00000000 - 0 = 0000000000010000 (cc=1)
+slb 0000000000007FFF - FFFFFFFF00000000 - 0 = 0000000000008000 (cc=1)
+slb 0000000000008000 - FFFFFFFF00000000 - 0 = 0000000000008001 (cc=1)
+slb 00000000FFFFFFFF - FFFFFFFF00000000 - 0 = 0000000000000000 (cc=2)
+slb 0000000080000000 - FFFFFFFF00000000 - 0 = 0000000080000001 (cc=1)
+slb 000000007FFFFFFF - FFFFFFFF00000000 - 0 = 0000000080000000 (cc=1)
+slb FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = FFFFFFFF00000000 (cc=2)
+slb 8000000000000000 - FFFFFFFF00000000 - 0 = 8000000000000001 (cc=1)
+slb 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 7FFFFFFF00000000 (cc=2)
+slbg 0000000000000000 - FFFFFFFF00000000 - 0 = 0000000100000000 (cc=1)
+slbg 0000000000000001 - FFFFFFFF00000000 - 0 = 0000000100000001 (cc=1)
+slbg 000000000000FFFF - FFFFFFFF00000000 - 0 = 000000010000FFFF (cc=1)
+slbg 0000000000007FFF - FFFFFFFF00000000 - 0 = 0000000100007FFF (cc=1)
+slbg 0000000000008000 - FFFFFFFF00000000 - 0 = 0000000100008000 (cc=1)
+slbg 00000000FFFFFFFF - FFFFFFFF00000000 - 0 = 00000001FFFFFFFF (cc=1)
+slbg 0000000080000000 - FFFFFFFF00000000 - 0 = 0000000180000000 (cc=1)
+slbg 000000007FFFFFFF - FFFFFFFF00000000 - 0 = 000000017FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbg 8000000000000000 - FFFFFFFF00000000 - 0 = 8000000100000000 (cc=1)
+slbg 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 80000000FFFFFFFF (cc=1)
+slbr 0000000000000000 - FFFFFFFF00000000 - 0 = 0000000000000000 (cc=2)
+slbr 0000000000000001 - FFFFFFFF00000000 - 0 = 0000000000000001 (cc=3)
+slbr 000000000000FFFF - FFFFFFFF00000000 - 0 = 000000000000FFFF (cc=3)
+slbr 0000000000007FFF - FFFFFFFF00000000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000008000 - FFFFFFFF00000000 - 0 = 0000000000008000 (cc=3)
+slbr 00000000FFFFFFFF - FFFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbr 0000000080000000 - FFFFFFFF00000000 - 0 = 0000000080000000 (cc=3)
+slbr 000000007FFFFFFF - FFFFFFFF00000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slbr 8000000000000000 - FFFFFFFF00000000 - 0 = 8000000000000000 (cc=2)
+slbr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbgr 0000000000000000 - FFFFFFFF00000000 - 0 = 0000000100000000 (cc=1)
+slbgr 0000000000000001 - FFFFFFFF00000000 - 0 = 0000000100000001 (cc=1)
+slbgr 000000000000FFFF - FFFFFFFF00000000 - 0 = 000000010000FFFF (cc=1)
+slbgr 0000000000007FFF - FFFFFFFF00000000 - 0 = 0000000100007FFF (cc=1)
+slbgr 0000000000008000 - FFFFFFFF00000000 - 0 = 0000000100008000 (cc=1)
+slbgr 00000000FFFFFFFF - FFFFFFFF00000000 - 0 = 00000001FFFFFFFF (cc=1)
+slbgr 0000000080000000 - FFFFFFFF00000000 - 0 = 0000000180000000 (cc=1)
+slbgr 000000007FFFFFFF - FFFFFFFF00000000 - 0 = 000000017FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 00000000FFFFFFFF (cc=3)
+slbgr 8000000000000000 - FFFFFFFF00000000 - 0 = 8000000100000000 (cc=1)
+slbgr 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 0 = 80000000FFFFFFFF (cc=1)
+shy 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+shy 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+shy 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+shy 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+shy 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+shy 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+shy 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+shy 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+shy FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=0)
+shy 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=2)
+shy 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=0)
+sly 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=1)
+sly 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=1)
+sly 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=1)
+sly 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=1)
+sly 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=1)
+sly 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=2)
+sly 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sly 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=1)
+sly FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=2)
+sly 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=1)
+sly 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=2)
+sy 0000000000000000 - FFFFFFFF00000000 - 1 = 0000000000000001 (cc=2)
+sy 0000000000000001 - FFFFFFFF00000000 - 1 = 0000000000000002 (cc=2)
+sy 000000000000FFFF - FFFFFFFF00000000 - 1 = 0000000000010000 (cc=2)
+sy 0000000000007FFF - FFFFFFFF00000000 - 1 = 0000000000008000 (cc=2)
+sy 0000000000008000 - FFFFFFFF00000000 - 1 = 0000000000008001 (cc=2)
+sy 00000000FFFFFFFF - FFFFFFFF00000000 - 1 = 0000000000000000 (cc=0)
+sy 0000000080000000 - FFFFFFFF00000000 - 1 = 0000000080000001 (cc=1)
+sy 000000007FFFFFFF - FFFFFFFF00000000 - 1 = 0000000080000000 (cc=3)
+sy FFFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = FFFFFFFF00000000 (cc=0)
+sy 8000000000000000 - FFFFFFFF00000000 - 1 = 8000000000000001 (cc=2)
+sy 7FFFFFFFFFFFFFFF - FFFFFFFF00000000 - 1 = 7FFFFFFF00000000 (cc=0)
+s 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sg 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+sg 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+sg 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+sg 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+sg 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=2)
+sg 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sg 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sg FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sg 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=2)
+sgf 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slg 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+slg 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+slg 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slg 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+slg 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slg 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slg 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slg FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slg 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+sgf 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 000000007FFFFFFF - 1 = 0000000080000001 (cc=1)
+sr 0000000000000001 - 000000007FFFFFFF - 1 = 0000000080000002 (cc=1)
+sr 000000000000FFFF - 000000007FFFFFFF - 1 = 0000000080010000 (cc=1)
+sr 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000080008000 (cc=1)
+sr 0000000000008000 - 000000007FFFFFFF - 1 = 0000000080008001 (cc=1)
+sr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+sr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+sr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sr 8000000000000000 - 000000007FFFFFFF - 1 = 8000000080000001 (cc=1)
+sr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=1)
+sgr 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sgr 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+sgr 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+sgr 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+sgr 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+sgr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=2)
+sgr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sgr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sgr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sgr 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=2)
+sgfr 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sgfr 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+sgfr 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+sgfr 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+sgfr 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+sgfr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=2)
+sgfr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sgfr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sgfr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sgfr 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+sgfr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=2)
+slr 0000000000000000 - 000000007FFFFFFF - 1 = 0000000080000001 (cc=1)
+slr 0000000000000001 - 000000007FFFFFFF - 1 = 0000000080000002 (cc=1)
+slr 000000000000FFFF - 000000007FFFFFFF - 1 = 0000000080010000 (cc=1)
+slr 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000080008000 (cc=1)
+slr 0000000000008000 - 000000007FFFFFFF - 1 = 0000000080008001 (cc=1)
+slr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slr 8000000000000000 - 000000007FFFFFFF - 1 = 8000000080000001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slgr 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgr 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+slgr 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+slgr 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slgr 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+slgr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slgr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slgr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slgr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slgr 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slgfr 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfr 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+slgfr 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+slgfr 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slgfr 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+slgfr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slgfr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slgfr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slgfr 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slb 0000000000000000 - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 000000007FFFFFFF - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slbg 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slbg 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF8000FFFF (cc=1)
+slbg 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80007FFF (cc=1)
+slbg 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slbg 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slbg 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slbg 000000007FFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slbg 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbr 0000000000000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+slbr 0000000000000001 - 000000007FFFFFFF - 1 = 0000000080000001 (cc=1)
+slbr 000000000000FFFF - 000000007FFFFFFF - 1 = 000000008000FFFF (cc=1)
+slbr 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000080007FFF (cc=1)
+slbr 0000000000008000 - 000000007FFFFFFF - 1 = 0000000080008000 (cc=1)
+slbr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slbr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slbr 000000007FFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slbr 8000000000000000 - 000000007FFFFFFF - 1 = 8000000080000000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbgr 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slbgr 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slbgr 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF8000FFFF (cc=1)
+slbgr 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80007FFF (cc=1)
+slbgr 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slbgr 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slbgr 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slbgr 000000007FFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slbgr 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slb 0000000000000000 - 000000007FFFFFFF - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 000000007FFFFFFF - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 000000007FFFFFFF - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 000000007FFFFFFF - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 000000007FFFFFFF - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 000000007FFFFFFF - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 000000007FFFFFFF - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 000000007FFFFFFF - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 000000007FFFFFFF - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 000000007FFFFFFF - 0 = FFFFFFFF80000001 (cc=1)
+slbg 0000000000000001 - 000000007FFFFFFF - 0 = FFFFFFFF80000002 (cc=1)
+slbg 000000000000FFFF - 000000007FFFFFFF - 0 = FFFFFFFF80010000 (cc=1)
+slbg 0000000000007FFF - 000000007FFFFFFF - 0 = FFFFFFFF80008000 (cc=1)
+slbg 0000000000008000 - 000000007FFFFFFF - 0 = FFFFFFFF80008001 (cc=1)
+slbg 00000000FFFFFFFF - 000000007FFFFFFF - 0 = 0000000080000000 (cc=3)
+slbg 0000000080000000 - 000000007FFFFFFF - 0 = 0000000000000001 (cc=3)
+slbg 000000007FFFFFFF - 000000007FFFFFFF - 0 = 0000000000000000 (cc=2)
+slbg FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = FFFFFFFF80000000 (cc=3)
+slbg 8000000000000000 - 000000007FFFFFFF - 0 = 7FFFFFFF80000001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = 7FFFFFFF80000000 (cc=3)
+slbr 0000000000000000 - 000000007FFFFFFF - 0 = 0000000080000001 (cc=1)
+slbr 0000000000000001 - 000000007FFFFFFF - 0 = 0000000080000002 (cc=1)
+slbr 000000000000FFFF - 000000007FFFFFFF - 0 = 0000000080010000 (cc=1)
+slbr 0000000000007FFF - 000000007FFFFFFF - 0 = 0000000080008000 (cc=1)
+slbr 0000000000008000 - 000000007FFFFFFF - 0 = 0000000080008001 (cc=1)
+slbr 00000000FFFFFFFF - 000000007FFFFFFF - 0 = 0000000080000000 (cc=3)
+slbr 0000000080000000 - 000000007FFFFFFF - 0 = 0000000000000001 (cc=3)
+slbr 000000007FFFFFFF - 000000007FFFFFFF - 0 = 0000000000000000 (cc=2)
+slbr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = FFFFFFFF80000000 (cc=3)
+slbr 8000000000000000 - 000000007FFFFFFF - 0 = 8000000080000001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = 7FFFFFFF80000000 (cc=3)
+slbgr 0000000000000000 - 000000007FFFFFFF - 0 = FFFFFFFF80000001 (cc=1)
+slbgr 0000000000000001 - 000000007FFFFFFF - 0 = FFFFFFFF80000002 (cc=1)
+slbgr 000000000000FFFF - 000000007FFFFFFF - 0 = FFFFFFFF80010000 (cc=1)
+slbgr 0000000000007FFF - 000000007FFFFFFF - 0 = FFFFFFFF80008000 (cc=1)
+slbgr 0000000000008000 - 000000007FFFFFFF - 0 = FFFFFFFF80008001 (cc=1)
+slbgr 00000000FFFFFFFF - 000000007FFFFFFF - 0 = 0000000080000000 (cc=3)
+slbgr 0000000080000000 - 000000007FFFFFFF - 0 = 0000000000000001 (cc=3)
+slbgr 000000007FFFFFFF - 000000007FFFFFFF - 0 = 0000000000000000 (cc=2)
+slbgr FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = FFFFFFFF80000000 (cc=3)
+slbgr 8000000000000000 - 000000007FFFFFFF - 0 = 7FFFFFFF80000001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 0 = 7FFFFFFF80000000 (cc=3)
+shy 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 000000007FFFFFFF - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 000000007FFFFFFF - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 000000007FFFFFFF - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 000000007FFFFFFF - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 000000007FFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 000000007FFFFFFF - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+sg 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+sg 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+sg 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+sg 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+sg 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sg 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sg 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sg FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=1)
+sg 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+sgf 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slg 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+slg 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slg 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slg 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+slg 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slg 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slg 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slg FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slg 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+sgf 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 0000000080000000 - 1 = 0000000080000000 (cc=3)
+sr 0000000000000001 - 0000000080000000 - 1 = 0000000080000001 (cc=3)
+sr 000000000000FFFF - 0000000080000000 - 1 = 000000008000FFFF (cc=3)
+sr 0000000000007FFF - 0000000080000000 - 1 = 0000000080007FFF (cc=3)
+sr 0000000000008000 - 0000000080000000 - 1 = 0000000080008000 (cc=3)
+sr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sr 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sr 000000007FFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=3)
+sr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=2)
+sr 8000000000000000 - 0000000080000000 - 1 = 8000000080000000 (cc=3)
+sr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+sgr 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+sgr 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+sgr 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+sgr 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+sgr 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+sgr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sgr 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sgr 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=1)
+sgr 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=2)
+sgfr 0000000000000000 - 0000000080000000 - 1 = 0000000080000000 (cc=2)
+sgfr 0000000000000001 - 0000000080000000 - 1 = 0000000080000001 (cc=2)
+sgfr 000000000000FFFF - 0000000080000000 - 1 = 000000008000FFFF (cc=2)
+sgfr 0000000000007FFF - 0000000080000000 - 1 = 0000000080007FFF (cc=2)
+sgfr 0000000000008000 - 0000000080000000 - 1 = 0000000080008000 (cc=2)
+sgfr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000017FFFFFFF (cc=2)
+sgfr 0000000080000000 - 0000000080000000 - 1 = 0000000100000000 (cc=2)
+sgfr 000000007FFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sgfr 8000000000000000 - 0000000080000000 - 1 = 8000000080000000 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 800000007FFFFFFF (cc=3)
+slr 0000000000000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+slr 0000000000000001 - 0000000080000000 - 1 = 0000000080000001 (cc=1)
+slr 000000000000FFFF - 0000000080000000 - 1 = 000000008000FFFF (cc=1)
+slr 0000000000007FFF - 0000000080000000 - 1 = 0000000080007FFF (cc=1)
+slr 0000000000008000 - 0000000080000000 - 1 = 0000000080008000 (cc=1)
+slr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slr 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slr 000000007FFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+slr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slr 8000000000000000 - 0000000080000000 - 1 = 8000000080000000 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slgr 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgr 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgr 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slgr 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slgr 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slgr 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slgr 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slgr 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slgfr 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgfr 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgfr 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slgfr 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slgfr 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgfr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfr 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slgfr 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slgfr 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slb 0000000000000000 - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 0000000080000000 - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 0000000080000000 - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=1)
+slbg 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slbg 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFE (cc=1)
+slbg 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFE (cc=1)
+slbg 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slbg 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFE (cc=3)
+slbg 0000000080000000 - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbg FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFE (cc=3)
+slbg 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFE (cc=3)
+slbr 0000000000000000 - 0000000080000000 - 1 = 000000007FFFFFFF (cc=1)
+slbr 0000000000000001 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+slbr 000000000000FFFF - 0000000080000000 - 1 = 000000008000FFFE (cc=1)
+slbr 0000000000007FFF - 0000000080000000 - 1 = 0000000080007FFE (cc=1)
+slbr 0000000000008000 - 0000000080000000 - 1 = 0000000080007FFF (cc=1)
+slbr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFE (cc=3)
+slbr 0000000080000000 - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 000000007FFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFE (cc=1)
+slbr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFE (cc=3)
+slbr 8000000000000000 - 0000000080000000 - 1 = 800000007FFFFFFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFE (cc=3)
+slbgr 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=1)
+slbgr 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slbgr 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFE (cc=1)
+slbgr 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFE (cc=1)
+slbgr 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slbgr 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFE (cc=3)
+slbgr 0000000080000000 - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFE (cc=3)
+slbgr 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFE (cc=3)
+slb 0000000000000000 - 0000000080000000 - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 0000000080000000 - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 0000000080000000 - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 0000000080000000 - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 0000000080000000 - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 0000000080000000 - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 0000000080000000 - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 0000000080000000 - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000080000000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 0000000080000000 - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 0000000080000000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 0000000080000000 - 0 = FFFFFFFF80000000 (cc=1)
+slbg 0000000000000001 - 0000000080000000 - 0 = FFFFFFFF80000001 (cc=1)
+slbg 000000000000FFFF - 0000000080000000 - 0 = FFFFFFFF8000FFFF (cc=1)
+slbg 0000000000007FFF - 0000000080000000 - 0 = FFFFFFFF80007FFF (cc=1)
+slbg 0000000000008000 - 0000000080000000 - 0 = FFFFFFFF80008000 (cc=1)
+slbg 00000000FFFFFFFF - 0000000080000000 - 0 = 000000007FFFFFFF (cc=3)
+slbg 0000000080000000 - 0000000080000000 - 0 = 0000000000000000 (cc=2)
+slbg 000000007FFFFFFF - 0000000080000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 0000000080000000 - 0 = FFFFFFFF7FFFFFFF (cc=3)
+slbg 8000000000000000 - 0000000080000000 - 0 = 7FFFFFFF80000000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000080000000 - 0 = 7FFFFFFF7FFFFFFF (cc=3)
+slbr 0000000000000000 - 0000000080000000 - 0 = 0000000080000000 (cc=1)
+slbr 0000000000000001 - 0000000080000000 - 0 = 0000000080000001 (cc=1)
+slbr 000000000000FFFF - 0000000080000000 - 0 = 000000008000FFFF (cc=1)
+slbr 0000000000007FFF - 0000000080000000 - 0 = 0000000080007FFF (cc=1)
+slbr 0000000000008000 - 0000000080000000 - 0 = 0000000080008000 (cc=1)
+slbr 00000000FFFFFFFF - 0000000080000000 - 0 = 000000007FFFFFFF (cc=3)
+slbr 0000000080000000 - 0000000080000000 - 0 = 0000000000000000 (cc=2)
+slbr 000000007FFFFFFF - 0000000080000000 - 0 = 00000000FFFFFFFF (cc=1)
+slbr FFFFFFFFFFFFFFFF - 0000000080000000 - 0 = FFFFFFFF7FFFFFFF (cc=3)
+slbr 8000000000000000 - 0000000080000000 - 0 = 8000000080000000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000080000000 - 0 = 7FFFFFFF7FFFFFFF (cc=3)
+slbgr 0000000000000000 - 0000000080000000 - 0 = FFFFFFFF80000000 (cc=1)
+slbgr 0000000000000001 - 0000000080000000 - 0 = FFFFFFFF80000001 (cc=1)
+slbgr 000000000000FFFF - 0000000080000000 - 0 = FFFFFFFF8000FFFF (cc=1)
+slbgr 0000000000007FFF - 0000000080000000 - 0 = FFFFFFFF80007FFF (cc=1)
+slbgr 0000000000008000 - 0000000080000000 - 0 = FFFFFFFF80008000 (cc=1)
+slbgr 00000000FFFFFFFF - 0000000080000000 - 0 = 000000007FFFFFFF (cc=3)
+slbgr 0000000080000000 - 0000000080000000 - 0 = 0000000000000000 (cc=2)
+slbgr 000000007FFFFFFF - 0000000080000000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 0000000080000000 - 0 = FFFFFFFF7FFFFFFF (cc=3)
+slbgr 8000000000000000 - 0000000080000000 - 0 = 7FFFFFFF80000000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000080000000 - 0 = 7FFFFFFF7FFFFFFF (cc=3)
+shy 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 0000000080000000 - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 0000000080000000 - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 0000000080000000 - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 0000000080000000 - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 0000000080000000 - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 0000000080000000 - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+sg 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+sg 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+sg 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+sg 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+sg 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sg 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sg 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sg FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=1)
+sg 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+sgf 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slg 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slg 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slg 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slg 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slg 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slg 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slg 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slg FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slg 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+sgf 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sr 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000002 (cc=2)
+sr 000000000000FFFF - 00000000FFFFFFFF - 1 = 0000000000010000 (cc=2)
+sr 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sr 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008001 (cc=2)
+sr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sr 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000001 (cc=1)
+sr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=3)
+sr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=0)
+sr 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000001 (cc=2)
+sr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=0)
+sgr 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+sgr 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+sgr 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+sgr 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+sgr 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+sgr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgr 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+sgr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+sgr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=1)
+sgr 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+sgfr 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sgfr 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000002 (cc=2)
+sgfr 000000000000FFFF - 00000000FFFFFFFF - 1 = 0000000000010000 (cc=2)
+sgfr 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sgfr 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008001 (cc=2)
+sgfr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000100000000 (cc=2)
+sgfr 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000001 (cc=2)
+sgfr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sgfr 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000001 (cc=1)
+sgfr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=3)
+slr 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=1)
+slr 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000002 (cc=1)
+slr 000000000000FFFF - 00000000FFFFFFFF - 1 = 0000000000010000 (cc=1)
+slr 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=1)
+slr 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008001 (cc=1)
+slr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slr 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000001 (cc=1)
+slr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+slr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+slr 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+slgr 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgr 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgr 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgr 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgr 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgr 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgr 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slgfr 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgfr 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgfr 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgfr 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgfr 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgfr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgfr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgfr 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slb 0000000000000000 - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 00000000FFFFFFFF - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=1)
+slbg 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slbg 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF0000FFFF (cc=1)
+slbg 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00007FFF (cc=1)
+slbg 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slbg 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slbg 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=1)
+slbg FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFEFFFFFFFF (cc=3)
+slbg 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFEFFFFFFFF (cc=3)
+slbr 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+slbr 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=1)
+slbr 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=1)
+slbr 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=1)
+slbr 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=1)
+slbr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+slbr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=1)
+slbr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbr 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=0)
+slbr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=1)
+slbgr 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slbgr 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF0000FFFF (cc=1)
+slbgr 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00007FFF (cc=1)
+slbgr 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slbgr 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slbgr 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF7FFFFFFF (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFEFFFFFFFF (cc=3)
+slbgr 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFEFFFFFFFF (cc=3)
+slb 0000000000000000 - 00000000FFFFFFFF - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 00000000FFFFFFFF - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 00000000FFFFFFFF - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 00000000FFFFFFFF - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 00000000FFFFFFFF - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 00000000FFFFFFFF - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 00000000FFFFFFFF - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 00000000FFFFFFFF - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 00000000FFFFFFFF - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 00000000FFFFFFFF - 0 = FFFFFFFF00000001 (cc=1)
+slbg 0000000000000001 - 00000000FFFFFFFF - 0 = FFFFFFFF00000002 (cc=1)
+slbg 000000000000FFFF - 00000000FFFFFFFF - 0 = FFFFFFFF00010000 (cc=1)
+slbg 0000000000007FFF - 00000000FFFFFFFF - 0 = FFFFFFFF00008000 (cc=1)
+slbg 0000000000008000 - 00000000FFFFFFFF - 0 = FFFFFFFF00008001 (cc=1)
+slbg 00000000FFFFFFFF - 00000000FFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbg 0000000080000000 - 00000000FFFFFFFF - 0 = FFFFFFFF80000001 (cc=1)
+slbg 000000007FFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFF80000000 (cc=1)
+slbg FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFF00000000 (cc=3)
+slbg 8000000000000000 - 00000000FFFFFFFF - 0 = 7FFFFFFF00000001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = 7FFFFFFF00000000 (cc=3)
+slbr 0000000000000000 - 00000000FFFFFFFF - 0 = 0000000000000001 (cc=1)
+slbr 0000000000000001 - 00000000FFFFFFFF - 0 = 0000000000000002 (cc=1)
+slbr 000000000000FFFF - 00000000FFFFFFFF - 0 = 0000000000010000 (cc=1)
+slbr 0000000000007FFF - 00000000FFFFFFFF - 0 = 0000000000008000 (cc=1)
+slbr 0000000000008000 - 00000000FFFFFFFF - 0 = 0000000000008001 (cc=1)
+slbr 00000000FFFFFFFF - 00000000FFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000080000000 - 00000000FFFFFFFF - 0 = 0000000080000001 (cc=1)
+slbr 000000007FFFFFFF - 00000000FFFFFFFF - 0 = 0000000080000000 (cc=1)
+slbr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFF00000000 (cc=2)
+slbr 8000000000000000 - 00000000FFFFFFFF - 0 = 8000000000000001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = 7FFFFFFF00000000 (cc=2)
+slbgr 0000000000000000 - 00000000FFFFFFFF - 0 = FFFFFFFF00000001 (cc=1)
+slbgr 0000000000000001 - 00000000FFFFFFFF - 0 = FFFFFFFF00000002 (cc=1)
+slbgr 000000000000FFFF - 00000000FFFFFFFF - 0 = FFFFFFFF00010000 (cc=1)
+slbgr 0000000000007FFF - 00000000FFFFFFFF - 0 = FFFFFFFF00008000 (cc=1)
+slbgr 0000000000008000 - 00000000FFFFFFFF - 0 = FFFFFFFF00008001 (cc=1)
+slbgr 00000000FFFFFFFF - 00000000FFFFFFFF - 0 = 0000000000000000 (cc=2)
+slbgr 0000000080000000 - 00000000FFFFFFFF - 0 = FFFFFFFF80000001 (cc=1)
+slbgr 000000007FFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFF80000000 (cc=1)
+slbgr FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = FFFFFFFF00000000 (cc=3)
+slbgr 8000000000000000 - 00000000FFFFFFFF - 0 = 7FFFFFFF00000001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 0 = 7FFFFFFF00000000 (cc=3)
+shy 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 00000000FFFFFFFF - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sg 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+sgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slg 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+sgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+sr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0002 (cc=1)
+sr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+sr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8001 (cc=1)
+sr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=1)
+sr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+sr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0001 (cc=1)
+sr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=1)
+sgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sgr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+sgfr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sgfr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sgfr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgfr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgfr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sgfr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sgfr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sgfr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sgfr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+slr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+slr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0002 (cc=1)
+slr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+slr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8001 (cc=1)
+slr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slgr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slgfr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slgfr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slgfr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgfr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slgfr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slgfr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slgfr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slb 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+slbg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slbg 000000000000FFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slbr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=1)
+slbr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+slbr 000000000000FFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF7FFF (cc=1)
+slbr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+slbr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slbgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+slbgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slbgr 000000000000FFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slb 0000000000000000 - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 000000000000FFFF - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 000000000000FFFF - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 000000000000FFFF - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 000000000000FFFF - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 000000000000FFFF - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 000000000000FFFF - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 000000000000FFFF - 0 = FFFFFFFFFFFF0001 (cc=1)
+slbg 0000000000000001 - 000000000000FFFF - 0 = FFFFFFFFFFFF0002 (cc=1)
+slbg 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbg 0000000000007FFF - 000000000000FFFF - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbg 0000000000008000 - 000000000000FFFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbg 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbg 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbg 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbg FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbg 8000000000000000 - 000000000000FFFF - 0 = 7FFFFFFFFFFF0001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+slbr 0000000000000000 - 000000000000FFFF - 0 = 00000000FFFF0001 (cc=1)
+slbr 0000000000000001 - 000000000000FFFF - 0 = 00000000FFFF0002 (cc=1)
+slbr 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000000007FFF - 000000000000FFFF - 0 = 00000000FFFF8000 (cc=1)
+slbr 0000000000008000 - 000000000000FFFF - 0 = 00000000FFFF8001 (cc=1)
+slbr 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbr 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbr 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbr FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbr 8000000000000000 - 000000000000FFFF - 0 = 80000000FFFF0001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+slbgr 0000000000000000 - 000000000000FFFF - 0 = FFFFFFFFFFFF0001 (cc=1)
+slbgr 0000000000000001 - 000000000000FFFF - 0 = FFFFFFFFFFFF0002 (cc=1)
+slbgr 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbgr 0000000000007FFF - 000000000000FFFF - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 0000000000008000 - 000000000000FFFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbgr 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbgr 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbgr 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbgr 8000000000000000 - 000000000000FFFF - 0 = 7FFFFFFFFFFF0001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+shy 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sg 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+sg 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sg 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sg 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sg 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=2)
+sg 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=2)
+sg 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=2)
+sg FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sg 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=2)
+sgf 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slg 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+slg 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slg 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slg 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slg 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slg 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slg 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slg FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slg 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+sgf 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 0000000000007FFF - 1 = 00000000FFFF8001 (cc=1)
+sr 0000000000000001 - 0000000000007FFF - 1 = 00000000FFFF8002 (cc=1)
+sr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=1)
+sr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+sr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=2)
+sr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sr 8000000000000000 - 0000000000007FFF - 1 = 80000000FFFF8001 (cc=1)
+sr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=1)
+sgr 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgr 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+sgr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sgr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sgr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sgr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=2)
+sgr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=2)
+sgr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=2)
+sgr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgr 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=2)
+sgfr 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgfr 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+sgfr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sgfr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sgfr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=2)
+sgfr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=2)
+sgfr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgfr 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+sgfr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=2)
+slr 0000000000000000 - 0000000000007FFF - 1 = 00000000FFFF8001 (cc=1)
+slr 0000000000000001 - 0000000000007FFF - 1 = 00000000FFFF8002 (cc=1)
+slr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slr 8000000000000000 - 0000000000007FFF - 1 = 80000000FFFF8001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgr 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgr 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+slgr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slgr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slgr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slgr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slgr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slgr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slgr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slgr 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgfr 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfr 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+slgfr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slgfr 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slgfr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slgfr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slgfr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slgfr 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slb 0000000000000000 - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 0000000000007FFF - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbg 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slbg 000000000000FFFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+slbg 0000000000007FFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000008000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slbg 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF7FFF (cc=3)
+slbg 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slbg 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF7FFF (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slbg 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slbr 0000000000000000 - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=1)
+slbr 0000000000000001 - 0000000000007FFF - 1 = 00000000FFFF8001 (cc=1)
+slbr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+slbr 0000000000007FFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slbr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF7FFF (cc=3)
+slbr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slbr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF7FFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slbr 8000000000000000 - 0000000000007FFF - 1 = 80000000FFFF8000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slbgr 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slbgr 000000000000FFFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+slbgr 0000000000007FFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000008000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slbgr 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF7FFF (cc=3)
+slbgr 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slbgr 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF7FFF (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slbgr 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slb 0000000000000000 - 0000000000007FFF - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 0000000000007FFF - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 0000000000007FFF - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 0000000000007FFF - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 0000000000007FFF - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 0000000000007FFF - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 0000000000007FFF - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 0000000000007FFF - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000007FFF - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 0000000000007FFF - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 0000000000007FFF - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 0000000000007FFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbg 0000000000000001 - 0000000000007FFF - 0 = FFFFFFFFFFFF8002 (cc=1)
+slbg 000000000000FFFF - 0000000000007FFF - 0 = 0000000000008000 (cc=3)
+slbg 0000000000007FFF - 0000000000007FFF - 0 = 0000000000000000 (cc=2)
+slbg 0000000000008000 - 0000000000007FFF - 0 = 0000000000000001 (cc=3)
+slbg 00000000FFFFFFFF - 0000000000007FFF - 0 = 00000000FFFF8000 (cc=3)
+slbg 0000000080000000 - 0000000000007FFF - 0 = 000000007FFF8001 (cc=3)
+slbg 000000007FFFFFFF - 0000000000007FFF - 0 = 000000007FFF8000 (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000007FFF - 0 = FFFFFFFFFFFF8000 (cc=3)
+slbg 8000000000000000 - 0000000000007FFF - 0 = 7FFFFFFFFFFF8001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000007FFF - 0 = 7FFFFFFFFFFF8000 (cc=3)
+slbr 0000000000000000 - 0000000000007FFF - 0 = 00000000FFFF8001 (cc=1)
+slbr 0000000000000001 - 0000000000007FFF - 0 = 00000000FFFF8002 (cc=1)
+slbr 000000000000FFFF - 0000000000007FFF - 0 = 0000000000008000 (cc=3)
+slbr 0000000000007FFF - 0000000000007FFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000000008000 - 0000000000007FFF - 0 = 0000000000000001 (cc=3)
+slbr 00000000FFFFFFFF - 0000000000007FFF - 0 = 00000000FFFF8000 (cc=3)
+slbr 0000000080000000 - 0000000000007FFF - 0 = 000000007FFF8001 (cc=3)
+slbr 000000007FFFFFFF - 0000000000007FFF - 0 = 000000007FFF8000 (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000007FFF - 0 = FFFFFFFFFFFF8000 (cc=3)
+slbr 8000000000000000 - 0000000000007FFF - 0 = 80000000FFFF8001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 0 = 7FFFFFFFFFFF8000 (cc=3)
+slbgr 0000000000000000 - 0000000000007FFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbgr 0000000000000001 - 0000000000007FFF - 0 = FFFFFFFFFFFF8002 (cc=1)
+slbgr 000000000000FFFF - 0000000000007FFF - 0 = 0000000000008000 (cc=3)
+slbgr 0000000000007FFF - 0000000000007FFF - 0 = 0000000000000000 (cc=2)
+slbgr 0000000000008000 - 0000000000007FFF - 0 = 0000000000000001 (cc=3)
+slbgr 00000000FFFFFFFF - 0000000000007FFF - 0 = 00000000FFFF8000 (cc=3)
+slbgr 0000000080000000 - 0000000000007FFF - 0 = 000000007FFF8001 (cc=3)
+slbgr 000000007FFFFFFF - 0000000000007FFF - 0 = 000000007FFF8000 (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000007FFF - 0 = FFFFFFFFFFFF8000 (cc=3)
+slbgr 8000000000000000 - 0000000000007FFF - 0 = 7FFFFFFFFFFF8001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000007FFF - 0 = 7FFFFFFFFFFF8000 (cc=3)
+shy 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 0000000000007FFF - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 0000000000007FFF - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 0000000000007FFF - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 0000000000007FFF - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 0000000000007FFF - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 0000000000007FFF - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 0000000000007FFF - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+sg 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+sg 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sg 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sg 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sg 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=2)
+sg 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=2)
+sg 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=2)
+sg FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+sg 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=2)
+sgf 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slg 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+slg 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slg 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slg 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slg 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slg 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slg 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slg FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slg 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+sgf 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 0000000000008000 - 1 = 00000000FFFF8000 (cc=1)
+sr 0000000000000001 - 0000000000008000 - 1 = 00000000FFFF8001 (cc=1)
+sr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sr 0000000000007FFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+sr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=1)
+sr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+sr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=2)
+sr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+sr 8000000000000000 - 0000000000008000 - 1 = 80000000FFFF8000 (cc=1)
+sr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=1)
+sgr 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgr 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sgr 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sgr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=2)
+sgr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=2)
+sgr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=2)
+sgr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+sgr 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=2)
+sgfr 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgfr 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgfr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sgfr 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgfr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sgfr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=2)
+sgfr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=2)
+sgfr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+sgfr 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+sgfr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=2)
+slr 0000000000000000 - 0000000000008000 - 1 = 00000000FFFF8000 (cc=1)
+slr 0000000000000001 - 0000000000008000 - 1 = 00000000FFFF8001 (cc=1)
+slr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slr 0000000000007FFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+slr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slr 8000000000000000 - 0000000000008000 - 1 = 80000000FFFF8000 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slgr 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgr 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slgr 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slgr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slgr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slgr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slgr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slgr 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slgfr 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgfr 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slgfr 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfr 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slgfr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slgfr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slgfr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slgfr 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slb 0000000000000000 - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 0000000000008000 - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 0000000000008000 - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbg 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbg 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFE (cc=3)
+slbg 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbg 0000000000008000 - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFE (cc=3)
+slbg 0000000080000000 - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slbg 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFE (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFE (cc=3)
+slbg 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFE (cc=3)
+slbr 0000000000000000 - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=1)
+slbr 0000000000000001 - 0000000000008000 - 1 = 00000000FFFF8000 (cc=1)
+slbr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFE (cc=3)
+slbr 0000000000007FFF - 0000000000008000 - 1 = 00000000FFFFFFFE (cc=1)
+slbr 0000000000008000 - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+slbr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFE (cc=3)
+slbr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slbr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFE (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFE (cc=3)
+slbr 8000000000000000 - 0000000000008000 - 1 = 80000000FFFF7FFF (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFE (cc=3)
+slbgr 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbgr 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFE (cc=3)
+slbgr 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFE (cc=1)
+slbgr 0000000000008000 - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFE (cc=3)
+slbgr 0000000080000000 - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slbgr 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFE (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFE (cc=3)
+slbgr 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFE (cc=3)
+slb 0000000000000000 - 0000000000008000 - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 0000000000008000 - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 0000000000008000 - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 0000000000008000 - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 0000000000008000 - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 0000000000008000 - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 0000000000008000 - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 0000000000008000 - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 0000000000008000 - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 0000000000008000 - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 0000000000008000 - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 0000000000008000 - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbg 0000000000000001 - 0000000000008000 - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbg 000000000000FFFF - 0000000000008000 - 0 = 0000000000007FFF (cc=3)
+slbg 0000000000007FFF - 0000000000008000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000008000 - 0000000000008000 - 0 = 0000000000000000 (cc=2)
+slbg 00000000FFFFFFFF - 0000000000008000 - 0 = 00000000FFFF7FFF (cc=3)
+slbg 0000000080000000 - 0000000000008000 - 0 = 000000007FFF8000 (cc=3)
+slbg 000000007FFFFFFF - 0000000000008000 - 0 = 000000007FFF7FFF (cc=3)
+slbg FFFFFFFFFFFFFFFF - 0000000000008000 - 0 = FFFFFFFFFFFF7FFF (cc=3)
+slbg 8000000000000000 - 0000000000008000 - 0 = 7FFFFFFFFFFF8000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 0000000000008000 - 0 = 7FFFFFFFFFFF7FFF (cc=3)
+slbr 0000000000000000 - 0000000000008000 - 0 = 00000000FFFF8000 (cc=1)
+slbr 0000000000000001 - 0000000000008000 - 0 = 00000000FFFF8001 (cc=1)
+slbr 000000000000FFFF - 0000000000008000 - 0 = 0000000000007FFF (cc=3)
+slbr 0000000000007FFF - 0000000000008000 - 0 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000008000 - 0000000000008000 - 0 = 0000000000000000 (cc=2)
+slbr 00000000FFFFFFFF - 0000000000008000 - 0 = 00000000FFFF7FFF (cc=3)
+slbr 0000000080000000 - 0000000000008000 - 0 = 000000007FFF8000 (cc=3)
+slbr 000000007FFFFFFF - 0000000000008000 - 0 = 000000007FFF7FFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 0000000000008000 - 0 = FFFFFFFFFFFF7FFF (cc=3)
+slbr 8000000000000000 - 0000000000008000 - 0 = 80000000FFFF8000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 0000000000008000 - 0 = 7FFFFFFFFFFF7FFF (cc=3)
+slbgr 0000000000000000 - 0000000000008000 - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 0000000000000001 - 0000000000008000 - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbgr 000000000000FFFF - 0000000000008000 - 0 = 0000000000007FFF (cc=3)
+slbgr 0000000000007FFF - 0000000000008000 - 0 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000008000 - 0000000000008000 - 0 = 0000000000000000 (cc=2)
+slbgr 00000000FFFFFFFF - 0000000000008000 - 0 = 00000000FFFF7FFF (cc=3)
+slbgr 0000000080000000 - 0000000000008000 - 0 = 000000007FFF8000 (cc=3)
+slbgr 000000007FFFFFFF - 0000000000008000 - 0 = 000000007FFF7FFF (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 0000000000008000 - 0 = FFFFFFFFFFFF7FFF (cc=3)
+slbgr 8000000000000000 - 0000000000008000 - 0 = 7FFFFFFFFFFF8000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 0000000000008000 - 0 = 7FFFFFFFFFFF7FFF (cc=3)
+shy 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 0000000000008000 - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 0000000000008000 - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 0000000000008000 - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 0000000000008000 - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 0000000000008000 - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 0000000000008000 - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 0000000000008000 - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+s 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+s 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+s 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+s 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+s 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+s 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+s 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+s 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+s FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+s 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+s 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sh 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sh 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sh 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sh 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sh 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sh 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+sh 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+sh 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sh FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sh 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+sh 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sg 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+sgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+sl 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+sl 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+sl 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+sl 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+sl 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+sl 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+sl 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+sl 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+sl FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sl 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=2)
+sl 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slg 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+sgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=2)
+sgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=2)
+sgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=1)
+sgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=2)
+slgf 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgf 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+slgf 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+slgf 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+slgf 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+slgf 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+slgf 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+slgf 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+slgf FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgf 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=3)
+slgf 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+sr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0002 (cc=1)
+sr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+sr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8001 (cc=1)
+sr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=1)
+sr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+sr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0001 (cc=1)
+sr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=1)
+sgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sgr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+sgfr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+sgfr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+sgfr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sgfr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+sgfr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+sgfr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=2)
+sgfr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=2)
+sgfr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=2)
+sgfr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+sgfr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+sgfr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=2)
+slr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+slr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0002 (cc=1)
+slr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+slr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8001 (cc=1)
+slr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0001 (cc=1)
+slr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slgr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slgfr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slgfr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slgfr 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgfr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgfr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slgfr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slgfr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slgfr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slgfr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slgfr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slb 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+slb 0000000000000001 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slb 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFE (cc=3)
+slb 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFE (cc=3)
+slb 0000000000008000 - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+slb 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFE (cc=3)
+slb 0000000080000000 - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+slb 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFE (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFE (cc=3)
+slb 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFFFFFF (cc=1)
+slb 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFE (cc=3)
+slbg 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+slbg 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slbg 000000000000FFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbg 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbg 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbg 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbg 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbg 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbg FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbg 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slbr 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=1)
+slbr 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+slbr 000000000000FFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+slbr 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF7FFF (cc=1)
+slbr 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+slbr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbr 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0000 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slbgr 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=1)
+slbgr 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slbgr 000000000000FFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slbgr 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF7FFF (cc=1)
+slbgr 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFEFFFF (cc=3)
+slbgr 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slbgr 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFEFFFF (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFEFFFF (cc=3)
+slbgr 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFEFFFF (cc=3)
+slb 0000000000000000 - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slb 0000000000000001 - 000000000000FFFF - 0 = 0000000000000001 (cc=3)
+slb 000000000000FFFF - 000000000000FFFF - 0 = 000000000000FFFF (cc=3)
+slb 0000000000007FFF - 000000000000FFFF - 0 = 0000000000007FFF (cc=3)
+slb 0000000000008000 - 000000000000FFFF - 0 = 0000000000008000 (cc=3)
+slb 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFFFFFF (cc=3)
+slb 0000000080000000 - 000000000000FFFF - 0 = 0000000080000000 (cc=3)
+slb 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFFFFFF (cc=3)
+slb FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFFFFFF (cc=3)
+slb 8000000000000000 - 000000000000FFFF - 0 = 8000000000000000 (cc=2)
+slb 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFFFFFF (cc=3)
+slbg 0000000000000000 - 000000000000FFFF - 0 = FFFFFFFFFFFF0001 (cc=1)
+slbg 0000000000000001 - 000000000000FFFF - 0 = FFFFFFFFFFFF0002 (cc=1)
+slbg 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbg 0000000000007FFF - 000000000000FFFF - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbg 0000000000008000 - 000000000000FFFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbg 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbg 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbg 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbg FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbg 8000000000000000 - 000000000000FFFF - 0 = 7FFFFFFFFFFF0001 (cc=3)
+slbg 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+slbr 0000000000000000 - 000000000000FFFF - 0 = 00000000FFFF0001 (cc=1)
+slbr 0000000000000001 - 000000000000FFFF - 0 = 00000000FFFF0002 (cc=1)
+slbr 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbr 0000000000007FFF - 000000000000FFFF - 0 = 00000000FFFF8000 (cc=1)
+slbr 0000000000008000 - 000000000000FFFF - 0 = 00000000FFFF8001 (cc=1)
+slbr 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbr 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbr 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbr FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbr 8000000000000000 - 000000000000FFFF - 0 = 80000000FFFF0001 (cc=1)
+slbr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+slbgr 0000000000000000 - 000000000000FFFF - 0 = FFFFFFFFFFFF0001 (cc=1)
+slbgr 0000000000000001 - 000000000000FFFF - 0 = FFFFFFFFFFFF0002 (cc=1)
+slbgr 000000000000FFFF - 000000000000FFFF - 0 = 0000000000000000 (cc=2)
+slbgr 0000000000007FFF - 000000000000FFFF - 0 = FFFFFFFFFFFF8000 (cc=1)
+slbgr 0000000000008000 - 000000000000FFFF - 0 = FFFFFFFFFFFF8001 (cc=1)
+slbgr 00000000FFFFFFFF - 000000000000FFFF - 0 = 00000000FFFF0000 (cc=3)
+slbgr 0000000080000000 - 000000000000FFFF - 0 = 000000007FFF0001 (cc=3)
+slbgr 000000007FFFFFFF - 000000000000FFFF - 0 = 000000007FFF0000 (cc=3)
+slbgr FFFFFFFFFFFFFFFF - 000000000000FFFF - 0 = FFFFFFFFFFFF0000 (cc=3)
+slbgr 8000000000000000 - 000000000000FFFF - 0 = 7FFFFFFFFFFF0001 (cc=3)
+slbgr 7FFFFFFFFFFFFFFF - 000000000000FFFF - 0 = 7FFFFFFFFFFF0000 (cc=3)
+shy 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+shy 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+shy 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+shy 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+shy 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+shy 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+shy 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+shy 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+shy FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+shy 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+shy 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
+sly 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+sly 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=3)
+sly 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=3)
+sly 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=3)
+sly 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=3)
+sly 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=3)
+sly 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=3)
+sly 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=3)
+sly FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=3)
+sly 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=2)
+sly 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+sy 0000000000000000 - 000000000000FFFF - 1 = 0000000000000000 (cc=0)
+sy 0000000000000001 - 000000000000FFFF - 1 = 0000000000000001 (cc=2)
+sy 000000000000FFFF - 000000000000FFFF - 1 = 000000000000FFFF (cc=2)
+sy 0000000000007FFF - 000000000000FFFF - 1 = 0000000000007FFF (cc=2)
+sy 0000000000008000 - 000000000000FFFF - 1 = 0000000000008000 (cc=2)
+sy 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFFFFFF (cc=1)
+sy 0000000080000000 - 000000000000FFFF - 1 = 0000000080000000 (cc=1)
+sy 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFFFFFF (cc=2)
+sy FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFFFFFF (cc=1)
+sy 8000000000000000 - 000000000000FFFF - 1 = 8000000000000000 (cc=0)
+sy 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFFFFFF (cc=1)
diff --git a/none/tests/s390x/sub.vgtest b/none/tests/s390x/sub.vgtest
new file mode 100644 (file)
index 0000000..1f95dce
--- /dev/null
@@ -0,0 +1 @@
+prog: sub
diff --git a/none/tests/s390x/sub_EI.c b/none/tests/s390x/sub_EI.c
new file mode 100644 (file)
index 0000000..f4f152f
--- /dev/null
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include "sub.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(slfi, 0, 0);
+       immsweep(slfi, 65535, 0);
+       immsweep(slfi, 32768, 0);
+       immsweep(slfi, 32767, 0);
+       immsweep(slfi, 4294967295, 0);
+       immsweep(slfi, 2147483648, 0);
+       immsweep(slfi, 2147483647, 0);
+       immsweep(slgfi, 0, 0);
+       immsweep(slgfi, 65535, 0);
+       immsweep(slgfi, 32768, 0);
+       immsweep(slgfi, 32767, 0);
+       immsweep(slgfi, 4294967295, 0);
+       immsweep(slgfi, 2147483648, 0);
+       immsweep(slgfi, 2147483647, 0);
+
+}
+
+int main()
+{
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/sub_EI.stderr.exp b/none/tests/s390x/sub_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/sub_EI.stdout.exp b/none/tests/s390x/sub_EI.stdout.exp
new file mode 100644 (file)
index 0000000..8e22b51
--- /dev/null
@@ -0,0 +1,154 @@
+slfi 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slfi 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slfi 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slfi 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slfi 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slfi 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slfi 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slfi 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slfi FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slfi 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=2)
+slfi 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slfi 0000000000000000 - 000000000000FFFF - 1 = 00000000FFFF0001 (cc=1)
+slfi 0000000000000001 - 000000000000FFFF - 1 = 00000000FFFF0002 (cc=1)
+slfi 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slfi 0000000000007FFF - 000000000000FFFF - 1 = 00000000FFFF8000 (cc=1)
+slfi 0000000000008000 - 000000000000FFFF - 1 = 00000000FFFF8001 (cc=1)
+slfi 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slfi 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slfi 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slfi FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slfi 8000000000000000 - 000000000000FFFF - 1 = 80000000FFFF0001 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slfi 0000000000000000 - 0000000000008000 - 1 = 00000000FFFF8000 (cc=1)
+slfi 0000000000000001 - 0000000000008000 - 1 = 00000000FFFF8001 (cc=1)
+slfi 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slfi 0000000000007FFF - 0000000000008000 - 1 = 00000000FFFFFFFF (cc=1)
+slfi 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slfi 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slfi 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slfi 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slfi FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slfi 8000000000000000 - 0000000000008000 - 1 = 80000000FFFF8000 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slfi 0000000000000000 - 0000000000007FFF - 1 = 00000000FFFF8001 (cc=1)
+slfi 0000000000000001 - 0000000000007FFF - 1 = 00000000FFFF8002 (cc=1)
+slfi 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slfi 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slfi 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slfi 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slfi 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slfi 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slfi FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slfi 8000000000000000 - 0000000000007FFF - 1 = 80000000FFFF8001 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slfi 0000000000000000 - 00000000FFFFFFFF - 1 = 0000000000000001 (cc=1)
+slfi 0000000000000001 - 00000000FFFFFFFF - 1 = 0000000000000002 (cc=1)
+slfi 000000000000FFFF - 00000000FFFFFFFF - 1 = 0000000000010000 (cc=1)
+slfi 0000000000007FFF - 00000000FFFFFFFF - 1 = 0000000000008000 (cc=1)
+slfi 0000000000008000 - 00000000FFFFFFFF - 1 = 0000000000008001 (cc=1)
+slfi 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slfi 0000000080000000 - 00000000FFFFFFFF - 1 = 0000000080000001 (cc=1)
+slfi 000000007FFFFFFF - 00000000FFFFFFFF - 1 = 0000000080000000 (cc=1)
+slfi FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=2)
+slfi 8000000000000000 - 00000000FFFFFFFF - 1 = 8000000000000001 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=2)
+slfi 0000000000000000 - 0000000080000000 - 1 = 0000000080000000 (cc=1)
+slfi 0000000000000001 - 0000000080000000 - 1 = 0000000080000001 (cc=1)
+slfi 000000000000FFFF - 0000000080000000 - 1 = 000000008000FFFF (cc=1)
+slfi 0000000000007FFF - 0000000080000000 - 1 = 0000000080007FFF (cc=1)
+slfi 0000000000008000 - 0000000080000000 - 1 = 0000000080008000 (cc=1)
+slfi 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slfi 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slfi 000000007FFFFFFF - 0000000080000000 - 1 = 00000000FFFFFFFF (cc=1)
+slfi FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slfi 8000000000000000 - 0000000080000000 - 1 = 8000000080000000 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slfi 0000000000000000 - 000000007FFFFFFF - 1 = 0000000080000001 (cc=1)
+slfi 0000000000000001 - 000000007FFFFFFF - 1 = 0000000080000002 (cc=1)
+slfi 000000000000FFFF - 000000007FFFFFFF - 1 = 0000000080010000 (cc=1)
+slfi 0000000000007FFF - 000000007FFFFFFF - 1 = 0000000080008000 (cc=1)
+slfi 0000000000008000 - 000000007FFFFFFF - 1 = 0000000080008001 (cc=1)
+slfi 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slfi 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slfi 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slfi FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slfi 8000000000000000 - 000000007FFFFFFF - 1 = 8000000080000001 (cc=1)
+slfi 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
+slgfi 0000000000000000 - 0000000000000000 - 1 = 0000000000000000 (cc=2)
+slgfi 0000000000000001 - 0000000000000000 - 1 = 0000000000000001 (cc=3)
+slgfi 000000000000FFFF - 0000000000000000 - 1 = 000000000000FFFF (cc=3)
+slgfi 0000000000007FFF - 0000000000000000 - 1 = 0000000000007FFF (cc=3)
+slgfi 0000000000008000 - 0000000000000000 - 1 = 0000000000008000 (cc=3)
+slgfi 00000000FFFFFFFF - 0000000000000000 - 1 = 00000000FFFFFFFF (cc=3)
+slgfi 0000000080000000 - 0000000000000000 - 1 = 0000000080000000 (cc=3)
+slgfi 000000007FFFFFFF - 0000000000000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfi FFFFFFFFFFFFFFFF - 0000000000000000 - 1 = FFFFFFFFFFFFFFFF (cc=3)
+slgfi 8000000000000000 - 0000000000000000 - 1 = 8000000000000000 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 0000000000000000 - 1 = 7FFFFFFFFFFFFFFF (cc=3)
+slgfi 0000000000000000 - 000000000000FFFF - 1 = FFFFFFFFFFFF0001 (cc=1)
+slgfi 0000000000000001 - 000000000000FFFF - 1 = FFFFFFFFFFFF0002 (cc=1)
+slgfi 000000000000FFFF - 000000000000FFFF - 1 = 0000000000000000 (cc=2)
+slgfi 0000000000007FFF - 000000000000FFFF - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgfi 0000000000008000 - 000000000000FFFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfi 00000000FFFFFFFF - 000000000000FFFF - 1 = 00000000FFFF0000 (cc=3)
+slgfi 0000000080000000 - 000000000000FFFF - 1 = 000000007FFF0001 (cc=3)
+slgfi 000000007FFFFFFF - 000000000000FFFF - 1 = 000000007FFF0000 (cc=3)
+slgfi FFFFFFFFFFFFFFFF - 000000000000FFFF - 1 = FFFFFFFFFFFF0000 (cc=3)
+slgfi 8000000000000000 - 000000000000FFFF - 1 = 7FFFFFFFFFFF0001 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 000000000000FFFF - 1 = 7FFFFFFFFFFF0000 (cc=3)
+slgfi 0000000000000000 - 0000000000008000 - 1 = FFFFFFFFFFFF8000 (cc=1)
+slgfi 0000000000000001 - 0000000000008000 - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfi 000000000000FFFF - 0000000000008000 - 1 = 0000000000007FFF (cc=3)
+slgfi 0000000000007FFF - 0000000000008000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfi 0000000000008000 - 0000000000008000 - 1 = 0000000000000000 (cc=2)
+slgfi 00000000FFFFFFFF - 0000000000008000 - 1 = 00000000FFFF7FFF (cc=3)
+slgfi 0000000080000000 - 0000000000008000 - 1 = 000000007FFF8000 (cc=3)
+slgfi 000000007FFFFFFF - 0000000000008000 - 1 = 000000007FFF7FFF (cc=3)
+slgfi FFFFFFFFFFFFFFFF - 0000000000008000 - 1 = FFFFFFFFFFFF7FFF (cc=3)
+slgfi 8000000000000000 - 0000000000008000 - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 0000000000008000 - 1 = 7FFFFFFFFFFF7FFF (cc=3)
+slgfi 0000000000000000 - 0000000000007FFF - 1 = FFFFFFFFFFFF8001 (cc=1)
+slgfi 0000000000000001 - 0000000000007FFF - 1 = FFFFFFFFFFFF8002 (cc=1)
+slgfi 000000000000FFFF - 0000000000007FFF - 1 = 0000000000008000 (cc=3)
+slgfi 0000000000007FFF - 0000000000007FFF - 1 = 0000000000000000 (cc=2)
+slgfi 0000000000008000 - 0000000000007FFF - 1 = 0000000000000001 (cc=3)
+slgfi 00000000FFFFFFFF - 0000000000007FFF - 1 = 00000000FFFF8000 (cc=3)
+slgfi 0000000080000000 - 0000000000007FFF - 1 = 000000007FFF8001 (cc=3)
+slgfi 000000007FFFFFFF - 0000000000007FFF - 1 = 000000007FFF8000 (cc=3)
+slgfi FFFFFFFFFFFFFFFF - 0000000000007FFF - 1 = FFFFFFFFFFFF8000 (cc=3)
+slgfi 8000000000000000 - 0000000000007FFF - 1 = 7FFFFFFFFFFF8001 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 0000000000007FFF - 1 = 7FFFFFFFFFFF8000 (cc=3)
+slgfi 0000000000000000 - 00000000FFFFFFFF - 1 = FFFFFFFF00000001 (cc=1)
+slgfi 0000000000000001 - 00000000FFFFFFFF - 1 = FFFFFFFF00000002 (cc=1)
+slgfi 000000000000FFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00010000 (cc=1)
+slgfi 0000000000007FFF - 00000000FFFFFFFF - 1 = FFFFFFFF00008000 (cc=1)
+slgfi 0000000000008000 - 00000000FFFFFFFF - 1 = FFFFFFFF00008001 (cc=1)
+slgfi 00000000FFFFFFFF - 00000000FFFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfi 0000000080000000 - 00000000FFFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfi 000000007FFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF80000000 (cc=1)
+slgfi FFFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = FFFFFFFF00000000 (cc=3)
+slgfi 8000000000000000 - 00000000FFFFFFFF - 1 = 7FFFFFFF00000001 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 00000000FFFFFFFF - 1 = 7FFFFFFF00000000 (cc=3)
+slgfi 0000000000000000 - 0000000080000000 - 1 = FFFFFFFF80000000 (cc=1)
+slgfi 0000000000000001 - 0000000080000000 - 1 = FFFFFFFF80000001 (cc=1)
+slgfi 000000000000FFFF - 0000000080000000 - 1 = FFFFFFFF8000FFFF (cc=1)
+slgfi 0000000000007FFF - 0000000080000000 - 1 = FFFFFFFF80007FFF (cc=1)
+slgfi 0000000000008000 - 0000000080000000 - 1 = FFFFFFFF80008000 (cc=1)
+slgfi 00000000FFFFFFFF - 0000000080000000 - 1 = 000000007FFFFFFF (cc=3)
+slgfi 0000000080000000 - 0000000080000000 - 1 = 0000000000000000 (cc=2)
+slgfi 000000007FFFFFFF - 0000000080000000 - 1 = FFFFFFFFFFFFFFFF (cc=1)
+slgfi FFFFFFFFFFFFFFFF - 0000000080000000 - 1 = FFFFFFFF7FFFFFFF (cc=3)
+slgfi 8000000000000000 - 0000000080000000 - 1 = 7FFFFFFF80000000 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 0000000080000000 - 1 = 7FFFFFFF7FFFFFFF (cc=3)
+slgfi 0000000000000000 - 000000007FFFFFFF - 1 = FFFFFFFF80000001 (cc=1)
+slgfi 0000000000000001 - 000000007FFFFFFF - 1 = FFFFFFFF80000002 (cc=1)
+slgfi 000000000000FFFF - 000000007FFFFFFF - 1 = FFFFFFFF80010000 (cc=1)
+slgfi 0000000000007FFF - 000000007FFFFFFF - 1 = FFFFFFFF80008000 (cc=1)
+slgfi 0000000000008000 - 000000007FFFFFFF - 1 = FFFFFFFF80008001 (cc=1)
+slgfi 00000000FFFFFFFF - 000000007FFFFFFF - 1 = 0000000080000000 (cc=3)
+slgfi 0000000080000000 - 000000007FFFFFFF - 1 = 0000000000000001 (cc=3)
+slgfi 000000007FFFFFFF - 000000007FFFFFFF - 1 = 0000000000000000 (cc=2)
+slgfi FFFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = FFFFFFFF80000000 (cc=3)
+slgfi 8000000000000000 - 000000007FFFFFFF - 1 = 7FFFFFFF80000001 (cc=3)
+slgfi 7FFFFFFFFFFFFFFF - 000000007FFFFFFF - 1 = 7FFFFFFF80000000 (cc=3)
diff --git a/none/tests/s390x/sub_EI.vgtest b/none/tests/s390x/sub_EI.vgtest
new file mode 100644 (file)
index 0000000..cca7720
--- /dev/null
@@ -0,0 +1,2 @@
+prog: sub_EI
+prereq: test -x sub_EI
diff --git a/none/tests/s390x/tcxb.c b/none/tests/s390x/tcxb.c
new file mode 100644 (file)
index 0000000..4ff031f
--- /dev/null
@@ -0,0 +1,95 @@
+/* test data class tests for float, double, long double:  TCEB, TCDB, TCXB */
+#include <math.h>
+#include <stdio.h>
+
+static int tcxb(long double f, long long num)
+{
+       int match;
+
+       asm volatile("  tcxb %1,0(%2)\n"
+                       "ipm %0\n"
+                       "srl %0,28\n"
+                       : "=d" (match)
+                       : "f" (f), "a" (num)
+                       : "cc");
+       return match;
+}
+
+static int tcdb(double f, long long num)
+{
+       int match;
+
+       asm volatile("  tcdb %1,0(%2)\n"
+                       "ipm %0\n"
+                       "srl %0,28\n"
+                       : "=d" (match)
+                       : "f" (f), "a" (num)
+                       : "cc");
+       return match;
+}
+
+static int tceb(float f, long long num)
+{
+       int match;
+
+       asm volatile("  tceb %1,0(%2)\n"
+                       "ipm %0\n"
+                       "srl %0,28\n"
+                       : "=d" (match)
+                       : "f" (f), "a" (num)
+                       : "cc");
+       return match;
+}
+
+int main()
+{
+       int i;
+
+       for (i = 0; i < 64; i++) {
+               if (sizeof (long double) == 16) {
+                       /* long double 128 bit */
+                       printf("%d", tcxb(+0.0l,        1UL<<i));
+                       printf("%d", tcxb(-0.0l,        1UL<<i));
+                       printf("%d", tcxb(+2.2l,        1UL<<i));
+                       printf("%d", tcxb(-2.2l,        1UL<<i));
+                       printf("%d", tcxb(+INFINITY,    1UL<<i));
+                       printf("%d", tcxb(-INFINITY,    1UL<<i));
+                       printf("%d", tcxb(+NAN,         1UL<<i));
+                       printf("%d", tcxb(-NAN,         1UL<<i));
+               } else {
+                       /* long double 64 bit */
+                       printf("%d", tcdb(+0.0l,        1UL<<i));
+                       printf("%d", tcdb(-0.0l,        1UL<<i));
+                       printf("%d", tcdb(+2.2l,        1UL<<i));
+                       printf("%d", tcdb(-2.2l,        1UL<<i));
+                       printf("%d", tcdb(+INFINITY,    1UL<<i));
+                       printf("%d", tcdb(-INFINITY,    1UL<<i));
+                       printf("%d", tcdb(+NAN,         1UL<<i));
+                       printf("%d", tcdb(-NAN,         1UL<<i));
+               }
+               /* double 64 bit */
+               printf("%d", tcdb(+0.0,         1UL<<i));
+               printf("%d", tcdb(-0.0,         1UL<<i));
+               printf("%d", tcdb(+2.2,         1UL<<i));
+               printf("%d", tcdb(-2.2,         1UL<<i));
+               printf("%d", tcdb(+INFINITY,    1UL<<i));
+               printf("%d", tcdb(-INFINITY,    1UL<<i));
+               printf("%d", tcdb(+NAN,         1UL<<i));
+               printf("%d", tcdb(-NAN,         1UL<<i));
+
+
+               /* float 32 bit */
+               printf("%d", tceb(+0.0f,        1UL<<i));
+               printf("%d", tceb(-0.0f,        1UL<<i));
+               printf("%d", tceb(+2.2f,        1UL<<i));
+               printf("%d", tceb(-2.2f,        1UL<<i));
+               printf("%d", tceb(+INFINITY,    1UL<<i));
+               printf("%d", tceb(-INFINITY,    1UL<<i));
+               printf("%d", tceb(+NAN,         1UL<<i));
+               printf("%d", tceb(-NAN,         1UL<<i));
+
+               printf("\n");
+
+       }
+       return 0;
+}
diff --git a/none/tests/s390x/tcxb.stderr.exp b/none/tests/s390x/tcxb.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/tcxb.stdout.exp b/none/tests/s390x/tcxb.stdout.exp
new file mode 100644 (file)
index 0000000..f5bc67c
--- /dev/null
@@ -0,0 +1,64 @@
+000000000000000000000000
+000000000000000000000000
+000000010000000100000001
+000000100000001000000010
+000001000000010000000100
+000010000000100000001000
+000000000000000000000000
+000000000000000000000000
+000100000001000000010000
+001000000010000000100000
+010000000100000001000000
+100000001000000010000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
+000000000000000000000000
diff --git a/none/tests/s390x/tcxb.vgtest b/none/tests/s390x/tcxb.vgtest
new file mode 100644 (file)
index 0000000..fe7e9ea
--- /dev/null
@@ -0,0 +1 @@
+prog: tcxb
diff --git a/none/tests/s390x/test.h b/none/tests/s390x/test.h
new file mode 100644 (file)
index 0000000..17a1f96
--- /dev/null
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#define get_cc() \
+({ \
+       char __cc; \
+       /* dont use IPM to better test spechelpers */ \
+       asm volatile(   "       brc 8,1f\n\t" \
+                       "       brc 4,2f\n\t" \
+                       "       brc 2,3f\n\t" \
+                       "       brc 1,4f\n\t" \
+                       "       mvi %0,4\n\t" \
+                       "       j 0f\n\t" \
+                       "1:     mvi %0,0\n\t" \
+                       "       j 0f\n\t" \
+                       "2:     mvi %0,1\n\t" \
+                       "       j 0f\n\t" \
+                       "3:     mvi %0,2\n\t" \
+                       "       j 0f\n\t" \
+                       "4:     mvi %0,3\n\t" \
+                       "       j 0f\n\t" \
+                       "0:     bcr 0,0 /*nop*/\n\t" \
+                       :"=m" (__cc)::"memory"); \
+       __cc; \
+})
+
+static inline void dump_field(void *field, int size)
+{
+       int i;
+       for (i=0; i < size; i++)
+               printf("%2.2X ", ((char *) field)[i]);
+}
diff --git a/none/tests/s390x/xc.c b/none/tests/s390x/xc.c
new file mode 100644 (file)
index 0000000..9c81b59
--- /dev/null
@@ -0,0 +1,102 @@
+/* tests, xc,oc and nc */
+#include <stdio.h>
+#include "test.h"
+
+void test_oc(void)
+{
+       char buf1[20] = "UUUUU*UUU****U*\0\0\0\0\n";
+       char buf2[20] = "*U\0*\0\0UU*\0U*AUAA*UU\n";
+       char zero[2] = "\0\0";
+
+       printf("\nOC:\n");
+       asm volatile ("oc %O0(1,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 2);
+
+       asm volatile ("oc %O0(19,%R0),%1\n"::"Q" (*buf1),
+                     "Q"(*buf2):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(buf1, 20);
+}
+
+void test_nc(void)
+{
+       char buf1[20] = "UUUUU*UUU****U*\0\0\0\0\n";
+       char buf2[20] = "*U\0*\0\0UU*\0U*AUAA*UU\n";
+       char zero[2] = "\0\0";
+
+       printf("\nNC:\n");
+       asm volatile ("nc %O0(1,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 2);
+
+       asm volatile ("nc %O0(19,%R0),%1\n"::"Q" (*buf1),
+                     "Q"(*buf2):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(buf1, 20);
+}
+
+
+void test_xc(void)
+{
+       char buf1[20] = "UUUUU*UUU****U*\0\0\0\0\n";
+       char buf2[20] = "*U\0*\0\0UU*\0U*AUAA*UU\n";
+       char buf3[20] = "0123456789abcdefghij";
+       char zero[300] =
+           "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+           "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+           "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+           "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+           "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+           "aaaaa";
+
+       printf("\nXC:\n");
+       asm volatile ("xc %O0(1,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 4);
+
+       asm volatile ("xc %O0(10,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 12);
+
+       asm volatile ("xc %O0(100,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 102);
+
+       asm volatile ("xc %O0(256,%R0),%0\n"::"Q" (*zero),
+                     "Q"(*zero):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero, 257);
+
+       asm volatile ("lghi 1,256 + 20\n"
+                     "larl 2,1f\n"
+                     "ex 1,0(2)\n"
+                     "j 2f\n"
+                     "1: xc 260(1,%0),260(%0)\n"
+                     "2:\n"::"a" (zero), "a"(zero):"memory", "1", "2");
+       printf("CC:%d\n", get_cc());
+       dump_field(zero + 260, 30);
+
+       asm volatile ("xc 0(19,%0),0(%1)\n"::"a" (buf1),
+                     "a"(buf2):"memory");
+       printf("CC:%d\n", get_cc());
+       dump_field(buf1, 20);
+       asm volatile ("xc 0(10,%0),0(%0)\n"::"a" (buf3):"memory");
+
+       printf("CC:%d\n", get_cc());
+       dump_field(buf3, 20);
+       return;
+}
+
+int main()
+{
+       test_oc();
+       test_nc();
+       test_xc();
+       return 0;
+}
diff --git a/none/tests/s390x/xc.stderr.exp b/none/tests/s390x/xc.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/xc.stdout.exp b/none/tests/s390x/xc.stdout.exp
new file mode 100644 (file)
index 0000000..873fa31
--- /dev/null
@@ -0,0 +1,18 @@
+
+OC:
+CC:0
+00 00 CC:1
+7F 55 55 7F 55 2A 55 55 7F 2A 7F 2A 6B 55 6B 41 2A 55 55 0A 
+NC:
+CC:0
+00 00 CC:1
+00 55 00 00 00 00 55 55 00 00 00 2A 00 55 00 00 00 00 00 0A 
+XC:
+CC:0
+00 61 61 61 CC:0
+00 00 00 00 00 00 00 00 00 00 61 61 CC:0
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 61 CC:0
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 CC:0
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 61 61 61 61 61 61 61 61 CC:1
+7F 00 55 7F 55 2A 00 00 7F 2A 7F 00 6B 00 6B 41 2A 55 55 0A CC:0
+00 00 00 00 00 00 00 00 00 00 61 62 63 64 65 66 67 68 69 6A 
\ No newline at end of file
diff --git a/none/tests/s390x/xc.vgtest b/none/tests/s390x/xc.vgtest
new file mode 100644 (file)
index 0000000..964d1f3
--- /dev/null
@@ -0,0 +1 @@
+prog: xc
diff --git a/none/tests/s390x/xor.c b/none/tests/s390x/xor.c
new file mode 100644 (file)
index 0000000..6bfb40f
--- /dev/null
@@ -0,0 +1,51 @@
+#include <stdio.h>
+#include "xor.h"
+
+static void do_imm_insns(void)
+{
+       memimmsweep(xi, 0);
+       memimmsweep(xi, 255);
+       memimmsweep(xi, 128);
+       memimmsweep(xi, 0xaa);
+       memimmsweep(xi, 0x55);
+       memimmsweep(xiy, 0);
+       memimmsweep(xiy, 255);
+       memimmsweep(xiy, 128);
+       memimmsweep(xiy, 0xaa);
+       memimmsweep(xiy, 0x55);
+}
+
+
+static void do_regmem_insns(unsigned long s2)
+{
+       memsweep(x, s2);
+       memsweep(xg, s2);
+       regsweep(xr, s2);
+       regsweep(xgr, s2);
+       memsweep(xy, s2);
+}
+
+int main()
+{
+       do_regmem_insns(0x0ul);
+       do_regmem_insns(0x5555555555555555ul);
+       do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xfffffffffffffffful);
+       do_regmem_insns(0x7fffffff00000000ul);
+       do_regmem_insns(0x8000000000000000ul);
+       do_regmem_insns(0xaaaaaaaa00000000ul);
+       do_regmem_insns(0xffffffff00000000ul);
+       do_regmem_insns(0x000000007ffffffful);
+       do_regmem_insns(0x0000000080000000ul);
+       do_regmem_insns(0x0000000055555555ul);
+       do_regmem_insns(0x00000000fffffffful);
+       do_regmem_insns(0x000000000000fffful);
+       do_regmem_insns(0x0000000000007ffful);
+       do_regmem_insns(0x0000000000008000ul);
+       do_regmem_insns(0x000000000000fffful);
+
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/xor.h b/none/tests/s390x/xor.h
new file mode 100644 (file)
index 0000000..9faa39a
--- /dev/null
@@ -0,0 +1,120 @@
+#include <stdio.h>
+
+#define XOR_REG_MEM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "Q" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX ^ %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define XOR_REG_REG(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0, %3\n"               \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp), "d" (s2)           \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX ^ %16.16lX = %16.16lX (cc=%d)\n", s1, s2, tmp, cc); \
+})
+
+#define XOR_REG_IMM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+d" (tmp), "=d" (cc)         \
+                       : "d" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX ^ %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+#define XOR_MEM_IMM(insn, s1, s2)                      \
+({                                                     \
+       unsigned long tmp = s1;                         \
+       int cc;                                         \
+       asm volatile(   #insn " %0," #s2 "\n"           \
+                       "ipm %1\n"                      \
+                       "srl %1,28\n"                   \
+                       : "+Q" (tmp), "=d" (cc)         \
+                       : "Q" (tmp)                     \
+                       : "0", "cc");                   \
+       printf(#insn " %16.16lX ^ %16.16lX = %16.16lX (cc=%d)\n", s1, (unsigned long) s2, tmp, cc); \
+})
+
+
+#define memsweep(i, s2)                                        \
+({                                                     \
+       XOR_REG_MEM(i, 0ul, s2);                        \
+       XOR_REG_MEM(i, 1ul, s2);                        \
+       XOR_REG_MEM(i, 0xfffful, s2);                   \
+       XOR_REG_MEM(i, 0x7ffful, s2);                   \
+       XOR_REG_MEM(i, 0x8000ul, s2);                   \
+       XOR_REG_MEM(i, 0xfffffffful, s2);               \
+       XOR_REG_MEM(i, 0x80000000ul, s2);               \
+       XOR_REG_MEM(i, 0x7ffffffful, s2);               \
+       XOR_REG_MEM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       XOR_REG_MEM(i, 0x8000000000000000ul, s2);       \
+       XOR_REG_MEM(i, 0xfffffffffffffffful, s2);       \
+       XOR_REG_MEM(i, 0x5555555555555555ul, s2);       \
+})
+
+#define regsweep(i, s2)                                        \
+({                                                     \
+       XOR_REG_REG(i, 0ul, s2);                        \
+       XOR_REG_REG(i, 1ul, s2);                        \
+       XOR_REG_REG(i, 0xfffful, s2);                   \
+       XOR_REG_REG(i, 0x7ffful, s2);                   \
+       XOR_REG_REG(i, 0x8000ul, s2);                   \
+       XOR_REG_REG(i, 0xfffffffful, s2);               \
+       XOR_REG_REG(i, 0x80000000ul, s2);               \
+       XOR_REG_REG(i, 0x7ffffffful, s2);               \
+       XOR_REG_REG(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       XOR_REG_REG(i, 0x8000000000000000ul, s2);       \
+       XOR_REG_REG(i, 0xfffffffffffffffful, s2);       \
+       XOR_REG_REG(i, 0x5555555555555555ul, s2);       \
+})
+
+#define immsweep(i, s2)                                        \
+({                                                     \
+       XOR_REG_IMM(i, 0ul, s2);                        \
+       XOR_REG_IMM(i, 1ul, s2);                        \
+       XOR_REG_IMM(i, 0xfffful, s2);                   \
+       XOR_REG_IMM(i, 0x7ffful, s2);                   \
+       XOR_REG_IMM(i, 0x8000ul, s2);                   \
+       XOR_REG_IMM(i, 0xfffffffful, s2);               \
+       XOR_REG_IMM(i, 0x80000000ul, s2);               \
+       XOR_REG_IMM(i, 0x7ffffffful, s2);               \
+       XOR_REG_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       XOR_REG_IMM(i, 0x8000000000000000ul, s2);       \
+       XOR_REG_IMM(i, 0xfffffffffffffffful, s2);       \
+       XOR_REG_IMM(i, 0x5555555555555555ul, s2);       \
+})
+
+#define memimmsweep(i, s2)                             \
+({                                                     \
+       XOR_MEM_IMM(i, 0ul, s2);                        \
+       XOR_MEM_IMM(i, 1ul, s2);                        \
+       XOR_MEM_IMM(i, 0xfffful, s2);                   \
+       XOR_MEM_IMM(i, 0x7ffful, s2);                   \
+       XOR_MEM_IMM(i, 0x8000ul, s2);                   \
+       XOR_MEM_IMM(i, 0xfffffffful, s2);               \
+       XOR_MEM_IMM(i, 0x80000000ul, s2);               \
+       XOR_MEM_IMM(i, 0x7ffffffful, s2);               \
+       XOR_MEM_IMM(i, 0xaaaaaaaaaaaaaaaaul, s2);       \
+       XOR_MEM_IMM(i, 0x8000000000000000ul, s2);       \
+       XOR_MEM_IMM(i, 0xfffffffffffffffful, s2);       \
+       XOR_MEM_IMM(i, 0x5555555555555555ul, s2);       \
+})
+
+
diff --git a/none/tests/s390x/xor.stderr.exp b/none/tests/s390x/xor.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/xor.stdout.exp b/none/tests/s390x/xor.stdout.exp
new file mode 100644 (file)
index 0000000..d33a555
--- /dev/null
@@ -0,0 +1,1140 @@
+x 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xg 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+xg 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+xg 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+xg 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+xg 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+xg 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+xg 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xg 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xg 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xr 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xgr 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+xgr 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+xgr 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+xgr 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+xgr 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+xgr 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+xgr 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xgr 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xgr 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xy 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 5555555555555555 = 0000000055555555 (cc=1)
+x 0000000000000001 ^ 5555555555555555 = 0000000055555554 (cc=1)
+x 000000000000FFFF ^ 5555555555555555 = 000000005555AAAA (cc=1)
+x 0000000000007FFF ^ 5555555555555555 = 0000000055552AAA (cc=1)
+x 0000000000008000 ^ 5555555555555555 = 000000005555D555 (cc=1)
+x 00000000FFFFFFFF ^ 5555555555555555 = 00000000AAAAAAAA (cc=1)
+x 0000000080000000 ^ 5555555555555555 = 00000000D5555555 (cc=1)
+x 000000007FFFFFFF ^ 5555555555555555 = 000000002AAAAAAA (cc=1)
+x AAAAAAAAAAAAAAAA ^ 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+x 8000000000000000 ^ 5555555555555555 = 8000000055555555 (cc=1)
+x FFFFFFFFFFFFFFFF ^ 5555555555555555 = FFFFFFFFAAAAAAAA (cc=1)
+x 5555555555555555 ^ 5555555555555555 = 5555555500000000 (cc=0)
+xg 0000000000000000 ^ 5555555555555555 = 5555555555555555 (cc=1)
+xg 0000000000000001 ^ 5555555555555555 = 5555555555555554 (cc=1)
+xg 000000000000FFFF ^ 5555555555555555 = 555555555555AAAA (cc=1)
+xg 0000000000007FFF ^ 5555555555555555 = 5555555555552AAA (cc=1)
+xg 0000000000008000 ^ 5555555555555555 = 555555555555D555 (cc=1)
+xg 00000000FFFFFFFF ^ 5555555555555555 = 55555555AAAAAAAA (cc=1)
+xg 0000000080000000 ^ 5555555555555555 = 55555555D5555555 (cc=1)
+xg 000000007FFFFFFF ^ 5555555555555555 = 555555552AAAAAAA (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+xg 8000000000000000 ^ 5555555555555555 = D555555555555555 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 5555555555555555 = AAAAAAAAAAAAAAAA (cc=1)
+xg 5555555555555555 ^ 5555555555555555 = 0000000000000000 (cc=0)
+xr 0000000000000000 ^ 5555555555555555 = 0000000055555555 (cc=1)
+xr 0000000000000001 ^ 5555555555555555 = 0000000055555554 (cc=1)
+xr 000000000000FFFF ^ 5555555555555555 = 000000005555AAAA (cc=1)
+xr 0000000000007FFF ^ 5555555555555555 = 0000000055552AAA (cc=1)
+xr 0000000000008000 ^ 5555555555555555 = 000000005555D555 (cc=1)
+xr 00000000FFFFFFFF ^ 5555555555555555 = 00000000AAAAAAAA (cc=1)
+xr 0000000080000000 ^ 5555555555555555 = 00000000D5555555 (cc=1)
+xr 000000007FFFFFFF ^ 5555555555555555 = 000000002AAAAAAA (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+xr 8000000000000000 ^ 5555555555555555 = 8000000055555555 (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 5555555555555555 = FFFFFFFFAAAAAAAA (cc=1)
+xr 5555555555555555 ^ 5555555555555555 = 5555555500000000 (cc=0)
+xgr 0000000000000000 ^ 5555555555555555 = 5555555555555555 (cc=1)
+xgr 0000000000000001 ^ 5555555555555555 = 5555555555555554 (cc=1)
+xgr 000000000000FFFF ^ 5555555555555555 = 555555555555AAAA (cc=1)
+xgr 0000000000007FFF ^ 5555555555555555 = 5555555555552AAA (cc=1)
+xgr 0000000000008000 ^ 5555555555555555 = 555555555555D555 (cc=1)
+xgr 00000000FFFFFFFF ^ 5555555555555555 = 55555555AAAAAAAA (cc=1)
+xgr 0000000080000000 ^ 5555555555555555 = 55555555D5555555 (cc=1)
+xgr 000000007FFFFFFF ^ 5555555555555555 = 555555552AAAAAAA (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 5555555555555555 = FFFFFFFFFFFFFFFF (cc=1)
+xgr 8000000000000000 ^ 5555555555555555 = D555555555555555 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 5555555555555555 = AAAAAAAAAAAAAAAA (cc=1)
+xgr 5555555555555555 ^ 5555555555555555 = 0000000000000000 (cc=0)
+xy 0000000000000000 ^ 5555555555555555 = 0000000055555555 (cc=1)
+xy 0000000000000001 ^ 5555555555555555 = 0000000055555554 (cc=1)
+xy 000000000000FFFF ^ 5555555555555555 = 000000005555AAAA (cc=1)
+xy 0000000000007FFF ^ 5555555555555555 = 0000000055552AAA (cc=1)
+xy 0000000000008000 ^ 5555555555555555 = 000000005555D555 (cc=1)
+xy 00000000FFFFFFFF ^ 5555555555555555 = 00000000AAAAAAAA (cc=1)
+xy 0000000080000000 ^ 5555555555555555 = 00000000D5555555 (cc=1)
+xy 000000007FFFFFFF ^ 5555555555555555 = 000000002AAAAAAA (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 5555555555555555 = AAAAAAAAFFFFFFFF (cc=1)
+xy 8000000000000000 ^ 5555555555555555 = 8000000055555555 (cc=1)
+xy FFFFFFFFFFFFFFFF ^ 5555555555555555 = FFFFFFFFAAAAAAAA (cc=1)
+xy 5555555555555555 ^ 5555555555555555 = 5555555500000000 (cc=0)
+x 0000000000000000 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+x 0000000000000001 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+x 000000000000FFFF ^ AAAAAAAAAAAAAAAA = 00000000AAAA5555 (cc=1)
+x 0000000000007FFF ^ AAAAAAAAAAAAAAAA = 00000000AAAAD555 (cc=1)
+x 0000000000008000 ^ AAAAAAAAAAAAAAAA = 00000000AAAA2AAA (cc=1)
+x 00000000FFFFFFFF ^ AAAAAAAAAAAAAAAA = 0000000055555555 (cc=1)
+x 0000000080000000 ^ AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+x 000000007FFFFFFF ^ AAAAAAAAAAAAAAAA = 00000000D5555555 (cc=1)
+x AAAAAAAAAAAAAAAA ^ AAAAAAAAAAAAAAAA = AAAAAAAA00000000 (cc=0)
+x 8000000000000000 ^ AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+x FFFFFFFFFFFFFFFF ^ AAAAAAAAAAAAAAAA = FFFFFFFF55555555 (cc=1)
+x 5555555555555555 ^ AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+xg 0000000000000000 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+xg 0000000000000001 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAB (cc=1)
+xg 000000000000FFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAA5555 (cc=1)
+xg 0000000000007FFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAD555 (cc=1)
+xg 0000000000008000 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAA2AAA (cc=1)
+xg 00000000FFFFFFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAA55555555 (cc=1)
+xg 0000000080000000 ^ AAAAAAAAAAAAAAAA = AAAAAAAA2AAAAAAA (cc=1)
+xg 000000007FFFFFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAD5555555 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+xg 8000000000000000 ^ AAAAAAAAAAAAAAAA = 2AAAAAAAAAAAAAAA (cc=1)
+xg FFFFFFFFFFFFFFFF ^ AAAAAAAAAAAAAAAA = 5555555555555555 (cc=1)
+xg 5555555555555555 ^ AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+xr 0000000000000000 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+xr 0000000000000001 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+xr 000000000000FFFF ^ AAAAAAAAAAAAAAAA = 00000000AAAA5555 (cc=1)
+xr 0000000000007FFF ^ AAAAAAAAAAAAAAAA = 00000000AAAAD555 (cc=1)
+xr 0000000000008000 ^ AAAAAAAAAAAAAAAA = 00000000AAAA2AAA (cc=1)
+xr 00000000FFFFFFFF ^ AAAAAAAAAAAAAAAA = 0000000055555555 (cc=1)
+xr 0000000080000000 ^ AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+xr 000000007FFFFFFF ^ AAAAAAAAAAAAAAAA = 00000000D5555555 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ AAAAAAAAAAAAAAAA = AAAAAAAA00000000 (cc=0)
+xr 8000000000000000 ^ AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+xr FFFFFFFFFFFFFFFF ^ AAAAAAAAAAAAAAAA = FFFFFFFF55555555 (cc=1)
+xr 5555555555555555 ^ AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+xgr 0000000000000000 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAA (cc=1)
+xgr 0000000000000001 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAAAAB (cc=1)
+xgr 000000000000FFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAA5555 (cc=1)
+xgr 0000000000007FFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAAD555 (cc=1)
+xgr 0000000000008000 ^ AAAAAAAAAAAAAAAA = AAAAAAAAAAAA2AAA (cc=1)
+xgr 00000000FFFFFFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAA55555555 (cc=1)
+xgr 0000000080000000 ^ AAAAAAAAAAAAAAAA = AAAAAAAA2AAAAAAA (cc=1)
+xgr 000000007FFFFFFF ^ AAAAAAAAAAAAAAAA = AAAAAAAAD5555555 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ AAAAAAAAAAAAAAAA = 0000000000000000 (cc=0)
+xgr 8000000000000000 ^ AAAAAAAAAAAAAAAA = 2AAAAAAAAAAAAAAA (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ AAAAAAAAAAAAAAAA = 5555555555555555 (cc=1)
+xgr 5555555555555555 ^ AAAAAAAAAAAAAAAA = FFFFFFFFFFFFFFFF (cc=1)
+xy 0000000000000000 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAA (cc=1)
+xy 0000000000000001 ^ AAAAAAAAAAAAAAAA = 00000000AAAAAAAB (cc=1)
+xy 000000000000FFFF ^ AAAAAAAAAAAAAAAA = 00000000AAAA5555 (cc=1)
+xy 0000000000007FFF ^ AAAAAAAAAAAAAAAA = 00000000AAAAD555 (cc=1)
+xy 0000000000008000 ^ AAAAAAAAAAAAAAAA = 00000000AAAA2AAA (cc=1)
+xy 00000000FFFFFFFF ^ AAAAAAAAAAAAAAAA = 0000000055555555 (cc=1)
+xy 0000000080000000 ^ AAAAAAAAAAAAAAAA = 000000002AAAAAAA (cc=1)
+xy 000000007FFFFFFF ^ AAAAAAAAAAAAAAAA = 00000000D5555555 (cc=1)
+xy AAAAAAAAAAAAAAAA ^ AAAAAAAAAAAAAAAA = AAAAAAAA00000000 (cc=0)
+xy 8000000000000000 ^ AAAAAAAAAAAAAAAA = 80000000AAAAAAAA (cc=1)
+xy FFFFFFFFFFFFFFFF ^ AAAAAAAAAAAAAAAA = FFFFFFFF55555555 (cc=1)
+xy 5555555555555555 ^ AAAAAAAAAAAAAAAA = 55555555FFFFFFFF (cc=1)
+x 0000000000000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+x 0000000000000001 ^ 8000000000000000 = 0000000080000001 (cc=1)
+x 000000000000FFFF ^ 8000000000000000 = 000000008000FFFF (cc=1)
+x 0000000000007FFF ^ 8000000000000000 = 0000000080007FFF (cc=1)
+x 0000000000008000 ^ 8000000000000000 = 0000000080008000 (cc=1)
+x 00000000FFFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+x 0000000080000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+x 000000007FFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAA2AAAAAAA (cc=1)
+x 8000000000000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+x FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+x 5555555555555555 ^ 8000000000000000 = 55555555D5555555 (cc=1)
+xg 0000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=1)
+xg 0000000000000001 ^ 8000000000000000 = 8000000000000001 (cc=1)
+xg 000000000000FFFF ^ 8000000000000000 = 800000000000FFFF (cc=1)
+xg 0000000000007FFF ^ 8000000000000000 = 8000000000007FFF (cc=1)
+xg 0000000000008000 ^ 8000000000000000 = 8000000000008000 (cc=1)
+xg 00000000FFFFFFFF ^ 8000000000000000 = 80000000FFFFFFFF (cc=1)
+xg 0000000080000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xg 000000007FFFFFFF ^ 8000000000000000 = 800000007FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 8000000000000000 = 2AAAAAAAAAAAAAAA (cc=1)
+xg 8000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xg FFFFFFFFFFFFFFFF ^ 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xg 5555555555555555 ^ 8000000000000000 = D555555555555555 (cc=1)
+xr 0000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ 8000000000000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ 8000000000000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ 8000000000000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ 8000000000000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ 8000000000000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=1)
+xgr 0000000000000001 ^ 8000000000000000 = 8000000000000001 (cc=1)
+xgr 000000000000FFFF ^ 8000000000000000 = 800000000000FFFF (cc=1)
+xgr 0000000000007FFF ^ 8000000000000000 = 8000000000007FFF (cc=1)
+xgr 0000000000008000 ^ 8000000000000000 = 8000000000008000 (cc=1)
+xgr 00000000FFFFFFFF ^ 8000000000000000 = 80000000FFFFFFFF (cc=1)
+xgr 0000000080000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xgr 000000007FFFFFFF ^ 8000000000000000 = 800000007FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 8000000000000000 = 2AAAAAAAAAAAAAAA (cc=1)
+xgr 8000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xgr FFFFFFFFFFFFFFFF ^ 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xgr 5555555555555555 ^ 8000000000000000 = D555555555555555 (cc=1)
+xy 0000000000000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+xy 0000000000000001 ^ 8000000000000000 = 0000000080000001 (cc=1)
+xy 000000000000FFFF ^ 8000000000000000 = 000000008000FFFF (cc=1)
+xy 0000000000007FFF ^ 8000000000000000 = 0000000080007FFF (cc=1)
+xy 0000000000008000 ^ 8000000000000000 = 0000000080008000 (cc=1)
+xy 00000000FFFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+xy 0000000080000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xy 000000007FFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAA2AAAAAAA (cc=1)
+xy 8000000000000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xy FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+xy 5555555555555555 ^ 8000000000000000 = 55555555D5555555 (cc=1)
+x 0000000000000000 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+x 0000000000000001 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+x 000000000000FFFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF0000 (cc=1)
+x 0000000000007FFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF8000 (cc=1)
+x 0000000000008000 ^ FFFFFFFFFFFFFFFF = 00000000FFFF7FFF (cc=1)
+x 00000000FFFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+x 0000000080000000 ^ FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+x 000000007FFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+x AAAAAAAAAAAAAAAA ^ FFFFFFFFFFFFFFFF = AAAAAAAA55555555 (cc=1)
+x 8000000000000000 ^ FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+x FFFFFFFFFFFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=0)
+x 5555555555555555 ^ FFFFFFFFFFFFFFFF = 55555555AAAAAAAA (cc=1)
+xg 0000000000000000 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+xg 0000000000000001 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+xg 000000000000FFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0000 (cc=1)
+xg 0000000000007FFF ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF8000 (cc=1)
+xg 0000000000008000 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF7FFF (cc=1)
+xg 00000000FFFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=1)
+xg 0000000080000000 ^ FFFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+xg 000000007FFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF80000000 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+xg 8000000000000000 ^ FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+xg 5555555555555555 ^ FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+xr 0000000000000000 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+xr 0000000000000001 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+xr 000000000000FFFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF0000 (cc=1)
+xr 0000000000007FFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF8000 (cc=1)
+xr 0000000000008000 ^ FFFFFFFFFFFFFFFF = 00000000FFFF7FFF (cc=1)
+xr 00000000FFFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+xr 0000000080000000 ^ FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+xr 000000007FFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ FFFFFFFFFFFFFFFF = AAAAAAAA55555555 (cc=1)
+xr 8000000000000000 ^ FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=0)
+xr 5555555555555555 ^ FFFFFFFFFFFFFFFF = 55555555AAAAAAAA (cc=1)
+xgr 0000000000000000 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+xgr 0000000000000001 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE (cc=1)
+xgr 000000000000FFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF0000 (cc=1)
+xgr 0000000000007FFF ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF8000 (cc=1)
+xgr 0000000000008000 ^ FFFFFFFFFFFFFFFF = FFFFFFFFFFFF7FFF (cc=1)
+xgr 00000000FFFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=1)
+xgr 0000000080000000 ^ FFFFFFFFFFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+xgr 000000007FFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF80000000 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ FFFFFFFFFFFFFFFF = 5555555555555555 (cc=1)
+xgr 8000000000000000 ^ FFFFFFFFFFFFFFFF = 7FFFFFFFFFFFFFFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+xgr 5555555555555555 ^ FFFFFFFFFFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 0000000000000000 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFF (cc=1)
+xy 0000000000000001 ^ FFFFFFFFFFFFFFFF = 00000000FFFFFFFE (cc=1)
+xy 000000000000FFFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF0000 (cc=1)
+xy 0000000000007FFF ^ FFFFFFFFFFFFFFFF = 00000000FFFF8000 (cc=1)
+xy 0000000000008000 ^ FFFFFFFFFFFFFFFF = 00000000FFFF7FFF (cc=1)
+xy 00000000FFFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000000000000 (cc=0)
+xy 0000000080000000 ^ FFFFFFFFFFFFFFFF = 000000007FFFFFFF (cc=1)
+xy 000000007FFFFFFF ^ FFFFFFFFFFFFFFFF = 0000000080000000 (cc=1)
+xy AAAAAAAAAAAAAAAA ^ FFFFFFFFFFFFFFFF = AAAAAAAA55555555 (cc=1)
+xy 8000000000000000 ^ FFFFFFFFFFFFFFFF = 80000000FFFFFFFF (cc=1)
+xy FFFFFFFFFFFFFFFF ^ FFFFFFFFFFFFFFFF = FFFFFFFF00000000 (cc=0)
+xy 5555555555555555 ^ FFFFFFFFFFFFFFFF = 55555555AAAAAAAA (cc=1)
+x 0000000000000000 ^ 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+x 0000000000000001 ^ 7FFFFFFF00000000 = 000000007FFFFFFE (cc=1)
+x 000000000000FFFF ^ 7FFFFFFF00000000 = 000000007FFF0000 (cc=1)
+x 0000000000007FFF ^ 7FFFFFFF00000000 = 000000007FFF8000 (cc=1)
+x 0000000000008000 ^ 7FFFFFFF00000000 = 000000007FFF7FFF (cc=1)
+x 00000000FFFFFFFF ^ 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+x 0000000080000000 ^ 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+x 000000007FFFFFFF ^ 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+x AAAAAAAAAAAAAAAA ^ 7FFFFFFF00000000 = AAAAAAAAD5555555 (cc=1)
+x 8000000000000000 ^ 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+x FFFFFFFFFFFFFFFF ^ 7FFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+x 5555555555555555 ^ 7FFFFFFF00000000 = 555555552AAAAAAA (cc=1)
+xg 0000000000000000 ^ 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+xg 0000000000000001 ^ 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+xg 000000000000FFFF ^ 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+xg 0000000000007FFF ^ 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+xg 0000000000008000 ^ 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+xg 00000000FFFFFFFF ^ 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xg 0000000080000000 ^ 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+xg 000000007FFFFFFF ^ 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 7FFFFFFF00000000 = D5555555AAAAAAAA (cc=1)
+xg 8000000000000000 ^ 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 7FFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+xg 5555555555555555 ^ 7FFFFFFF00000000 = 2AAAAAAA55555555 (cc=1)
+xr 0000000000000000 ^ 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ 7FFFFFFF00000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ 7FFFFFFF00000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ 7FFFFFFF00000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ 7FFFFFFF00000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 7FFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ 7FFFFFFF00000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ 7FFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ 7FFFFFFF00000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ 7FFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+xgr 0000000000000001 ^ 7FFFFFFF00000000 = 7FFFFFFF00000001 (cc=1)
+xgr 000000000000FFFF ^ 7FFFFFFF00000000 = 7FFFFFFF0000FFFF (cc=1)
+xgr 0000000000007FFF ^ 7FFFFFFF00000000 = 7FFFFFFF00007FFF (cc=1)
+xgr 0000000000008000 ^ 7FFFFFFF00000000 = 7FFFFFFF00008000 (cc=1)
+xgr 00000000FFFFFFFF ^ 7FFFFFFF00000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xgr 0000000080000000 ^ 7FFFFFFF00000000 = 7FFFFFFF80000000 (cc=1)
+xgr 000000007FFFFFFF ^ 7FFFFFFF00000000 = 7FFFFFFF7FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 7FFFFFFF00000000 = D5555555AAAAAAAA (cc=1)
+xgr 8000000000000000 ^ 7FFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 7FFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+xgr 5555555555555555 ^ 7FFFFFFF00000000 = 2AAAAAAA55555555 (cc=1)
+xy 0000000000000000 ^ 7FFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+xy 0000000000000001 ^ 7FFFFFFF00000000 = 000000007FFFFFFE (cc=1)
+xy 000000000000FFFF ^ 7FFFFFFF00000000 = 000000007FFF0000 (cc=1)
+xy 0000000000007FFF ^ 7FFFFFFF00000000 = 000000007FFF8000 (cc=1)
+xy 0000000000008000 ^ 7FFFFFFF00000000 = 000000007FFF7FFF (cc=1)
+xy 00000000FFFFFFFF ^ 7FFFFFFF00000000 = 0000000080000000 (cc=1)
+xy 0000000080000000 ^ 7FFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xy 000000007FFFFFFF ^ 7FFFFFFF00000000 = 0000000000000000 (cc=0)
+xy AAAAAAAAAAAAAAAA ^ 7FFFFFFF00000000 = AAAAAAAAD5555555 (cc=1)
+xy 8000000000000000 ^ 7FFFFFFF00000000 = 800000007FFFFFFF (cc=1)
+xy FFFFFFFFFFFFFFFF ^ 7FFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+xy 5555555555555555 ^ 7FFFFFFF00000000 = 555555552AAAAAAA (cc=1)
+x 0000000000000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+x 0000000000000001 ^ 8000000000000000 = 0000000080000001 (cc=1)
+x 000000000000FFFF ^ 8000000000000000 = 000000008000FFFF (cc=1)
+x 0000000000007FFF ^ 8000000000000000 = 0000000080007FFF (cc=1)
+x 0000000000008000 ^ 8000000000000000 = 0000000080008000 (cc=1)
+x 00000000FFFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+x 0000000080000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+x 000000007FFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAA2AAAAAAA (cc=1)
+x 8000000000000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+x FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+x 5555555555555555 ^ 8000000000000000 = 55555555D5555555 (cc=1)
+xg 0000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=1)
+xg 0000000000000001 ^ 8000000000000000 = 8000000000000001 (cc=1)
+xg 000000000000FFFF ^ 8000000000000000 = 800000000000FFFF (cc=1)
+xg 0000000000007FFF ^ 8000000000000000 = 8000000000007FFF (cc=1)
+xg 0000000000008000 ^ 8000000000000000 = 8000000000008000 (cc=1)
+xg 00000000FFFFFFFF ^ 8000000000000000 = 80000000FFFFFFFF (cc=1)
+xg 0000000080000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xg 000000007FFFFFFF ^ 8000000000000000 = 800000007FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 8000000000000000 = 2AAAAAAAAAAAAAAA (cc=1)
+xg 8000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xg FFFFFFFFFFFFFFFF ^ 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xg 5555555555555555 ^ 8000000000000000 = D555555555555555 (cc=1)
+xr 0000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ 8000000000000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ 8000000000000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ 8000000000000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ 8000000000000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ 8000000000000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ 8000000000000000 = 8000000000000000 (cc=1)
+xgr 0000000000000001 ^ 8000000000000000 = 8000000000000001 (cc=1)
+xgr 000000000000FFFF ^ 8000000000000000 = 800000000000FFFF (cc=1)
+xgr 0000000000007FFF ^ 8000000000000000 = 8000000000007FFF (cc=1)
+xgr 0000000000008000 ^ 8000000000000000 = 8000000000008000 (cc=1)
+xgr 00000000FFFFFFFF ^ 8000000000000000 = 80000000FFFFFFFF (cc=1)
+xgr 0000000080000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xgr 000000007FFFFFFF ^ 8000000000000000 = 800000007FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 8000000000000000 = 2AAAAAAAAAAAAAAA (cc=1)
+xgr 8000000000000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xgr FFFFFFFFFFFFFFFF ^ 8000000000000000 = 7FFFFFFFFFFFFFFF (cc=1)
+xgr 5555555555555555 ^ 8000000000000000 = D555555555555555 (cc=1)
+xy 0000000000000000 ^ 8000000000000000 = 0000000080000000 (cc=1)
+xy 0000000000000001 ^ 8000000000000000 = 0000000080000001 (cc=1)
+xy 000000000000FFFF ^ 8000000000000000 = 000000008000FFFF (cc=1)
+xy 0000000000007FFF ^ 8000000000000000 = 0000000080007FFF (cc=1)
+xy 0000000000008000 ^ 8000000000000000 = 0000000080008000 (cc=1)
+xy 00000000FFFFFFFF ^ 8000000000000000 = 000000007FFFFFFF (cc=1)
+xy 0000000080000000 ^ 8000000000000000 = 0000000000000000 (cc=0)
+xy 000000007FFFFFFF ^ 8000000000000000 = 00000000FFFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 8000000000000000 = AAAAAAAA2AAAAAAA (cc=1)
+xy 8000000000000000 ^ 8000000000000000 = 8000000080000000 (cc=1)
+xy FFFFFFFFFFFFFFFF ^ 8000000000000000 = FFFFFFFF7FFFFFFF (cc=1)
+xy 5555555555555555 ^ 8000000000000000 = 55555555D5555555 (cc=1)
+x 0000000000000000 ^ AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+x 0000000000000001 ^ AAAAAAAA00000000 = 00000000AAAAAAAB (cc=1)
+x 000000000000FFFF ^ AAAAAAAA00000000 = 00000000AAAA5555 (cc=1)
+x 0000000000007FFF ^ AAAAAAAA00000000 = 00000000AAAAD555 (cc=1)
+x 0000000000008000 ^ AAAAAAAA00000000 = 00000000AAAA2AAA (cc=1)
+x 00000000FFFFFFFF ^ AAAAAAAA00000000 = 0000000055555555 (cc=1)
+x 0000000080000000 ^ AAAAAAAA00000000 = 000000002AAAAAAA (cc=1)
+x 000000007FFFFFFF ^ AAAAAAAA00000000 = 00000000D5555555 (cc=1)
+x AAAAAAAAAAAAAAAA ^ AAAAAAAA00000000 = AAAAAAAA00000000 (cc=0)
+x 8000000000000000 ^ AAAAAAAA00000000 = 80000000AAAAAAAA (cc=1)
+x FFFFFFFFFFFFFFFF ^ AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+x 5555555555555555 ^ AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+xg 0000000000000000 ^ AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+xg 0000000000000001 ^ AAAAAAAA00000000 = AAAAAAAA00000001 (cc=1)
+xg 000000000000FFFF ^ AAAAAAAA00000000 = AAAAAAAA0000FFFF (cc=1)
+xg 0000000000007FFF ^ AAAAAAAA00000000 = AAAAAAAA00007FFF (cc=1)
+xg 0000000000008000 ^ AAAAAAAA00000000 = AAAAAAAA00008000 (cc=1)
+xg 00000000FFFFFFFF ^ AAAAAAAA00000000 = AAAAAAAAFFFFFFFF (cc=1)
+xg 0000000080000000 ^ AAAAAAAA00000000 = AAAAAAAA80000000 (cc=1)
+xg 000000007FFFFFFF ^ AAAAAAAA00000000 = AAAAAAAA7FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+xg 8000000000000000 ^ AAAAAAAA00000000 = 2AAAAAAA00000000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+xg 5555555555555555 ^ AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+xr 0000000000000000 ^ AAAAAAAA00000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ AAAAAAAA00000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ AAAAAAAA00000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ AAAAAAAA00000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ AAAAAAAA00000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ AAAAAAAA00000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ AAAAAAAA00000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ AAAAAAAA00000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ AAAAAAAA00000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ AAAAAAAA00000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ AAAAAAAA00000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ AAAAAAAA00000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ AAAAAAAA00000000 = AAAAAAAA00000000 (cc=1)
+xgr 0000000000000001 ^ AAAAAAAA00000000 = AAAAAAAA00000001 (cc=1)
+xgr 000000000000FFFF ^ AAAAAAAA00000000 = AAAAAAAA0000FFFF (cc=1)
+xgr 0000000000007FFF ^ AAAAAAAA00000000 = AAAAAAAA00007FFF (cc=1)
+xgr 0000000000008000 ^ AAAAAAAA00000000 = AAAAAAAA00008000 (cc=1)
+xgr 00000000FFFFFFFF ^ AAAAAAAA00000000 = AAAAAAAAFFFFFFFF (cc=1)
+xgr 0000000080000000 ^ AAAAAAAA00000000 = AAAAAAAA80000000 (cc=1)
+xgr 000000007FFFFFFF ^ AAAAAAAA00000000 = AAAAAAAA7FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+xgr 8000000000000000 ^ AAAAAAAA00000000 = 2AAAAAAA00000000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+xgr 5555555555555555 ^ AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+xy 0000000000000000 ^ AAAAAAAA00000000 = 00000000AAAAAAAA (cc=1)
+xy 0000000000000001 ^ AAAAAAAA00000000 = 00000000AAAAAAAB (cc=1)
+xy 000000000000FFFF ^ AAAAAAAA00000000 = 00000000AAAA5555 (cc=1)
+xy 0000000000007FFF ^ AAAAAAAA00000000 = 00000000AAAAD555 (cc=1)
+xy 0000000000008000 ^ AAAAAAAA00000000 = 00000000AAAA2AAA (cc=1)
+xy 00000000FFFFFFFF ^ AAAAAAAA00000000 = 0000000055555555 (cc=1)
+xy 0000000080000000 ^ AAAAAAAA00000000 = 000000002AAAAAAA (cc=1)
+xy 000000007FFFFFFF ^ AAAAAAAA00000000 = 00000000D5555555 (cc=1)
+xy AAAAAAAAAAAAAAAA ^ AAAAAAAA00000000 = AAAAAAAA00000000 (cc=0)
+xy 8000000000000000 ^ AAAAAAAA00000000 = 80000000AAAAAAAA (cc=1)
+xy FFFFFFFFFFFFFFFF ^ AAAAAAAA00000000 = FFFFFFFF55555555 (cc=1)
+xy 5555555555555555 ^ AAAAAAAA00000000 = 55555555FFFFFFFF (cc=1)
+x 0000000000000000 ^ FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+x 0000000000000001 ^ FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+x 000000000000FFFF ^ FFFFFFFF00000000 = 00000000FFFF0000 (cc=1)
+x 0000000000007FFF ^ FFFFFFFF00000000 = 00000000FFFF8000 (cc=1)
+x 0000000000008000 ^ FFFFFFFF00000000 = 00000000FFFF7FFF (cc=1)
+x 00000000FFFFFFFF ^ FFFFFFFF00000000 = 0000000000000000 (cc=0)
+x 0000000080000000 ^ FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+x 000000007FFFFFFF ^ FFFFFFFF00000000 = 0000000080000000 (cc=1)
+x AAAAAAAAAAAAAAAA ^ FFFFFFFF00000000 = AAAAAAAA55555555 (cc=1)
+x 8000000000000000 ^ FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+x FFFFFFFFFFFFFFFF ^ FFFFFFFF00000000 = FFFFFFFF00000000 (cc=0)
+x 5555555555555555 ^ FFFFFFFF00000000 = 55555555AAAAAAAA (cc=1)
+xg 0000000000000000 ^ FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+xg 0000000000000001 ^ FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+xg 000000000000FFFF ^ FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+xg 0000000000007FFF ^ FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+xg 0000000000008000 ^ FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+xg 00000000FFFFFFFF ^ FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+xg 0000000080000000 ^ FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+xg 000000007FFFFFFF ^ FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ FFFFFFFF00000000 = 55555555AAAAAAAA (cc=1)
+xg 8000000000000000 ^ FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xg 5555555555555555 ^ FFFFFFFF00000000 = AAAAAAAA55555555 (cc=1)
+xr 0000000000000000 ^ FFFFFFFF00000000 = 0000000000000000 (cc=0)
+xr 0000000000000001 ^ FFFFFFFF00000000 = 0000000000000001 (cc=1)
+xr 000000000000FFFF ^ FFFFFFFF00000000 = 000000000000FFFF (cc=1)
+xr 0000000000007FFF ^ FFFFFFFF00000000 = 0000000000007FFF (cc=1)
+xr 0000000000008000 ^ FFFFFFFF00000000 = 0000000000008000 (cc=1)
+xr 00000000FFFFFFFF ^ FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xr 0000000080000000 ^ FFFFFFFF00000000 = 0000000080000000 (cc=1)
+xr 000000007FFFFFFF ^ FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ FFFFFFFF00000000 = AAAAAAAAAAAAAAAA (cc=1)
+xr 8000000000000000 ^ FFFFFFFF00000000 = 8000000000000000 (cc=0)
+xr FFFFFFFFFFFFFFFF ^ FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+xr 5555555555555555 ^ FFFFFFFF00000000 = 5555555555555555 (cc=1)
+xgr 0000000000000000 ^ FFFFFFFF00000000 = FFFFFFFF00000000 (cc=1)
+xgr 0000000000000001 ^ FFFFFFFF00000000 = FFFFFFFF00000001 (cc=1)
+xgr 000000000000FFFF ^ FFFFFFFF00000000 = FFFFFFFF0000FFFF (cc=1)
+xgr 0000000000007FFF ^ FFFFFFFF00000000 = FFFFFFFF00007FFF (cc=1)
+xgr 0000000000008000 ^ FFFFFFFF00000000 = FFFFFFFF00008000 (cc=1)
+xgr 00000000FFFFFFFF ^ FFFFFFFF00000000 = FFFFFFFFFFFFFFFF (cc=1)
+xgr 0000000080000000 ^ FFFFFFFF00000000 = FFFFFFFF80000000 (cc=1)
+xgr 000000007FFFFFFF ^ FFFFFFFF00000000 = FFFFFFFF7FFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ FFFFFFFF00000000 = 55555555AAAAAAAA (cc=1)
+xgr 8000000000000000 ^ FFFFFFFF00000000 = 7FFFFFFF00000000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xgr 5555555555555555 ^ FFFFFFFF00000000 = AAAAAAAA55555555 (cc=1)
+xy 0000000000000000 ^ FFFFFFFF00000000 = 00000000FFFFFFFF (cc=1)
+xy 0000000000000001 ^ FFFFFFFF00000000 = 00000000FFFFFFFE (cc=1)
+xy 000000000000FFFF ^ FFFFFFFF00000000 = 00000000FFFF0000 (cc=1)
+xy 0000000000007FFF ^ FFFFFFFF00000000 = 00000000FFFF8000 (cc=1)
+xy 0000000000008000 ^ FFFFFFFF00000000 = 00000000FFFF7FFF (cc=1)
+xy 00000000FFFFFFFF ^ FFFFFFFF00000000 = 0000000000000000 (cc=0)
+xy 0000000080000000 ^ FFFFFFFF00000000 = 000000007FFFFFFF (cc=1)
+xy 000000007FFFFFFF ^ FFFFFFFF00000000 = 0000000080000000 (cc=1)
+xy AAAAAAAAAAAAAAAA ^ FFFFFFFF00000000 = AAAAAAAA55555555 (cc=1)
+xy 8000000000000000 ^ FFFFFFFF00000000 = 80000000FFFFFFFF (cc=1)
+xy FFFFFFFFFFFFFFFF ^ FFFFFFFF00000000 = FFFFFFFF00000000 (cc=0)
+xy 5555555555555555 ^ FFFFFFFF00000000 = 55555555AAAAAAAA (cc=1)
+x 0000000000000000 ^ 000000007FFFFFFF = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 000000007FFFFFFF = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 000000007FFFFFFF = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 000000007FFFFFFF = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 000000007FFFFFFF = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 000000007FFFFFFF = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 000000007FFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 000000007FFFFFFF = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 000000007FFFFFFF = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+xg 0000000000000001 ^ 000000007FFFFFFF = 000000007FFFFFFE (cc=1)
+xg 000000000000FFFF ^ 000000007FFFFFFF = 000000007FFF0000 (cc=1)
+xg 0000000000007FFF ^ 000000007FFFFFFF = 000000007FFF8000 (cc=1)
+xg 0000000000008000 ^ 000000007FFFFFFF = 000000007FFF7FFF (cc=1)
+xg 00000000FFFFFFFF ^ 000000007FFFFFFF = 0000000080000000 (cc=1)
+xg 0000000080000000 ^ 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+xg 000000007FFFFFFF ^ 000000007FFFFFFF = 0000000000000000 (cc=0)
+xg AAAAAAAAAAAAAAAA ^ 000000007FFFFFFF = AAAAAAAAD5555555 (cc=1)
+xg 8000000000000000 ^ 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 000000007FFFFFFF = FFFFFFFF80000000 (cc=1)
+xg 5555555555555555 ^ 000000007FFFFFFF = 555555552AAAAAAA (cc=1)
+xr 0000000000000000 ^ 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+xr 0000000000000001 ^ 000000007FFFFFFF = 000000007FFFFFFE (cc=1)
+xr 000000000000FFFF ^ 000000007FFFFFFF = 000000007FFF0000 (cc=1)
+xr 0000000000007FFF ^ 000000007FFFFFFF = 000000007FFF8000 (cc=1)
+xr 0000000000008000 ^ 000000007FFFFFFF = 000000007FFF7FFF (cc=1)
+xr 00000000FFFFFFFF ^ 000000007FFFFFFF = 0000000080000000 (cc=1)
+xr 0000000080000000 ^ 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+xr 000000007FFFFFFF ^ 000000007FFFFFFF = 0000000000000000 (cc=0)
+xr AAAAAAAAAAAAAAAA ^ 000000007FFFFFFF = AAAAAAAAD5555555 (cc=1)
+xr 8000000000000000 ^ 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 000000007FFFFFFF = FFFFFFFF80000000 (cc=1)
+xr 5555555555555555 ^ 000000007FFFFFFF = 555555552AAAAAAA (cc=1)
+xgr 0000000000000000 ^ 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+xgr 0000000000000001 ^ 000000007FFFFFFF = 000000007FFFFFFE (cc=1)
+xgr 000000000000FFFF ^ 000000007FFFFFFF = 000000007FFF0000 (cc=1)
+xgr 0000000000007FFF ^ 000000007FFFFFFF = 000000007FFF8000 (cc=1)
+xgr 0000000000008000 ^ 000000007FFFFFFF = 000000007FFF7FFF (cc=1)
+xgr 00000000FFFFFFFF ^ 000000007FFFFFFF = 0000000080000000 (cc=1)
+xgr 0000000080000000 ^ 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+xgr 000000007FFFFFFF ^ 000000007FFFFFFF = 0000000000000000 (cc=0)
+xgr AAAAAAAAAAAAAAAA ^ 000000007FFFFFFF = AAAAAAAAD5555555 (cc=1)
+xgr 8000000000000000 ^ 000000007FFFFFFF = 800000007FFFFFFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 000000007FFFFFFF = FFFFFFFF80000000 (cc=1)
+xgr 5555555555555555 ^ 000000007FFFFFFF = 555555552AAAAAAA (cc=1)
+xy 0000000000000000 ^ 000000007FFFFFFF = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 000000007FFFFFFF = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 000000007FFFFFFF = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 000000007FFFFFFF = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 000000007FFFFFFF = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 000000007FFFFFFF = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 000000007FFFFFFF = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 000000007FFFFFFF = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 000000007FFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 000000007FFFFFFF = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 000000007FFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 000000007FFFFFFF = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 0000000080000000 = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 0000000080000000 = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 0000000080000000 = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 0000000080000000 = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 0000000080000000 = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 0000000080000000 = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 0000000080000000 = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 0000000080000000 = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 0000000080000000 = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 0000000080000000 = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 0000000080000000 = 0000000080000000 (cc=1)
+xg 0000000000000001 ^ 0000000080000000 = 0000000080000001 (cc=1)
+xg 000000000000FFFF ^ 0000000080000000 = 000000008000FFFF (cc=1)
+xg 0000000000007FFF ^ 0000000080000000 = 0000000080007FFF (cc=1)
+xg 0000000000008000 ^ 0000000080000000 = 0000000080008000 (cc=1)
+xg 00000000FFFFFFFF ^ 0000000080000000 = 000000007FFFFFFF (cc=1)
+xg 0000000080000000 ^ 0000000080000000 = 0000000000000000 (cc=0)
+xg 000000007FFFFFFF ^ 0000000080000000 = 00000000FFFFFFFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 0000000080000000 = AAAAAAAA2AAAAAAA (cc=1)
+xg 8000000000000000 ^ 0000000080000000 = 8000000080000000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 0000000080000000 = FFFFFFFF7FFFFFFF (cc=1)
+xg 5555555555555555 ^ 0000000080000000 = 55555555D5555555 (cc=1)
+xr 0000000000000000 ^ 0000000080000000 = 0000000080000000 (cc=1)
+xr 0000000000000001 ^ 0000000080000000 = 0000000080000001 (cc=1)
+xr 000000000000FFFF ^ 0000000080000000 = 000000008000FFFF (cc=1)
+xr 0000000000007FFF ^ 0000000080000000 = 0000000080007FFF (cc=1)
+xr 0000000000008000 ^ 0000000080000000 = 0000000080008000 (cc=1)
+xr 00000000FFFFFFFF ^ 0000000080000000 = 000000007FFFFFFF (cc=1)
+xr 0000000080000000 ^ 0000000080000000 = 0000000000000000 (cc=0)
+xr 000000007FFFFFFF ^ 0000000080000000 = 00000000FFFFFFFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 0000000080000000 = AAAAAAAA2AAAAAAA (cc=1)
+xr 8000000000000000 ^ 0000000080000000 = 8000000080000000 (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 0000000080000000 = FFFFFFFF7FFFFFFF (cc=1)
+xr 5555555555555555 ^ 0000000080000000 = 55555555D5555555 (cc=1)
+xgr 0000000000000000 ^ 0000000080000000 = 0000000080000000 (cc=1)
+xgr 0000000000000001 ^ 0000000080000000 = 0000000080000001 (cc=1)
+xgr 000000000000FFFF ^ 0000000080000000 = 000000008000FFFF (cc=1)
+xgr 0000000000007FFF ^ 0000000080000000 = 0000000080007FFF (cc=1)
+xgr 0000000000008000 ^ 0000000080000000 = 0000000080008000 (cc=1)
+xgr 00000000FFFFFFFF ^ 0000000080000000 = 000000007FFFFFFF (cc=1)
+xgr 0000000080000000 ^ 0000000080000000 = 0000000000000000 (cc=0)
+xgr 000000007FFFFFFF ^ 0000000080000000 = 00000000FFFFFFFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 0000000080000000 = AAAAAAAA2AAAAAAA (cc=1)
+xgr 8000000000000000 ^ 0000000080000000 = 8000000080000000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 0000000080000000 = FFFFFFFF7FFFFFFF (cc=1)
+xgr 5555555555555555 ^ 0000000080000000 = 55555555D5555555 (cc=1)
+xy 0000000000000000 ^ 0000000080000000 = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 0000000080000000 = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 0000000080000000 = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 0000000080000000 = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 0000000080000000 = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 0000000080000000 = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 0000000080000000 = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 0000000080000000 = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 0000000080000000 = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 0000000080000000 = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 0000000080000000 = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 0000000080000000 = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 0000000055555555 = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 0000000055555555 = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 0000000055555555 = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 0000000055555555 = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 0000000055555555 = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 0000000055555555 = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 0000000055555555 = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 0000000055555555 = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 0000000055555555 = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 0000000055555555 = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 0000000055555555 = 0000000055555555 (cc=1)
+xg 0000000000000001 ^ 0000000055555555 = 0000000055555554 (cc=1)
+xg 000000000000FFFF ^ 0000000055555555 = 000000005555AAAA (cc=1)
+xg 0000000000007FFF ^ 0000000055555555 = 0000000055552AAA (cc=1)
+xg 0000000000008000 ^ 0000000055555555 = 000000005555D555 (cc=1)
+xg 00000000FFFFFFFF ^ 0000000055555555 = 00000000AAAAAAAA (cc=1)
+xg 0000000080000000 ^ 0000000055555555 = 00000000D5555555 (cc=1)
+xg 000000007FFFFFFF ^ 0000000055555555 = 000000002AAAAAAA (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+xg 8000000000000000 ^ 0000000055555555 = 8000000055555555 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+xg 5555555555555555 ^ 0000000055555555 = 5555555500000000 (cc=1)
+xr 0000000000000000 ^ 0000000055555555 = 0000000055555555 (cc=1)
+xr 0000000000000001 ^ 0000000055555555 = 0000000055555554 (cc=1)
+xr 000000000000FFFF ^ 0000000055555555 = 000000005555AAAA (cc=1)
+xr 0000000000007FFF ^ 0000000055555555 = 0000000055552AAA (cc=1)
+xr 0000000000008000 ^ 0000000055555555 = 000000005555D555 (cc=1)
+xr 00000000FFFFFFFF ^ 0000000055555555 = 00000000AAAAAAAA (cc=1)
+xr 0000000080000000 ^ 0000000055555555 = 00000000D5555555 (cc=1)
+xr 000000007FFFFFFF ^ 0000000055555555 = 000000002AAAAAAA (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+xr 8000000000000000 ^ 0000000055555555 = 8000000055555555 (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+xr 5555555555555555 ^ 0000000055555555 = 5555555500000000 (cc=0)
+xgr 0000000000000000 ^ 0000000055555555 = 0000000055555555 (cc=1)
+xgr 0000000000000001 ^ 0000000055555555 = 0000000055555554 (cc=1)
+xgr 000000000000FFFF ^ 0000000055555555 = 000000005555AAAA (cc=1)
+xgr 0000000000007FFF ^ 0000000055555555 = 0000000055552AAA (cc=1)
+xgr 0000000000008000 ^ 0000000055555555 = 000000005555D555 (cc=1)
+xgr 00000000FFFFFFFF ^ 0000000055555555 = 00000000AAAAAAAA (cc=1)
+xgr 0000000080000000 ^ 0000000055555555 = 00000000D5555555 (cc=1)
+xgr 000000007FFFFFFF ^ 0000000055555555 = 000000002AAAAAAA (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+xgr 8000000000000000 ^ 0000000055555555 = 8000000055555555 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+xgr 5555555555555555 ^ 0000000055555555 = 5555555500000000 (cc=1)
+xy 0000000000000000 ^ 0000000055555555 = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 0000000055555555 = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 0000000055555555 = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 0000000055555555 = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 0000000055555555 = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 0000000055555555 = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 0000000055555555 = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 0000000055555555 = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 0000000055555555 = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 0000000055555555 = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 00000000FFFFFFFF = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 00000000FFFFFFFF = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 00000000FFFFFFFF = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 00000000FFFFFFFF = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+xg 0000000000000001 ^ 00000000FFFFFFFF = 00000000FFFFFFFE (cc=1)
+xg 000000000000FFFF ^ 00000000FFFFFFFF = 00000000FFFF0000 (cc=1)
+xg 0000000000007FFF ^ 00000000FFFFFFFF = 00000000FFFF8000 (cc=1)
+xg 0000000000008000 ^ 00000000FFFFFFFF = 00000000FFFF7FFF (cc=1)
+xg 00000000FFFFFFFF ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+xg 0000000080000000 ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+xg 000000007FFFFFFF ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAA55555555 (cc=1)
+xg 8000000000000000 ^ 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFF00000000 (cc=1)
+xg 5555555555555555 ^ 00000000FFFFFFFF = 55555555AAAAAAAA (cc=1)
+xr 0000000000000000 ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+xr 0000000000000001 ^ 00000000FFFFFFFF = 00000000FFFFFFFE (cc=1)
+xr 000000000000FFFF ^ 00000000FFFFFFFF = 00000000FFFF0000 (cc=1)
+xr 0000000000007FFF ^ 00000000FFFFFFFF = 00000000FFFF8000 (cc=1)
+xr 0000000000008000 ^ 00000000FFFFFFFF = 00000000FFFF7FFF (cc=1)
+xr 00000000FFFFFFFF ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+xr 0000000080000000 ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+xr 000000007FFFFFFF ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAA55555555 (cc=1)
+xr 8000000000000000 ^ 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFF00000000 (cc=0)
+xr 5555555555555555 ^ 00000000FFFFFFFF = 55555555AAAAAAAA (cc=1)
+xgr 0000000000000000 ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+xgr 0000000000000001 ^ 00000000FFFFFFFF = 00000000FFFFFFFE (cc=1)
+xgr 000000000000FFFF ^ 00000000FFFFFFFF = 00000000FFFF0000 (cc=1)
+xgr 0000000000007FFF ^ 00000000FFFFFFFF = 00000000FFFF8000 (cc=1)
+xgr 0000000000008000 ^ 00000000FFFFFFFF = 00000000FFFF7FFF (cc=1)
+xgr 00000000FFFFFFFF ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+xgr 0000000080000000 ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+xgr 000000007FFFFFFF ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAA55555555 (cc=1)
+xgr 8000000000000000 ^ 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFF00000000 (cc=1)
+xgr 5555555555555555 ^ 00000000FFFFFFFF = 55555555AAAAAAAA (cc=1)
+xy 0000000000000000 ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 00000000FFFFFFFF = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 00000000FFFFFFFF = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 00000000FFFFFFFF = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 00000000FFFFFFFF = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 00000000FFFFFFFF = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 00000000FFFFFFFF = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 000000000000FFFF = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 000000000000FFFF = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 000000000000FFFF = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 000000000000FFFF = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 000000000000FFFF = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 000000000000FFFF = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xg 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xg 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xg 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xg 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xg 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xg 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xg 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xg 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xg 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xr 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xr 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xr 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xr 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xr 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xr 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xr 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xr 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xr 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xr 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xgr 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xgr 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xgr 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xgr 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xgr 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xgr 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xgr 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xgr 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xgr 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xgr 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xy 0000000000000000 ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 000000000000FFFF = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 000000000000FFFF = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 000000000000FFFF = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 000000000000FFFF = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 0000000000007FFF = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 0000000000007FFF = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 0000000000007FFF = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 0000000000007FFF = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 0000000000007FFF = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 0000000000007FFF = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 0000000000007FFF = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 0000000000007FFF = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 0000000000007FFF = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 0000000000007FFF = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 0000000000007FFF = 0000000000007FFF (cc=1)
+xg 0000000000000001 ^ 0000000000007FFF = 0000000000007FFE (cc=1)
+xg 000000000000FFFF ^ 0000000000007FFF = 0000000000008000 (cc=1)
+xg 0000000000007FFF ^ 0000000000007FFF = 0000000000000000 (cc=0)
+xg 0000000000008000 ^ 0000000000007FFF = 000000000000FFFF (cc=1)
+xg 00000000FFFFFFFF ^ 0000000000007FFF = 00000000FFFF8000 (cc=1)
+xg 0000000080000000 ^ 0000000000007FFF = 0000000080007FFF (cc=1)
+xg 000000007FFFFFFF ^ 0000000000007FFF = 000000007FFF8000 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 0000000000007FFF = AAAAAAAAAAAAD555 (cc=1)
+xg 8000000000000000 ^ 0000000000007FFF = 8000000000007FFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 0000000000007FFF = FFFFFFFFFFFF8000 (cc=1)
+xg 5555555555555555 ^ 0000000000007FFF = 5555555555552AAA (cc=1)
+xr 0000000000000000 ^ 0000000000007FFF = 0000000000007FFF (cc=1)
+xr 0000000000000001 ^ 0000000000007FFF = 0000000000007FFE (cc=1)
+xr 000000000000FFFF ^ 0000000000007FFF = 0000000000008000 (cc=1)
+xr 0000000000007FFF ^ 0000000000007FFF = 0000000000000000 (cc=0)
+xr 0000000000008000 ^ 0000000000007FFF = 000000000000FFFF (cc=1)
+xr 00000000FFFFFFFF ^ 0000000000007FFF = 00000000FFFF8000 (cc=1)
+xr 0000000080000000 ^ 0000000000007FFF = 0000000080007FFF (cc=1)
+xr 000000007FFFFFFF ^ 0000000000007FFF = 000000007FFF8000 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 0000000000007FFF = AAAAAAAAAAAAD555 (cc=1)
+xr 8000000000000000 ^ 0000000000007FFF = 8000000000007FFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 0000000000007FFF = FFFFFFFFFFFF8000 (cc=1)
+xr 5555555555555555 ^ 0000000000007FFF = 5555555555552AAA (cc=1)
+xgr 0000000000000000 ^ 0000000000007FFF = 0000000000007FFF (cc=1)
+xgr 0000000000000001 ^ 0000000000007FFF = 0000000000007FFE (cc=1)
+xgr 000000000000FFFF ^ 0000000000007FFF = 0000000000008000 (cc=1)
+xgr 0000000000007FFF ^ 0000000000007FFF = 0000000000000000 (cc=0)
+xgr 0000000000008000 ^ 0000000000007FFF = 000000000000FFFF (cc=1)
+xgr 00000000FFFFFFFF ^ 0000000000007FFF = 00000000FFFF8000 (cc=1)
+xgr 0000000080000000 ^ 0000000000007FFF = 0000000080007FFF (cc=1)
+xgr 000000007FFFFFFF ^ 0000000000007FFF = 000000007FFF8000 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 0000000000007FFF = AAAAAAAAAAAAD555 (cc=1)
+xgr 8000000000000000 ^ 0000000000007FFF = 8000000000007FFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 0000000000007FFF = FFFFFFFFFFFF8000 (cc=1)
+xgr 5555555555555555 ^ 0000000000007FFF = 5555555555552AAA (cc=1)
+xy 0000000000000000 ^ 0000000000007FFF = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 0000000000007FFF = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 0000000000007FFF = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 0000000000007FFF = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 0000000000007FFF = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 0000000000007FFF = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 0000000000007FFF = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 0000000000007FFF = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 0000000000007FFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 0000000000007FFF = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 0000000000007FFF = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 0000000000007FFF = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 0000000000008000 = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 0000000000008000 = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 0000000000008000 = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 0000000000008000 = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 0000000000008000 = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 0000000000008000 = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 0000000000008000 = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 0000000000008000 = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 0000000000008000 = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 0000000000008000 = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 0000000000008000 = 0000000000008000 (cc=1)
+xg 0000000000000001 ^ 0000000000008000 = 0000000000008001 (cc=1)
+xg 000000000000FFFF ^ 0000000000008000 = 0000000000007FFF (cc=1)
+xg 0000000000007FFF ^ 0000000000008000 = 000000000000FFFF (cc=1)
+xg 0000000000008000 ^ 0000000000008000 = 0000000000000000 (cc=0)
+xg 00000000FFFFFFFF ^ 0000000000008000 = 00000000FFFF7FFF (cc=1)
+xg 0000000080000000 ^ 0000000000008000 = 0000000080008000 (cc=1)
+xg 000000007FFFFFFF ^ 0000000000008000 = 000000007FFF7FFF (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 0000000000008000 = AAAAAAAAAAAA2AAA (cc=1)
+xg 8000000000000000 ^ 0000000000008000 = 8000000000008000 (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 0000000000008000 = FFFFFFFFFFFF7FFF (cc=1)
+xg 5555555555555555 ^ 0000000000008000 = 555555555555D555 (cc=1)
+xr 0000000000000000 ^ 0000000000008000 = 0000000000008000 (cc=1)
+xr 0000000000000001 ^ 0000000000008000 = 0000000000008001 (cc=1)
+xr 000000000000FFFF ^ 0000000000008000 = 0000000000007FFF (cc=1)
+xr 0000000000007FFF ^ 0000000000008000 = 000000000000FFFF (cc=1)
+xr 0000000000008000 ^ 0000000000008000 = 0000000000000000 (cc=0)
+xr 00000000FFFFFFFF ^ 0000000000008000 = 00000000FFFF7FFF (cc=1)
+xr 0000000080000000 ^ 0000000000008000 = 0000000080008000 (cc=1)
+xr 000000007FFFFFFF ^ 0000000000008000 = 000000007FFF7FFF (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 0000000000008000 = AAAAAAAAAAAA2AAA (cc=1)
+xr 8000000000000000 ^ 0000000000008000 = 8000000000008000 (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 0000000000008000 = FFFFFFFFFFFF7FFF (cc=1)
+xr 5555555555555555 ^ 0000000000008000 = 555555555555D555 (cc=1)
+xgr 0000000000000000 ^ 0000000000008000 = 0000000000008000 (cc=1)
+xgr 0000000000000001 ^ 0000000000008000 = 0000000000008001 (cc=1)
+xgr 000000000000FFFF ^ 0000000000008000 = 0000000000007FFF (cc=1)
+xgr 0000000000007FFF ^ 0000000000008000 = 000000000000FFFF (cc=1)
+xgr 0000000000008000 ^ 0000000000008000 = 0000000000000000 (cc=0)
+xgr 00000000FFFFFFFF ^ 0000000000008000 = 00000000FFFF7FFF (cc=1)
+xgr 0000000080000000 ^ 0000000000008000 = 0000000080008000 (cc=1)
+xgr 000000007FFFFFFF ^ 0000000000008000 = 000000007FFF7FFF (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 0000000000008000 = AAAAAAAAAAAA2AAA (cc=1)
+xgr 8000000000000000 ^ 0000000000008000 = 8000000000008000 (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 0000000000008000 = FFFFFFFFFFFF7FFF (cc=1)
+xgr 5555555555555555 ^ 0000000000008000 = 555555555555D555 (cc=1)
+xy 0000000000000000 ^ 0000000000008000 = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 0000000000008000 = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 0000000000008000 = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 0000000000008000 = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 0000000000008000 = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 0000000000008000 = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 0000000000008000 = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 0000000000008000 = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 0000000000008000 = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 0000000000008000 = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 0000000000008000 = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 0000000000008000 = 5555555555555555 (cc=1)
+x 0000000000000000 ^ 000000000000FFFF = 0000000000000000 (cc=0)
+x 0000000000000001 ^ 000000000000FFFF = 0000000000000001 (cc=1)
+x 000000000000FFFF ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+x 0000000000007FFF ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+x 0000000000008000 ^ 000000000000FFFF = 0000000000008000 (cc=1)
+x 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+x 0000000080000000 ^ 000000000000FFFF = 0000000080000000 (cc=1)
+x 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFFFFFF (cc=1)
+x AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+x 8000000000000000 ^ 000000000000FFFF = 8000000000000000 (cc=0)
+x FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+x 5555555555555555 ^ 000000000000FFFF = 5555555555555555 (cc=1)
+xg 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xg 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xg 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xg 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xg 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xg 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xg 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xg 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xg AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xg 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xg FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xg 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xr 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xr 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xr 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xr 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xr 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xr 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xr 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xr 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xr AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xr 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xr FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xr 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xgr 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xgr 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xgr 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xgr 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xgr 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xgr 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xgr 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xgr 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xgr AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xgr 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xgr FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xgr 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xy 0000000000000000 ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xy 0000000000000001 ^ 000000000000FFFF = 0000000000000001 (cc=1)
+xy 000000000000FFFF ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xy 0000000000007FFF ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xy 0000000000008000 ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xy 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFFFFFF (cc=1)
+xy 0000000080000000 ^ 000000000000FFFF = 0000000080000000 (cc=1)
+xy 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFFFFFF (cc=1)
+xy AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAAAAAA (cc=1)
+xy 8000000000000000 ^ 000000000000FFFF = 8000000000000000 (cc=0)
+xy FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFFFFFF (cc=1)
+xy 5555555555555555 ^ 000000000000FFFF = 5555555555555555 (cc=1)
+xi 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xi 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=0)
+xi 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=0)
+xi 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=0)
+xi 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=0)
+xi 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=0)
+xi 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=0)
+xi 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=0)
+xi AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xi 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=1)
+xi FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xi 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xi 0000000000000000 ^ 00000000000000FF = FF00000000000000 (cc=1)
+xi 0000000000000001 ^ 00000000000000FF = FF00000000000001 (cc=1)
+xi 000000000000FFFF ^ 00000000000000FF = FF0000000000FFFF (cc=1)
+xi 0000000000007FFF ^ 00000000000000FF = FF00000000007FFF (cc=1)
+xi 0000000000008000 ^ 00000000000000FF = FF00000000008000 (cc=1)
+xi 00000000FFFFFFFF ^ 00000000000000FF = FF000000FFFFFFFF (cc=1)
+xi 0000000080000000 ^ 00000000000000FF = FF00000080000000 (cc=1)
+xi 000000007FFFFFFF ^ 00000000000000FF = FF0000007FFFFFFF (cc=1)
+xi AAAAAAAAAAAAAAAA ^ 00000000000000FF = 55AAAAAAAAAAAAAA (cc=1)
+xi 8000000000000000 ^ 00000000000000FF = 7F00000000000000 (cc=1)
+xi FFFFFFFFFFFFFFFF ^ 00000000000000FF = 00FFFFFFFFFFFFFF (cc=0)
+xi 5555555555555555 ^ 00000000000000FF = AA55555555555555 (cc=1)
+xi 0000000000000000 ^ 0000000000000080 = 8000000000000000 (cc=1)
+xi 0000000000000001 ^ 0000000000000080 = 8000000000000001 (cc=1)
+xi 000000000000FFFF ^ 0000000000000080 = 800000000000FFFF (cc=1)
+xi 0000000000007FFF ^ 0000000000000080 = 8000000000007FFF (cc=1)
+xi 0000000000008000 ^ 0000000000000080 = 8000000000008000 (cc=1)
+xi 00000000FFFFFFFF ^ 0000000000000080 = 80000000FFFFFFFF (cc=1)
+xi 0000000080000000 ^ 0000000000000080 = 8000000080000000 (cc=1)
+xi 000000007FFFFFFF ^ 0000000000000080 = 800000007FFFFFFF (cc=1)
+xi AAAAAAAAAAAAAAAA ^ 0000000000000080 = 2AAAAAAAAAAAAAAA (cc=1)
+xi 8000000000000000 ^ 0000000000000080 = 0000000000000000 (cc=0)
+xi FFFFFFFFFFFFFFFF ^ 0000000000000080 = 7FFFFFFFFFFFFFFF (cc=1)
+xi 5555555555555555 ^ 0000000000000080 = D555555555555555 (cc=1)
+xi 0000000000000000 ^ 00000000000000AA = AA00000000000000 (cc=1)
+xi 0000000000000001 ^ 00000000000000AA = AA00000000000001 (cc=1)
+xi 000000000000FFFF ^ 00000000000000AA = AA0000000000FFFF (cc=1)
+xi 0000000000007FFF ^ 00000000000000AA = AA00000000007FFF (cc=1)
+xi 0000000000008000 ^ 00000000000000AA = AA00000000008000 (cc=1)
+xi 00000000FFFFFFFF ^ 00000000000000AA = AA000000FFFFFFFF (cc=1)
+xi 0000000080000000 ^ 00000000000000AA = AA00000080000000 (cc=1)
+xi 000000007FFFFFFF ^ 00000000000000AA = AA0000007FFFFFFF (cc=1)
+xi AAAAAAAAAAAAAAAA ^ 00000000000000AA = 00AAAAAAAAAAAAAA (cc=0)
+xi 8000000000000000 ^ 00000000000000AA = 2A00000000000000 (cc=1)
+xi FFFFFFFFFFFFFFFF ^ 00000000000000AA = 55FFFFFFFFFFFFFF (cc=1)
+xi 5555555555555555 ^ 00000000000000AA = FF55555555555555 (cc=1)
+xi 0000000000000000 ^ 0000000000000055 = 5500000000000000 (cc=1)
+xi 0000000000000001 ^ 0000000000000055 = 5500000000000001 (cc=1)
+xi 000000000000FFFF ^ 0000000000000055 = 550000000000FFFF (cc=1)
+xi 0000000000007FFF ^ 0000000000000055 = 5500000000007FFF (cc=1)
+xi 0000000000008000 ^ 0000000000000055 = 5500000000008000 (cc=1)
+xi 00000000FFFFFFFF ^ 0000000000000055 = 55000000FFFFFFFF (cc=1)
+xi 0000000080000000 ^ 0000000000000055 = 5500000080000000 (cc=1)
+xi 000000007FFFFFFF ^ 0000000000000055 = 550000007FFFFFFF (cc=1)
+xi AAAAAAAAAAAAAAAA ^ 0000000000000055 = FFAAAAAAAAAAAAAA (cc=1)
+xi 8000000000000000 ^ 0000000000000055 = D500000000000000 (cc=1)
+xi FFFFFFFFFFFFFFFF ^ 0000000000000055 = AAFFFFFFFFFFFFFF (cc=1)
+xi 5555555555555555 ^ 0000000000000055 = 0055555555555555 (cc=0)
+xiy 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xiy 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=0)
+xiy 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=0)
+xiy 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=0)
+xiy 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=0)
+xiy 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=0)
+xiy 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=0)
+xiy 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=0)
+xiy AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xiy 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=1)
+xiy FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xiy 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xiy 0000000000000000 ^ 00000000000000FF = FF00000000000000 (cc=1)
+xiy 0000000000000001 ^ 00000000000000FF = FF00000000000001 (cc=1)
+xiy 000000000000FFFF ^ 00000000000000FF = FF0000000000FFFF (cc=1)
+xiy 0000000000007FFF ^ 00000000000000FF = FF00000000007FFF (cc=1)
+xiy 0000000000008000 ^ 00000000000000FF = FF00000000008000 (cc=1)
+xiy 00000000FFFFFFFF ^ 00000000000000FF = FF000000FFFFFFFF (cc=1)
+xiy 0000000080000000 ^ 00000000000000FF = FF00000080000000 (cc=1)
+xiy 000000007FFFFFFF ^ 00000000000000FF = FF0000007FFFFFFF (cc=1)
+xiy AAAAAAAAAAAAAAAA ^ 00000000000000FF = 55AAAAAAAAAAAAAA (cc=1)
+xiy 8000000000000000 ^ 00000000000000FF = 7F00000000000000 (cc=1)
+xiy FFFFFFFFFFFFFFFF ^ 00000000000000FF = 00FFFFFFFFFFFFFF (cc=0)
+xiy 5555555555555555 ^ 00000000000000FF = AA55555555555555 (cc=1)
+xiy 0000000000000000 ^ 0000000000000080 = 8000000000000000 (cc=1)
+xiy 0000000000000001 ^ 0000000000000080 = 8000000000000001 (cc=1)
+xiy 000000000000FFFF ^ 0000000000000080 = 800000000000FFFF (cc=1)
+xiy 0000000000007FFF ^ 0000000000000080 = 8000000000007FFF (cc=1)
+xiy 0000000000008000 ^ 0000000000000080 = 8000000000008000 (cc=1)
+xiy 00000000FFFFFFFF ^ 0000000000000080 = 80000000FFFFFFFF (cc=1)
+xiy 0000000080000000 ^ 0000000000000080 = 8000000080000000 (cc=1)
+xiy 000000007FFFFFFF ^ 0000000000000080 = 800000007FFFFFFF (cc=1)
+xiy AAAAAAAAAAAAAAAA ^ 0000000000000080 = 2AAAAAAAAAAAAAAA (cc=1)
+xiy 8000000000000000 ^ 0000000000000080 = 0000000000000000 (cc=0)
+xiy FFFFFFFFFFFFFFFF ^ 0000000000000080 = 7FFFFFFFFFFFFFFF (cc=1)
+xiy 5555555555555555 ^ 0000000000000080 = D555555555555555 (cc=1)
+xiy 0000000000000000 ^ 00000000000000AA = AA00000000000000 (cc=1)
+xiy 0000000000000001 ^ 00000000000000AA = AA00000000000001 (cc=1)
+xiy 000000000000FFFF ^ 00000000000000AA = AA0000000000FFFF (cc=1)
+xiy 0000000000007FFF ^ 00000000000000AA = AA00000000007FFF (cc=1)
+xiy 0000000000008000 ^ 00000000000000AA = AA00000000008000 (cc=1)
+xiy 00000000FFFFFFFF ^ 00000000000000AA = AA000000FFFFFFFF (cc=1)
+xiy 0000000080000000 ^ 00000000000000AA = AA00000080000000 (cc=1)
+xiy 000000007FFFFFFF ^ 00000000000000AA = AA0000007FFFFFFF (cc=1)
+xiy AAAAAAAAAAAAAAAA ^ 00000000000000AA = 00AAAAAAAAAAAAAA (cc=0)
+xiy 8000000000000000 ^ 00000000000000AA = 2A00000000000000 (cc=1)
+xiy FFFFFFFFFFFFFFFF ^ 00000000000000AA = 55FFFFFFFFFFFFFF (cc=1)
+xiy 5555555555555555 ^ 00000000000000AA = FF55555555555555 (cc=1)
+xiy 0000000000000000 ^ 0000000000000055 = 5500000000000000 (cc=1)
+xiy 0000000000000001 ^ 0000000000000055 = 5500000000000001 (cc=1)
+xiy 000000000000FFFF ^ 0000000000000055 = 550000000000FFFF (cc=1)
+xiy 0000000000007FFF ^ 0000000000000055 = 5500000000007FFF (cc=1)
+xiy 0000000000008000 ^ 0000000000000055 = 5500000000008000 (cc=1)
+xiy 00000000FFFFFFFF ^ 0000000000000055 = 55000000FFFFFFFF (cc=1)
+xiy 0000000080000000 ^ 0000000000000055 = 5500000080000000 (cc=1)
+xiy 000000007FFFFFFF ^ 0000000000000055 = 550000007FFFFFFF (cc=1)
+xiy AAAAAAAAAAAAAAAA ^ 0000000000000055 = FFAAAAAAAAAAAAAA (cc=1)
+xiy 8000000000000000 ^ 0000000000000055 = D500000000000000 (cc=1)
+xiy FFFFFFFFFFFFFFFF ^ 0000000000000055 = AAFFFFFFFFFFFFFF (cc=1)
+xiy 5555555555555555 ^ 0000000000000055 = 0055555555555555 (cc=0)
diff --git a/none/tests/s390x/xor.vgtest b/none/tests/s390x/xor.vgtest
new file mode 100644 (file)
index 0000000..d6dae37
--- /dev/null
@@ -0,0 +1 @@
+prog: xor
diff --git a/none/tests/s390x/xor_EI.c b/none/tests/s390x/xor_EI.c
new file mode 100644 (file)
index 0000000..eb6d9a4
--- /dev/null
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include "xor.h"
+
+static void do_imm_insns(void)
+{
+       immsweep(xihf, 0);
+       immsweep(xihf, 0xff);
+       immsweep(xihf, 0x55);
+       immsweep(xihf, 0xaa);
+       immsweep(xihf, 0xffff);
+       immsweep(xihf, 0x5555);
+       immsweep(xihf, 0xaaaa);
+       immsweep(xihf, 0xffff0000);
+       immsweep(xihf, 0x55550000);
+       immsweep(xihf, 0xaaaa0000);
+       immsweep(xihf, 0xffffffff);
+       immsweep(xihf, 0x55555555);
+       immsweep(xihf, 0xaaaaaaaa);
+       immsweep(xilf, 0);
+       immsweep(xilf, 0xff);
+       immsweep(xilf, 0x55);
+       immsweep(xilf, 0xaa);
+       immsweep(xilf, 0xffff);
+       immsweep(xilf, 0x5555);
+       immsweep(xilf, 0xaaaa);
+       immsweep(xilf, 0xffff0000);
+       immsweep(xilf, 0x55550000);
+       immsweep(xilf, 0xaaaa0000);
+       immsweep(xilf, 0xffffffff);
+       immsweep(xilf, 0x55555555);
+       immsweep(xilf, 0xaaaaaaaa);
+
+}
+
+
+int main()
+{
+       do_imm_insns();
+
+       return 0;
+}
diff --git a/none/tests/s390x/xor_EI.stderr.exp b/none/tests/s390x/xor_EI.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/xor_EI.stdout.exp b/none/tests/s390x/xor_EI.stdout.exp
new file mode 100644 (file)
index 0000000..5126691
--- /dev/null
@@ -0,0 +1,312 @@
+xihf 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xihf 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=0)
+xihf 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=0)
+xihf 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=0)
+xihf 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=0)
+xihf 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=0)
+xihf 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=0)
+xihf 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=0)
+xihf AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xihf 0000000000000000 ^ 00000000000000FF = 000000FF00000000 (cc=1)
+xihf 0000000000000001 ^ 00000000000000FF = 000000FF00000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000000000FF = 000000FF0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000000000FF = 000000FF00007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000000000FF = 000000FF00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000000000FF = 000000FFFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000000000FF = 000000FF80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000000000FF = 000000FF7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000000000FF = AAAAAA55AAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 00000000000000FF = 800000FF00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000000000FF = FFFFFF00FFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 00000000000000FF = 555555AA55555555 (cc=1)
+xihf 0000000000000000 ^ 0000000000000055 = 0000005500000000 (cc=1)
+xihf 0000000000000001 ^ 0000000000000055 = 0000005500000001 (cc=1)
+xihf 000000000000FFFF ^ 0000000000000055 = 000000550000FFFF (cc=1)
+xihf 0000000000007FFF ^ 0000000000000055 = 0000005500007FFF (cc=1)
+xihf 0000000000008000 ^ 0000000000000055 = 0000005500008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 0000000000000055 = 00000055FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 0000000000000055 = 0000005580000000 (cc=1)
+xihf 000000007FFFFFFF ^ 0000000000000055 = 000000557FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 0000000000000055 = AAAAAAFFAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 0000000000000055 = 8000005500000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 0000000000000055 = FFFFFFAAFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 0000000000000055 = 5555550055555555 (cc=1)
+xihf 0000000000000000 ^ 00000000000000AA = 000000AA00000000 (cc=1)
+xihf 0000000000000001 ^ 00000000000000AA = 000000AA00000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000000000AA = 000000AA0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000000000AA = 000000AA00007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000000000AA = 000000AA00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000000000AA = 000000AAFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000000000AA = 000000AA80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000000000AA = 000000AA7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000000000AA = AAAAAA00AAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 00000000000000AA = 800000AA00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000000000AA = FFFFFF55FFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 00000000000000AA = 555555FF55555555 (cc=1)
+xihf 0000000000000000 ^ 000000000000FFFF = 0000FFFF00000000 (cc=1)
+xihf 0000000000000001 ^ 000000000000FFFF = 0000FFFF00000001 (cc=1)
+xihf 000000000000FFFF ^ 000000000000FFFF = 0000FFFF0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 000000000000FFFF = 0000FFFF00007FFF (cc=1)
+xihf 0000000000008000 ^ 000000000000FFFF = 0000FFFF00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 000000000000FFFF = 0000FFFFFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 000000000000FFFF = 0000FFFF80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 000000000000FFFF = 0000FFFF7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAA5555AAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 000000000000FFFF = 8000FFFF00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFF0000FFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 000000000000FFFF = 5555AAAA55555555 (cc=1)
+xihf 0000000000000000 ^ 0000000000005555 = 0000555500000000 (cc=1)
+xihf 0000000000000001 ^ 0000000000005555 = 0000555500000001 (cc=1)
+xihf 000000000000FFFF ^ 0000000000005555 = 000055550000FFFF (cc=1)
+xihf 0000000000007FFF ^ 0000000000005555 = 0000555500007FFF (cc=1)
+xihf 0000000000008000 ^ 0000000000005555 = 0000555500008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 0000000000005555 = 00005555FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 0000000000005555 = 0000555580000000 (cc=1)
+xihf 000000007FFFFFFF ^ 0000000000005555 = 000055557FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 0000000000005555 = AAAAFFFFAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 0000000000005555 = 8000555500000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 0000000000005555 = FFFFAAAAFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 0000000000005555 = 5555000055555555 (cc=1)
+xihf 0000000000000000 ^ 000000000000AAAA = 0000AAAA00000000 (cc=1)
+xihf 0000000000000001 ^ 000000000000AAAA = 0000AAAA00000001 (cc=1)
+xihf 000000000000FFFF ^ 000000000000AAAA = 0000AAAA0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 000000000000AAAA = 0000AAAA00007FFF (cc=1)
+xihf 0000000000008000 ^ 000000000000AAAA = 0000AAAA00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 000000000000AAAA = 0000AAAAFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 000000000000AAAA = 0000AAAA80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 000000000000AAAA = 0000AAAA7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 000000000000AAAA = AAAA0000AAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 000000000000AAAA = 8000AAAA00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 000000000000AAAA = FFFF5555FFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 000000000000AAAA = 5555FFFF55555555 (cc=1)
+xihf 0000000000000000 ^ 00000000FFFF0000 = FFFF000000000000 (cc=1)
+xihf 0000000000000001 ^ 00000000FFFF0000 = FFFF000000000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000FFFF0000 = FFFF00000000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000FFFF0000 = FFFF000000007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000FFFF0000 = FFFF000000008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000FFFF0000 = FFFF0000FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000FFFF0000 = FFFF000080000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000FFFF0000 = FFFF00007FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000FFFF0000 = 5555AAAAAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 00000000FFFF0000 = 7FFF000000000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000FFFF0000 = 0000FFFFFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 00000000FFFF0000 = AAAA555555555555 (cc=1)
+xihf 0000000000000000 ^ 0000000055550000 = 5555000000000000 (cc=1)
+xihf 0000000000000001 ^ 0000000055550000 = 5555000000000001 (cc=1)
+xihf 000000000000FFFF ^ 0000000055550000 = 555500000000FFFF (cc=1)
+xihf 0000000000007FFF ^ 0000000055550000 = 5555000000007FFF (cc=1)
+xihf 0000000000008000 ^ 0000000055550000 = 5555000000008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 0000000055550000 = 55550000FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 0000000055550000 = 5555000080000000 (cc=1)
+xihf 000000007FFFFFFF ^ 0000000055550000 = 555500007FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 0000000055550000 = FFFFAAAAAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 0000000055550000 = D555000000000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 0000000055550000 = AAAAFFFFFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 0000000055550000 = 0000555555555555 (cc=1)
+xihf 0000000000000000 ^ 00000000AAAA0000 = AAAA000000000000 (cc=1)
+xihf 0000000000000001 ^ 00000000AAAA0000 = AAAA000000000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000AAAA0000 = AAAA00000000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000AAAA0000 = AAAA000000007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000AAAA0000 = AAAA000000008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000AAAA0000 = AAAA0000FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000AAAA0000 = AAAA000080000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000AAAA0000 = AAAA00007FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000AAAA0000 = 0000AAAAAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 00000000AAAA0000 = 2AAA000000000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000AAAA0000 = 5555FFFFFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 00000000AAAA0000 = FFFF555555555555 (cc=1)
+xihf 0000000000000000 ^ 00000000FFFFFFFF = FFFFFFFF00000000 (cc=1)
+xihf 0000000000000001 ^ 00000000FFFFFFFF = FFFFFFFF00000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000FFFFFFFF = FFFFFFFF0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000FFFFFFFF = FFFFFFFF00007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000FFFFFFFF = FFFFFFFF00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFFFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000FFFFFFFF = FFFFFFFF80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000FFFFFFFF = FFFFFFFF7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = 55555555AAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 00000000FFFFFFFF = 7FFFFFFF00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=0)
+xihf 5555555555555555 ^ 00000000FFFFFFFF = AAAAAAAA55555555 (cc=1)
+xihf 0000000000000000 ^ 0000000055555555 = 5555555500000000 (cc=1)
+xihf 0000000000000001 ^ 0000000055555555 = 5555555500000001 (cc=1)
+xihf 000000000000FFFF ^ 0000000055555555 = 555555550000FFFF (cc=1)
+xihf 0000000000007FFF ^ 0000000055555555 = 5555555500007FFF (cc=1)
+xihf 0000000000008000 ^ 0000000055555555 = 5555555500008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 0000000055555555 = 55555555FFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 0000000055555555 = 5555555580000000 (cc=1)
+xihf 000000007FFFFFFF ^ 0000000055555555 = 555555557FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+xihf 8000000000000000 ^ 0000000055555555 = D555555500000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 0000000055555555 = 0000000055555555 (cc=0)
+xihf 0000000000000000 ^ 00000000AAAAAAAA = AAAAAAAA00000000 (cc=1)
+xihf 0000000000000001 ^ 00000000AAAAAAAA = AAAAAAAA00000001 (cc=1)
+xihf 000000000000FFFF ^ 00000000AAAAAAAA = AAAAAAAA0000FFFF (cc=1)
+xihf 0000000000007FFF ^ 00000000AAAAAAAA = AAAAAAAA00007FFF (cc=1)
+xihf 0000000000008000 ^ 00000000AAAAAAAA = AAAAAAAA00008000 (cc=1)
+xihf 00000000FFFFFFFF ^ 00000000AAAAAAAA = AAAAAAAAFFFFFFFF (cc=1)
+xihf 0000000080000000 ^ 00000000AAAAAAAA = AAAAAAAA80000000 (cc=1)
+xihf 000000007FFFFFFF ^ 00000000AAAAAAAA = AAAAAAAA7FFFFFFF (cc=1)
+xihf AAAAAAAAAAAAAAAA ^ 00000000AAAAAAAA = 00000000AAAAAAAA (cc=0)
+xihf 8000000000000000 ^ 00000000AAAAAAAA = 2AAAAAAA00000000 (cc=1)
+xihf FFFFFFFFFFFFFFFF ^ 00000000AAAAAAAA = 55555555FFFFFFFF (cc=1)
+xihf 5555555555555555 ^ 00000000AAAAAAAA = FFFFFFFF55555555 (cc=1)
+xilf 0000000000000000 ^ 0000000000000000 = 0000000000000000 (cc=0)
+xilf 0000000000000001 ^ 0000000000000000 = 0000000000000001 (cc=1)
+xilf 000000000000FFFF ^ 0000000000000000 = 000000000000FFFF (cc=1)
+xilf 0000000000007FFF ^ 0000000000000000 = 0000000000007FFF (cc=1)
+xilf 0000000000008000 ^ 0000000000000000 = 0000000000008000 (cc=1)
+xilf 00000000FFFFFFFF ^ 0000000000000000 = 00000000FFFFFFFF (cc=1)
+xilf 0000000080000000 ^ 0000000000000000 = 0000000080000000 (cc=1)
+xilf 000000007FFFFFFF ^ 0000000000000000 = 000000007FFFFFFF (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 0000000000000000 = AAAAAAAAAAAAAAAA (cc=1)
+xilf 8000000000000000 ^ 0000000000000000 = 8000000000000000 (cc=0)
+xilf FFFFFFFFFFFFFFFF ^ 0000000000000000 = FFFFFFFFFFFFFFFF (cc=1)
+xilf 5555555555555555 ^ 0000000000000000 = 5555555555555555 (cc=1)
+xilf 0000000000000000 ^ 00000000000000FF = 00000000000000FF (cc=1)
+xilf 0000000000000001 ^ 00000000000000FF = 00000000000000FE (cc=1)
+xilf 000000000000FFFF ^ 00000000000000FF = 000000000000FF00 (cc=1)
+xilf 0000000000007FFF ^ 00000000000000FF = 0000000000007F00 (cc=1)
+xilf 0000000000008000 ^ 00000000000000FF = 00000000000080FF (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000000000FF = 00000000FFFFFF00 (cc=1)
+xilf 0000000080000000 ^ 00000000000000FF = 00000000800000FF (cc=1)
+xilf 000000007FFFFFFF ^ 00000000000000FF = 000000007FFFFF00 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000000000FF = AAAAAAAAAAAAAA55 (cc=1)
+xilf 8000000000000000 ^ 00000000000000FF = 80000000000000FF (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000000000FF = FFFFFFFFFFFFFF00 (cc=1)
+xilf 5555555555555555 ^ 00000000000000FF = 55555555555555AA (cc=1)
+xilf 0000000000000000 ^ 0000000000000055 = 0000000000000055 (cc=1)
+xilf 0000000000000001 ^ 0000000000000055 = 0000000000000054 (cc=1)
+xilf 000000000000FFFF ^ 0000000000000055 = 000000000000FFAA (cc=1)
+xilf 0000000000007FFF ^ 0000000000000055 = 0000000000007FAA (cc=1)
+xilf 0000000000008000 ^ 0000000000000055 = 0000000000008055 (cc=1)
+xilf 00000000FFFFFFFF ^ 0000000000000055 = 00000000FFFFFFAA (cc=1)
+xilf 0000000080000000 ^ 0000000000000055 = 0000000080000055 (cc=1)
+xilf 000000007FFFFFFF ^ 0000000000000055 = 000000007FFFFFAA (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 0000000000000055 = AAAAAAAAAAAAAAFF (cc=1)
+xilf 8000000000000000 ^ 0000000000000055 = 8000000000000055 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 0000000000000055 = FFFFFFFFFFFFFFAA (cc=1)
+xilf 5555555555555555 ^ 0000000000000055 = 5555555555555500 (cc=1)
+xilf 0000000000000000 ^ 00000000000000AA = 00000000000000AA (cc=1)
+xilf 0000000000000001 ^ 00000000000000AA = 00000000000000AB (cc=1)
+xilf 000000000000FFFF ^ 00000000000000AA = 000000000000FF55 (cc=1)
+xilf 0000000000007FFF ^ 00000000000000AA = 0000000000007F55 (cc=1)
+xilf 0000000000008000 ^ 00000000000000AA = 00000000000080AA (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000000000AA = 00000000FFFFFF55 (cc=1)
+xilf 0000000080000000 ^ 00000000000000AA = 00000000800000AA (cc=1)
+xilf 000000007FFFFFFF ^ 00000000000000AA = 000000007FFFFF55 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000000000AA = AAAAAAAAAAAAAA00 (cc=1)
+xilf 8000000000000000 ^ 00000000000000AA = 80000000000000AA (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000000000AA = FFFFFFFFFFFFFF55 (cc=1)
+xilf 5555555555555555 ^ 00000000000000AA = 55555555555555FF (cc=1)
+xilf 0000000000000000 ^ 000000000000FFFF = 000000000000FFFF (cc=1)
+xilf 0000000000000001 ^ 000000000000FFFF = 000000000000FFFE (cc=1)
+xilf 000000000000FFFF ^ 000000000000FFFF = 0000000000000000 (cc=0)
+xilf 0000000000007FFF ^ 000000000000FFFF = 0000000000008000 (cc=1)
+xilf 0000000000008000 ^ 000000000000FFFF = 0000000000007FFF (cc=1)
+xilf 00000000FFFFFFFF ^ 000000000000FFFF = 00000000FFFF0000 (cc=1)
+xilf 0000000080000000 ^ 000000000000FFFF = 000000008000FFFF (cc=1)
+xilf 000000007FFFFFFF ^ 000000000000FFFF = 000000007FFF0000 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 000000000000FFFF = AAAAAAAAAAAA5555 (cc=1)
+xilf 8000000000000000 ^ 000000000000FFFF = 800000000000FFFF (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 000000000000FFFF = FFFFFFFFFFFF0000 (cc=1)
+xilf 5555555555555555 ^ 000000000000FFFF = 555555555555AAAA (cc=1)
+xilf 0000000000000000 ^ 0000000000005555 = 0000000000005555 (cc=1)
+xilf 0000000000000001 ^ 0000000000005555 = 0000000000005554 (cc=1)
+xilf 000000000000FFFF ^ 0000000000005555 = 000000000000AAAA (cc=1)
+xilf 0000000000007FFF ^ 0000000000005555 = 0000000000002AAA (cc=1)
+xilf 0000000000008000 ^ 0000000000005555 = 000000000000D555 (cc=1)
+xilf 00000000FFFFFFFF ^ 0000000000005555 = 00000000FFFFAAAA (cc=1)
+xilf 0000000080000000 ^ 0000000000005555 = 0000000080005555 (cc=1)
+xilf 000000007FFFFFFF ^ 0000000000005555 = 000000007FFFAAAA (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 0000000000005555 = AAAAAAAAAAAAFFFF (cc=1)
+xilf 8000000000000000 ^ 0000000000005555 = 8000000000005555 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 0000000000005555 = FFFFFFFFFFFFAAAA (cc=1)
+xilf 5555555555555555 ^ 0000000000005555 = 5555555555550000 (cc=1)
+xilf 0000000000000000 ^ 000000000000AAAA = 000000000000AAAA (cc=1)
+xilf 0000000000000001 ^ 000000000000AAAA = 000000000000AAAB (cc=1)
+xilf 000000000000FFFF ^ 000000000000AAAA = 0000000000005555 (cc=1)
+xilf 0000000000007FFF ^ 000000000000AAAA = 000000000000D555 (cc=1)
+xilf 0000000000008000 ^ 000000000000AAAA = 0000000000002AAA (cc=1)
+xilf 00000000FFFFFFFF ^ 000000000000AAAA = 00000000FFFF5555 (cc=1)
+xilf 0000000080000000 ^ 000000000000AAAA = 000000008000AAAA (cc=1)
+xilf 000000007FFFFFFF ^ 000000000000AAAA = 000000007FFF5555 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 000000000000AAAA = AAAAAAAAAAAA0000 (cc=1)
+xilf 8000000000000000 ^ 000000000000AAAA = 800000000000AAAA (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 000000000000AAAA = FFFFFFFFFFFF5555 (cc=1)
+xilf 5555555555555555 ^ 000000000000AAAA = 555555555555FFFF (cc=1)
+xilf 0000000000000000 ^ 00000000FFFF0000 = 00000000FFFF0000 (cc=1)
+xilf 0000000000000001 ^ 00000000FFFF0000 = 00000000FFFF0001 (cc=1)
+xilf 000000000000FFFF ^ 00000000FFFF0000 = 00000000FFFFFFFF (cc=1)
+xilf 0000000000007FFF ^ 00000000FFFF0000 = 00000000FFFF7FFF (cc=1)
+xilf 0000000000008000 ^ 00000000FFFF0000 = 00000000FFFF8000 (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000FFFF0000 = 000000000000FFFF (cc=1)
+xilf 0000000080000000 ^ 00000000FFFF0000 = 000000007FFF0000 (cc=1)
+xilf 000000007FFFFFFF ^ 00000000FFFF0000 = 000000008000FFFF (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000FFFF0000 = AAAAAAAA5555AAAA (cc=1)
+xilf 8000000000000000 ^ 00000000FFFF0000 = 80000000FFFF0000 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000FFFF0000 = FFFFFFFF0000FFFF (cc=1)
+xilf 5555555555555555 ^ 00000000FFFF0000 = 55555555AAAA5555 (cc=1)
+xilf 0000000000000000 ^ 0000000055550000 = 0000000055550000 (cc=1)
+xilf 0000000000000001 ^ 0000000055550000 = 0000000055550001 (cc=1)
+xilf 000000000000FFFF ^ 0000000055550000 = 000000005555FFFF (cc=1)
+xilf 0000000000007FFF ^ 0000000055550000 = 0000000055557FFF (cc=1)
+xilf 0000000000008000 ^ 0000000055550000 = 0000000055558000 (cc=1)
+xilf 00000000FFFFFFFF ^ 0000000055550000 = 00000000AAAAFFFF (cc=1)
+xilf 0000000080000000 ^ 0000000055550000 = 00000000D5550000 (cc=1)
+xilf 000000007FFFFFFF ^ 0000000055550000 = 000000002AAAFFFF (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 0000000055550000 = AAAAAAAAFFFFAAAA (cc=1)
+xilf 8000000000000000 ^ 0000000055550000 = 8000000055550000 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 0000000055550000 = FFFFFFFFAAAAFFFF (cc=1)
+xilf 5555555555555555 ^ 0000000055550000 = 5555555500005555 (cc=1)
+xilf 0000000000000000 ^ 00000000AAAA0000 = 00000000AAAA0000 (cc=1)
+xilf 0000000000000001 ^ 00000000AAAA0000 = 00000000AAAA0001 (cc=1)
+xilf 000000000000FFFF ^ 00000000AAAA0000 = 00000000AAAAFFFF (cc=1)
+xilf 0000000000007FFF ^ 00000000AAAA0000 = 00000000AAAA7FFF (cc=1)
+xilf 0000000000008000 ^ 00000000AAAA0000 = 00000000AAAA8000 (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000AAAA0000 = 000000005555FFFF (cc=1)
+xilf 0000000080000000 ^ 00000000AAAA0000 = 000000002AAA0000 (cc=1)
+xilf 000000007FFFFFFF ^ 00000000AAAA0000 = 00000000D555FFFF (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000AAAA0000 = AAAAAAAA0000AAAA (cc=1)
+xilf 8000000000000000 ^ 00000000AAAA0000 = 80000000AAAA0000 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000AAAA0000 = FFFFFFFF5555FFFF (cc=1)
+xilf 5555555555555555 ^ 00000000AAAA0000 = 55555555FFFF5555 (cc=1)
+xilf 0000000000000000 ^ 00000000FFFFFFFF = 00000000FFFFFFFF (cc=1)
+xilf 0000000000000001 ^ 00000000FFFFFFFF = 00000000FFFFFFFE (cc=1)
+xilf 000000000000FFFF ^ 00000000FFFFFFFF = 00000000FFFF0000 (cc=1)
+xilf 0000000000007FFF ^ 00000000FFFFFFFF = 00000000FFFF8000 (cc=1)
+xilf 0000000000008000 ^ 00000000FFFFFFFF = 00000000FFFF7FFF (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000FFFFFFFF = 0000000000000000 (cc=0)
+xilf 0000000080000000 ^ 00000000FFFFFFFF = 000000007FFFFFFF (cc=1)
+xilf 000000007FFFFFFF ^ 00000000FFFFFFFF = 0000000080000000 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000FFFFFFFF = AAAAAAAA55555555 (cc=1)
+xilf 8000000000000000 ^ 00000000FFFFFFFF = 80000000FFFFFFFF (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000FFFFFFFF = FFFFFFFF00000000 (cc=0)
+xilf 5555555555555555 ^ 00000000FFFFFFFF = 55555555AAAAAAAA (cc=1)
+xilf 0000000000000000 ^ 0000000055555555 = 0000000055555555 (cc=1)
+xilf 0000000000000001 ^ 0000000055555555 = 0000000055555554 (cc=1)
+xilf 000000000000FFFF ^ 0000000055555555 = 000000005555AAAA (cc=1)
+xilf 0000000000007FFF ^ 0000000055555555 = 0000000055552AAA (cc=1)
+xilf 0000000000008000 ^ 0000000055555555 = 000000005555D555 (cc=1)
+xilf 00000000FFFFFFFF ^ 0000000055555555 = 00000000AAAAAAAA (cc=1)
+xilf 0000000080000000 ^ 0000000055555555 = 00000000D5555555 (cc=1)
+xilf 000000007FFFFFFF ^ 0000000055555555 = 000000002AAAAAAA (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 0000000055555555 = AAAAAAAAFFFFFFFF (cc=1)
+xilf 8000000000000000 ^ 0000000055555555 = 8000000055555555 (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 0000000055555555 = FFFFFFFFAAAAAAAA (cc=1)
+xilf 5555555555555555 ^ 0000000055555555 = 5555555500000000 (cc=0)
+xilf 0000000000000000 ^ 00000000AAAAAAAA = 00000000AAAAAAAA (cc=1)
+xilf 0000000000000001 ^ 00000000AAAAAAAA = 00000000AAAAAAAB (cc=1)
+xilf 000000000000FFFF ^ 00000000AAAAAAAA = 00000000AAAA5555 (cc=1)
+xilf 0000000000007FFF ^ 00000000AAAAAAAA = 00000000AAAAD555 (cc=1)
+xilf 0000000000008000 ^ 00000000AAAAAAAA = 00000000AAAA2AAA (cc=1)
+xilf 00000000FFFFFFFF ^ 00000000AAAAAAAA = 0000000055555555 (cc=1)
+xilf 0000000080000000 ^ 00000000AAAAAAAA = 000000002AAAAAAA (cc=1)
+xilf 000000007FFFFFFF ^ 00000000AAAAAAAA = 00000000D5555555 (cc=1)
+xilf AAAAAAAAAAAAAAAA ^ 00000000AAAAAAAA = AAAAAAAA00000000 (cc=0)
+xilf 8000000000000000 ^ 00000000AAAAAAAA = 80000000AAAAAAAA (cc=1)
+xilf FFFFFFFFFFFFFFFF ^ 00000000AAAAAAAA = FFFFFFFF55555555 (cc=1)
+xilf 5555555555555555 ^ 00000000AAAAAAAA = 55555555FFFFFFFF (cc=1)
diff --git a/none/tests/s390x/xor_EI.vgtest b/none/tests/s390x/xor_EI.vgtest
new file mode 100644 (file)
index 0000000..27baf35
--- /dev/null
@@ -0,0 +1,2 @@
+prog: xor_EI
+prereq: test -x xor_EI
index 9db75e57820237e76597434c91f0437f88d862a7..564fb2df5a88313f0b213fc7d32a4472271d7bc2 100644 (file)
@@ -28,6 +28,7 @@ char* all_archs[] = {
    "ppc32",
    "ppc64",
    "arm",
+   "s390x",
    NULL
 };
 
@@ -47,6 +48,9 @@ static Bool go(char* arch)
    if ( 0 == strcmp( arch, "ppc64" ) ) return True;
    if ( 0 == strcmp( arch, "ppc32" ) ) return True;
 
+#elif defined(VGP_s390x_linux)
+   if ( 0 == strcmp( arch, "s390x" ) ) return True;
+
 #elif defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
    if (sizeof(void*) == 8) {
       /* CPU is in 64-bit mode */