summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2011-03-07 16:05:35 +0000
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2011-03-07 16:05:35 +0000
commitb5b87408c0c99f9f6938d8cd921e2a5f420577c4 (patch)
treeb08f27d1afb1563e48b404f64768cce9e3879e73
parent7615878d149bd002057c929e41b2c0bf6c053ebb (diff)
Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
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
-rw-r--r--Makefile.all.am6
-rw-r--r--Makefile.tool.am11
-rw-r--r--Makefile.vex.am16
-rw-r--r--README.s39036
-rw-r--r--cachegrind/Makefile.am3
-rw-r--r--cachegrind/cg-s390x.c73
-rw-r--r--cachegrind/cg_branchpred.c2
-rwxr-xr-xcachegrind/tests/filter_stderr4
-rw-r--r--callgrind/Makefile.am3
-rwxr-xr-xcallgrind/tests/filter_stderr3
-rw-r--r--configure.in59
-rw-r--r--coregrind/Makefile.am12
-rw-r--r--coregrind/launcher-linux.c7
-rw-r--r--coregrind/m_aspacemgr/aspacemgr-common.c3
-rw-r--r--coregrind/m_aspacemgr/aspacemgr-linux.c6
-rw-r--r--coregrind/m_coredump/coredump-elf.c20
-rw-r--r--coregrind/m_debugger.c70
-rw-r--r--coregrind/m_debuginfo/d3basics.c3
-rw-r--r--coregrind/m_debuginfo/debuginfo.c50
-rw-r--r--coregrind/m_debuginfo/priv_storage.h34
-rw-r--r--coregrind/m_debuginfo/readdwarf.c64
-rw-r--r--coregrind/m_debuginfo/readelf.c7
-rw-r--r--coregrind/m_debuginfo/storage.c8
-rw-r--r--coregrind/m_debuglog.c42
-rw-r--r--coregrind/m_dispatch/dispatch-s390x-linux.S397
-rw-r--r--coregrind/m_initimg/initimg-linux.c15
-rw-r--r--coregrind/m_libcassert.c16
-rw-r--r--coregrind/m_libcfile.c12
-rw-r--r--coregrind/m_libcproc.c2
-rw-r--r--coregrind/m_machine.c128
-rw-r--r--coregrind/m_main.c44
-rw-r--r--coregrind/m_redir.c3
-rw-r--r--coregrind/m_scheduler/scheduler.c7
-rw-r--r--coregrind/m_sigframe/sigframe-s390x-linux.c570
-rw-r--r--coregrind/m_signals.c40
-rw-r--r--coregrind/m_stacktrace.c79
-rw-r--r--coregrind/m_syscall.c61
-rw-r--r--coregrind/m_syswrap/priv_types_n_macros.h2
-rw-r--r--coregrind/m_syswrap/syscall-s390x-linux.S172
-rw-r--r--coregrind/m_syswrap/syswrap-generic.c5
-rw-r--r--coregrind/m_syswrap/syswrap-linux.c19
-rw-r--r--coregrind/m_syswrap/syswrap-main.c85
-rw-r--r--coregrind/m_syswrap/syswrap-s390x-linux.c1527
-rw-r--r--coregrind/m_trampoline.S34
-rw-r--r--coregrind/m_translate.c5
-rw-r--r--coregrind/m_transtab.c3
-rw-r--r--coregrind/pub_core_basics.h6
-rw-r--r--coregrind/pub_core_debuginfo.h4
-rw-r--r--coregrind/pub_core_machine.h9
-rw-r--r--coregrind/pub_core_mallocfree.h1
-rw-r--r--coregrind/pub_core_syscall.h1
-rw-r--r--coregrind/pub_core_threadstate.h2
-rw-r--r--coregrind/pub_core_trampoline.h5
-rw-r--r--coregrind/pub_core_transtab_asm.h7
-rw-r--r--drd/drd_bitmap.h2
-rw-r--r--drd/drd_load_store.c2
-rw-r--r--exp-ptrcheck/h_main.c24
-rw-r--r--exp-ptrcheck/pc_main.c4
-rwxr-xr-xexp-ptrcheck/tests/is_arch_supported6
-rw-r--r--helgrind/tests/annotate_hbefore.c19
-rw-r--r--helgrind/tests/tc07_hbl1.c13
-rw-r--r--helgrind/tests/tc08_hbl2.c13
-rw-r--r--helgrind/tests/tc11_XCHG.c5
-rw-r--r--include/Makefile.am9
-rw-r--r--include/pub_tool_basics.h4
-rw-r--r--include/pub_tool_machine.h6
-rw-r--r--include/pub_tool_vkiscnums_asm.h3
-rw-r--r--include/valgrind.h552
-rw-r--r--include/vki/vki-linux.h4
-rw-r--r--include/vki/vki-posixtypes-s390x-linux.h77
-rw-r--r--include/vki/vki-s390x-linux.h941
-rw-r--r--include/vki/vki-scnums-s390x-linux.h447
-rw-r--r--lackey/lk_main.c6
-rw-r--r--memcheck/mc_machine.c58
-rw-r--r--memcheck/mc_translate.c127
-rw-r--r--memcheck/tests/Makefile.am5
-rw-r--r--memcheck/tests/atomic_incs.c48
-rw-r--r--memcheck/tests/badjump.stderr.exp-s390x25
-rw-r--r--memcheck/tests/badjump2.stderr.exp-s390x6
-rw-r--r--memcheck/tests/linux/capget.c3
-rw-r--r--memcheck/tests/linux/capget.stderr.exp215
-rw-r--r--memcheck/tests/linux/timerfd-syscall.c5
-rw-r--r--memcheck/tests/origin5-bz2.stderr.exp-glibc212-s390x133
-rw-r--r--memcheck/tests/partiallydefinedeq.c7
-rw-r--r--memcheck/tests/partiallydefinedeq.stderr.exp320
-rw-r--r--memcheck/tests/partiallydefinedeq.stderr.exp424
-rw-r--r--memcheck/tests/sigprocmask.c1
-rw-r--r--memcheck/tests/supp_unknown.stderr.exp-s390x10
-rw-r--r--memcheck/tests/supp_unknown.supp7
-rw-r--r--none/tests/Makefile.am5
-rw-r--r--none/tests/s390x/Makefile.am48
-rw-r--r--none/tests/s390x/add.c66
-rw-r--r--none/tests/s390x/add.h123
-rw-r--r--none/tests/s390x/add.stderr.exp2
-rw-r--r--none/tests/s390x/add.stdout.exp3938
-rw-r--r--none/tests/s390x/add.vgtest1
-rw-r--r--none/tests/s390x/add_EI.c42
-rw-r--r--none/tests/s390x/add_EI.stderr.exp2
-rw-r--r--none/tests/s390x/add_EI.stdout.exp308
-rw-r--r--none/tests/s390x/add_EI.vgtest2
-rw-r--r--none/tests/s390x/add_GE.c33
-rw-r--r--none/tests/s390x/add_GE.stderr.exp2
-rw-r--r--none/tests/s390x/add_GE.stdout.exp220
-rw-r--r--none/tests/s390x/add_GE.vgtest2
-rw-r--r--none/tests/s390x/and.c79
-rw-r--r--none/tests/s390x/and.h120
-rw-r--r--none/tests/s390x/and.stderr.exp2
-rw-r--r--none/tests/s390x/and.stdout.exp1476
-rw-r--r--none/tests/s390x/and.vgtest1
-rw-r--r--none/tests/s390x/and_EI.c27
-rw-r--r--none/tests/s390x/and_EI.stderr.exp2
-rw-r--r--none/tests/s390x/and_EI.stdout.exp156
-rw-r--r--none/tests/s390x/and_EI.vgtest2
-rw-r--r--none/tests/s390x/clc.c74
-rw-r--r--none/tests/s390x/clc.stderr.exp2
-rw-r--r--none/tests/s390x/clc.stdout.exp283
-rw-r--r--none/tests/s390x/clc.vgtest1
-rw-r--r--none/tests/s390x/clcle.c74
-rw-r--r--none/tests/s390x/clcle.stderr.exp2
-rw-r--r--none/tests/s390x/clcle.stdout.exp63
-rw-r--r--none/tests/s390x/clcle.vgtest1
-rw-r--r--none/tests/s390x/cvb.c104
-rw-r--r--none/tests/s390x/cvb.stderr.exp2
-rw-r--r--none/tests/s390x/cvb.stdout.exp68
-rw-r--r--none/tests/s390x/cvb.vgtest1
-rw-r--r--none/tests/s390x/cvd.c34
-rw-r--r--none/tests/s390x/cvd.stderr.exp2
-rw-r--r--none/tests/s390x/cvd.stdout.exp10
-rw-r--r--none/tests/s390x/cvd.vgtest1
-rw-r--r--none/tests/s390x/div.c30
-rw-r--r--none/tests/s390x/div.h65
-rw-r--r--none/tests/s390x/div.stderr.exp2
-rw-r--r--none/tests/s390x/div.stdout.exp1080
-rw-r--r--none/tests/s390x/div.vgtest1
-rw-r--r--none/tests/s390x/ex_clone.c60
-rw-r--r--none/tests/s390x/ex_clone.stderr.exp2
-rw-r--r--none/tests/s390x/ex_clone.stdout.exp2
-rw-r--r--none/tests/s390x/ex_clone.vgtest1
-rw-r--r--none/tests/s390x/ex_sig.c46
-rw-r--r--none/tests/s390x/ex_sig.stderr.exp2
-rw-r--r--none/tests/s390x/ex_sig.stdout.exp1
-rw-r--r--none/tests/s390x/ex_sig.vgtest1
-rw-r--r--none/tests/s390x/filter_stderr4
-rw-r--r--none/tests/s390x/flogr.c68
-rw-r--r--none/tests/s390x/flogr.stderr.exp2
-rw-r--r--none/tests/s390x/flogr.vgtest2
-rw-r--r--none/tests/s390x/icm.c94
-rw-r--r--none/tests/s390x/icm.stderr.exp2
-rw-r--r--none/tests/s390x/icm.stdout.exp1
-rw-r--r--none/tests/s390x/icm.vgtest1
-rw-r--r--none/tests/s390x/insert.c65
-rw-r--r--none/tests/s390x/insert.h62
-rw-r--r--none/tests/s390x/insert.stderr.exp2
-rw-r--r--none/tests/s390x/insert.stdout.exp744
-rw-r--r--none/tests/s390x/insert.vgtest1
-rw-r--r--none/tests/s390x/insert_EI.c38
-rw-r--r--none/tests/s390x/insert_EI.stderr.exp2
-rw-r--r--none/tests/s390x/insert_EI.stdout.exp312
-rw-r--r--none/tests/s390x/insert_EI.vgtest2
-rw-r--r--none/tests/s390x/lam_stam.c20
-rw-r--r--none/tests/s390x/lam_stam.stderr.exp2
-rw-r--r--none/tests/s390x/lam_stam.stdout.exp4
-rw-r--r--none/tests/s390x/lam_stam.vgtest1
-rw-r--r--none/tests/s390x/lpr.c95
-rw-r--r--none/tests/s390x/lpr.stderr.exp2
-rw-r--r--none/tests/s390x/lpr.stdout.exp27
-rw-r--r--none/tests/s390x/lpr.vgtest1
-rw-r--r--none/tests/s390x/mul.c53
-rw-r--r--none/tests/s390x/mul.h92
-rw-r--r--none/tests/s390x/mul.stderr.exp2
-rw-r--r--none/tests/s390x/mul.stdout.exp2244
-rw-r--r--none/tests/s390x/mul.vgtest1
-rw-r--r--none/tests/s390x/mul_GE.c50
-rw-r--r--none/tests/s390x/mul_GE.stderr.exp2
-rw-r--r--none/tests/s390x/mul_GE.stdout.exp484
-rw-r--r--none/tests/s390x/mul_GE.vgtest2
-rw-r--r--none/tests/s390x/mvst.c51
-rw-r--r--none/tests/s390x/mvst.stderr.exp2
-rw-r--r--none/tests/s390x/mvst.stdout.exp7
-rw-r--r--none/tests/s390x/mvst.vgtest1
-rw-r--r--none/tests/s390x/or.c79
-rw-r--r--none/tests/s390x/or.h120
-rw-r--r--none/tests/s390x/or.stderr.exp2
-rw-r--r--none/tests/s390x/or.stdout.exp1476
-rw-r--r--none/tests/s390x/or.vgtest1
-rw-r--r--none/tests/s390x/or_EI.c40
-rw-r--r--none/tests/s390x/or_EI.stderr.exp2
-rw-r--r--none/tests/s390x/or_EI.stdout.exp312
-rw-r--r--none/tests/s390x/or_EI.vgtest2
-rw-r--r--none/tests/s390x/srst.c93
-rw-r--r--none/tests/s390x/srst.stderr.exp2
-rw-r--r--none/tests/s390x/srst.stdout.exp11
-rw-r--r--none/tests/s390x/srst.vgtest1
-rw-r--r--none/tests/s390x/sub.c51
-rw-r--r--none/tests/s390x/sub.h92
-rw-r--r--none/tests/s390x/sub.stderr.exp2
-rw-r--r--none/tests/s390x/sub.stdout.exp3850
-rw-r--r--none/tests/s390x/sub.vgtest1
-rw-r--r--none/tests/s390x/sub_EI.c28
-rw-r--r--none/tests/s390x/sub_EI.stderr.exp2
-rw-r--r--none/tests/s390x/sub_EI.stdout.exp154
-rw-r--r--none/tests/s390x/sub_EI.vgtest2
-rw-r--r--none/tests/s390x/tcxb.c95
-rw-r--r--none/tests/s390x/tcxb.stderr.exp2
-rw-r--r--none/tests/s390x/tcxb.stdout.exp64
-rw-r--r--none/tests/s390x/tcxb.vgtest1
-rw-r--r--none/tests/s390x/test.h30
-rw-r--r--none/tests/s390x/xc.c102
-rw-r--r--none/tests/s390x/xc.stderr.exp2
-rw-r--r--none/tests/s390x/xc.stdout.exp18
-rw-r--r--none/tests/s390x/xc.vgtest1
-rw-r--r--none/tests/s390x/xor.c51
-rw-r--r--none/tests/s390x/xor.h120
-rw-r--r--none/tests/s390x/xor.stderr.exp2
-rw-r--r--none/tests/s390x/xor.stdout.exp1140
-rw-r--r--none/tests/s390x/xor.vgtest1
-rw-r--r--none/tests/s390x/xor_EI.c41
-rw-r--r--none/tests/s390x/xor_EI.stderr.exp2
-rw-r--r--none/tests/s390x/xor_EI.stdout.exp312
-rw-r--r--none/tests/s390x/xor_EI.vgtest2
-rw-r--r--tests/arch_test.c4
221 files changed, 27903 insertions, 63 deletions
diff --git a/Makefile.all.am b/Makefile.all.am
index 789e2a76..1b09e30b 100644
--- a/Makefile.all.am
+++ b/Makefile.all.am
@@ -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@
diff --git a/Makefile.tool.am b/Makefile.tool.am
index 6ac08cfb..77f8214c 100644
--- a/Makefile.tool.am
+++ b/Makefile.tool.am
@@ -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
#----------------------------------------------------------------------------
diff --git a/Makefile.vex.am b/Makefile.vex.am
index b84ba4e7..26b02788 100644
--- a/Makefile.vex.am
+++ b/Makefile.vex.am
@@ -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
index 00000000..6a91a5b9
--- /dev/null
+++ b/README.s390
@@ -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
diff --git a/cachegrind/Makefile.am b/cachegrind/Makefile.am
index 81680813..12636537 100644
--- a/cachegrind/Makefile.am
+++ b/cachegrind/Makefile.am
@@ -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
index 00000000..905a15f5
--- /dev/null
+++ b/cachegrind/cg-s390x.c
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/cachegrind/cg_branchpred.c b/cachegrind/cg_branchpred.c
index 4eb6982a..9bd6b2ee 100644
--- a/cachegrind/cg_branchpred.c
+++ b/cachegrind/cg_branchpred.c
@@ -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
diff --git a/cachegrind/tests/filter_stderr b/cachegrind/tests/filter_stderr
index 9209dd57..46340c93 100755
--- a/cachegrind/tests/filter_stderr
+++ b/cachegrind/tests/filter_stderr
@@ -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"
+
diff --git a/callgrind/Makefile.am b/callgrind/Makefile.am
index 74f3597a..86e93133 100644
--- a/callgrind/Makefile.am
+++ b/callgrind/Makefile.am
@@ -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
diff --git a/callgrind/tests/filter_stderr b/callgrind/tests/filter_stderr
index 3114b472..c791b649 100755
--- a/callgrind/tests/filter_stderr
+++ b/callgrind/tests/filter_stderr
@@ -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"
diff --git a/configure.in b/configure.in
index 3793e1b6..49488f41 100644
--- a/configure.in
+++ b/configure.in
@@ -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
diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
index d9d1bca7..5b50c4e1 100644
--- a/coregrind/Makefile.am
+++ b/coregrind/Makefile.am
@@ -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 \
diff --git a/coregrind/launcher-linux.c b/coregrind/launcher-linux.c
index e7c9c7f7..e70152dc 100644
--- a/coregrind/launcher-linux.c
+++ b/coregrind/launcher-linux.c
@@ -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);
diff --git a/coregrind/m_aspacemgr/aspacemgr-common.c b/coregrind/m_aspacemgr/aspacemgr-common.c
index b7a51d6e..1d917df3 100644
--- a/coregrind/m_aspacemgr/aspacemgr-common.c
+++ b/coregrind/m_aspacemgr/aspacemgr-common.c
@@ -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)
diff --git a/coregrind/m_aspacemgr/aspacemgr-linux.c b/coregrind/m_aspacemgr/aspacemgr-linux.c
index 8ed8b840..cc092cec 100644
--- a/coregrind/m_aspacemgr/aspacemgr-linux.c
+++ b/coregrind/m_aspacemgr/aspacemgr-linux.c
@@ -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;
diff --git a/coregrind/m_coredump/coredump-elf.c b/coregrind/m_coredump/coredump-elf.c
index c47562ed..ef27bb5a 100644
--- a/coregrind/m_coredump/coredump-elf.c
+++ b/coregrind/m_coredump/coredump-elf.c
@@ -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
diff --git a/coregrind/m_debugger.c b/coregrind/m_debugger.c
index eaf80d18..0638755c 100644
--- a/coregrind/m_debugger.c
+++ b/coregrind/m_debugger.c
@@ -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
diff --git a/coregrind/m_debuginfo/d3basics.c b/coregrind/m_debuginfo/d3basics.c
index e6de809e..956fc2f1 100644
--- a/coregrind/m_debuginfo/d3basics.c
+++ b/coregrind/m_debuginfo/d3basics.c
@@ -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
diff --git a/coregrind/m_debuginfo/debuginfo.c b/coregrind/m_debuginfo/debuginfo.c
index 90f1bdf9..e59b2286 100644
--- a/coregrind/m_debuginfo/debuginfo.c
+++ b/coregrind/m_debuginfo/debuginfo.c
@@ -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"
diff --git a/coregrind/m_debuginfo/priv_storage.h b/coregrind/m_debuginfo/priv_storage.h
index e2725296..9abff6d3 100644
--- a/coregrind/m_debuginfo/priv_storage.h
+++ b/coregrind/m_debuginfo/priv_storage.h
@@ -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;
diff --git a/coregrind/m_debuginfo/readdwarf.c b/coregrind/m_debuginfo/readdwarf.c
index 24829b69..5f1d2cea 100644
--- a/coregrind/m_debuginfo/readdwarf.c
+++ b/coregrind/m_debuginfo/readdwarf.c
@@ -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"
diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
index 7cf8ceb0..ea428823 100644
--- a/coregrind/m_debuginfo/readelf.c
+++ b/coregrind/m_debuginfo/readelf.c
@@ -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 );
diff --git a/coregrind/m_debuginfo/storage.c b/coregrind/m_debuginfo/storage.c
index 52aec793..eda421bf 100644
--- a/coregrind/m_debuginfo/storage.c
+++ b/coregrind/m_debuginfo/storage.c
@@ -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
diff --git a/coregrind/m_debuglog.c b/coregrind/m_debuglog.c
index 473771b1..5ec7a90f 100644
--- a/coregrind/m_debuglog.c
+++ b/coregrind/m_debuglog.c
@@ -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
index 00000000..4b9a8002
--- /dev/null
+++ b/coregrind/m_dispatch/dispatch-s390x-linux.S
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
index ad7dedd2..14532fbf 100644
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -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
diff --git a/coregrind/m_libcassert.c b/coregrind/m_libcassert.c
index 731864ff..63e3f1cd 100644
--- a/coregrind/m_libcassert.c
+++ b/coregrind/m_libcassert.c
@@ -135,6 +135,22 @@
(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
diff --git a/coregrind/m_libcfile.c b/coregrind/m_libcfile.c
index 9c1847be..8c1dbc99 100644
--- a/coregrind/m_libcfile.c
+++ b/coregrind/m_libcfile.c
@@ -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;
diff --git a/coregrind/m_libcproc.c b/coregrind/m_libcproc.c
index 61441d7d..e01f6129 100644
--- a/coregrind/m_libcproc.c
+++ b/coregrind/m_libcproc.c
@@ -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))
diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c
index 8dc3e17d..d832d307 100644
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
@@ -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)
diff --git a/coregrind/m_main.c b/coregrind/m_main.c
index d5e762dc..acfcdda7 100644
--- a/coregrind/m_main.c
+++ b/coregrind/m_main.c
@@ -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"
diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
index db7131f9..065b61aa 100644
--- a/coregrind/m_redir.c
+++ b/coregrind/m_redir.c
@@ -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
diff --git a/coregrind/m_scheduler/scheduler.c b/coregrind/m_scheduler/scheduler.c
index c95c6a30..fb25c9be 100644
--- a/coregrind/m_scheduler/scheduler.c
+++ b/coregrind/m_scheduler/scheduler.c
@@ -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
index 00000000..e5e38016
--- /dev/null
+++ b/coregrind/m_sigframe/sigframe-s390x-linux.c
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/coregrind/m_signals.c b/coregrind/m_signals.c
index a3b7690a..41717620 100644
--- a/coregrind/m_signals.c
+++ b/coregrind/m_signals.c
@@ -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),
diff --git a/coregrind/m_stacktrace.c b/coregrind/m_stacktrace.c
index 489f6d71..707b470d 100644
--- a/coregrind/m_stacktrace.c
+++ b/coregrind/m_stacktrace.c
@@ -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 ---*/
diff --git a/coregrind/m_syscall.c b/coregrind/m_syscall.c
index 531d3e0e..296a74da 100644
--- a/coregrind/m_syscall.c
+++ b/coregrind/m_syscall.c
@@ -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
diff --git a/coregrind/m_syswrap/priv_types_n_macros.h b/coregrind/m_syswrap/priv_types_n_macros.h
index a1455942..0887b9c0 100644
--- a/coregrind/m_syswrap/priv_types_n_macros.h
+++ b/coregrind/m_syswrap/priv_types_n_macros.h
@@ -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
index 00000000..72cf7403
--- /dev/null
+++ b/coregrind/m_syswrap/syscall-s390x-linux.S
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c
index 1fbd1fe9..9f4025c4 100644
--- a/coregrind/m_syswrap/syswrap-generic.c
+++ b/coregrind/m_syswrap/syswrap-generic.c
@@ -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
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
index b0e5ca3e..35f8ee63 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -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;
diff --git a/coregrind/m_syswrap/syswrap-main.c b/coregrind/m_syswrap/syswrap-main.c
index 21f0f88d..4d33eb8d 100644
--- a/coregrind/m_syswrap/syswrap-main.c
+++ b/coregrind/m_syswrap/syswrap-main.c
@@ -60,14 +60,20 @@
/* 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)
@@ -160,6 +166,9 @@
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
index 00000000..eb2f2904
--- /dev/null
+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/coregrind/m_trampoline.S b/coregrind/m_trampoline.S
index 07d76898..0fdcf9e8 100644
--- a/coregrind/m_trampoline.S
+++ b/coregrind/m_trampoline.S
@@ -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 */
diff --git a/coregrind/m_translate.c b/coregrind/m_translate.c
index 4cdf220b..864f38d3 100644
--- a/coregrind/m_translate.c
+++ b/coregrind/m_translate.c
@@ -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"
diff --git a/coregrind/m_transtab.c b/coregrind/m_transtab.c
index ba6940f1..f08afa93 100644
--- a/coregrind/m_transtab.c
+++ b/coregrind/m_transtab.c
@@ -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;
diff --git a/coregrind/pub_core_basics.h b/coregrind/pub_core_basics.h
index 35aba2f2..0718c82c 100644
--- a/coregrind/pub_core_basics.h
+++ b/coregrind/pub_core_basics.h
@@ -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;
diff --git a/coregrind/pub_core_debuginfo.h b/coregrind/pub_core_debuginfo.h
index facca244..330970ae 100644
--- a/coregrind/pub_core_debuginfo.h
+++ b/coregrind/pub_core_debuginfo.h
@@ -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
diff --git a/coregrind/pub_core_machine.h b/coregrind/pub_core_machine.h
index ea32dc83..2043a52d 100644
--- a/coregrind/pub_core_machine.h
+++ b/coregrind/pub_core_machine.h
@@ -75,6 +75,11 @@
# 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
@@ -99,6 +104,10 @@
# 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
diff --git a/coregrind/pub_core_mallocfree.h b/coregrind/pub_core_mallocfree.h
index 4eb11f0c..7c3cbb13 100644
--- a/coregrind/pub_core_mallocfree.h
+++ b/coregrind/pub_core_mallocfree.h
@@ -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) || \
diff --git a/coregrind/pub_core_syscall.h b/coregrind/pub_core_syscall.h
index 9f9c068d..7a79905d 100644
--- a/coregrind/pub_core_syscall.h
+++ b/coregrind/pub_core_syscall.h
@@ -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 );
diff --git a/coregrind/pub_core_threadstate.h b/coregrind/pub_core_threadstate.h
index 3e63da14..a784d0e1 100644
--- a/coregrind/pub_core_threadstate.h
+++ b/coregrind/pub_core_threadstate.h
@@ -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
diff --git a/coregrind/pub_core_trampoline.h b/coregrind/pub_core_trampoline.h
index fff4b168..5eafcbbf 100644
--- a/coregrind/pub_core_trampoline.h
+++ b/coregrind/pub_core_trampoline.h
@@ -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
/*--------------------------------------------------------------------*/
diff --git a/coregrind/pub_core_transtab_asm.h b/coregrind/pub_core_transtab_asm.h
index d3292f19..76e48db1 100644
--- a/coregrind/pub_core_transtab_asm.h
+++ b/coregrind/pub_core_transtab_asm.h
@@ -43,7 +43,10 @@
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
diff --git a/drd/drd_bitmap.h b/drd/drd_bitmap.h
index 57d94239..5450ae5e 100644
--- a/drd/drd_bitmap.h
+++ b/drd/drd_bitmap.h
@@ -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.
diff --git a/drd/drd_load_store.c b/drd/drd_load_store.c
index 74ef2305..9820da0c 100644
--- a/drd/drd_load_store.c
+++ b/drd/drd_load_store.c
@@ -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
diff --git a/exp-ptrcheck/h_main.c b/exp-ptrcheck/h_main.c
index 66307fe0..6873a81c 100644
--- a/exp-ptrcheck/h_main.c
+++ b/exp-ptrcheck/h_main.c
@@ -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
diff --git a/exp-ptrcheck/pc_main.c b/exp-ptrcheck/pc_main.c
index 782cfd43..b1943b9e 100644
--- a/exp-ptrcheck/pc_main.c
+++ b/exp-ptrcheck/pc_main.c
@@ -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
diff --git a/exp-ptrcheck/tests/is_arch_supported b/exp-ptrcheck/tests/is_arch_supported
index ca9bd16d..bdf2e7f8 100755
--- a/exp-ptrcheck/tests/is_arch_supported
+++ b/exp-ptrcheck/tests/is_arch_supported
@@ -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
diff --git a/helgrind/tests/annotate_hbefore.c b/helgrind/tests/annotate_hbefore.c
index 704e4aef..82e32f00 100644
--- a/helgrind/tests/annotate_hbefore.c
+++ b/helgrind/tests/annotate_hbefore.c
@@ -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 )
diff --git a/helgrind/tests/tc07_hbl1.c b/helgrind/tests/tc07_hbl1.c
index d48f7bb9..64a5486c 100644
--- a/helgrind/tests/tc07_hbl1.c
+++ b/helgrind/tests/tc07_hbl1.c
@@ -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) \
@@ -65,6 +68,16 @@
: /*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
diff --git a/helgrind/tests/tc08_hbl2.c b/helgrind/tests/tc08_hbl2.c
index 0ca3f3ae..36829d55 100644
--- a/helgrind/tests/tc08_hbl2.c
+++ b/helgrind/tests/tc08_hbl2.c
@@ -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
@@ -82,6 +85,16 @@
: /*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
diff --git a/helgrind/tests/tc11_XCHG.c b/helgrind/tests/tc11_XCHG.c
index 54cb494a..584d896a 100644
--- a/helgrind/tests/tc11_XCHG.c
+++ b/helgrind/tests/tc11_XCHG.c
@@ -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 { \
diff --git a/include/Makefile.am b/include/Makefile.am
index 33d08579..3a1adc06 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -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 = \
diff --git a/include/pub_tool_basics.h b/include/pub_tool_basics.h
index 6e92ff21..d467c0e8 100644
--- a/include/pub_tool_basics.h
+++ b/include/pub_tool_basics.h
@@ -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
diff --git a/include/pub_tool_machine.h b/include/pub_tool_machine.h
index 35b3c491..062c2eaa 100644
--- a/include/pub_tool_machine.h
+++ b/include/pub_tool_machine.h
@@ -81,6 +81,12 @@
# 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
diff --git a/include/pub_tool_vkiscnums_asm.h b/include/pub_tool_vkiscnums_asm.h
index bd8d4977..e31347c0 100644
--- a/include/pub_tool_vkiscnums_asm.h
+++ b/include/pub_tool_vkiscnums_asm.h
@@ -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"
diff --git a/include/valgrind.h b/include/valgrind.h
index 509cc4bc..4843a753 100644
--- a/include/valgrind.h
+++ b/include/valgrind.h
@@ -118,6 +118,8 @@
#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
@@ -139,6 +141,8 @@
# 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
diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h
index 537f0e09..cfd47680 100644
--- a/include/vki/vki-linux.h
+++ b/include/vki/vki-linux.h
@@ -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
index 00000000..1dc753e9
--- /dev/null
+++ b/include/vki/vki-posixtypes-s390x-linux.h
@@ -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
index 00000000..7d554fde
--- /dev/null
+++ b/include/vki/vki-s390x-linux.h
@@ -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
index 00000000..94915786
--- /dev/null
+++ b/include/vki/vki-scnums-s390x-linux.h
@@ -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 ---*/
+/*--------------------------------------------------------------------*/
diff --git a/lackey/lk_main.c b/lackey/lk_main.c
index 35e3599f..e5786041 100644
--- a/lackey/lk_main.c
+++ b/lackey/lk_main.c
@@ -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);
}
}
diff --git a/memcheck/mc_machine.c b/memcheck/mc_machine.c
index 030c8454..866cea9d 100644
--- a/memcheck/mc_machine.c
+++ b/memcheck/mc_machine.c
@@ -65,6 +65,11 @@
# 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
diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c
index 50f2d49c..e5bfb21b 100644
--- a/memcheck/mc_translate.c
+++ b/memcheck/mc_translate.c
@@ -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");
}
@@ -438,6 +441,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);
diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am
index 1b7ea2c8..1429d9ec 100644
--- a/memcheck/tests/Makefile.am
+++ b/memcheck/tests/Makefile.am
@@ -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
diff --git a/memcheck/tests/atomic_incs.c b/memcheck/tests/atomic_incs.c
index 197902c9..97e16640 100644
--- a/memcheck/tests/atomic_incs.c
+++ b/memcheck/tests/atomic_incs.c
@@ -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
index 00000000..a6be684f
--- /dev/null
+++ b/memcheck/tests/badjump.stderr.exp-s390x
@@ -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
index 00000000..1b87d273
--- /dev/null
+++ b/memcheck/tests/badjump2.stderr.exp-s390x
@@ -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
diff --git a/memcheck/tests/linux/capget.c b/memcheck/tests/linux/capget.c
index 31d81956..ce9b18b0 100644
--- a/memcheck/tests/linux/capget.c
+++ b/memcheck/tests/linux/capget.c
@@ -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
index 00000000..7aef7a2e
--- /dev/null
+++ b/memcheck/tests/linux/capget.stderr.exp2
@@ -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)
diff --git a/memcheck/tests/linux/timerfd-syscall.c b/memcheck/tests/linux/timerfd-syscall.c
index 3a7862f6..49be20e7 100644
--- a/memcheck/tests/linux/timerfd-syscall.c
+++ b/memcheck/tests/linux/timerfd-syscall.c
@@ -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
index 00000000..ae0af5d4
--- /dev/null
+++ b/memcheck/tests/origin5-bz2.stderr.exp-glibc212-s390x
@@ -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)
+
diff --git a/memcheck/tests/partiallydefinedeq.c b/memcheck/tests/partiallydefinedeq.c
index 7d63126c..79fd6985 100644
--- a/memcheck/tests/partiallydefinedeq.c
+++ b/memcheck/tests/partiallydefinedeq.c
@@ -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
index 00000000..227c060c
--- /dev/null
+++ b/memcheck/tests/partiallydefinedeq.stderr.exp3
@@ -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
index 00000000..adfe8a92
--- /dev/null
+++ b/memcheck/tests/partiallydefinedeq.stderr.exp4
@@ -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)
diff --git a/memcheck/tests/sigprocmask.c b/memcheck/tests/sigprocmask.c
index 05eb87a5..5747dcb2 100644
--- a/memcheck/tests/sigprocmask.c
+++ b/memcheck/tests/sigprocmask.c
@@ -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
index 00000000..5adcfa64
--- /dev/null
+++ b/memcheck/tests/supp_unknown.stderr.exp-s390x
@@ -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 ....
diff --git a/memcheck/tests/supp_unknown.supp b/memcheck/tests/supp_unknown.supp
index f702e90d..50ef4259 100644
--- a/memcheck/tests/supp_unknown.supp
+++ b/memcheck/tests/supp_unknown.supp
@@ -6,3 +6,10 @@
fun:(below main)
}
+{
+ <insert a suppression name here>
+ Memcheck:Jump
+ obj:*
+ fun:main
+}
+
diff --git a/none/tests/Makefile.am b/none/tests/Makefile.am
index d2d71866..afe71872 100644
--- a/none/tests/Makefile.am
+++ b/none/tests/Makefile.am
@@ -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
index 00000000..6aee61b3
--- /dev/null
+++ b/none/tests/s390x/Makefile.am
@@ -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
index 00000000..01e87a35
--- /dev/null
+++ b/none/tests/s390x/add.c
@@ -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
index 00000000..d8ecc0da
--- /dev/null
+++ b/none/tests/s390x/add.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/add.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/add.stdout.exp b/none/tests/s390x/add.stdout.exp
new file mode 100644
index 00000000..5b65a732
--- /dev/null
+++ b/none/tests/s390x/add.stdout.exp
@@ -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
index 00000000..e146339a
--- /dev/null
+++ b/none/tests/s390x/add.vgtest
@@ -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
index 00000000..75d1996a
--- /dev/null
+++ b/none/tests/s390x/add_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/add_EI.stderr.exp
@@ -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
index 00000000..0a0bdd42
--- /dev/null
+++ b/none/tests/s390x/add_EI.stdout.exp
@@ -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
index 00000000..26b4491f
--- /dev/null
+++ b/none/tests/s390x/add_EI.vgtest
@@ -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
index 00000000..a1326fcd
--- /dev/null
+++ b/none/tests/s390x/add_GE.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/add_GE.stderr.exp
@@ -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
index 00000000..833bc09e
--- /dev/null
+++ b/none/tests/s390x/add_GE.stdout.exp
@@ -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
index 00000000..836b526a
--- /dev/null
+++ b/none/tests/s390x/add_GE.vgtest
@@ -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
index 00000000..2f904cc8
--- /dev/null
+++ b/none/tests/s390x/and.c
@@ -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
index 00000000..86a131bc
--- /dev/null
+++ b/none/tests/s390x/and.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/and.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/and.stdout.exp b/none/tests/s390x/and.stdout.exp
new file mode 100644
index 00000000..e4f48707
--- /dev/null
+++ b/none/tests/s390x/and.stdout.exp
@@ -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
index 00000000..8582c6a5
--- /dev/null
+++ b/none/tests/s390x/and.vgtest
@@ -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
index 00000000..cb980006
--- /dev/null
+++ b/none/tests/s390x/and_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/and_EI.stderr.exp
@@ -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
index 00000000..24fb0c20
--- /dev/null
+++ b/none/tests/s390x/and_EI.stdout.exp
@@ -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
index 00000000..0f2a829d
--- /dev/null
+++ b/none/tests/s390x/and_EI.vgtest
@@ -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
index 00000000..e3e8301f
--- /dev/null
+++ b/none/tests/s390x/clc.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/clc.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/clc.stdout.exp b/none/tests/s390x/clc.stdout.exp
new file mode 100644
index 00000000..fb115d82
--- /dev/null
+++ b/none/tests/s390x/clc.stdout.exp
@@ -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
index 00000000..bc2cea40
--- /dev/null
+++ b/none/tests/s390x/clc.vgtest
@@ -0,0 +1 @@
+prog: clc
diff --git a/none/tests/s390x/clcle.c b/none/tests/s390x/clcle.c
new file mode 100644
index 00000000..58a1f30e
--- /dev/null
+++ b/none/tests/s390x/clcle.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/clcle.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/clcle.stdout.exp b/none/tests/s390x/clcle.stdout.exp
new file mode 100644
index 00000000..92222636
--- /dev/null
+++ b/none/tests/s390x/clcle.stdout.exp
@@ -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
index 00000000..28548777
--- /dev/null
+++ b/none/tests/s390x/clcle.vgtest
@@ -0,0 +1 @@
+prog: clcle
diff --git a/none/tests/s390x/cvb.c b/none/tests/s390x/cvb.c
new file mode 100644
index 00000000..ce5f9e40
--- /dev/null
+++ b/none/tests/s390x/cvb.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/cvb.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/cvb.stdout.exp b/none/tests/s390x/cvb.stdout.exp
new file mode 100644
index 00000000..35d6a600
--- /dev/null
+++ b/none/tests/s390x/cvb.stdout.exp
@@ -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
index 00000000..c68fccb2
--- /dev/null
+++ b/none/tests/s390x/cvb.vgtest
@@ -0,0 +1 @@
+prog: cvb
diff --git a/none/tests/s390x/cvd.c b/none/tests/s390x/cvd.c
new file mode 100644
index 00000000..3fe8f487
--- /dev/null
+++ b/none/tests/s390x/cvd.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/cvd.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/cvd.stdout.exp b/none/tests/s390x/cvd.stdout.exp
new file mode 100644
index 00000000..93bfe83c
--- /dev/null
+++ b/none/tests/s390x/cvd.stdout.exp
@@ -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
index 00000000..b63146fe
--- /dev/null
+++ b/none/tests/s390x/cvd.vgtest
@@ -0,0 +1 @@
+prog: cvd
diff --git a/none/tests/s390x/div.c b/none/tests/s390x/div.c
new file mode 100644
index 00000000..102b8ffa
--- /dev/null
+++ b/none/tests/s390x/div.c
@@ -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
index 00000000..52609dfe
--- /dev/null
+++ b/none/tests/s390x/div.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/div.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/div.stdout.exp b/none/tests/s390x/div.stdout.exp
new file mode 100644
index 00000000..515b0dba
--- /dev/null
+++ b/none/tests/s390x/div.stdout.exp
@@ -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
index 00000000..84492b42
--- /dev/null
+++ b/none/tests/s390x/div.vgtest
@@ -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
index 00000000..bd7e7f0f
--- /dev/null
+++ b/none/tests/s390x/ex_clone.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/ex_clone.stderr.exp
@@ -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
index 00000000..d8b0a7e7
--- /dev/null
+++ b/none/tests/s390x/ex_clone.stdout.exp
@@ -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
index 00000000..4d3ee357
--- /dev/null
+++ b/none/tests/s390x/ex_clone.vgtest
@@ -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
index 00000000..9ff33fcd
--- /dev/null
+++ b/none/tests/s390x/ex_sig.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/ex_sig.stderr.exp
@@ -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
index 00000000..e1626d03
--- /dev/null
+++ b/none/tests/s390x/ex_sig.stdout.exp
@@ -0,0 +1 @@
+aaaaaaaaaaaaaaaaaaaa
diff --git a/none/tests/s390x/ex_sig.vgtest b/none/tests/s390x/ex_sig.vgtest
new file mode 100644
index 00000000..436860ef
--- /dev/null
+++ b/none/tests/s390x/ex_sig.vgtest
@@ -0,0 +1 @@
+prog: ex_sig
diff --git a/none/tests/s390x/filter_stderr b/none/tests/s390x/filter_stderr
new file mode 100644
index 00000000..616ce05e
--- /dev/null
+++ b/none/tests/s390x/filter_stderr
@@ -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
index 00000000..63ed0362
--- /dev/null
+++ b/none/tests/s390x/flogr.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/flogr.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/flogr.vgtest b/none/tests/s390x/flogr.vgtest
new file mode 100644
index 00000000..c5a32db6
--- /dev/null
+++ b/none/tests/s390x/flogr.vgtest
@@ -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
index 00000000..c971e4cb
--- /dev/null
+++ b/none/tests/s390x/icm.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/icm.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/icm.stdout.exp b/none/tests/s390x/icm.stdout.exp
new file mode 100644
index 00000000..a27369cd
--- /dev/null
+++ b/none/tests/s390x/icm.stdout.exp
@@ -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
index 00000000..b0709b9d
--- /dev/null
+++ b/none/tests/s390x/icm.vgtest
@@ -0,0 +1 @@
+prog: icm
diff --git a/none/tests/s390x/insert.c b/none/tests/s390x/insert.c
new file mode 100644
index 00000000..bf9fd868
--- /dev/null
+++ b/none/tests/s390x/insert.c
@@ -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
index 00000000..0dc27d11
--- /dev/null
+++ b/none/tests/s390x/insert.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/insert.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/insert.stdout.exp b/none/tests/s390x/insert.stdout.exp
new file mode 100644
index 00000000..d49126ab
--- /dev/null
+++ b/none/tests/s390x/insert.stdout.exp
@@ -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
index 00000000..f32f4112
--- /dev/null
+++ b/none/tests/s390x/insert.vgtest
@@ -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
index 00000000..1a3d1133
--- /dev/null
+++ b/none/tests/s390x/insert_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/insert_EI.stderr.exp
@@ -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
index 00000000..34bbdd9d
--- /dev/null
+++ b/none/tests/s390x/insert_EI.stdout.exp
@@ -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
index 00000000..31daf839
--- /dev/null
+++ b/none/tests/s390x/insert_EI.vgtest
@@ -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
index 00000000..0e7bdae1
--- /dev/null
+++ b/none/tests/s390x/lam_stam.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/lam_stam.stderr.exp
@@ -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
index 00000000..dec3dd0d
--- /dev/null
+++ b/none/tests/s390x/lam_stam.stdout.exp
@@ -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
index 00000000..79b780dc
--- /dev/null
+++ b/none/tests/s390x/lam_stam.vgtest
@@ -0,0 +1 @@
+prog: lam_stam
diff --git a/none/tests/s390x/lpr.c b/none/tests/s390x/lpr.c
new file mode 100644
index 00000000..2b03da14
--- /dev/null
+++ b/none/tests/s390x/lpr.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/lpr.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/lpr.stdout.exp b/none/tests/s390x/lpr.stdout.exp
new file mode 100644
index 00000000..e917b593
--- /dev/null
+++ b/none/tests/s390x/lpr.stdout.exp
@@ -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
index 00000000..9b2c167f
--- /dev/null
+++ b/none/tests/s390x/lpr.vgtest
@@ -0,0 +1 @@
+prog: lpr
diff --git a/none/tests/s390x/mul.c b/none/tests/s390x/mul.c
new file mode 100644
index 00000000..810bc961
--- /dev/null
+++ b/none/tests/s390x/mul.c
@@ -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
index 00000000..e306f42c
--- /dev/null
+++ b/none/tests/s390x/mul.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/mul.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/mul.stdout.exp b/none/tests/s390x/mul.stdout.exp
new file mode 100644
index 00000000..0c4a5c51
--- /dev/null
+++ b/none/tests/s390x/mul.stdout.exp
@@ -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
index 00000000..580765c8
--- /dev/null
+++ b/none/tests/s390x/mul.vgtest
@@ -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
index 00000000..bf45f15e
--- /dev/null
+++ b/none/tests/s390x/mul_GE.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/mul_GE.stderr.exp
@@ -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
index 00000000..2c0b67d4
--- /dev/null
+++ b/none/tests/s390x/mul_GE.stdout.exp
@@ -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
index 00000000..8ed84283
--- /dev/null
+++ b/none/tests/s390x/mul_GE.vgtest
@@ -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
index 00000000..ac85f12c
--- /dev/null
+++ b/none/tests/s390x/mvst.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/mvst.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/mvst.stdout.exp b/none/tests/s390x/mvst.stdout.exp
new file mode 100644
index 00000000..c654bd39
--- /dev/null
+++ b/none/tests/s390x/mvst.stdout.exp
@@ -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
index 00000000..3e83f5c4
--- /dev/null
+++ b/none/tests/s390x/mvst.vgtest
@@ -0,0 +1 @@
+prog: mvst
diff --git a/none/tests/s390x/or.c b/none/tests/s390x/or.c
new file mode 100644
index 00000000..1a54e7da
--- /dev/null
+++ b/none/tests/s390x/or.c
@@ -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
index 00000000..2f6a85e4
--- /dev/null
+++ b/none/tests/s390x/or.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/or.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/or.stdout.exp b/none/tests/s390x/or.stdout.exp
new file mode 100644
index 00000000..e8c6db36
--- /dev/null
+++ b/none/tests/s390x/or.stdout.exp
@@ -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
index 00000000..ab47cc83
--- /dev/null
+++ b/none/tests/s390x/or.vgtest
@@ -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
index 00000000..cbfa0ff2
--- /dev/null
+++ b/none/tests/s390x/or_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/or_EI.stderr.exp
@@ -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
index 00000000..31115d7e
--- /dev/null
+++ b/none/tests/s390x/or_EI.stdout.exp
@@ -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
index 00000000..f4552677
--- /dev/null
+++ b/none/tests/s390x/or_EI.vgtest
@@ -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
index 00000000..9358783d
--- /dev/null
+++ b/none/tests/s390x/srst.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/srst.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/srst.stdout.exp b/none/tests/s390x/srst.stdout.exp
new file mode 100644
index 00000000..cf250f87
--- /dev/null
+++ b/none/tests/s390x/srst.stdout.exp
@@ -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
index 00000000..1ee87526
--- /dev/null
+++ b/none/tests/s390x/srst.vgtest
@@ -0,0 +1 @@
+prog: srst
diff --git a/none/tests/s390x/sub.c b/none/tests/s390x/sub.c
new file mode 100644
index 00000000..2bc5fe3e
--- /dev/null
+++ b/none/tests/s390x/sub.c
@@ -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
index 00000000..6b3c80eb
--- /dev/null
+++ b/none/tests/s390x/sub.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/sub.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/sub.stdout.exp b/none/tests/s390x/sub.stdout.exp
new file mode 100644
index 00000000..4a797e37
--- /dev/null
+++ b/none/tests/s390x/sub.stdout.exp
@@ -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
index 00000000..1f95dce4
--- /dev/null
+++ b/none/tests/s390x/sub.vgtest
@@ -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
index 00000000..f4f152f3
--- /dev/null
+++ b/none/tests/s390x/sub_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/sub_EI.stderr.exp
@@ -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
index 00000000..8e22b510
--- /dev/null
+++ b/none/tests/s390x/sub_EI.stdout.exp
@@ -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
index 00000000..cca77207
--- /dev/null
+++ b/none/tests/s390x/sub_EI.vgtest
@@ -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
index 00000000..4ff031f8
--- /dev/null
+++ b/none/tests/s390x/tcxb.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/tcxb.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/tcxb.stdout.exp b/none/tests/s390x/tcxb.stdout.exp
new file mode 100644
index 00000000..f5bc67c5
--- /dev/null
+++ b/none/tests/s390x/tcxb.stdout.exp
@@ -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
index 00000000..fe7e9ea8
--- /dev/null
+++ b/none/tests/s390x/tcxb.vgtest
@@ -0,0 +1 @@
+prog: tcxb
diff --git a/none/tests/s390x/test.h b/none/tests/s390x/test.h
new file mode 100644
index 00000000..17a1f96c
--- /dev/null
+++ b/none/tests/s390x/test.h
@@ -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
index 00000000..9c81b59f
--- /dev/null
+++ b/none/tests/s390x/xc.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/xc.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/xc.stdout.exp b/none/tests/s390x/xc.stdout.exp
new file mode 100644
index 00000000..873fa311
--- /dev/null
+++ b/none/tests/s390x/xc.stdout.exp
@@ -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
index 00000000..964d1f39
--- /dev/null
+++ b/none/tests/s390x/xc.vgtest
@@ -0,0 +1 @@
+prog: xc
diff --git a/none/tests/s390x/xor.c b/none/tests/s390x/xor.c
new file mode 100644
index 00000000..6bfb40f1
--- /dev/null
+++ b/none/tests/s390x/xor.c
@@ -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
index 00000000..9faa39ae
--- /dev/null
+++ b/none/tests/s390x/xor.h
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/xor.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/s390x/xor.stdout.exp b/none/tests/s390x/xor.stdout.exp
new file mode 100644
index 00000000..d33a555d
--- /dev/null
+++ b/none/tests/s390x/xor.stdout.exp
@@ -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
index 00000000..d6dae373
--- /dev/null
+++ b/none/tests/s390x/xor.vgtest
@@ -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
index 00000000..eb6d9a47
--- /dev/null
+++ b/none/tests/s390x/xor_EI.c
@@ -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
index 00000000..139597f9
--- /dev/null
+++ b/none/tests/s390x/xor_EI.stderr.exp
@@ -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
index 00000000..51266919
--- /dev/null
+++ b/none/tests/s390x/xor_EI.stdout.exp
@@ -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
index 00000000..27baf358
--- /dev/null
+++ b/none/tests/s390x/xor_EI.vgtest
@@ -0,0 +1,2 @@
+prog: xor_EI
+prereq: test -x xor_EI
diff --git a/tests/arch_test.c b/tests/arch_test.c
index 9db75e57..564fb2df 100644
--- a/tests/arch_test.c
+++ b/tests/arch_test.c
@@ -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 */