From fc259b522c0f8b7bbca8e7adcd3da63330094a34 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sat, 25 Jun 2022 12:36:55 -0400 Subject: [PATCH] Remove long deprecated tilegx and tilepro ports / * MAINTAINERS: Remove tilegx and tilepro entries. * configure.ac: Remove tilegx and tilepro stanzas. * configure: Rebuilt. contrib/ * config-list.mk: Remove tilegx and tilepro entries. * gcc_update: Remove tilegx and tilepro entries. gcc/ * common/config/tilegx/tilegx-common.cc: Removed. * common/config/tilepro/tilepro-common.cc: Removed. * config.gcc: Remove tilegx and tilepro entries. * config/tilegx/constraints.md: Removed. * config/tilegx/feedback.h: Removed. * config/tilegx/linux.h: Removed. * config/tilegx/mul-tables.cc: Removed. * config/tilegx/predicates.md: Removed. * config/tilegx/sync.md: Removed. * config/tilegx/t-tilegx: Removed. * config/tilegx/tilegx-builtins.h: Removed. * config/tilegx/tilegx-c.cc: Removed. * config/tilegx/tilegx-generic.md: Removed. * config/tilegx/tilegx-modes.def: Removed. * config/tilegx/tilegx-multiply.h: Removed. * config/tilegx/tilegx-opts.h: Removed. * config/tilegx/tilegx-protos.h: Removed. * config/tilegx/tilegx.cc: Removed. * config/tilegx/tilegx.h: Removed. * config/tilegx/tilegx.md: Removed. * config/tilegx/tilegx.opt: Removed. * config/tilepro/constraints.md: Removed. * config/tilepro/feedback.h: Removed. * config/tilepro/gen-mul-tables.cc: Removed. * config/tilepro/linux.h: Removed. * config/tilepro/mul-tables.cc: Removed. * config/tilepro/predicates.md: Removed. * config/tilepro/t-tilepro: Removed. * config/tilepro/tilepro-builtins.h: Removed. * config/tilepro/tilepro-c.cc: Removed. * config/tilepro/tilepro-generic.md: Removed. * config/tilepro/tilepro-modes.def: Removed. * config/tilepro/tilepro-multiply.h: Removed. * config/tilepro/tilepro-protos.h: Removed. * config/tilepro/tilepro.cc: Removed. * config/tilepro/tilepro.h: Removed. * config/tilepro/tilepro.md: Removed. * config/tilepro/tilepro.opt: Removed. * configure.ac: Remove tilegx and tilepro entries. * configure: Rebuilt. * doc/extend.texi: Remove tilegx and tilepro entries. * doc/install.texi: Remove tilegx and tilepro entries. * doc/invoke.texi: Remove tilegx and tilepro entries. * doc/md.texi: Remove tilegx and tilepro entries. gcc/testsuite/ * gcc.dg/lower-subreg-1.c: Remove tilegx and tilepro entries. * gcc.misc-tests/linkage.exp: Remove tilegx and tilepro entries. libgcc/ * config.host: Removed tilegx and tilepro entries. * config/tilegx/sfp-machine.h: Removed. * config/tilegx/sfp-machine32.h: Removed. * config/tilegx/sfp-machine64.h: Removed. * config/tilegx/t-crtstuff: Removed. * config/tilegx/t-softfp: Removed. * config/tilegx/t-tilegx: Removed. * config/tilepro/atomic.c: Removed. * config/tilepro/atomic.h: Removed. * config/tilepro/linux-unwind.h: Removed. * config/tilepro/sfp-machine.h: Removed. * config/tilepro/softdivide.c: Removed. * config/tilepro/softmpy.S: Removed. * config/tilepro/t-crtstuff: Removed. * config/tilepro/t-tilepro: Removed. --- MAINTAINERS | 2 - configure | 5 +- configure.ac | 5 +- contrib/config-list.mk | 2 - contrib/gcc_update | 2 - gcc/common/config/tilegx/tilegx-common.cc | 58 - gcc/common/config/tilepro/tilepro-common.cc | 54 - gcc/config.gcc | 30 +- gcc/config/tilegx/constraints.md | 115 - gcc/config/tilegx/feedback.h | 14 - gcc/config/tilegx/linux.h | 83 - gcc/config/tilegx/mul-tables.cc | 27249 -------------------------- gcc/config/tilegx/predicates.md | 290 - gcc/config/tilegx/sync.md | 227 - gcc/config/tilegx/t-tilegx | 21 - gcc/config/tilegx/tilegx-builtins.h | 325 - gcc/config/tilegx/tilegx-c.cc | 55 - gcc/config/tilegx/tilegx-generic.md | 115 - gcc/config/tilegx/tilegx-modes.def | 37 - gcc/config/tilegx/tilegx-multiply.h | 78 - gcc/config/tilegx/tilegx-opts.h | 33 - gcc/config/tilegx/tilegx-protos.h | 75 - gcc/config/tilegx/tilegx.cc | 5728 ------ gcc/config/tilegx/tilegx.h | 530 - gcc/config/tilegx/tilegx.md | 5664 ------ gcc/config/tilegx/tilegx.opt | 63 - gcc/config/tilepro/constraints.md | 99 - gcc/config/tilepro/feedback.h | 14 - gcc/config/tilepro/gen-mul-tables.cc | 1369 -- gcc/config/tilepro/linux.h | 83 - gcc/config/tilepro/mul-tables.cc | 17837 ----------------- gcc/config/tilepro/predicates.md | 258 - gcc/config/tilepro/t-tilepro | 15 - gcc/config/tilepro/tilepro-builtins.h | 216 - gcc/config/tilepro/tilepro-c.cc | 54 - gcc/config/tilepro/tilepro-generic.md | 107 - gcc/config/tilepro/tilepro-modes.def | 34 - gcc/config/tilepro/tilepro-multiply.h | 82 - gcc/config/tilepro/tilepro-protos.h | 76 - gcc/config/tilepro/tilepro.cc | 5083 ----- gcc/config/tilepro/tilepro.h | 457 - gcc/config/tilepro/tilepro.md | 3816 ---- gcc/config/tilepro/tilepro.opt | 36 - gcc/configure | 29 +- gcc/configure.ac | 29 +- gcc/doc/extend.texi | 71 - gcc/doc/install.texi | 32 +- gcc/doc/invoke.texi | 66 - gcc/doc/md.texi | 148 - gcc/testsuite/gcc.dg/lower-subreg-1.c | 2 +- gcc/testsuite/gcc.misc-tests/linkage.exp | 7 - libgcc/config.host | 17 - libgcc/config/tilegx/sfp-machine.h | 5 - libgcc/config/tilegx/sfp-machine32.h | 68 - libgcc/config/tilegx/sfp-machine64.h | 68 - libgcc/config/tilegx/t-crtstuff | 8 - libgcc/config/tilegx/t-softfp | 1 - libgcc/config/tilegx/t-tilegx | 26 - libgcc/config/tilepro/atomic.c | 397 - libgcc/config/tilepro/atomic.h | 437 - libgcc/config/tilepro/linux-unwind.h | 99 - libgcc/config/tilepro/sfp-machine.h | 59 - libgcc/config/tilepro/softdivide.c | 353 - libgcc/config/tilepro/softmpy.S | 94 - libgcc/config/tilepro/t-crtstuff | 4 - libgcc/config/tilepro/t-tilepro | 33 - 66 files changed, 7 insertions(+), 72542 deletions(-) delete mode 100644 gcc/common/config/tilegx/tilegx-common.cc delete mode 100644 gcc/common/config/tilepro/tilepro-common.cc delete mode 100644 gcc/config/tilegx/constraints.md delete mode 100644 gcc/config/tilegx/feedback.h delete mode 100644 gcc/config/tilegx/linux.h delete mode 100644 gcc/config/tilegx/mul-tables.cc delete mode 100644 gcc/config/tilegx/predicates.md delete mode 100644 gcc/config/tilegx/sync.md delete mode 100644 gcc/config/tilegx/t-tilegx delete mode 100644 gcc/config/tilegx/tilegx-builtins.h delete mode 100644 gcc/config/tilegx/tilegx-c.cc delete mode 100644 gcc/config/tilegx/tilegx-generic.md delete mode 100644 gcc/config/tilegx/tilegx-modes.def delete mode 100644 gcc/config/tilegx/tilegx-multiply.h delete mode 100644 gcc/config/tilegx/tilegx-opts.h delete mode 100644 gcc/config/tilegx/tilegx-protos.h delete mode 100644 gcc/config/tilegx/tilegx.cc delete mode 100644 gcc/config/tilegx/tilegx.h delete mode 100644 gcc/config/tilegx/tilegx.md delete mode 100644 gcc/config/tilegx/tilegx.opt delete mode 100644 gcc/config/tilepro/constraints.md delete mode 100644 gcc/config/tilepro/feedback.h delete mode 100644 gcc/config/tilepro/gen-mul-tables.cc delete mode 100644 gcc/config/tilepro/linux.h delete mode 100644 gcc/config/tilepro/mul-tables.cc delete mode 100644 gcc/config/tilepro/predicates.md delete mode 100644 gcc/config/tilepro/t-tilepro delete mode 100644 gcc/config/tilepro/tilepro-builtins.h delete mode 100644 gcc/config/tilepro/tilepro-c.cc delete mode 100644 gcc/config/tilepro/tilepro-generic.md delete mode 100644 gcc/config/tilepro/tilepro-modes.def delete mode 100644 gcc/config/tilepro/tilepro-multiply.h delete mode 100644 gcc/config/tilepro/tilepro-protos.h delete mode 100644 gcc/config/tilepro/tilepro.cc delete mode 100644 gcc/config/tilepro/tilepro.h delete mode 100644 gcc/config/tilepro/tilepro.md delete mode 100644 gcc/config/tilepro/tilepro.opt delete mode 100644 libgcc/config/tilegx/sfp-machine.h delete mode 100644 libgcc/config/tilegx/sfp-machine32.h delete mode 100644 libgcc/config/tilegx/sfp-machine64.h delete mode 100644 libgcc/config/tilegx/t-crtstuff delete mode 100644 libgcc/config/tilegx/t-softfp delete mode 100644 libgcc/config/tilegx/t-tilegx delete mode 100644 libgcc/config/tilepro/atomic.c delete mode 100644 libgcc/config/tilepro/atomic.h delete mode 100644 libgcc/config/tilepro/linux-unwind.h delete mode 100644 libgcc/config/tilepro/sfp-machine.h delete mode 100644 libgcc/config/tilepro/softdivide.c delete mode 100644 libgcc/config/tilepro/softmpy.S delete mode 100644 libgcc/config/tilepro/t-crtstuff delete mode 100644 libgcc/config/tilepro/t-tilepro diff --git a/MAINTAINERS b/MAINTAINERS index 8bca7a6..54d8ad4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -121,8 +121,6 @@ sh port Alexandre Oliva sh port Oleg Endo sparc port David S. Miller sparc port Eric Botcazou -tilegx port Walter Lee -tilepro port Walter Lee v850 port Nick Clifton vax port Matt Thomas vax port Maciej W. Rozycki diff --git a/configure b/configure index 5dcaab1..097527b8 100755 --- a/configure +++ b/configure @@ -3056,7 +3056,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) + | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold @@ -4017,9 +4017,6 @@ case "${target}" in tic6x-*-*) noconfigdirs="$noconfigdirs sim" ;; - tilepro*-*-* | tilegx*-*-*) - noconfigdirs="$noconfigdirs sim" - ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss" ;; diff --git a/configure.ac b/configure.ac index 8597748..f941b81 100644 --- a/configure.ac +++ b/configure.ac @@ -353,7 +353,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) + | aarch64*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold @@ -1274,9 +1274,6 @@ case "${target}" in tic6x-*-*) noconfigdirs="$noconfigdirs sim" ;; - tilepro*-*-* | tilegx*-*-*) - noconfigdirs="$noconfigdirs sim" - ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss" ;; diff --git a/contrib/config-list.mk b/contrib/config-list.mk index e042105..c4db8dc 100644 --- a/contrib/config-list.mk +++ b/contrib/config-list.mk @@ -96,8 +96,6 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \ sparc64-sun-solaris2.11OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \ sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \ sparc64-netbsd sparc64-openbsd \ - tilegx-linux-gnuOPT-enable-obsolete tilegxbe-linux-gnuOPT-enable-obsolete \ - tilepro-linux-gnuOPT-enable-obsolete \ v850e1-elf v850e-elf v850-elf v850-rtems vax-linux-gnu \ vax-netbsdelf visium-elf x86_64-apple-darwin \ x86_64-pc-linux-gnuOPT-with-fpmath=avx \ diff --git a/contrib/gcc_update b/contrib/gcc_update index 620504e..2ee1bc1 100755 --- a/contrib/gcc_update +++ b/contrib/gcc_update @@ -92,8 +92,6 @@ gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68 gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh gcc/config/rs6000/rs6000-tables.opt: gcc/config/rs6000/rs6000-cpus.def gcc/config/rs6000/genopt.sh gcc/config/rs6000/fusion.md: gcc/config/rs6000/genfusion.pl -gcc/config/tilegx/mul-tables.cc: gcc/config/tilepro/gen-mul-tables.cc -gcc/config/tilepro/mul-tables.cc: gcc/config/tilepro/gen-mul-tables.cc # And then, language-specific files gcc/cp/cfns.h: gcc/cp/cfns.gperf # testsuite diff --git a/gcc/common/config/tilegx/tilegx-common.cc b/gcc/common/config/tilegx/tilegx-common.cc deleted file mode 100644 index 3d33b7b..0000000 --- a/gcc/common/config/tilegx/tilegx-common.cc +++ /dev/null @@ -1,58 +0,0 @@ -/* Common hooks for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "diagnostic-core.h" -#include "tm.h" -#include "common/common-target.h" -#include "common/common-target-def.h" -#include "opts.h" -#include "flags.h" - -static const struct default_options tilegx_option_optimization_table[] = { - /* Scheduling and bundling are super important for our architecture, so - enable them at -O1. */ - {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1}, - {OPT_LEVELS_1_PLUS, OPT_fschedule_insns2, NULL, 1}, - {OPT_LEVELS_NONE, 0, NULL, 0} -}; - - -static void -tilegx_option_init_struct (struct gcc_options *opts) -{ - opts->x_flag_asynchronous_unwind_tables = 1; -} - - -#undef TARGET_DEFAULT_TARGET_FLAGS -#define TARGET_DEFAULT_TARGET_FLAGS \ - (TARGET_DEFAULT \ - | TARGET_ENDIAN_DEFAULT) - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE tilegx_option_optimization_table - -#undef TARGET_OPTION_INIT_STRUCT -#define TARGET_OPTION_INIT_STRUCT tilegx_option_init_struct - -struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/tilepro/tilepro-common.cc b/gcc/common/config/tilepro/tilepro-common.cc deleted file mode 100644 index 8e09736..0000000 --- a/gcc/common/config/tilepro/tilepro-common.cc +++ /dev/null @@ -1,54 +0,0 @@ -/* Common hooks for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "diagnostic-core.h" -#include "tm.h" -#include "common/common-target.h" -#include "common/common-target-def.h" -#include "opts.h" -#include "flags.h" - -static const struct default_options tilepro_option_optimization_table[] = { - /* Scheduling and bundling are super important for our architecture, so - enable them at -O1. */ - {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1}, - {OPT_LEVELS_1_PLUS, OPT_fschedule_insns2, NULL, 1}, - {OPT_LEVELS_NONE, 0, NULL, 0} -}; - - -static void -tilepro_option_init_struct (struct gcc_options *opts) -{ - opts->x_flag_asynchronous_unwind_tables = 1; -} - - - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE tilepro_option_optimization_table - -#undef TARGET_OPTION_INIT_STRUCT -#define TARGET_OPTION_INIT_STRUCT tilepro_option_init_struct - -struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/config.gcc b/gcc/config.gcc index cdbefb5..4e3b15b 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -248,8 +248,7 @@ md_file= # Obsolete configurations. case ${target} in - tile*-*-* \ - | cr16-*-* \ + cr16-*-* \ | hppa[12]*-*-hpux10* \ | hppa[12]*-*-hpux11* \ | m32c-*-rtems* \ @@ -557,12 +556,6 @@ tic6x-*-*) xtensa*-*-*) extra_options="${extra_options} fused-madd.opt" ;; -tilegx*-*-*) - cpu_type=tilegx - ;; -tilepro*-*-*) - cpu_type=tilepro - ;; esac tm_file=${cpu_type}/${cpu_type}.h @@ -3477,27 +3470,6 @@ tic6x-*-uclinux) tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux" use_collect2=no ;; -tilegx*-*-linux*) - tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}" - tmake_file="${tmake_file} tilegx/t-tilegx" - extra_objs="${extra_objs} mul-tables.o" - c_target_objs="${c_target_objs} tilegx-c.o" - cxx_target_objs="${cxx_target_objs} tilegx-c.o" - extra_headers="feedback.h" - case $target in - tilegxbe-*) - tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" - ;; - esac - ;; -tilepro*-*-linux*) - tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}" - tmake_file="${tmake_file} tilepro/t-tilepro" - extra_objs="${extra_objs} mul-tables.o" - c_target_objs="${c_target_objs} tilepro-c.o" - cxx_target_objs="${cxx_target_objs} tilepro-c.o" - extra_headers="feedback.h" - ;; v850-*-rtems*) target_cpu_default="TARGET_CPU_generic" tm_file="elfos.h v850/v850.h" diff --git a/gcc/config/tilegx/constraints.md b/gcc/config/tilegx/constraints.md deleted file mode 100644 index dee57d8..0000000 --- a/gcc/config/tilegx/constraints.md +++ /dev/null @@ -1,115 +0,0 @@ -;; Constraint definitions for Tilera TILE-Gx. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_register_constraint "R00" "R0_REGS" "r0") -(define_register_constraint "R01" "R1_REGS" "r1") -(define_register_constraint "R02" "R2_REGS" "r2") -(define_register_constraint "R03" "R3_REGS" "r3") -(define_register_constraint "R04" "R4_REGS" "r4") -(define_register_constraint "R05" "R5_REGS" "r5") -(define_register_constraint "R06" "R6_REGS" "r6") -(define_register_constraint "R07" "R7_REGS" "r7") -(define_register_constraint "R08" "R8_REGS" "r8") -(define_register_constraint "R09" "R9_REGS" "r9") -(define_register_constraint "R10" "R10_REGS" "r10") - -(define_constraint "I" - "A signed 8 bit constant" - (and (match_code "const_int") - (match_test "ival >= -128 && ival <= 127"))) - -(define_constraint "J" - "Signed 16-bit integer constant" - (and (match_code "const_int") - (match_test "ival >= -32768 && ival <= 32767"))) - -(define_constraint "K" - "Unsigned 16-bit integer constant" - (and (match_code "const_int") - (match_test "(ival >= 0 && ival <= 65535)"))) - -(define_constraint "L" - "Integer constant that fits in one signed byte when incremented" - (and (match_code "const_int") - (match_test "ival >= -129 && ival <= 126"))) - -(define_constraint "M" - "A bit mask suitable for 'bfins'" - (and (match_code "const_int") - (match_test "tilegx_bitfield_operand_p (ival, NULL, NULL)"))) - -(define_constraint "N" - "Integer constant that is a byte tiled out eight times" - (and (match_code "const_int") - (match_test "(ival == (ival & 0xFF) * 0x0101010101010101LL)"))) - -(define_constraint "O" - "The integer zero constant" - (and (match_code "const_int") - (match_test "ival == 0"))) - -(define_constraint "P" - "Integer constant that is a sign-extended byte tiled out as four shorts" - (and (match_code "const_int") - (match_test "(ival - == ((trunc_int_for_mode (ival, QImode) & 0xFFFF) - * 0x0001000100010001LL))"))) - -(define_constraint "Q" - "Integer constant that fits in one signed byte when incremented, but not -1" - (and (match_code "const_int") - (match_test "ival >= -129 && ival <= 126 && ival != -1"))) - -(define_constraint "S" - "Integer constant that has all 1 bits consecutive and starting at bit 0" - (and (match_code "const_int") - (match_test "ival != 0 && (ival & (ival + 1)) == 0"))) - -(define_constraint "T" - "An unspec wrapper for a symbolc operand" - (ior (match_operand 0 "const_last_symbolic_operand") - (match_operand 0 "const_symbolic_operand"))) - -(define_memory_constraint "U" - "Non-auto-incrementing memory" - (and (match_code "mem") - (match_test "GET_RTX_CLASS (GET_CODE (XEXP (op, 0))) != RTX_AUTOINC"))) - -(define_constraint "W" - "An 8-element vector constant with identical elements" - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 8") - (match_test "const_vec_duplicate_p (op)"))) - -(define_constraint "Y" - "A 4-element vector constant with identical elements" - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 4") - (match_test "const_vec_duplicate_p (op)"))) - -(define_constraint "Z0" - "The integer constant 0xffffffff" - (and (match_code "const_int") - (match_test "ival == 0xffffffff"))) - -(define_constraint "Z1" - "The integer constant 0xffffffff00000000" - (and (match_code "const_int") - (match_test "ival == (HOST_WIDE_INT)0xffffffff00000000LL"))) diff --git a/gcc/config/tilegx/feedback.h b/gcc/config/tilegx/feedback.h deleted file mode 100644 index 34e48ed..0000000 --- a/gcc/config/tilegx/feedback.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _FEEDBACK_H -#define _FEEDBACK_H 1 - -#ifdef __ASSEMBLER__ - -/* Stub defines for feedback instrumentation. */ -#define FEEDBACK_ENTER_EXPLICIT(FUNCNAME, SECNAME, SIZE) -#define FEEDBACK_ENTER(FUNCNAME) -#define FEEDBACK_REENTER(FUNCNAME) -#define FEEDBACK_ENTRY(FUNCNAME, SECNAME, SIZE) - -#endif /* __ASSEMBLER__ */ - -#endif /* _FEEDBACK_H */ diff --git a/gcc/config/tilegx/linux.h b/gcc/config/tilegx/linux.h deleted file mode 100644 index aae1f95..0000000 --- a/gcc/config/tilegx/linux.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Definitions for TILE-Gx running Linux-based GNU systems with ELF. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#undef CPP_SPEC -#define CPP_SPEC "%{pthread:-D_REENTRANT}" - -#undef ASM_SPEC -#define ASM_SPEC "%(endian_spec) %{m32:--32} %{m64:--64}" - -#undef LINK_SPEC -#define LINK_SPEC "%(endian_spec) \ - %{m64:-m elf64tilegx} %{m32:-m elf32tilegx} \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker \ - %{ m32: /lib32/ld.so.1} \ - %{!m32: /lib/ld.so.1}} \ - %{static:-static}}" - -#define MULTILIB_DEFAULTS { "m64" } - -#define NO_PROFILE_COUNTERS 1 - -#undef MCOUNT_NAME -#define MCOUNT_NAME "__mcount" - -#undef NEED_INDICATE_EXEC_STACK -#define NEED_INDICATE_EXEC_STACK 1 - -#ifdef TARGET_LIBC_PROVIDES_SSP -/* TILE-Gx glibc provides __stack_chk_guard two pointer-size words before - tp. */ -#define TARGET_THREAD_SSP_OFFSET (-2 * GET_MODE_SIZE (ptr_mode)) -#endif - -/* For __clear_cache in libgcc2.c. */ -#ifdef IN_LIBGCC2 - -/* Use the minimum page size of 4K. Alternatively we can call - getpagesize() but it introduces a libc dependence. - See Linux arch/tile/include/uapi/arch/icache.h for more commentary. */ -#undef CLEAR_INSN_CACHE -#define CLEAR_INSN_CACHE(BEG, END) \ -{ \ - long size = (long) (END) - (long) (BEG); \ - if (size) \ - { \ - const char *p = (const char *) ((unsigned long) (BEG) & -64L); \ - const char *end = p + (size < 4096 ? size : 4096) - 1; \ - __insn_mf (); \ - for (; p <= end; p += 64) \ - __insn_icoh (p); \ - __insn_drain (); \ - } \ -} - -#else - -/* define CLEAR_INSN_CACHE so that gcc knows to expand __builtin__clear_cache - to the libraray call. */ -#undef CLEAR_INSN_CACHE -#define CLEAR_INSN_CACHE 1 - -#endif diff --git a/gcc/config/tilegx/mul-tables.cc b/gcc/config/tilegx/mul-tables.cc deleted file mode 100644 index 67f85ce..0000000 --- a/gcc/config/tilegx/mul-tables.cc +++ /dev/null @@ -1,27249 +0,0 @@ -/* Constant multiply table for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* Note this file is auto-generated from gen-mul-tables.cc. - Make any required changes there. */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "backend.h" -#include "rtl.h" -#include "expmed.h" -#include "tilegx-multiply.h" - -const enum insn_code tilegx_multiply_insn_seq_decode_opcode[] = { - CODE_FOR_nothing /* must be first */ , - CODE_FOR_adddi3, - CODE_FOR_subdi3, - CODE_FOR_insn_shl1add, - CODE_FOR_insn_shl2add, - CODE_FOR_insn_shl3add, - CODE_FOR_ashldi3 -}; - -const struct tilegx_multiply_insn_seq tilegx_multiply_insn_seq_table[] = { - {-9223372036854775807ll - 1 /* 0x8000000000000000 */ , - {{6, 1, 63}} /* shli r2, r1, 63 */ - }, - {-9223372036854775807ll /* 0x8000000000000001 */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {-9223372036854775806ll /* 0x8000000000000002 */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {-9223372036854775805ll /* 0x8000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775804ll /* 0x8000000000000004 */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {-9223372036854775803ll /* 0x8000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775802ll /* 0x8000000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-9223372036854775801ll /* 0x8000000000000007 */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {-9223372036854775800ll /* 0x8000000000000008 */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {-9223372036854775799ll /* 0x8000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775798ll /* 0x800000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-9223372036854775792ll /* 0x8000000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775776ll /* 0x8000000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775744ll /* 0x8000000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775680ll /* 0x8000000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775552ll /* 0x8000000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854775296ll /* 0x8000000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854774784ll /* 0x8000000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854773760ll /* 0x8000000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854771712ll /* 0x8000000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854767616ll /* 0x8000000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854759424ll /* 0x8000000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854743040ll /* 0x8000000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854710272ll /* 0x8000000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854644736ll /* 0x8000000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854513664ll /* 0x8000000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036854251520ll /* 0x8000000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036853727232ll /* 0x8000000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036852678656ll /* 0x8000000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036850581504ll /* 0x8000000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036846387200ll /* 0x8000000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036837998592ll /* 0x8000000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036821221376ll /* 0x8000000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036787666944ll /* 0x8000000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036720558080ll /* 0x8000000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036586340352ll /* 0x8000000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372036317904896ll /* 0x8000000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372035781033984ll /* 0x8000000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372034707292160ll /* 0x8000000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372032559808512ll /* 0x8000000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372028264841216ll /* 0x8000000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372019674906624ll /* 0x8000000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223372002495037440ll /* 0x8000000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223371968135299072ll /* 0x8000001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223371899415822336ll /* 0x8000002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223371761976868864ll /* 0x8000004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223371487098961920ll /* 0x8000008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223370937343148032ll /* 0x8000010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223369837831520256ll /* 0x8000020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223367638808264704ll /* 0x8000040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223363240761753600ll /* 0x8000080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223354444668731392ll /* 0x8000100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223336852482686976ll /* 0x8000200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223301668110598144ll /* 0x8000400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223231299366420480ll /* 0x8000800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9223090561878065152ll /* 0x8001000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9222809086901354496ll /* 0x8002000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9222246136947933184ll /* 0x8004000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9221120237041090560ll /* 0x8008000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9218868437227405312ll /* 0x8010000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9214364837600034816ll /* 0x8020000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9205357638345293824ll /* 0x8040000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9187343239835811840ll /* 0x8080000000000000 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9151314442816847872ll /* 0x8100000000000000 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-9079256848778919936ll /* 0x8200000000000000 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-8935141660703064064ll /* 0x8400000000000000 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-8646911284551352320ll /* 0x8800000000000000 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-8070450532247928832ll /* 0x9000000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 60}} /* shli r3, r2, 60 */ - }, - {-6917529027641081857ll /* 0x9fffffffffffffff */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 61}, /* shli r3, r2, 61 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {-6917529027641081856ll /* 0xa000000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 61}} /* shli r3, r2, 61 */ - }, - {-4611686018427387912ll /* 0xbffffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 62}, /* shli r3, r2, 62 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4611686018427387911ll /* 0xbffffffffffffff9 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4611686018427387908ll /* 0xbffffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 62}, /* shli r3, r2, 62 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4611686018427387907ll /* 0xbffffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 62}, /* shli r3, r2, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {-4611686018427387906ll /* 0xbffffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 62}, /* shli r3, r2, 62 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4611686018427387905ll /* 0xbfffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387904ll /* 0xc000000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 62}} /* shli r3, r2, 62 */ - }, - {-4611686018427387903ll /* 0xc000000000000001 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4611686018427387902ll /* 0xc000000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387901ll /* 0xc000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387900ll /* 0xc000000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387899ll /* 0xc000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387898ll /* 0xc000000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 62}, /* shli r3, r2, 62 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4611686018427387896ll /* 0xc000000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4611686018427387895ll /* 0xc000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3458764513820540929ll /* 0xcfffffffffffffff */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693960ll /* 0xdffffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 61}, /* shli r3, r2, 61 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2305843009213693959ll /* 0xdffffffffffffff9 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2305843009213693956ll /* 0xdffffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 61}, /* shli r3, r2, 61 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2305843009213693955ll /* 0xdffffffffffffffd */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2305843009213693954ll /* 0xdffffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 61}, /* shli r3, r2, 61 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2305843009213693953ll /* 0xdfffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693952ll /* 0xe000000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 61}} /* shli r3, r2, 61 */ - }, - {-2305843009213693951ll /* 0xe000000000000001 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2305843009213693950ll /* 0xe000000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693949ll /* 0xe000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693948ll /* 0xe000000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693947ll /* 0xe000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693944ll /* 0xe000000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2305843009213693943ll /* 0xe000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1729382256910270465ll /* 0xe7ffffffffffffff */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846984ll /* 0xeffffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 60}, /* shli r3, r2, 60 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1152921504606846983ll /* 0xeffffffffffffff9 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1152921504606846980ll /* 0xeffffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 60}, /* shli r3, r2, 60 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1152921504606846979ll /* 0xeffffffffffffffd */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1152921504606846978ll /* 0xeffffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 60}, /* shli r3, r2, 60 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1152921504606846977ll /* 0xefffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846976ll /* 0xf000000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 60}} /* shli r3, r2, 60 */ - }, - {-1152921504606846975ll /* 0xf000000000000001 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1152921504606846974ll /* 0xf000000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846973ll /* 0xf000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846972ll /* 0xf000000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846971ll /* 0xf000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846968ll /* 0xf000000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1152921504606846967ll /* 0xf000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-864691128455135233ll /* 0xf3ffffffffffffff */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423496ll /* 0xf7fffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 59}, /* shli r3, r2, 59 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-576460752303423495ll /* 0xf7fffffffffffff9 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-576460752303423492ll /* 0xf7fffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 59}, /* shli r3, r2, 59 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-576460752303423491ll /* 0xf7fffffffffffffd */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-576460752303423490ll /* 0xf7fffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 59}, /* shli r3, r2, 59 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-576460752303423489ll /* 0xf7ffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423488ll /* 0xf800000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 59}} /* shli r3, r2, 59 */ - }, - {-576460752303423487ll /* 0xf800000000000001 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-576460752303423486ll /* 0xf800000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423485ll /* 0xf800000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423484ll /* 0xf800000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423483ll /* 0xf800000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423480ll /* 0xf800000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-576460752303423479ll /* 0xf800000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-432345564227567617ll /* 0xf9ffffffffffffff */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711752ll /* 0xfbfffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 58}, /* shli r3, r2, 58 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-288230376151711751ll /* 0xfbfffffffffffff9 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-288230376151711748ll /* 0xfbfffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 58}, /* shli r3, r2, 58 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-288230376151711747ll /* 0xfbfffffffffffffd */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-288230376151711746ll /* 0xfbfffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 58}, /* shli r3, r2, 58 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-288230376151711745ll /* 0xfbffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711744ll /* 0xfc00000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 58}} /* shli r3, r2, 58 */ - }, - {-288230376151711743ll /* 0xfc00000000000001 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-288230376151711742ll /* 0xfc00000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711741ll /* 0xfc00000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711740ll /* 0xfc00000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711739ll /* 0xfc00000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711736ll /* 0xfc00000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-288230376151711735ll /* 0xfc00000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-216172782113783809ll /* 0xfcffffffffffffff */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855880ll /* 0xfdfffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 57}, /* shli r3, r2, 57 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-144115188075855879ll /* 0xfdfffffffffffff9 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-144115188075855876ll /* 0xfdfffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 57}, /* shli r3, r2, 57 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-144115188075855875ll /* 0xfdfffffffffffffd */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-144115188075855874ll /* 0xfdfffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 57}, /* shli r3, r2, 57 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-144115188075855873ll /* 0xfdffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855872ll /* 0xfe00000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 57}} /* shli r3, r2, 57 */ - }, - {-144115188075855871ll /* 0xfe00000000000001 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-144115188075855870ll /* 0xfe00000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855869ll /* 0xfe00000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855868ll /* 0xfe00000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855867ll /* 0xfe00000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855864ll /* 0xfe00000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-144115188075855863ll /* 0xfe00000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-108086391056891905ll /* 0xfe7fffffffffffff */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927944ll /* 0xfefffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 56}, /* shli r3, r2, 56 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-72057594037927943ll /* 0xfefffffffffffff9 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-72057594037927940ll /* 0xfefffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 56}, /* shli r3, r2, 56 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-72057594037927939ll /* 0xfefffffffffffffd */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-72057594037927938ll /* 0xfefffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 56}, /* shli r3, r2, 56 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-72057594037927937ll /* 0xfeffffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927936ll /* 0xff00000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 56}} /* shli r3, r2, 56 */ - }, - {-72057594037927935ll /* 0xff00000000000001 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-72057594037927934ll /* 0xff00000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927933ll /* 0xff00000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927932ll /* 0xff00000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927931ll /* 0xff00000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927928ll /* 0xff00000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-72057594037927927ll /* 0xff00000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-54043195528445953ll /* 0xff3fffffffffffff */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963976ll /* 0xff7ffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 55}, /* shli r3, r2, 55 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-36028797018963975ll /* 0xff7ffffffffffff9 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-36028797018963972ll /* 0xff7ffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 55}, /* shli r3, r2, 55 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-36028797018963971ll /* 0xff7ffffffffffffd */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-36028797018963970ll /* 0xff7ffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 55}, /* shli r3, r2, 55 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-36028797018963969ll /* 0xff7fffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963968ll /* 0xff80000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 55}} /* shli r3, r2, 55 */ - }, - {-36028797018963967ll /* 0xff80000000000001 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-36028797018963966ll /* 0xff80000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963965ll /* 0xff80000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963964ll /* 0xff80000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963963ll /* 0xff80000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963960ll /* 0xff80000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-36028797018963959ll /* 0xff80000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-27021597764222977ll /* 0xff9fffffffffffff */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481992ll /* 0xffbffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 54}, /* shli r3, r2, 54 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-18014398509481991ll /* 0xffbffffffffffff9 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-18014398509481988ll /* 0xffbffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 54}, /* shli r3, r2, 54 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-18014398509481987ll /* 0xffbffffffffffffd */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-18014398509481986ll /* 0xffbffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 54}, /* shli r3, r2, 54 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-18014398509481985ll /* 0xffbfffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481984ll /* 0xffc0000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 54}} /* shli r3, r2, 54 */ - }, - {-18014398509481983ll /* 0xffc0000000000001 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-18014398509481982ll /* 0xffc0000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481981ll /* 0xffc0000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481980ll /* 0xffc0000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481979ll /* 0xffc0000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481976ll /* 0xffc0000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-18014398509481975ll /* 0xffc0000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-13510798882111489ll /* 0xffcfffffffffffff */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254741000ll /* 0xffdffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 53}, /* shli r3, r2, 53 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-9007199254740999ll /* 0xffdffffffffffff9 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-9007199254740996ll /* 0xffdffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 53}, /* shli r3, r2, 53 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-9007199254740995ll /* 0xffdffffffffffffd */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-9007199254740994ll /* 0xffdffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 53}, /* shli r3, r2, 53 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-9007199254740993ll /* 0xffdfffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740992ll /* 0xffe0000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 53}} /* shli r3, r2, 53 */ - }, - {-9007199254740991ll /* 0xffe0000000000001 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-9007199254740990ll /* 0xffe0000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740989ll /* 0xffe0000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740988ll /* 0xffe0000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740987ll /* 0xffe0000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740984ll /* 0xffe0000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9007199254740983ll /* 0xffe0000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-6755399441055745ll /* 0xffe7ffffffffffff */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370504ll /* 0xffeffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 52}, /* shli r3, r2, 52 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4503599627370503ll /* 0xffeffffffffffff9 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4503599627370500ll /* 0xffeffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 52}, /* shli r3, r2, 52 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4503599627370499ll /* 0xffeffffffffffffd */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4503599627370498ll /* 0xffeffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 52}, /* shli r3, r2, 52 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4503599627370497ll /* 0xffefffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370496ll /* 0xfff0000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 52}} /* shli r3, r2, 52 */ - }, - {-4503599627370495ll /* 0xfff0000000000001 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4503599627370494ll /* 0xfff0000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370493ll /* 0xfff0000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370492ll /* 0xfff0000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370491ll /* 0xfff0000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370488ll /* 0xfff0000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4503599627370487ll /* 0xfff0000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3377699720527873ll /* 0xfff3ffffffffffff */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685256ll /* 0xfff7fffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 51}, /* shli r3, r2, 51 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2251799813685255ll /* 0xfff7fffffffffff9 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2251799813685252ll /* 0xfff7fffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 51}, /* shli r3, r2, 51 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2251799813685251ll /* 0xfff7fffffffffffd */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2251799813685250ll /* 0xfff7fffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 51}, /* shli r3, r2, 51 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2251799813685249ll /* 0xfff7ffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685248ll /* 0xfff8000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 51}} /* shli r3, r2, 51 */ - }, - {-2251799813685247ll /* 0xfff8000000000001 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2251799813685246ll /* 0xfff8000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685245ll /* 0xfff8000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685244ll /* 0xfff8000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685243ll /* 0xfff8000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685240ll /* 0xfff8000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2251799813685239ll /* 0xfff8000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1688849860263937ll /* 0xfff9ffffffffffff */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842632ll /* 0xfffbfffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 50}, /* shli r3, r2, 50 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1125899906842631ll /* 0xfffbfffffffffff9 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1125899906842628ll /* 0xfffbfffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 50}, /* shli r3, r2, 50 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1125899906842627ll /* 0xfffbfffffffffffd */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1125899906842626ll /* 0xfffbfffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 50}, /* shli r3, r2, 50 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1125899906842625ll /* 0xfffbffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842624ll /* 0xfffc000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 50}} /* shli r3, r2, 50 */ - }, - {-1125899906842623ll /* 0xfffc000000000001 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1125899906842622ll /* 0xfffc000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842621ll /* 0xfffc000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842620ll /* 0xfffc000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842619ll /* 0xfffc000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842616ll /* 0xfffc000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1125899906842615ll /* 0xfffc000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-844424930131969ll /* 0xfffcffffffffffff */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421320ll /* 0xfffdfffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 49}, /* shli r3, r2, 49 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-562949953421319ll /* 0xfffdfffffffffff9 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-562949953421316ll /* 0xfffdfffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 49}, /* shli r3, r2, 49 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-562949953421315ll /* 0xfffdfffffffffffd */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-562949953421314ll /* 0xfffdfffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 49}, /* shli r3, r2, 49 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-562949953421313ll /* 0xfffdffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421312ll /* 0xfffe000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 49}} /* shli r3, r2, 49 */ - }, - {-562949953421311ll /* 0xfffe000000000001 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-562949953421310ll /* 0xfffe000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421309ll /* 0xfffe000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421308ll /* 0xfffe000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421307ll /* 0xfffe000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421304ll /* 0xfffe000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-562949953421303ll /* 0xfffe000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-422212465065985ll /* 0xfffe7fffffffffff */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710664ll /* 0xfffefffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 48}, /* shli r3, r2, 48 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-281474976710663ll /* 0xfffefffffffffff9 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-281474976710660ll /* 0xfffefffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 48}, /* shli r3, r2, 48 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-281474976710659ll /* 0xfffefffffffffffd */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-281474976710658ll /* 0xfffefffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 48}, /* shli r3, r2, 48 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-281474976710657ll /* 0xfffeffffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710656ll /* 0xffff000000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 48}} /* shli r3, r2, 48 */ - }, - {-281474976710655ll /* 0xffff000000000001 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-281474976710654ll /* 0xffff000000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710653ll /* 0xffff000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710652ll /* 0xffff000000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710651ll /* 0xffff000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710648ll /* 0xffff000000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-281474976710647ll /* 0xffff000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-211106232532993ll /* 0xffff3fffffffffff */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355336ll /* 0xffff7ffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 47}, /* shli r3, r2, 47 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-140737488355335ll /* 0xffff7ffffffffff9 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-140737488355332ll /* 0xffff7ffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 47}, /* shli r3, r2, 47 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-140737488355331ll /* 0xffff7ffffffffffd */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-140737488355330ll /* 0xffff7ffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 47}, /* shli r3, r2, 47 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-140737488355329ll /* 0xffff7fffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355328ll /* 0xffff800000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 47}} /* shli r3, r2, 47 */ - }, - {-140737488355327ll /* 0xffff800000000001 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-140737488355326ll /* 0xffff800000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355325ll /* 0xffff800000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355324ll /* 0xffff800000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355323ll /* 0xffff800000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355320ll /* 0xffff800000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-140737488355319ll /* 0xffff800000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-105553116266497ll /* 0xffff9fffffffffff */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177672ll /* 0xffffbffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 46}, /* shli r3, r2, 46 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-70368744177671ll /* 0xffffbffffffffff9 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-70368744177668ll /* 0xffffbffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 46}, /* shli r3, r2, 46 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-70368744177667ll /* 0xffffbffffffffffd */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-70368744177666ll /* 0xffffbffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 46}, /* shli r3, r2, 46 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-70368744177665ll /* 0xffffbfffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177664ll /* 0xffffc00000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 46}} /* shli r3, r2, 46 */ - }, - {-70368744177663ll /* 0xffffc00000000001 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-70368744177662ll /* 0xffffc00000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177661ll /* 0xffffc00000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177660ll /* 0xffffc00000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177659ll /* 0xffffc00000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177656ll /* 0xffffc00000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-70368744177655ll /* 0xffffc00000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-52776558133249ll /* 0xffffcfffffffffff */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088840ll /* 0xffffdffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 45}, /* shli r3, r2, 45 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-35184372088839ll /* 0xffffdffffffffff9 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-35184372088836ll /* 0xffffdffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 45}, /* shli r3, r2, 45 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-35184372088835ll /* 0xffffdffffffffffd */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-35184372088834ll /* 0xffffdffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 45}, /* shli r3, r2, 45 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-35184372088833ll /* 0xffffdfffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088832ll /* 0xffffe00000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 45}} /* shli r3, r2, 45 */ - }, - {-35184372088831ll /* 0xffffe00000000001 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-35184372088830ll /* 0xffffe00000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088829ll /* 0xffffe00000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088828ll /* 0xffffe00000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088827ll /* 0xffffe00000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088824ll /* 0xffffe00000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-35184372088823ll /* 0xffffe00000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-26388279066625ll /* 0xffffe7ffffffffff */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044424ll /* 0xffffeffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 44}, /* shli r3, r2, 44 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-17592186044423ll /* 0xffffeffffffffff9 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-17592186044420ll /* 0xffffeffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 44}, /* shli r3, r2, 44 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-17592186044419ll /* 0xffffeffffffffffd */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-17592186044418ll /* 0xffffeffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 44}, /* shli r3, r2, 44 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-17592186044417ll /* 0xffffefffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044416ll /* 0xfffff00000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 44}} /* shli r3, r2, 44 */ - }, - {-17592186044415ll /* 0xfffff00000000001 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-17592186044414ll /* 0xfffff00000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044413ll /* 0xfffff00000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044412ll /* 0xfffff00000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044411ll /* 0xfffff00000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044408ll /* 0xfffff00000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17592186044407ll /* 0xfffff00000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-13194139533313ll /* 0xfffff3ffffffffff */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022216ll /* 0xfffff7fffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 43}, /* shli r3, r2, 43 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-8796093022215ll /* 0xfffff7fffffffff9 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8796093022212ll /* 0xfffff7fffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 43}, /* shli r3, r2, 43 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-8796093022211ll /* 0xfffff7fffffffffd */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8796093022210ll /* 0xfffff7fffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 43}, /* shli r3, r2, 43 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-8796093022209ll /* 0xfffff7ffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022208ll /* 0xfffff80000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 43}} /* shli r3, r2, 43 */ - }, - {-8796093022207ll /* 0xfffff80000000001 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8796093022206ll /* 0xfffff80000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022205ll /* 0xfffff80000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022204ll /* 0xfffff80000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022203ll /* 0xfffff80000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022200ll /* 0xfffff80000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8796093022199ll /* 0xfffff80000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-6597069766657ll /* 0xfffff9ffffffffff */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511112ll /* 0xfffffbfffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 42}, /* shli r3, r2, 42 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4398046511111ll /* 0xfffffbfffffffff9 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4398046511108ll /* 0xfffffbfffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 42}, /* shli r3, r2, 42 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4398046511107ll /* 0xfffffbfffffffffd */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4398046511106ll /* 0xfffffbfffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 42}, /* shli r3, r2, 42 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4398046511105ll /* 0xfffffbffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511104ll /* 0xfffffc0000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 42}} /* shli r3, r2, 42 */ - }, - {-4398046511103ll /* 0xfffffc0000000001 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4398046511102ll /* 0xfffffc0000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511101ll /* 0xfffffc0000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511100ll /* 0xfffffc0000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511099ll /* 0xfffffc0000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511096ll /* 0xfffffc0000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4398046511095ll /* 0xfffffc0000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3298534883329ll /* 0xfffffcffffffffff */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255560ll /* 0xfffffdfffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 41}, /* shli r3, r2, 41 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2199023255559ll /* 0xfffffdfffffffff9 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2199023255556ll /* 0xfffffdfffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 41}, /* shli r3, r2, 41 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2199023255555ll /* 0xfffffdfffffffffd */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2199023255554ll /* 0xfffffdfffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 41}, /* shli r3, r2, 41 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2199023255553ll /* 0xfffffdffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255552ll /* 0xfffffe0000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 41}} /* shli r3, r2, 41 */ - }, - {-2199023255551ll /* 0xfffffe0000000001 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2199023255550ll /* 0xfffffe0000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255549ll /* 0xfffffe0000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255548ll /* 0xfffffe0000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255547ll /* 0xfffffe0000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255544ll /* 0xfffffe0000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2199023255543ll /* 0xfffffe0000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1649267441665ll /* 0xfffffe7fffffffff */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627784ll /* 0xfffffefffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 40}, /* shli r3, r2, 40 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1099511627783ll /* 0xfffffefffffffff9 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1099511627780ll /* 0xfffffefffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 40}, /* shli r3, r2, 40 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1099511627779ll /* 0xfffffefffffffffd */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1099511627778ll /* 0xfffffefffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 40}, /* shli r3, r2, 40 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1099511627777ll /* 0xfffffeffffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627776ll /* 0xffffff0000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 40}} /* shli r3, r2, 40 */ - }, - {-1099511627775ll /* 0xffffff0000000001 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1099511627774ll /* 0xffffff0000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627773ll /* 0xffffff0000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627772ll /* 0xffffff0000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627771ll /* 0xffffff0000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627768ll /* 0xffffff0000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1099511627767ll /* 0xffffff0000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-824633720833ll /* 0xffffff3fffffffff */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813896ll /* 0xffffff7ffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 39}, /* shli r3, r2, 39 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-549755813895ll /* 0xffffff7ffffffff9 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-549755813892ll /* 0xffffff7ffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 39}, /* shli r3, r2, 39 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-549755813891ll /* 0xffffff7ffffffffd */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-549755813890ll /* 0xffffff7ffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 39}, /* shli r3, r2, 39 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-549755813889ll /* 0xffffff7fffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813888ll /* 0xffffff8000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 39}} /* shli r3, r2, 39 */ - }, - {-549755813887ll /* 0xffffff8000000001 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-549755813886ll /* 0xffffff8000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813885ll /* 0xffffff8000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813884ll /* 0xffffff8000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813883ll /* 0xffffff8000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813880ll /* 0xffffff8000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-549755813879ll /* 0xffffff8000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-412316860417ll /* 0xffffff9fffffffff */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906952ll /* 0xffffffbffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 38}, /* shli r3, r2, 38 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-274877906951ll /* 0xffffffbffffffff9 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-274877906948ll /* 0xffffffbffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 38}, /* shli r3, r2, 38 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-274877906947ll /* 0xffffffbffffffffd */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-274877906946ll /* 0xffffffbffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 38}, /* shli r3, r2, 38 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-274877906945ll /* 0xffffffbfffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906944ll /* 0xffffffc000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 38}} /* shli r3, r2, 38 */ - }, - {-274877906943ll /* 0xffffffc000000001 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-274877906942ll /* 0xffffffc000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906941ll /* 0xffffffc000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906940ll /* 0xffffffc000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906939ll /* 0xffffffc000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906936ll /* 0xffffffc000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-274877906935ll /* 0xffffffc000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-206158430209ll /* 0xffffffcfffffffff */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953480ll /* 0xffffffdffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 37}, /* shli r3, r2, 37 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-137438953479ll /* 0xffffffdffffffff9 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-137438953476ll /* 0xffffffdffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 37}, /* shli r3, r2, 37 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-137438953475ll /* 0xffffffdffffffffd */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-137438953474ll /* 0xffffffdffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 37}, /* shli r3, r2, 37 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-137438953473ll /* 0xffffffdfffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953472ll /* 0xffffffe000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 37}} /* shli r3, r2, 37 */ - }, - {-137438953471ll /* 0xffffffe000000001 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-137438953470ll /* 0xffffffe000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953469ll /* 0xffffffe000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953468ll /* 0xffffffe000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953467ll /* 0xffffffe000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953464ll /* 0xffffffe000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-137438953463ll /* 0xffffffe000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-103079215105ll /* 0xffffffe7ffffffff */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476744ll /* 0xffffffeffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 36}, /* shli r3, r2, 36 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-68719476743ll /* 0xffffffeffffffff9 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-68719476740ll /* 0xffffffeffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 36}, /* shli r3, r2, 36 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-68719476739ll /* 0xffffffeffffffffd */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-68719476738ll /* 0xffffffeffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 36}, /* shli r3, r2, 36 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-68719476737ll /* 0xffffffefffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476736ll /* 0xfffffff000000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 36}} /* shli r3, r2, 36 */ - }, - {-68719476735ll /* 0xfffffff000000001 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-68719476734ll /* 0xfffffff000000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476733ll /* 0xfffffff000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476732ll /* 0xfffffff000000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476731ll /* 0xfffffff000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476728ll /* 0xfffffff000000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-68719476727ll /* 0xfffffff000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-51539607553ll /* 0xfffffff3ffffffff */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738376ll /* 0xfffffff7fffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 35}, /* shli r3, r2, 35 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-34359738375ll /* 0xfffffff7fffffff9 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-34359738372ll /* 0xfffffff7fffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 35}, /* shli r3, r2, 35 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-34359738371ll /* 0xfffffff7fffffffd */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-34359738370ll /* 0xfffffff7fffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 35}, /* shli r3, r2, 35 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-34359738369ll /* 0xfffffff7ffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738368ll /* 0xfffffff800000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 35}} /* shli r3, r2, 35 */ - }, - {-34359738367ll /* 0xfffffff800000001 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-34359738366ll /* 0xfffffff800000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738365ll /* 0xfffffff800000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738364ll /* 0xfffffff800000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738363ll /* 0xfffffff800000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738360ll /* 0xfffffff800000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34359738359ll /* 0xfffffff800000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-25769803777ll /* 0xfffffff9ffffffff */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869192ll /* 0xfffffffbfffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 34}, /* shli r3, r2, 34 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-17179869191ll /* 0xfffffffbfffffff9 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-17179869188ll /* 0xfffffffbfffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 34}, /* shli r3, r2, 34 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-17179869187ll /* 0xfffffffbfffffffd */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-17179869186ll /* 0xfffffffbfffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 34}, /* shli r3, r2, 34 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-17179869185ll /* 0xfffffffbffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869184ll /* 0xfffffffc00000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 34}} /* shli r3, r2, 34 */ - }, - {-17179869183ll /* 0xfffffffc00000001 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-17179869182ll /* 0xfffffffc00000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869181ll /* 0xfffffffc00000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869180ll /* 0xfffffffc00000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869179ll /* 0xfffffffc00000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869176ll /* 0xfffffffc00000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-17179869175ll /* 0xfffffffc00000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-12884901889ll /* 0xfffffffcffffffff */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934600ll /* 0xfffffffdfffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 33}, /* shli r3, r2, 33 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-8589934599ll /* 0xfffffffdfffffff9 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8589934596ll /* 0xfffffffdfffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 33}, /* shli r3, r2, 33 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-8589934595ll /* 0xfffffffdfffffffd */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8589934594ll /* 0xfffffffdfffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 33}, /* shli r3, r2, 33 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-8589934593ll /* 0xfffffffdffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934592ll /* 0xfffffffe00000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 33}} /* shli r3, r2, 33 */ - }, - {-8589934591ll /* 0xfffffffe00000001 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8589934590ll /* 0xfffffffe00000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934589ll /* 0xfffffffe00000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934588ll /* 0xfffffffe00000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934587ll /* 0xfffffffe00000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934584ll /* 0xfffffffe00000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8589934583ll /* 0xfffffffe00000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-6442450945ll /* 0xfffffffe7fffffff */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967304ll /* 0xfffffffefffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 32}, /* shli r3, r2, 32 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4294967303ll /* 0xfffffffefffffff9 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4294967300ll /* 0xfffffffefffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 32}, /* shli r3, r2, 32 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4294967299ll /* 0xfffffffefffffffd */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4294967298ll /* 0xfffffffefffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 32}, /* shli r3, r2, 32 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4294967297ll /* 0xfffffffeffffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967296ll /* 0xffffffff00000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 32}} /* shli r3, r2, 32 */ - }, - {-4294967295ll /* 0xffffffff00000001 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4294967294ll /* 0xffffffff00000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967293ll /* 0xffffffff00000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967292ll /* 0xffffffff00000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967291ll /* 0xffffffff00000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967288ll /* 0xffffffff00000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4294967287ll /* 0xffffffff00000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3221225473ll /* 0xffffffff3fffffff */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483656ll /* 0xffffffff7ffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 31}, /* shli r3, r2, 31 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2147483655ll /* 0xffffffff7ffffff9 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2147483652ll /* 0xffffffff7ffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 31}, /* shli r3, r2, 31 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2147483651ll /* 0xffffffff7ffffffd */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2147483650ll /* 0xffffffff7ffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 31}, /* shli r3, r2, 31 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2147483649ll /* 0xffffffff7fffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483648ll /* 0xffffffff80000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 31}} /* shli r3, r2, 31 */ - }, - {-2147483647ll /* 0xffffffff80000001 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2147483646ll /* 0xffffffff80000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483645ll /* 0xffffffff80000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483644ll /* 0xffffffff80000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483643ll /* 0xffffffff80000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483640ll /* 0xffffffff80000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2147483639ll /* 0xffffffff80000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1610612737ll /* 0xffffffff9fffffff */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741832ll /* 0xffffffffbffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1073741831ll /* 0xffffffffbffffff9 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1073741828ll /* 0xffffffffbffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1073741827ll /* 0xffffffffbffffffd */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1073741826ll /* 0xffffffffbffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1073741825ll /* 0xffffffffbfffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741824ll /* 0xffffffffc0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}} /* shli r3, r2, 30 */ - }, - {-1073741823ll /* 0xffffffffc0000001 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1073741822ll /* 0xffffffffc0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741821ll /* 0xffffffffc0000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741820ll /* 0xffffffffc0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741819ll /* 0xffffffffc0000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741816ll /* 0xffffffffc0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741815ll /* 0xffffffffc0000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-805306369ll /* 0xffffffffcfffffff */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870920ll /* 0xffffffffdffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-536870919ll /* 0xffffffffdffffff9 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-536870916ll /* 0xffffffffdffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-536870915ll /* 0xffffffffdffffffd */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-536870914ll /* 0xffffffffdffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-536870913ll /* 0xffffffffdfffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870912ll /* 0xffffffffe0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {-536870911ll /* 0xffffffffe0000001 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-536870910ll /* 0xffffffffe0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870909ll /* 0xffffffffe0000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870908ll /* 0xffffffffe0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870907ll /* 0xffffffffe0000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870904ll /* 0xffffffffe0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870903ll /* 0xffffffffe0000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-402653185ll /* 0xffffffffe7ffffff */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435464ll /* 0xffffffffeffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-268435463ll /* 0xffffffffeffffff9 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-268435460ll /* 0xffffffffeffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-268435459ll /* 0xffffffffeffffffd */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-268435458ll /* 0xffffffffeffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-268435457ll /* 0xffffffffefffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435456ll /* 0xfffffffff0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {-268435455ll /* 0xfffffffff0000001 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-268435454ll /* 0xfffffffff0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435453ll /* 0xfffffffff0000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435452ll /* 0xfffffffff0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435451ll /* 0xfffffffff0000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435448ll /* 0xfffffffff0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435447ll /* 0xfffffffff0000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-201326593ll /* 0xfffffffff3ffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217736ll /* 0xfffffffff7fffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-134217735ll /* 0xfffffffff7fffff9 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-134217732ll /* 0xfffffffff7fffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-134217731ll /* 0xfffffffff7fffffd */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-134217730ll /* 0xfffffffff7fffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-134217729ll /* 0xfffffffff7ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217728ll /* 0xfffffffff8000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {-134217727ll /* 0xfffffffff8000001 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-134217726ll /* 0xfffffffff8000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217725ll /* 0xfffffffff8000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217724ll /* 0xfffffffff8000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217723ll /* 0xfffffffff8000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217720ll /* 0xfffffffff8000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217719ll /* 0xfffffffff8000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-100663297ll /* 0xfffffffff9ffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108872ll /* 0xfffffffffbfffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-67108871ll /* 0xfffffffffbfffff9 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-67108868ll /* 0xfffffffffbfffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-67108867ll /* 0xfffffffffbfffffd */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-67108866ll /* 0xfffffffffbfffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-67108865ll /* 0xfffffffffbffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108864ll /* 0xfffffffffc000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {-67108863ll /* 0xfffffffffc000001 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-67108862ll /* 0xfffffffffc000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108861ll /* 0xfffffffffc000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108860ll /* 0xfffffffffc000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108859ll /* 0xfffffffffc000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108856ll /* 0xfffffffffc000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108855ll /* 0xfffffffffc000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-50331649ll /* 0xfffffffffcffffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554440ll /* 0xfffffffffdfffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-33554439ll /* 0xfffffffffdfffff9 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-33554436ll /* 0xfffffffffdfffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-33554435ll /* 0xfffffffffdfffffd */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-33554434ll /* 0xfffffffffdfffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-33554433ll /* 0xfffffffffdffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554432ll /* 0xfffffffffe000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {-33554431ll /* 0xfffffffffe000001 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-33554430ll /* 0xfffffffffe000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554429ll /* 0xfffffffffe000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554428ll /* 0xfffffffffe000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554427ll /* 0xfffffffffe000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554424ll /* 0xfffffffffe000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554423ll /* 0xfffffffffe000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-25165825ll /* 0xfffffffffe7fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777224ll /* 0xfffffffffefffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-16777223ll /* 0xfffffffffefffff9 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16777220ll /* 0xfffffffffefffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-16777219ll /* 0xfffffffffefffffd */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16777218ll /* 0xfffffffffefffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-16777217ll /* 0xfffffffffeffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777216ll /* 0xffffffffff000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {-16777215ll /* 0xffffffffff000001 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-16777214ll /* 0xffffffffff000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777213ll /* 0xffffffffff000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777212ll /* 0xffffffffff000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777211ll /* 0xffffffffff000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777208ll /* 0xffffffffff000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777207ll /* 0xffffffffff000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-12582913ll /* 0xffffffffff3fffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388616ll /* 0xffffffffff7ffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-8388615ll /* 0xffffffffff7ffff9 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8388612ll /* 0xffffffffff7ffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-8388611ll /* 0xffffffffff7ffffd */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8388610ll /* 0xffffffffff7ffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-8388609ll /* 0xffffffffff7fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388608ll /* 0xffffffffff800000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {-8388607ll /* 0xffffffffff800001 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8388606ll /* 0xffffffffff800002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388605ll /* 0xffffffffff800003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388604ll /* 0xffffffffff800004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388603ll /* 0xffffffffff800005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388600ll /* 0xffffffffff800008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388599ll /* 0xffffffffff800009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-6291457ll /* 0xffffffffff9fffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194312ll /* 0xffffffffffbffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4194311ll /* 0xffffffffffbffff9 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4194308ll /* 0xffffffffffbffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4194307ll /* 0xffffffffffbffffd */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4194306ll /* 0xffffffffffbffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4194305ll /* 0xffffffffffbfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194304ll /* 0xffffffffffc00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {-4194303ll /* 0xffffffffffc00001 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4194302ll /* 0xffffffffffc00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194301ll /* 0xffffffffffc00003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194300ll /* 0xffffffffffc00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194299ll /* 0xffffffffffc00005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194296ll /* 0xffffffffffc00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194295ll /* 0xffffffffffc00009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3145729ll /* 0xffffffffffcfffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097160ll /* 0xffffffffffdffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2097159ll /* 0xffffffffffdffff9 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2097156ll /* 0xffffffffffdffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2097155ll /* 0xffffffffffdffffd */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2097154ll /* 0xffffffffffdffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2097153ll /* 0xffffffffffdfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097152ll /* 0xffffffffffe00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {-2097151ll /* 0xffffffffffe00001 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2097150ll /* 0xffffffffffe00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097149ll /* 0xffffffffffe00003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097148ll /* 0xffffffffffe00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097147ll /* 0xffffffffffe00005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097144ll /* 0xffffffffffe00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097143ll /* 0xffffffffffe00009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1572865ll /* 0xffffffffffe7ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048584ll /* 0xffffffffffeffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1048583ll /* 0xffffffffffeffff9 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1048580ll /* 0xffffffffffeffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1048579ll /* 0xffffffffffeffffd */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1048578ll /* 0xffffffffffeffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1048577ll /* 0xffffffffffefffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048576ll /* 0xfffffffffff00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {-1048575ll /* 0xfffffffffff00001 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1048574ll /* 0xfffffffffff00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048573ll /* 0xfffffffffff00003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048572ll /* 0xfffffffffff00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048571ll /* 0xfffffffffff00005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048568ll /* 0xfffffffffff00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048567ll /* 0xfffffffffff00009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-786433ll /* 0xfffffffffff3ffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524296ll /* 0xfffffffffff7fff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-524295ll /* 0xfffffffffff7fff9 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-524292ll /* 0xfffffffffff7fffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-524291ll /* 0xfffffffffff7fffd */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-524290ll /* 0xfffffffffff7fffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-524289ll /* 0xfffffffffff7ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524288ll /* 0xfffffffffff80000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {-524287ll /* 0xfffffffffff80001 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-524286ll /* 0xfffffffffff80002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524285ll /* 0xfffffffffff80003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524284ll /* 0xfffffffffff80004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524283ll /* 0xfffffffffff80005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524280ll /* 0xfffffffffff80008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524279ll /* 0xfffffffffff80009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-393217ll /* 0xfffffffffff9ffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262152ll /* 0xfffffffffffbfff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-262151ll /* 0xfffffffffffbfff9 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262148ll /* 0xfffffffffffbfffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-262147ll /* 0xfffffffffffbfffd */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262146ll /* 0xfffffffffffbfffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-262145ll /* 0xfffffffffffbffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262144ll /* 0xfffffffffffc0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {-262143ll /* 0xfffffffffffc0001 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-262142ll /* 0xfffffffffffc0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262141ll /* 0xfffffffffffc0003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262140ll /* 0xfffffffffffc0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262139ll /* 0xfffffffffffc0005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262136ll /* 0xfffffffffffc0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262135ll /* 0xfffffffffffc0009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-196609ll /* 0xfffffffffffcffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131080ll /* 0xfffffffffffdfff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-131079ll /* 0xfffffffffffdfff9 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-131076ll /* 0xfffffffffffdfffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-131075ll /* 0xfffffffffffdfffd */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-131074ll /* 0xfffffffffffdfffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-131073ll /* 0xfffffffffffdffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131072ll /* 0xfffffffffffe0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {-131071ll /* 0xfffffffffffe0001 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-131070ll /* 0xfffffffffffe0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131069ll /* 0xfffffffffffe0003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131068ll /* 0xfffffffffffe0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131067ll /* 0xfffffffffffe0005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131064ll /* 0xfffffffffffe0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131063ll /* 0xfffffffffffe0009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-98305ll /* 0xfffffffffffe7fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65544ll /* 0xfffffffffffefff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-65543ll /* 0xfffffffffffefff9 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-65540ll /* 0xfffffffffffefffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-65539ll /* 0xfffffffffffefffd */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-65538ll /* 0xfffffffffffefffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-65537ll /* 0xfffffffffffeffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65536ll /* 0xffffffffffff0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {-65535ll /* 0xffffffffffff0001 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-65534ll /* 0xffffffffffff0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65533ll /* 0xffffffffffff0003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65532ll /* 0xffffffffffff0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65531ll /* 0xffffffffffff0005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65528ll /* 0xffffffffffff0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65527ll /* 0xffffffffffff0009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-49153ll /* 0xffffffffffff3fff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32776ll /* 0xffffffffffff7ff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-32775ll /* 0xffffffffffff7ff9 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-32772ll /* 0xffffffffffff7ffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-32771ll /* 0xffffffffffff7ffd */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-32770ll /* 0xffffffffffff7ffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-32769ll /* 0xffffffffffff7fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32768ll /* 0xffffffffffff8000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {-32767ll /* 0xffffffffffff8001 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-32766ll /* 0xffffffffffff8002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32765ll /* 0xffffffffffff8003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32764ll /* 0xffffffffffff8004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32763ll /* 0xffffffffffff8005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32760ll /* 0xffffffffffff8008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32759ll /* 0xffffffffffff8009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-24577ll /* 0xffffffffffff9fff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16392ll /* 0xffffffffffffbff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-16391ll /* 0xffffffffffffbff9 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16388ll /* 0xffffffffffffbffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-16387ll /* 0xffffffffffffbffd */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16386ll /* 0xffffffffffffbffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-16385ll /* 0xffffffffffffbfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16384ll /* 0xffffffffffffc000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {-16383ll /* 0xffffffffffffc001 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-16382ll /* 0xffffffffffffc002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16381ll /* 0xffffffffffffc003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16380ll /* 0xffffffffffffc004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16379ll /* 0xffffffffffffc005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16376ll /* 0xffffffffffffc008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16375ll /* 0xffffffffffffc009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-12289ll /* 0xffffffffffffcfff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8200ll /* 0xffffffffffffdff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-8199ll /* 0xffffffffffffdff9 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8196ll /* 0xffffffffffffdffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-8195ll /* 0xffffffffffffdffd */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8194ll /* 0xffffffffffffdffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-8193ll /* 0xffffffffffffdfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8192ll /* 0xffffffffffffe000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {-8191ll /* 0xffffffffffffe001 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8190ll /* 0xffffffffffffe002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8189ll /* 0xffffffffffffe003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8188ll /* 0xffffffffffffe004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8187ll /* 0xffffffffffffe005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8184ll /* 0xffffffffffffe008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8183ll /* 0xffffffffffffe009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-6145ll /* 0xffffffffffffe7ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4104ll /* 0xffffffffffffeff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-4103ll /* 0xffffffffffffeff9 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4100ll /* 0xffffffffffffeffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-4099ll /* 0xffffffffffffeffd */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4098ll /* 0xffffffffffffeffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-4097ll /* 0xffffffffffffefff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4096ll /* 0xfffffffffffff000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {-4095ll /* 0xfffffffffffff001 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4094ll /* 0xfffffffffffff002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4093ll /* 0xfffffffffffff003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4092ll /* 0xfffffffffffff004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4091ll /* 0xfffffffffffff005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4088ll /* 0xfffffffffffff008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4087ll /* 0xfffffffffffff009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3073ll /* 0xfffffffffffff3ff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3072ll /* 0xfffffffffffff400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2056ll /* 0xfffffffffffff7f8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-2055ll /* 0xfffffffffffff7f9 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2052ll /* 0xfffffffffffff7fc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-2051ll /* 0xfffffffffffff7fd */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2050ll /* 0xfffffffffffff7fe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-2049ll /* 0xfffffffffffff7ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2048ll /* 0xfffffffffffff800 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {-2047ll /* 0xfffffffffffff801 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2046ll /* 0xfffffffffffff802 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2045ll /* 0xfffffffffffff803 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2044ll /* 0xfffffffffffff804 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2043ll /* 0xfffffffffffff805 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2040ll /* 0xfffffffffffff808 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2039ll /* 0xfffffffffffff809 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1537ll /* 0xfffffffffffff9ff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1032ll /* 0xfffffffffffffbf8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-1031ll /* 0xfffffffffffffbf9 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1028ll /* 0xfffffffffffffbfc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-1027ll /* 0xfffffffffffffbfd */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1026ll /* 0xfffffffffffffbfe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-1025ll /* 0xfffffffffffffbff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1024ll /* 0xfffffffffffffc00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {-1023ll /* 0xfffffffffffffc01 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1022ll /* 0xfffffffffffffc02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1021ll /* 0xfffffffffffffc03 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1020ll /* 0xfffffffffffffc04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1019ll /* 0xfffffffffffffc05 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1018ll /* 0xfffffffffffffc06 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-1017ll /* 0xfffffffffffffc07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1016ll /* 0xfffffffffffffc08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1015ll /* 0xfffffffffffffc09 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1014ll /* 0xfffffffffffffc0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-1013ll /* 0xfffffffffffffc0b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-1012ll /* 0xfffffffffffffc0c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-1011ll /* 0xfffffffffffffc0d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-1010ll /* 0xfffffffffffffc0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1009ll /* 0xfffffffffffffc0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1008ll /* 0xfffffffffffffc10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1007ll /* 0xfffffffffffffc11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1006ll /* 0xfffffffffffffc12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-1005ll /* 0xfffffffffffffc13 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* shl1add r5, r4, r1 */ - }, - {-1004ll /* 0xfffffffffffffc14 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-1003ll /* 0xfffffffffffffc15 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-1001ll /* 0xfffffffffffffc17 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1000ll /* 0xfffffffffffffc18 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-999ll /* 0xfffffffffffffc19 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-997ll /* 0xfffffffffffffc1b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-996ll /* 0xfffffffffffffc1c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 1, 3}, /* shl2add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-994ll /* 0xfffffffffffffc1e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-993ll /* 0xfffffffffffffc1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-992ll /* 0xfffffffffffffc20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-991ll /* 0xfffffffffffffc21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-990ll /* 0xfffffffffffffc22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-988ll /* 0xfffffffffffffc24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-987ll /* 0xfffffffffffffc25 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-984ll /* 0xfffffffffffffc28 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-983ll /* 0xfffffffffffffc29 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-979ll /* 0xfffffffffffffc2d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-976ll /* 0xfffffffffffffc30 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-975ll /* 0xfffffffffffffc31 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-969ll /* 0xfffffffffffffc37 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-968ll /* 0xfffffffffffffc38 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 1, 3}, /* shl3add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-967ll /* 0xfffffffffffffc39 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-965ll /* 0xfffffffffffffc3b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-964ll /* 0xfffffffffffffc3c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 1, 3}, /* shl2add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-963ll /* 0xfffffffffffffc3d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 1}, /* shl1add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-962ll /* 0xfffffffffffffc3e */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-961ll /* 0xfffffffffffffc3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-960ll /* 0xfffffffffffffc40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-959ll /* 0xfffffffffffffc41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-958ll /* 0xfffffffffffffc42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-957ll /* 0xfffffffffffffc43 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-956ll /* 0xfffffffffffffc44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-955ll /* 0xfffffffffffffc45 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-953ll /* 0xfffffffffffffc47 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-952ll /* 0xfffffffffffffc48 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-951ll /* 0xfffffffffffffc49 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-945ll /* 0xfffffffffffffc4f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {-944ll /* 0xfffffffffffffc50 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-943ll /* 0xfffffffffffffc51 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-942ll /* 0xfffffffffffffc52 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {-940ll /* 0xfffffffffffffc54 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-936ll /* 0xfffffffffffffc58 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-935ll /* 0xfffffffffffffc59 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-929ll /* 0xfffffffffffffc5f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-928ll /* 0xfffffffffffffc60 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-925ll /* 0xfffffffffffffc63 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-924ll /* 0xfffffffffffffc64 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-920ll /* 0xfffffffffffffc68 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-919ll /* 0xfffffffffffffc69 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-916ll /* 0xfffffffffffffc6c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-913ll /* 0xfffffffffffffc6f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-912ll /* 0xfffffffffffffc70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-911ll /* 0xfffffffffffffc71 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-910ll /* 0xfffffffffffffc72 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-905ll /* 0xfffffffffffffc77 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-904ll /* 0xfffffffffffffc78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-903ll /* 0xfffffffffffffc79 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-902ll /* 0xfffffffffffffc7a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-901ll /* 0xfffffffffffffc7b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-900ll /* 0xfffffffffffffc7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-899ll /* 0xfffffffffffffc7d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-898ll /* 0xfffffffffffffc7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-897ll /* 0xfffffffffffffc7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-896ll /* 0xfffffffffffffc80 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-895ll /* 0xfffffffffffffc81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-894ll /* 0xfffffffffffffc82 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-893ll /* 0xfffffffffffffc83 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-892ll /* 0xfffffffffffffc84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-891ll /* 0xfffffffffffffc85 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-890ll /* 0xfffffffffffffc86 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-889ll /* 0xfffffffffffffc87 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-888ll /* 0xfffffffffffffc88 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-887ll /* 0xfffffffffffffc89 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-886ll /* 0xfffffffffffffc8a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-884ll /* 0xfffffffffffffc8c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-881ll /* 0xfffffffffffffc8f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-880ll /* 0xfffffffffffffc90 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-879ll /* 0xfffffffffffffc91 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 1}} /* shl1add r5, r4, r1 */ - }, - {-873ll /* 0xfffffffffffffc97 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-872ll /* 0xfffffffffffffc98 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-868ll /* 0xfffffffffffffc9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-865ll /* 0xfffffffffffffc9f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-864ll /* 0xfffffffffffffca0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-863ll /* 0xfffffffffffffca1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-861ll /* 0xfffffffffffffca3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-860ll /* 0xfffffffffffffca4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-856ll /* 0xfffffffffffffca8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-855ll /* 0xfffffffffffffca9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-847ll /* 0xfffffffffffffcb1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-837ll /* 0xfffffffffffffcbb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-835ll /* 0xfffffffffffffcbd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-834ll /* 0xfffffffffffffcbe */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {-832ll /* 0xfffffffffffffcc0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {-831ll /* 0xfffffffffffffcc1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-829ll /* 0xfffffffffffffcc3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-828ll /* 0xfffffffffffffcc4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-827ll /* 0xfffffffffffffcc5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-824ll /* 0xfffffffffffffcc8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-823ll /* 0xfffffffffffffcc9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-819ll /* 0xfffffffffffffccd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-816ll /* 0xfffffffffffffcd0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-815ll /* 0xfffffffffffffcd1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-803ll /* 0xfffffffffffffcdd */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-801ll /* 0xfffffffffffffcdf */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-800ll /* 0xfffffffffffffce0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-799ll /* 0xfffffffffffffce1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-797ll /* 0xfffffffffffffce3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-796ll /* 0xfffffffffffffce4 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-795ll /* 0xfffffffffffffce5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-793ll /* 0xfffffffffffffce7 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-792ll /* 0xfffffffffffffce8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-791ll /* 0xfffffffffffffce9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-789ll /* 0xfffffffffffffceb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-788ll /* 0xfffffffffffffcec */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-785ll /* 0xfffffffffffffcef */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-784ll /* 0xfffffffffffffcf0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-783ll /* 0xfffffffffffffcf1 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-781ll /* 0xfffffffffffffcf3 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-780ll /* 0xfffffffffffffcf4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-779ll /* 0xfffffffffffffcf5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-777ll /* 0xfffffffffffffcf7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-776ll /* 0xfffffffffffffcf8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-775ll /* 0xfffffffffffffcf9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-774ll /* 0xfffffffffffffcfa */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-773ll /* 0xfffffffffffffcfb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-772ll /* 0xfffffffffffffcfc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-771ll /* 0xfffffffffffffcfd */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* shl1add r5, r4, r4 */ - }, - {-770ll /* 0xfffffffffffffcfe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-769ll /* 0xfffffffffffffcff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-768ll /* 0xfffffffffffffd00 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-767ll /* 0xfffffffffffffd01 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-766ll /* 0xfffffffffffffd02 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-765ll /* 0xfffffffffffffd03 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-764ll /* 0xfffffffffffffd04 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-763ll /* 0xfffffffffffffd05 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-762ll /* 0xfffffffffffffd06 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-761ll /* 0xfffffffffffffd07 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-760ll /* 0xfffffffffffffd08 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-759ll /* 0xfffffffffffffd09 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-757ll /* 0xfffffffffffffd0b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-756ll /* 0xfffffffffffffd0c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-755ll /* 0xfffffffffffffd0d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-753ll /* 0xfffffffffffffd0f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-752ll /* 0xfffffffffffffd10 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-751ll /* 0xfffffffffffffd11 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-749ll /* 0xfffffffffffffd13 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 1, 3}, /* shl3add r4, r1, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-748ll /* 0xfffffffffffffd14 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-744ll /* 0xfffffffffffffd18 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-743ll /* 0xfffffffffffffd19 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-741ll /* 0xfffffffffffffd1b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-739ll /* 0xfffffffffffffd1d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-737ll /* 0xfffffffffffffd1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-736ll /* 0xfffffffffffffd20 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-735ll /* 0xfffffffffffffd21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-732ll /* 0xfffffffffffffd24 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-729ll /* 0xfffffffffffffd27 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-728ll /* 0xfffffffffffffd28 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-720ll /* 0xfffffffffffffd30 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-719ll /* 0xfffffffffffffd31 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-715ll /* 0xfffffffffffffd35 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-712ll /* 0xfffffffffffffd38 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-711ll /* 0xfffffffffffffd39 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-708ll /* 0xfffffffffffffd3c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-707ll /* 0xfffffffffffffd3d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-705ll /* 0xfffffffffffffd3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-704ll /* 0xfffffffffffffd40 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {-703ll /* 0xfffffffffffffd41 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-701ll /* 0xfffffffffffffd43 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-700ll /* 0xfffffffffffffd44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-699ll /* 0xfffffffffffffd45 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-695ll /* 0xfffffffffffffd49 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-693ll /* 0xfffffffffffffd4b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-692ll /* 0xfffffffffffffd4c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-688ll /* 0xfffffffffffffd50 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-680ll /* 0xfffffffffffffd58 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-679ll /* 0xfffffffffffffd59 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-675ll /* 0xfffffffffffffd5d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-673ll /* 0xfffffffffffffd5f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-672ll /* 0xfffffffffffffd60 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-671ll /* 0xfffffffffffffd61 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-667ll /* 0xfffffffffffffd65 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-664ll /* 0xfffffffffffffd68 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-660ll /* 0xfffffffffffffd6c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-659ll /* 0xfffffffffffffd6d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-657ll /* 0xfffffffffffffd6f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-656ll /* 0xfffffffffffffd70 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-655ll /* 0xfffffffffffffd71 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-651ll /* 0xfffffffffffffd75 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-650ll /* 0xfffffffffffffd76 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-649ll /* 0xfffffffffffffd77 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-648ll /* 0xfffffffffffffd78 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-647ll /* 0xfffffffffffffd79 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-645ll /* 0xfffffffffffffd7b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-644ll /* 0xfffffffffffffd7c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-643ll /* 0xfffffffffffffd7d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-642ll /* 0xfffffffffffffd7e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-641ll /* 0xfffffffffffffd7f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-640ll /* 0xfffffffffffffd80 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {-639ll /* 0xfffffffffffffd81 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-638ll /* 0xfffffffffffffd82 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-637ll /* 0xfffffffffffffd83 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-636ll /* 0xfffffffffffffd84 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-635ll /* 0xfffffffffffffd85 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-634ll /* 0xfffffffffffffd86 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-633ll /* 0xfffffffffffffd87 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-632ll /* 0xfffffffffffffd88 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-631ll /* 0xfffffffffffffd89 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-630ll /* 0xfffffffffffffd8a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-629ll /* 0xfffffffffffffd8b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-627ll /* 0xfffffffffffffd8d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-625ll /* 0xfffffffffffffd8f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-624ll /* 0xfffffffffffffd90 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-620ll /* 0xfffffffffffffd94 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-619ll /* 0xfffffffffffffd95 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-616ll /* 0xfffffffffffffd98 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-615ll /* 0xfffffffffffffd99 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-613ll /* 0xfffffffffffffd9b */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 3}, /* shl2add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-612ll /* 0xfffffffffffffd9c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-611ll /* 0xfffffffffffffd9d */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-609ll /* 0xfffffffffffffd9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-608ll /* 0xfffffffffffffda0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-607ll /* 0xfffffffffffffda1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-604ll /* 0xfffffffffffffda4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-603ll /* 0xfffffffffffffda5 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-600ll /* 0xfffffffffffffda8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-599ll /* 0xfffffffffffffda9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-595ll /* 0xfffffffffffffdad */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-594ll /* 0xfffffffffffffdae */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-593ll /* 0xfffffffffffffdaf */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-592ll /* 0xfffffffffffffdb0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-591ll /* 0xfffffffffffffdb1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-589ll /* 0xfffffffffffffdb3 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-588ll /* 0xfffffffffffffdb4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 3}, /* shl2add r4, r3, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-585ll /* 0xfffffffffffffdb7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-584ll /* 0xfffffffffffffdb8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-583ll /* 0xfffffffffffffdb9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-581ll /* 0xfffffffffffffdbb */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {4, 3, 3}, /* shl2add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-580ll /* 0xfffffffffffffdbc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-579ll /* 0xfffffffffffffdbd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-578ll /* 0xfffffffffffffdbe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-577ll /* 0xfffffffffffffdbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-576ll /* 0xfffffffffffffdc0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {-575ll /* 0xfffffffffffffdc1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-574ll /* 0xfffffffffffffdc2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-573ll /* 0xfffffffffffffdc3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-572ll /* 0xfffffffffffffdc4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-571ll /* 0xfffffffffffffdc5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-569ll /* 0xfffffffffffffdc7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-568ll /* 0xfffffffffffffdc8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-567ll /* 0xfffffffffffffdc9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-566ll /* 0xfffffffffffffdca */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-565ll /* 0xfffffffffffffdcb */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-564ll /* 0xfffffffffffffdcc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-563ll /* 0xfffffffffffffdcd */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-561ll /* 0xfffffffffffffdcf */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-560ll /* 0xfffffffffffffdd0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-559ll /* 0xfffffffffffffdd1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-558ll /* 0xfffffffffffffdd2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-557ll /* 0xfffffffffffffdd3 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-556ll /* 0xfffffffffffffdd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-555ll /* 0xfffffffffffffdd5 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-553ll /* 0xfffffffffffffdd7 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-552ll /* 0xfffffffffffffdd8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-551ll /* 0xfffffffffffffdd9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-549ll /* 0xfffffffffffffddb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-548ll /* 0xfffffffffffffddc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-547ll /* 0xfffffffffffffddd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-546ll /* 0xfffffffffffffdde */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-545ll /* 0xfffffffffffffddf */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-544ll /* 0xfffffffffffffde0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-543ll /* 0xfffffffffffffde1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-542ll /* 0xfffffffffffffde2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-540ll /* 0xfffffffffffffde4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-539ll /* 0xfffffffffffffde5 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-536ll /* 0xfffffffffffffde8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-535ll /* 0xfffffffffffffde9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-533ll /* 0xfffffffffffffdeb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-532ll /* 0xfffffffffffffdec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-531ll /* 0xfffffffffffffded */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-530ll /* 0xfffffffffffffdee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-529ll /* 0xfffffffffffffdef */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-528ll /* 0xfffffffffffffdf0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-527ll /* 0xfffffffffffffdf1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-526ll /* 0xfffffffffffffdf2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-525ll /* 0xfffffffffffffdf3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-524ll /* 0xfffffffffffffdf4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-523ll /* 0xfffffffffffffdf5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-522ll /* 0xfffffffffffffdf6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-521ll /* 0xfffffffffffffdf7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-520ll /* 0xfffffffffffffdf8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-519ll /* 0xfffffffffffffdf9 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-518ll /* 0xfffffffffffffdfa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-517ll /* 0xfffffffffffffdfb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-516ll /* 0xfffffffffffffdfc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-515ll /* 0xfffffffffffffdfd */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-514ll /* 0xfffffffffffffdfe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-513ll /* 0xfffffffffffffdff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-512ll /* 0xfffffffffffffe00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {-511ll /* 0xfffffffffffffe01 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-510ll /* 0xfffffffffffffe02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-509ll /* 0xfffffffffffffe03 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-508ll /* 0xfffffffffffffe04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-507ll /* 0xfffffffffffffe05 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-506ll /* 0xfffffffffffffe06 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-505ll /* 0xfffffffffffffe07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-504ll /* 0xfffffffffffffe08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-503ll /* 0xfffffffffffffe09 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-502ll /* 0xfffffffffffffe0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-501ll /* 0xfffffffffffffe0b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-500ll /* 0xfffffffffffffe0c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-499ll /* 0xfffffffffffffe0d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-498ll /* 0xfffffffffffffe0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-497ll /* 0xfffffffffffffe0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-496ll /* 0xfffffffffffffe10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-495ll /* 0xfffffffffffffe11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-494ll /* 0xfffffffffffffe12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-493ll /* 0xfffffffffffffe13 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* shl1add r5, r4, r1 */ - }, - {-492ll /* 0xfffffffffffffe14 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-491ll /* 0xfffffffffffffe15 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-489ll /* 0xfffffffffffffe17 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-488ll /* 0xfffffffffffffe18 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-487ll /* 0xfffffffffffffe19 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-485ll /* 0xfffffffffffffe1b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-484ll /* 0xfffffffffffffe1c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 1, 3}, /* shl2add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-483ll /* 0xfffffffffffffe1d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 1}, /* shl1add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-482ll /* 0xfffffffffffffe1e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-481ll /* 0xfffffffffffffe1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-480ll /* 0xfffffffffffffe20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-479ll /* 0xfffffffffffffe21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-478ll /* 0xfffffffffffffe22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-477ll /* 0xfffffffffffffe23 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-476ll /* 0xfffffffffffffe24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-475ll /* 0xfffffffffffffe25 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-472ll /* 0xfffffffffffffe28 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-471ll /* 0xfffffffffffffe29 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-468ll /* 0xfffffffffffffe2c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-467ll /* 0xfffffffffffffe2d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-465ll /* 0xfffffffffffffe2f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {-464ll /* 0xfffffffffffffe30 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-463ll /* 0xfffffffffffffe31 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-462ll /* 0xfffffffffffffe32 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-460ll /* 0xfffffffffffffe34 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-457ll /* 0xfffffffffffffe37 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-456ll /* 0xfffffffffffffe38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-455ll /* 0xfffffffffffffe39 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-454ll /* 0xfffffffffffffe3a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-453ll /* 0xfffffffffffffe3b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-452ll /* 0xfffffffffffffe3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-451ll /* 0xfffffffffffffe3d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-450ll /* 0xfffffffffffffe3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-449ll /* 0xfffffffffffffe3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-448ll /* 0xfffffffffffffe40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-447ll /* 0xfffffffffffffe41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-446ll /* 0xfffffffffffffe42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-445ll /* 0xfffffffffffffe43 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-444ll /* 0xfffffffffffffe44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-443ll /* 0xfffffffffffffe45 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-442ll /* 0xfffffffffffffe46 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-441ll /* 0xfffffffffffffe47 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-440ll /* 0xfffffffffffffe48 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-439ll /* 0xfffffffffffffe49 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-438ll /* 0xfffffffffffffe4a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-436ll /* 0xfffffffffffffe4c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-433ll /* 0xfffffffffffffe4f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-432ll /* 0xfffffffffffffe50 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-431ll /* 0xfffffffffffffe51 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-429ll /* 0xfffffffffffffe53 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-428ll /* 0xfffffffffffffe54 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-424ll /* 0xfffffffffffffe58 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-423ll /* 0xfffffffffffffe59 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-419ll /* 0xfffffffffffffe5d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-418ll /* 0xfffffffffffffe5e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {-417ll /* 0xfffffffffffffe5f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-416ll /* 0xfffffffffffffe60 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-415ll /* 0xfffffffffffffe61 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-413ll /* 0xfffffffffffffe63 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-412ll /* 0xfffffffffffffe64 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-411ll /* 0xfffffffffffffe65 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-409ll /* 0xfffffffffffffe67 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-408ll /* 0xfffffffffffffe68 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-407ll /* 0xfffffffffffffe69 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-405ll /* 0xfffffffffffffe6b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-404ll /* 0xfffffffffffffe6c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-403ll /* 0xfffffffffffffe6d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-401ll /* 0xfffffffffffffe6f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-400ll /* 0xfffffffffffffe70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-399ll /* 0xfffffffffffffe71 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-397ll /* 0xfffffffffffffe73 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-396ll /* 0xfffffffffffffe74 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-395ll /* 0xfffffffffffffe75 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-393ll /* 0xfffffffffffffe77 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-392ll /* 0xfffffffffffffe78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-391ll /* 0xfffffffffffffe79 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-390ll /* 0xfffffffffffffe7a */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-389ll /* 0xfffffffffffffe7b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-388ll /* 0xfffffffffffffe7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-387ll /* 0xfffffffffffffe7d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* shl1add r5, r4, r4 */ - }, - {-386ll /* 0xfffffffffffffe7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-385ll /* 0xfffffffffffffe7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-384ll /* 0xfffffffffffffe80 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-383ll /* 0xfffffffffffffe81 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-382ll /* 0xfffffffffffffe82 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-381ll /* 0xfffffffffffffe83 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-380ll /* 0xfffffffffffffe84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-379ll /* 0xfffffffffffffe85 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-378ll /* 0xfffffffffffffe86 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-377ll /* 0xfffffffffffffe87 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-376ll /* 0xfffffffffffffe88 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-375ll /* 0xfffffffffffffe89 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-373ll /* 0xfffffffffffffe8b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-372ll /* 0xfffffffffffffe8c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-371ll /* 0xfffffffffffffe8d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-369ll /* 0xfffffffffffffe8f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-368ll /* 0xfffffffffffffe90 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-367ll /* 0xfffffffffffffe91 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-365ll /* 0xfffffffffffffe93 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 1, 3}, /* shl3add r4, r1, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-364ll /* 0xfffffffffffffe94 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-361ll /* 0xfffffffffffffe97 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-360ll /* 0xfffffffffffffe98 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-359ll /* 0xfffffffffffffe99 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-357ll /* 0xfffffffffffffe9b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-356ll /* 0xfffffffffffffe9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-355ll /* 0xfffffffffffffe9d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-353ll /* 0xfffffffffffffe9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-352ll /* 0xfffffffffffffea0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-351ll /* 0xfffffffffffffea1 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-349ll /* 0xfffffffffffffea3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-348ll /* 0xfffffffffffffea4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-347ll /* 0xfffffffffffffea5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-344ll /* 0xfffffffffffffea8 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-343ll /* 0xfffffffffffffea9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-341ll /* 0xfffffffffffffeab */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-340ll /* 0xfffffffffffffeac */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-339ll /* 0xfffffffffffffead */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-337ll /* 0xfffffffffffffeaf */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-336ll /* 0xfffffffffffffeb0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-335ll /* 0xfffffffffffffeb1 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-333ll /* 0xfffffffffffffeb3 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-332ll /* 0xfffffffffffffeb4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-331ll /* 0xfffffffffffffeb5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-330ll /* 0xfffffffffffffeb6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-329ll /* 0xfffffffffffffeb7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-328ll /* 0xfffffffffffffeb8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-327ll /* 0xfffffffffffffeb9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-325ll /* 0xfffffffffffffebb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-324ll /* 0xfffffffffffffebc */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-323ll /* 0xfffffffffffffebd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-322ll /* 0xfffffffffffffebe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-321ll /* 0xfffffffffffffebf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-320ll /* 0xfffffffffffffec0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {-319ll /* 0xfffffffffffffec1 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-318ll /* 0xfffffffffffffec2 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-317ll /* 0xfffffffffffffec3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-316ll /* 0xfffffffffffffec4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-315ll /* 0xfffffffffffffec5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-314ll /* 0xfffffffffffffec6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-313ll /* 0xfffffffffffffec7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-312ll /* 0xfffffffffffffec8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-311ll /* 0xfffffffffffffec9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-310ll /* 0xfffffffffffffeca */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-309ll /* 0xfffffffffffffecb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-307ll /* 0xfffffffffffffecd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-306ll /* 0xfffffffffffffece */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-305ll /* 0xfffffffffffffecf */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-304ll /* 0xfffffffffffffed0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-303ll /* 0xfffffffffffffed1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-301ll /* 0xfffffffffffffed3 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-300ll /* 0xfffffffffffffed4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-299ll /* 0xfffffffffffffed5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-297ll /* 0xfffffffffffffed7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-296ll /* 0xfffffffffffffed8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-295ll /* 0xfffffffffffffed9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-293ll /* 0xfffffffffffffedb */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-292ll /* 0xfffffffffffffedc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-291ll /* 0xfffffffffffffedd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-290ll /* 0xfffffffffffffede */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {-289ll /* 0xfffffffffffffedf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-288ll /* 0xfffffffffffffee0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {-287ll /* 0xfffffffffffffee1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-286ll /* 0xfffffffffffffee2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-285ll /* 0xfffffffffffffee3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-284ll /* 0xfffffffffffffee4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-283ll /* 0xfffffffffffffee5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-281ll /* 0xfffffffffffffee7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-280ll /* 0xfffffffffffffee8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-279ll /* 0xfffffffffffffee9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-278ll /* 0xfffffffffffffeea */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-277ll /* 0xfffffffffffffeeb */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-276ll /* 0xfffffffffffffeec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-275ll /* 0xfffffffffffffeed */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-274ll /* 0xfffffffffffffeee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-273ll /* 0xfffffffffffffeef */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-272ll /* 0xfffffffffffffef0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-271ll /* 0xfffffffffffffef1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-270ll /* 0xfffffffffffffef2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-269ll /* 0xfffffffffffffef3 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-268ll /* 0xfffffffffffffef4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-267ll /* 0xfffffffffffffef5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-266ll /* 0xfffffffffffffef6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-265ll /* 0xfffffffffffffef7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-264ll /* 0xfffffffffffffef8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-263ll /* 0xfffffffffffffef9 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262ll /* 0xfffffffffffffefa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-261ll /* 0xfffffffffffffefb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-260ll /* 0xfffffffffffffefc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-259ll /* 0xfffffffffffffefd */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-258ll /* 0xfffffffffffffefe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-257ll /* 0xfffffffffffffeff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-256ll /* 0xffffffffffffff00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {-255ll /* 0xffffffffffffff01 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-254ll /* 0xffffffffffffff02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-253ll /* 0xffffffffffffff03 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-252ll /* 0xffffffffffffff04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-251ll /* 0xffffffffffffff05 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-250ll /* 0xffffffffffffff06 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-249ll /* 0xffffffffffffff07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-248ll /* 0xffffffffffffff08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-247ll /* 0xffffffffffffff09 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-246ll /* 0xffffffffffffff0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-245ll /* 0xffffffffffffff0b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-244ll /* 0xffffffffffffff0c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-243ll /* 0xffffffffffffff0d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-242ll /* 0xffffffffffffff0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-241ll /* 0xffffffffffffff0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-240ll /* 0xffffffffffffff10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-239ll /* 0xffffffffffffff11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-238ll /* 0xffffffffffffff12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-237ll /* 0xffffffffffffff13 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* shl1add r5, r4, r1 */ - }, - {-236ll /* 0xffffffffffffff14 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-235ll /* 0xffffffffffffff15 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-234ll /* 0xffffffffffffff16 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-233ll /* 0xffffffffffffff17 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-232ll /* 0xffffffffffffff18 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-231ll /* 0xffffffffffffff19 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {-230ll /* 0xffffffffffffff1a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-229ll /* 0xffffffffffffff1b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-228ll /* 0xffffffffffffff1c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-227ll /* 0xffffffffffffff1d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-226ll /* 0xffffffffffffff1e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-225ll /* 0xffffffffffffff1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-224ll /* 0xffffffffffffff20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-223ll /* 0xffffffffffffff21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-222ll /* 0xffffffffffffff22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-221ll /* 0xffffffffffffff23 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-220ll /* 0xffffffffffffff24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-219ll /* 0xffffffffffffff25 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-218ll /* 0xffffffffffffff26 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-217ll /* 0xffffffffffffff27 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-216ll /* 0xffffffffffffff28 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-215ll /* 0xffffffffffffff29 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-214ll /* 0xffffffffffffff2a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-213ll /* 0xffffffffffffff2b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-212ll /* 0xffffffffffffff2c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-211ll /* 0xffffffffffffff2d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-210ll /* 0xffffffffffffff2e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {-209ll /* 0xffffffffffffff2f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-208ll /* 0xffffffffffffff30 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-207ll /* 0xffffffffffffff31 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-205ll /* 0xffffffffffffff33 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-204ll /* 0xffffffffffffff34 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-203ll /* 0xffffffffffffff35 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-202ll /* 0xffffffffffffff36 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-201ll /* 0xffffffffffffff37 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-200ll /* 0xffffffffffffff38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-199ll /* 0xffffffffffffff39 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-198ll /* 0xffffffffffffff3a */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-197ll /* 0xffffffffffffff3b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-196ll /* 0xffffffffffffff3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-195ll /* 0xffffffffffffff3d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* shl1add r5, r4, r4 */ - }, - {-194ll /* 0xffffffffffffff3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-193ll /* 0xffffffffffffff3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-192ll /* 0xffffffffffffff40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-191ll /* 0xffffffffffffff41 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-190ll /* 0xffffffffffffff42 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-189ll /* 0xffffffffffffff43 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-188ll /* 0xffffffffffffff44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-187ll /* 0xffffffffffffff45 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-186ll /* 0xffffffffffffff46 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-185ll /* 0xffffffffffffff47 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-184ll /* 0xffffffffffffff48 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-183ll /* 0xffffffffffffff49 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-181ll /* 0xffffffffffffff4b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-180ll /* 0xffffffffffffff4c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-179ll /* 0xffffffffffffff4d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-178ll /* 0xffffffffffffff4e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-177ll /* 0xffffffffffffff4f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-176ll /* 0xffffffffffffff50 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-175ll /* 0xffffffffffffff51 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-173ll /* 0xffffffffffffff53 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-172ll /* 0xffffffffffffff54 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-171ll /* 0xffffffffffffff55 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-170ll /* 0xffffffffffffff56 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-169ll /* 0xffffffffffffff57 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-168ll /* 0xffffffffffffff58 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-167ll /* 0xffffffffffffff59 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-165ll /* 0xffffffffffffff5b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-164ll /* 0xffffffffffffff5c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-163ll /* 0xffffffffffffff5d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-162ll /* 0xffffffffffffff5e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-161ll /* 0xffffffffffffff5f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-160ll /* 0xffffffffffffff60 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {-159ll /* 0xffffffffffffff61 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-158ll /* 0xffffffffffffff62 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-157ll /* 0xffffffffffffff63 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-156ll /* 0xffffffffffffff64 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-155ll /* 0xffffffffffffff65 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-154ll /* 0xffffffffffffff66 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-153ll /* 0xffffffffffffff67 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {-152ll /* 0xffffffffffffff68 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-151ll /* 0xffffffffffffff69 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-150ll /* 0xffffffffffffff6a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-149ll /* 0xffffffffffffff6b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-148ll /* 0xffffffffffffff6c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {-147ll /* 0xffffffffffffff6d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-146ll /* 0xffffffffffffff6e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-145ll /* 0xffffffffffffff6f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-144ll /* 0xffffffffffffff70 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {-143ll /* 0xffffffffffffff71 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-142ll /* 0xffffffffffffff72 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-141ll /* 0xffffffffffffff73 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-140ll /* 0xffffffffffffff74 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-139ll /* 0xffffffffffffff75 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-138ll /* 0xffffffffffffff76 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-137ll /* 0xffffffffffffff77 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-136ll /* 0xffffffffffffff78 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {-135ll /* 0xffffffffffffff79 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134ll /* 0xffffffffffffff7a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-133ll /* 0xffffffffffffff7b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-132ll /* 0xffffffffffffff7c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-131ll /* 0xffffffffffffff7d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-130ll /* 0xffffffffffffff7e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-129ll /* 0xffffffffffffff7f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-128ll /* 0xffffffffffffff80 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {-127ll /* 0xffffffffffffff81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-126ll /* 0xffffffffffffff82 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-125ll /* 0xffffffffffffff83 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-124ll /* 0xffffffffffffff84 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-123ll /* 0xffffffffffffff85 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-122ll /* 0xffffffffffffff86 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-121ll /* 0xffffffffffffff87 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-120ll /* 0xffffffffffffff88 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-119ll /* 0xffffffffffffff89 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-118ll /* 0xffffffffffffff8a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-117ll /* 0xffffffffffffff8b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-116ll /* 0xffffffffffffff8c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-115ll /* 0xffffffffffffff8d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-114ll /* 0xffffffffffffff8e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-113ll /* 0xffffffffffffff8f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-112ll /* 0xffffffffffffff90 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-111ll /* 0xffffffffffffff91 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-110ll /* 0xffffffffffffff92 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-109ll /* 0xffffffffffffff93 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-108ll /* 0xffffffffffffff94 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-107ll /* 0xffffffffffffff95 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {-106ll /* 0xffffffffffffff96 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {-105ll /* 0xffffffffffffff97 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-104ll /* 0xffffffffffffff98 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-103ll /* 0xffffffffffffff99 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {-102ll /* 0xffffffffffffff9a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {-101ll /* 0xffffffffffffff9b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-100ll /* 0xffffffffffffff9c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-99ll /* 0xffffffffffffff9d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* shl1add r5, r4, r4 */ - }, - {-98ll /* 0xffffffffffffff9e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-97ll /* 0xffffffffffffff9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-96ll /* 0xffffffffffffffa0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-95ll /* 0xffffffffffffffa1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-94ll /* 0xffffffffffffffa2 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-93ll /* 0xffffffffffffffa3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-92ll /* 0xffffffffffffffa4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-91ll /* 0xffffffffffffffa5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-90ll /* 0xffffffffffffffa6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-89ll /* 0xffffffffffffffa7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-88ll /* 0xffffffffffffffa8 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-87ll /* 0xffffffffffffffa9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-86ll /* 0xffffffffffffffaa */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-85ll /* 0xffffffffffffffab */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {-84ll /* 0xffffffffffffffac */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-83ll /* 0xffffffffffffffad */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-82ll /* 0xffffffffffffffae */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {-81ll /* 0xffffffffffffffaf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {-80ll /* 0xffffffffffffffb0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {-79ll /* 0xffffffffffffffb1 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-78ll /* 0xffffffffffffffb2 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-77ll /* 0xffffffffffffffb3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-76ll /* 0xffffffffffffffb4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-75ll /* 0xffffffffffffffb5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-74ll /* 0xffffffffffffffb6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-73ll /* 0xffffffffffffffb7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-72ll /* 0xffffffffffffffb8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {-71ll /* 0xffffffffffffffb9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-70ll /* 0xffffffffffffffba */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-69ll /* 0xffffffffffffffbb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {-68ll /* 0xffffffffffffffbc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {-67ll /* 0xffffffffffffffbd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-66ll /* 0xffffffffffffffbe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-65ll /* 0xffffffffffffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-64ll /* 0xffffffffffffffc0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {-63ll /* 0xffffffffffffffc1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-62ll /* 0xffffffffffffffc2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-61ll /* 0xffffffffffffffc3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-60ll /* 0xffffffffffffffc4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-59ll /* 0xffffffffffffffc5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-58ll /* 0xffffffffffffffc6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-57ll /* 0xffffffffffffffc7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-56ll /* 0xffffffffffffffc8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-55ll /* 0xffffffffffffffc9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-54ll /* 0xffffffffffffffca */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-53ll /* 0xffffffffffffffcb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {-52ll /* 0xffffffffffffffcc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-51ll /* 0xffffffffffffffcd */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* shl1add r5, r4, r4 */ - }, - {-50ll /* 0xffffffffffffffce */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-49ll /* 0xffffffffffffffcf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-48ll /* 0xffffffffffffffd0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-47ll /* 0xffffffffffffffd1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-46ll /* 0xffffffffffffffd2 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-45ll /* 0xffffffffffffffd3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-44ll /* 0xffffffffffffffd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-43ll /* 0xffffffffffffffd5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {-42ll /* 0xffffffffffffffd6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-41ll /* 0xffffffffffffffd7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {-40ll /* 0xffffffffffffffd8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {-39ll /* 0xffffffffffffffd9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-38ll /* 0xffffffffffffffda */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-37ll /* 0xffffffffffffffdb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {-36ll /* 0xffffffffffffffdc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {-35ll /* 0xffffffffffffffdd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34ll /* 0xffffffffffffffde */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {-33ll /* 0xffffffffffffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32ll /* 0xffffffffffffffe0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {-31ll /* 0xffffffffffffffe1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-30ll /* 0xffffffffffffffe2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-29ll /* 0xffffffffffffffe3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-28ll /* 0xffffffffffffffe4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-27ll /* 0xffffffffffffffe5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-26ll /* 0xffffffffffffffe6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-25ll /* 0xffffffffffffffe7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-24ll /* 0xffffffffffffffe8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-23ll /* 0xffffffffffffffe9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-22ll /* 0xffffffffffffffea */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-21ll /* 0xffffffffffffffeb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-20ll /* 0xffffffffffffffec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {-19ll /* 0xffffffffffffffed */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-18ll /* 0xffffffffffffffee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {-17ll /* 0xffffffffffffffef */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16ll /* 0xfffffffffffffff0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {-15ll /* 0xfffffffffffffff1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-14ll /* 0xfffffffffffffff2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-13ll /* 0xfffffffffffffff3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-12ll /* 0xfffffffffffffff4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-11ll /* 0xfffffffffffffff5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-10ll /* 0xfffffffffffffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9ll /* 0xfffffffffffffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}} /* shl3add r3, r2, r2 */ - }, - {-8ll /* 0xfffffffffffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {-7ll /* 0xfffffffffffffff9 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-6ll /* 0xfffffffffffffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-5ll /* 0xfffffffffffffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}} /* shl2add r3, r2, r2 */ - }, - {-4ll /* 0xfffffffffffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {-3ll /* 0xfffffffffffffffd */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2ll /* 0xfffffffffffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {-1ll /* 0xffffffffffffffff */ , - {{2, 0, 1}} /* sub r2, zero, r1 */ - }, - {2ll /* 0x2 */ , - {{6, 1, 1}} /* shli r2, r1, 1 */ - }, - {3ll /* 0x3 */ , - {{3, 1, 1}} /* shl1add r2, r1, r1 */ - }, - {4ll /* 0x4 */ , - {{6, 1, 2}} /* shli r2, r1, 2 */ - }, - {5ll /* 0x5 */ , - {{4, 1, 1}} /* shl2add r2, r1, r1 */ - }, - {6ll /* 0x6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {7ll /* 0x7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8ll /* 0x8 */ , - {{6, 1, 3}} /* shli r2, r1, 3 */ - }, - {9ll /* 0x9 */ , - {{5, 1, 1}} /* shl3add r2, r1, r1 */ - }, - {10ll /* 0xa */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {11ll /* 0xb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}} /* shl1add r3, r2, r1 */ - }, - {12ll /* 0xc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {13ll /* 0xd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}} /* shl2add r3, r2, r1 */ - }, - {14ll /* 0xe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {15ll /* 0xf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16ll /* 0x10 */ , - {{6, 1, 4}} /* shli r2, r1, 4 */ - }, - {17ll /* 0x11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {18ll /* 0x12 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {19ll /* 0x13 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}} /* shl1add r3, r2, r1 */ - }, - {20ll /* 0x14 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {21ll /* 0x15 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}} /* shl2add r3, r2, r1 */ - }, - {22ll /* 0x16 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {23ll /* 0x17 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {24ll /* 0x18 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {25ll /* 0x19 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}} /* shl3add r3, r2, r1 */ - }, - {26ll /* 0x1a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {27ll /* 0x1b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}} /* shl3add r3, r2, r2 */ - }, - {28ll /* 0x1c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {29ll /* 0x1d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {30ll /* 0x1e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {31ll /* 0x1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {32ll /* 0x20 */ , - {{6, 1, 5}} /* shli r2, r1, 5 */ - }, - {33ll /* 0x21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {34ll /* 0x22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {35ll /* 0x23 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36ll /* 0x24 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {37ll /* 0x25 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}} /* shl2add r3, r2, r1 */ - }, - {38ll /* 0x26 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {39ll /* 0x27 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {40ll /* 0x28 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {41ll /* 0x29 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}} /* shl3add r3, r2, r1 */ - }, - {42ll /* 0x2a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {43ll /* 0x2b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {44ll /* 0x2c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {45ll /* 0x2d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}} /* shl3add r3, r2, r2 */ - }, - {46ll /* 0x2e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {47ll /* 0x2f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {48ll /* 0x30 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {49ll /* 0x31 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {50ll /* 0x32 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {51ll /* 0x33 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {52ll /* 0x34 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {53ll /* 0x35 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {54ll /* 0x36 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {55ll /* 0x37 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {56ll /* 0x38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {57ll /* 0x39 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {58ll /* 0x3a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {59ll /* 0x3b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {60ll /* 0x3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {61ll /* 0x3d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {62ll /* 0x3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {63ll /* 0x3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {64ll /* 0x40 */ , - {{6, 1, 6}} /* shli r2, r1, 6 */ - }, - {65ll /* 0x41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {66ll /* 0x42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {67ll /* 0x43 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68ll /* 0x44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {69ll /* 0x45 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70ll /* 0x46 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {71ll /* 0x47 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {72ll /* 0x48 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {73ll /* 0x49 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}} /* shl3add r3, r2, r1 */ - }, - {74ll /* 0x4a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {75ll /* 0x4b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {76ll /* 0x4c */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {77ll /* 0x4d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {78ll /* 0x4e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {79ll /* 0x4f */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {80ll /* 0x50 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {81ll /* 0x51 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}} /* shl3add r3, r2, r2 */ - }, - {82ll /* 0x52 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {83ll /* 0x53 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 1}} /* shl1add r4, r3, r1 */ - }, - {84ll /* 0x54 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {85ll /* 0x55 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {86ll /* 0x56 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {87ll /* 0x57 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {88ll /* 0x58 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {89ll /* 0x59 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {90ll /* 0x5a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {91ll /* 0x5b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {3, 3, 1}} /* shl1add r4, r3, r1 */ - }, - {92ll /* 0x5c */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {93ll /* 0x5d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {94ll /* 0x5e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {95ll /* 0x5f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {96ll /* 0x60 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {97ll /* 0x61 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {98ll /* 0x62 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {99ll /* 0x63 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {100ll /* 0x64 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {101ll /* 0x65 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 1}} /* shl2add r4, r3, r1 */ - }, - {102ll /* 0x66 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {103ll /* 0x67 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {104ll /* 0x68 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {105ll /* 0x69 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {106ll /* 0x6a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {107ll /* 0x6b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {108ll /* 0x6c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {109ll /* 0x6d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 1}} /* shl2add r4, r3, r1 */ - }, - {110ll /* 0x6e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {111ll /* 0x6f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {112ll /* 0x70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {113ll /* 0x71 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {114ll /* 0x72 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {115ll /* 0x73 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {116ll /* 0x74 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {117ll /* 0x75 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {118ll /* 0x76 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {119ll /* 0x77 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {120ll /* 0x78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {121ll /* 0x79 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {122ll /* 0x7a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {123ll /* 0x7b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {124ll /* 0x7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {125ll /* 0x7d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {126ll /* 0x7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {127ll /* 0x7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {128ll /* 0x80 */ , - {{6, 1, 7}} /* shli r2, r1, 7 */ - }, - {129ll /* 0x81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {130ll /* 0x82 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {131ll /* 0x83 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {132ll /* 0x84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {133ll /* 0x85 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134ll /* 0x86 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {135ll /* 0x87 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {136ll /* 0x88 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {137ll /* 0x89 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {138ll /* 0x8a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {139ll /* 0x8b */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {140ll /* 0x8c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {141ll /* 0x8d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {142ll /* 0x8e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {143ll /* 0x8f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {144ll /* 0x90 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {145ll /* 0x91 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {146ll /* 0x92 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {147ll /* 0x93 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 1}} /* shl1add r4, r3, r1 */ - }, - {148ll /* 0x94 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {149ll /* 0x95 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 1}} /* shl2add r4, r3, r1 */ - }, - {150ll /* 0x96 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {151ll /* 0x97 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {152ll /* 0x98 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {153ll /* 0x99 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {154ll /* 0x9a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {155ll /* 0x9b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {156ll /* 0x9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {157ll /* 0x9d */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {158ll /* 0x9e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {159ll /* 0x9f */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {160ll /* 0xa0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {161ll /* 0xa1 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {162ll /* 0xa2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {163ll /* 0xa3 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {3, 3, 1}} /* shl1add r4, r3, r1 */ - }, - {164ll /* 0xa4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {165ll /* 0xa5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {166ll /* 0xa6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {167ll /* 0xa7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {168ll /* 0xa8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {169ll /* 0xa9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {170ll /* 0xaa */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {171ll /* 0xab */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {172ll /* 0xac */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {173ll /* 0xad */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {174ll /* 0xae */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {175ll /* 0xaf */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {176ll /* 0xb0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {177ll /* 0xb1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {178ll /* 0xb2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {179ll /* 0xb3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {180ll /* 0xb4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {181ll /* 0xb5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 1}} /* shl2add r4, r3, r1 */ - }, - {182ll /* 0xb6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {183ll /* 0xb7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {184ll /* 0xb8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {185ll /* 0xb9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {186ll /* 0xba */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {187ll /* 0xbb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {188ll /* 0xbc */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {189ll /* 0xbd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {190ll /* 0xbe */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {191ll /* 0xbf */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {192ll /* 0xc0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {193ll /* 0xc1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {194ll /* 0xc2 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {195ll /* 0xc3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {196ll /* 0xc4 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {197ll /* 0xc5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {198ll /* 0xc6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {199ll /* 0xc7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {200ll /* 0xc8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {201ll /* 0xc9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {202ll /* 0xca */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {203ll /* 0xcb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {204ll /* 0xcc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {205ll /* 0xcd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {206ll /* 0xce */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {207ll /* 0xcf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {208ll /* 0xd0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {209ll /* 0xd1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {210ll /* 0xd2 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {211ll /* 0xd3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {212ll /* 0xd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {213ll /* 0xd5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {214ll /* 0xd6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {215ll /* 0xd7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {216ll /* 0xd8 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {217ll /* 0xd9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {218ll /* 0xda */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {219ll /* 0xdb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {220ll /* 0xdc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {221ll /* 0xdd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {222ll /* 0xde */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {223ll /* 0xdf */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {224ll /* 0xe0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {225ll /* 0xe1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {226ll /* 0xe2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {227ll /* 0xe3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {228ll /* 0xe4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {229ll /* 0xe5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {230ll /* 0xe6 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {231ll /* 0xe7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 8}, /* shli r4, r1, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {232ll /* 0xe8 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {233ll /* 0xe9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {234ll /* 0xea */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {235ll /* 0xeb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {236ll /* 0xec */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {237ll /* 0xed */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {238ll /* 0xee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {239ll /* 0xef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {240ll /* 0xf0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {241ll /* 0xf1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {242ll /* 0xf2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {243ll /* 0xf3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {244ll /* 0xf4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {245ll /* 0xf5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {246ll /* 0xf6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {247ll /* 0xf7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {248ll /* 0xf8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {249ll /* 0xf9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {250ll /* 0xfa */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {251ll /* 0xfb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {252ll /* 0xfc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {253ll /* 0xfd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {254ll /* 0xfe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {255ll /* 0xff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {256ll /* 0x100 */ , - {{6, 1, 8}} /* shli r2, r1, 8 */ - }, - {257ll /* 0x101 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {258ll /* 0x102 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {259ll /* 0x103 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {260ll /* 0x104 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {261ll /* 0x105 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262ll /* 0x106 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {263ll /* 0x107 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {264ll /* 0x108 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {265ll /* 0x109 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {266ll /* 0x10a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {267ll /* 0x10b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {268ll /* 0x10c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {269ll /* 0x10d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {270ll /* 0x10e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {271ll /* 0x10f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {272ll /* 0x110 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {273ll /* 0x111 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {274ll /* 0x112 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {275ll /* 0x113 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {276ll /* 0x114 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {277ll /* 0x115 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {278ll /* 0x116 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {279ll /* 0x117 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {280ll /* 0x118 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {281ll /* 0x119 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {282ll /* 0x11a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {283ll /* 0x11b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {284ll /* 0x11c */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {285ll /* 0x11d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {286ll /* 0x11e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {287ll /* 0x11f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {288ll /* 0x120 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {289ll /* 0x121 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {290ll /* 0x122 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {291ll /* 0x123 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {292ll /* 0x124 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {293ll /* 0x125 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 1}} /* shl2add r4, r3, r1 */ - }, - {294ll /* 0x126 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {295ll /* 0x127 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {296ll /* 0x128 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {297ll /* 0x129 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {298ll /* 0x12a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {299ll /* 0x12b */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {300ll /* 0x12c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {301ll /* 0x12d */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {302ll /* 0x12e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {303ll /* 0x12f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {304ll /* 0x130 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {305ll /* 0x131 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {306ll /* 0x132 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {307ll /* 0x133 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {308ll /* 0x134 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {309ll /* 0x135 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {310ll /* 0x136 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {311ll /* 0x137 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {312ll /* 0x138 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {313ll /* 0x139 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {314ll /* 0x13a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {315ll /* 0x13b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {316ll /* 0x13c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {317ll /* 0x13d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {318ll /* 0x13e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {319ll /* 0x13f */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {320ll /* 0x140 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {321ll /* 0x141 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {322ll /* 0x142 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {323ll /* 0x143 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {324ll /* 0x144 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {325ll /* 0x145 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {326ll /* 0x146 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {327ll /* 0x147 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {328ll /* 0x148 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {329ll /* 0x149 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {330ll /* 0x14a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {331ll /* 0x14b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {332ll /* 0x14c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {333ll /* 0x14d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {334ll /* 0x14e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {335ll /* 0x14f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {336ll /* 0x150 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {337ll /* 0x151 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {338ll /* 0x152 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {339ll /* 0x153 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {340ll /* 0x154 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {341ll /* 0x155 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {342ll /* 0x156 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {343ll /* 0x157 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {344ll /* 0x158 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {345ll /* 0x159 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {346ll /* 0x15a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {347ll /* 0x15b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {348ll /* 0x15c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 2}, /* shli r4, r2, 2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {349ll /* 0x15d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {350ll /* 0x15e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {351ll /* 0x15f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {352ll /* 0x160 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {353ll /* 0x161 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {354ll /* 0x162 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {355ll /* 0x163 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {356ll /* 0x164 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {357ll /* 0x165 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {358ll /* 0x166 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {359ll /* 0x167 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {360ll /* 0x168 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {361ll /* 0x169 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {362ll /* 0x16a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {363ll /* 0x16b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {364ll /* 0x16c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 2}, /* shli r4, r1, 2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {365ll /* 0x16d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {366ll /* 0x16e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {367ll /* 0x16f */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {368ll /* 0x170 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {369ll /* 0x171 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {370ll /* 0x172 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {371ll /* 0x173 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {372ll /* 0x174 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {373ll /* 0x175 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {374ll /* 0x176 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {375ll /* 0x177 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {376ll /* 0x178 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {377ll /* 0x179 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {378ll /* 0x17a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {379ll /* 0x17b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {380ll /* 0x17c */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {381ll /* 0x17d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {382ll /* 0x17e */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {383ll /* 0x17f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {384ll /* 0x180 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {385ll /* 0x181 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {386ll /* 0x182 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {387ll /* 0x183 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {388ll /* 0x184 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {389ll /* 0x185 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {390ll /* 0x186 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {391ll /* 0x187 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {392ll /* 0x188 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {393ll /* 0x189 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {394ll /* 0x18a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {395ll /* 0x18b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {396ll /* 0x18c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {397ll /* 0x18d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {398ll /* 0x18e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {399ll /* 0x18f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {400ll /* 0x190 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {401ll /* 0x191 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {402ll /* 0x192 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {403ll /* 0x193 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {404ll /* 0x194 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {405ll /* 0x195 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {406ll /* 0x196 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {407ll /* 0x197 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {408ll /* 0x198 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {409ll /* 0x199 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {410ll /* 0x19a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {411ll /* 0x19b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {412ll /* 0x19c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {413ll /* 0x19d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {414ll /* 0x19e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {415ll /* 0x19f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {416ll /* 0x1a0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {417ll /* 0x1a1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {418ll /* 0x1a2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {419ll /* 0x1a3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {420ll /* 0x1a4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {421ll /* 0x1a5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {422ll /* 0x1a6 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {423ll /* 0x1a7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {424ll /* 0x1a8 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {425ll /* 0x1a9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {426ll /* 0x1aa */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {427ll /* 0x1ab */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {428ll /* 0x1ac */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {429ll /* 0x1ad */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {430ll /* 0x1ae */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {431ll /* 0x1af */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {432ll /* 0x1b0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {433ll /* 0x1b1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {434ll /* 0x1b2 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {435ll /* 0x1b3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {436ll /* 0x1b4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {437ll /* 0x1b5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {438ll /* 0x1b6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {439ll /* 0x1b7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {440ll /* 0x1b8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {441ll /* 0x1b9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {442ll /* 0x1ba */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {443ll /* 0x1bb */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {444ll /* 0x1bc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {445ll /* 0x1bd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {446ll /* 0x1be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {447ll /* 0x1bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {448ll /* 0x1c0 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {449ll /* 0x1c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {450ll /* 0x1c2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {451ll /* 0x1c3 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {452ll /* 0x1c4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {453ll /* 0x1c5 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {454ll /* 0x1c6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {455ll /* 0x1c7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {456ll /* 0x1c8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {457ll /* 0x1c9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {458ll /* 0x1ca */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {459ll /* 0x1cb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {460ll /* 0x1cc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {461ll /* 0x1cd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {462ll /* 0x1ce */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {463ll /* 0x1cf */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {464ll /* 0x1d0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {465ll /* 0x1d1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {467ll /* 0x1d3 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {468ll /* 0x1d4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {469ll /* 0x1d5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {470ll /* 0x1d6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {471ll /* 0x1d7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {472ll /* 0x1d8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {473ll /* 0x1d9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {475ll /* 0x1db */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {476ll /* 0x1dc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {477ll /* 0x1dd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {478ll /* 0x1de */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {479ll /* 0x1df */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {480ll /* 0x1e0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {481ll /* 0x1e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {482ll /* 0x1e2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {483ll /* 0x1e3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {484ll /* 0x1e4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {485ll /* 0x1e5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {486ll /* 0x1e6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {487ll /* 0x1e7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {488ll /* 0x1e8 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {489ll /* 0x1e9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {490ll /* 0x1ea */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {491ll /* 0x1eb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {492ll /* 0x1ec */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {493ll /* 0x1ed */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {494ll /* 0x1ee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {495ll /* 0x1ef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {496ll /* 0x1f0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {497ll /* 0x1f1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {498ll /* 0x1f2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {499ll /* 0x1f3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {500ll /* 0x1f4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {501ll /* 0x1f5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {502ll /* 0x1f6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {503ll /* 0x1f7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {504ll /* 0x1f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {505ll /* 0x1f9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {506ll /* 0x1fa */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {507ll /* 0x1fb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {508ll /* 0x1fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {509ll /* 0x1fd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {510ll /* 0x1fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {511ll /* 0x1ff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {512ll /* 0x200 */ , - {{6, 1, 9}} /* shli r2, r1, 9 */ - }, - {513ll /* 0x201 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {514ll /* 0x202 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {515ll /* 0x203 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {516ll /* 0x204 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {517ll /* 0x205 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {518ll /* 0x206 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {519ll /* 0x207 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {520ll /* 0x208 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {521ll /* 0x209 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {522ll /* 0x20a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {523ll /* 0x20b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {524ll /* 0x20c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {525ll /* 0x20d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {526ll /* 0x20e */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {527ll /* 0x20f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {528ll /* 0x210 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {529ll /* 0x211 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {530ll /* 0x212 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {531ll /* 0x213 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {532ll /* 0x214 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {533ll /* 0x215 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {534ll /* 0x216 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {535ll /* 0x217 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {536ll /* 0x218 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {537ll /* 0x219 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {538ll /* 0x21a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {539ll /* 0x21b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {540ll /* 0x21c */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {541ll /* 0x21d */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {542ll /* 0x21e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {543ll /* 0x21f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {544ll /* 0x220 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {545ll /* 0x221 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {546ll /* 0x222 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {547ll /* 0x223 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {548ll /* 0x224 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {549ll /* 0x225 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {550ll /* 0x226 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {551ll /* 0x227 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {552ll /* 0x228 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {553ll /* 0x229 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {554ll /* 0x22a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {555ll /* 0x22b */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {556ll /* 0x22c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {557ll /* 0x22d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {558ll /* 0x22e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {559ll /* 0x22f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {560ll /* 0x230 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {561ll /* 0x231 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {562ll /* 0x232 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {563ll /* 0x233 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {564ll /* 0x234 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {565ll /* 0x235 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {566ll /* 0x236 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {567ll /* 0x237 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {568ll /* 0x238 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {569ll /* 0x239 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {570ll /* 0x23a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {571ll /* 0x23b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {572ll /* 0x23c */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {573ll /* 0x23d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {574ll /* 0x23e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {575ll /* 0x23f */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {576ll /* 0x240 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {577ll /* 0x241 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {578ll /* 0x242 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {579ll /* 0x243 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {580ll /* 0x244 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {581ll /* 0x245 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {582ll /* 0x246 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {583ll /* 0x247 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {584ll /* 0x248 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {585ll /* 0x249 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {586ll /* 0x24a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {587ll /* 0x24b */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {588ll /* 0x24c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {589ll /* 0x24d */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {590ll /* 0x24e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {591ll /* 0x24f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {592ll /* 0x250 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {593ll /* 0x251 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {594ll /* 0x252 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {595ll /* 0x253 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {596ll /* 0x254 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {597ll /* 0x255 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {598ll /* 0x256 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {599ll /* 0x257 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {600ll /* 0x258 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {601ll /* 0x259 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {602ll /* 0x25a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {603ll /* 0x25b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {604ll /* 0x25c */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {605ll /* 0x25d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {606ll /* 0x25e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {607ll /* 0x25f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {608ll /* 0x260 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {609ll /* 0x261 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {610ll /* 0x262 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {611ll /* 0x263 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {612ll /* 0x264 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {613ll /* 0x265 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {614ll /* 0x266 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {615ll /* 0x267 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {616ll /* 0x268 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {617ll /* 0x269 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {619ll /* 0x26b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {620ll /* 0x26c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {621ll /* 0x26d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {623ll /* 0x26f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {624ll /* 0x270 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {625ll /* 0x271 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {626ll /* 0x272 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {627ll /* 0x273 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {628ll /* 0x274 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {629ll /* 0x275 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {630ll /* 0x276 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {631ll /* 0x277 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {632ll /* 0x278 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {633ll /* 0x279 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {634ll /* 0x27a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {635ll /* 0x27b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {636ll /* 0x27c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {637ll /* 0x27d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {638ll /* 0x27e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {639ll /* 0x27f */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {640ll /* 0x280 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {641ll /* 0x281 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {642ll /* 0x282 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {643ll /* 0x283 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {644ll /* 0x284 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {645ll /* 0x285 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {646ll /* 0x286 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {647ll /* 0x287 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {648ll /* 0x288 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {649ll /* 0x289 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {650ll /* 0x28a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {651ll /* 0x28b */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {652ll /* 0x28c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {653ll /* 0x28d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {654ll /* 0x28e */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {655ll /* 0x28f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {656ll /* 0x290 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {657ll /* 0x291 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {658ll /* 0x292 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {659ll /* 0x293 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {660ll /* 0x294 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {661ll /* 0x295 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {662ll /* 0x296 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {663ll /* 0x297 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {664ll /* 0x298 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {665ll /* 0x299 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {666ll /* 0x29a */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {667ll /* 0x29b */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {668ll /* 0x29c */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {669ll /* 0x29d */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 1}, /* shl1add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {670ll /* 0x29e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {671ll /* 0x29f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {672ll /* 0x2a0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {673ll /* 0x2a1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {674ll /* 0x2a2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {675ll /* 0x2a3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {676ll /* 0x2a4 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {677ll /* 0x2a5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {679ll /* 0x2a7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 2, 4}} /* shl3add r5, r2, r4 */ - }, - {680ll /* 0x2a8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {681ll /* 0x2a9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {682ll /* 0x2aa */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {684ll /* 0x2ac */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 2}, /* shli r4, r2, 2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {685ll /* 0x2ad */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {688ll /* 0x2b0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 1, 1}, /* shl2add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {689ll /* 0x2b1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {690ll /* 0x2b2 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {692ll /* 0x2b4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {693ll /* 0x2b5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 1}, /* shl3add r3, r1, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {694ll /* 0x2b6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 3}, /* shl2add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {695ll /* 0x2b7 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {696ll /* 0x2b8 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {697ll /* 0x2b9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {699ll /* 0x2bb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {700ll /* 0x2bc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {701ll /* 0x2bd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {702ll /* 0x2be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {703ll /* 0x2bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {704ll /* 0x2c0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {705ll /* 0x2c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {706ll /* 0x2c2 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {707ll /* 0x2c3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {708ll /* 0x2c4 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {709ll /* 0x2c5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {710ll /* 0x2c6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {711ll /* 0x2c7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {712ll /* 0x2c8 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {713ll /* 0x2c9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {714ll /* 0x2ca */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 3}, /* shl2add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {715ll /* 0x2cb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {716ll /* 0x2cc */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {717ll /* 0x2cd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {719ll /* 0x2cf */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 4, 1}} /* sub r5, r4, r1 */ - }, - {720ll /* 0x2d0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {721ll /* 0x2d1 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {722ll /* 0x2d2 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {723ll /* 0x2d3 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {724ll /* 0x2d4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {725ll /* 0x2d5 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {726ll /* 0x2d6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {727ll /* 0x2d7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {728ll /* 0x2d8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {729ll /* 0x2d9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}} /* shl3add r4, r3, r3 */ - }, - {730ll /* 0x2da */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {731ll /* 0x2db */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 1}} /* shl1add r5, r4, r1 */ - }, - {733ll /* 0x2dd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {735ll /* 0x2df */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {736ll /* 0x2e0 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {737ll /* 0x2e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {738ll /* 0x2e2 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {739ll /* 0x2e3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {740ll /* 0x2e4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {741ll /* 0x2e5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {743ll /* 0x2e7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {744ll /* 0x2e8 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {745ll /* 0x2e9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {747ll /* 0x2eb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {748ll /* 0x2ec */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {749ll /* 0x2ed */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {750ll /* 0x2ee */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {752ll /* 0x2f0 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {753ll /* 0x2f1 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {755ll /* 0x2f3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {756ll /* 0x2f4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {757ll /* 0x2f5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {758ll /* 0x2f6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {759ll /* 0x2f7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {760ll /* 0x2f8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {761ll /* 0x2f9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {762ll /* 0x2fa */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {763ll /* 0x2fb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {764ll /* 0x2fc */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {765ll /* 0x2fd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {766ll /* 0x2fe */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {767ll /* 0x2ff */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {768ll /* 0x300 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {769ll /* 0x301 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {770ll /* 0x302 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {771ll /* 0x303 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {772ll /* 0x304 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {773ll /* 0x305 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {774ll /* 0x306 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {775ll /* 0x307 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {776ll /* 0x308 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {777ll /* 0x309 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {778ll /* 0x30a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {779ll /* 0x30b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {780ll /* 0x30c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {781ll /* 0x30d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {782ll /* 0x30e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {783ll /* 0x30f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {784ll /* 0x310 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {785ll /* 0x311 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 1, 2}, /* shl3add r4, r1, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {786ll /* 0x312 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {787ll /* 0x313 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 1, 3}, /* shl1add r4, r1, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {788ll /* 0x314 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {789ll /* 0x315 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 2, 4}} /* shl3add r5, r2, r4 */ - }, - {790ll /* 0x316 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {791ll /* 0x317 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {792ll /* 0x318 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {793ll /* 0x319 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {794ll /* 0x31a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {795ll /* 0x31b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {796ll /* 0x31c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {797ll /* 0x31d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {798ll /* 0x31e */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {799ll /* 0x31f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {800ll /* 0x320 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {801ll /* 0x321 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {802ll /* 0x322 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {803ll /* 0x323 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {804ll /* 0x324 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {805ll /* 0x325 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {806ll /* 0x326 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {807ll /* 0x327 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {808ll /* 0x328 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {809ll /* 0x329 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* shl2add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {810ll /* 0x32a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {811ll /* 0x32b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {812ll /* 0x32c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {813ll /* 0x32d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {815ll /* 0x32f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {816ll /* 0x330 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {817ll /* 0x331 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {818ll /* 0x332 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {819ll /* 0x333 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {820ll /* 0x334 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {821ll /* 0x335 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {822ll /* 0x336 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {823ll /* 0x337 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {824ll /* 0x338 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {825ll /* 0x339 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {827ll /* 0x33b */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {828ll /* 0x33c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {829ll /* 0x33d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {831ll /* 0x33f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {832ll /* 0x340 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {833ll /* 0x341 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {834ll /* 0x342 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 2}, /* shl1add r4, r2, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {835ll /* 0x343 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {836ll /* 0x344 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* shl3add r4, r2, r2 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {837ll /* 0x345 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {838ll /* 0x346 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {840ll /* 0x348 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {841ll /* 0x349 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {842ll /* 0x34a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {843ll /* 0x34b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {844ll /* 0x34c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {845ll /* 0x34d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {846ll /* 0x34e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {848ll /* 0x350 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 2, 2}, /* shl2add r4, r2, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {849ll /* 0x351 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {850ll /* 0x352 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {852ll /* 0x354 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {853ll /* 0x355 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {855ll /* 0x357 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {856ll /* 0x358 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {857ll /* 0x359 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {858ll /* 0x35a */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {859ll /* 0x35b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {861ll /* 0x35d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {862ll /* 0x35e */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {863ll /* 0x35f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 1}} /* sub r5, r4, r1 */ - }, - {864ll /* 0x360 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {865ll /* 0x361 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 1, 4}} /* add r5, r1, r4 */ - }, - {866ll /* 0x362 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {867ll /* 0x363 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {868ll /* 0x364 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {869ll /* 0x365 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {870ll /* 0x366 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {871ll /* 0x367 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {872ll /* 0x368 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {873ll /* 0x369 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {875ll /* 0x36b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {876ll /* 0x36c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {877ll /* 0x36d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {879ll /* 0x36f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {880ll /* 0x370 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {881ll /* 0x371 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 2}, /* shl1add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {882ll /* 0x372 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {884ll /* 0x374 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {885ll /* 0x375 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {888ll /* 0x378 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {889ll /* 0x379 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {890ll /* 0x37a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {891ll /* 0x37b */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {892ll /* 0x37c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {893ll /* 0x37d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {894ll /* 0x37e */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {895ll /* 0x37f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {896ll /* 0x380 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {897ll /* 0x381 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {898ll /* 0x382 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {899ll /* 0x383 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {900ll /* 0x384 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {901ll /* 0x385 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {902ll /* 0x386 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {903ll /* 0x387 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {904ll /* 0x388 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {905ll /* 0x389 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {906ll /* 0x38a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {908ll /* 0x38c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {3, 3, 3}, /* shl1add r4, r3, r3 */ - {3, 4, 2}} /* shl1add r5, r4, r2 */ - }, - {909ll /* 0x38d */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {910ll /* 0x38e */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {911ll /* 0x38f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {912ll /* 0x390 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {913ll /* 0x391 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* shl1add r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {915ll /* 0x393 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {916ll /* 0x394 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {917ll /* 0x395 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 3, 2}, /* shl3add r4, r3, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {918ll /* 0x396 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {919ll /* 0x397 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {920ll /* 0x398 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {924ll /* 0x39c */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {925ll /* 0x39d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {927ll /* 0x39f */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {4, 3, 2}, /* shl2add r4, r3, r2 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {928ll /* 0x3a0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {929ll /* 0x3a1 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* shl2add r4, r1, r2 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {932ll /* 0x3a4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {4, 4, 2}} /* shl2add r5, r4, r2 */ - }, - {935ll /* 0x3a7 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {936ll /* 0x3a8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* shl3add r4, r2, r3 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {937ll /* 0x3a9 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {939ll /* 0x3ab */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {941ll /* 0x3ad */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {943ll /* 0x3af */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {944ll /* 0x3b0 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {945ll /* 0x3b1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {948ll /* 0x3b4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {949ll /* 0x3b5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {950ll /* 0x3b6 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {951ll /* 0x3b7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {952ll /* 0x3b8 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {953ll /* 0x3b9 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {955ll /* 0x3bb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {4, 4, 4}} /* shl2add r5, r4, r4 */ - }, - {956ll /* 0x3bc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {957ll /* 0x3bd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {958ll /* 0x3be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {959ll /* 0x3bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {960ll /* 0x3c0 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {961ll /* 0x3c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {962ll /* 0x3c2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {963ll /* 0x3c3 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {964ll /* 0x3c4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {4, 3, 4}} /* shl2add r5, r3, r4 */ - }, - {965ll /* 0x3c5 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {966ll /* 0x3c6 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* shl1add r4, r3, r2 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {967ll /* 0x3c7 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {968ll /* 0x3c8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {5, 3, 4}} /* shl3add r5, r3, r4 */ - }, - {969ll /* 0x3c9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* shl1add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {970ll /* 0x3ca */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {971ll /* 0x3cb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 2}, /* shl2add r3, r2, r2 */ - {5, 3, 1}, /* shl3add r4, r3, r1 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {972ll /* 0x3cc */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {973ll /* 0x3cd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {5, 3, 3}, /* shl3add r4, r3, r3 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {975ll /* 0x3cf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {976ll /* 0x3d0 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {979ll /* 0x3d3 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {980ll /* 0x3d4 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* shl1add r4, r2, r3 */ - {3, 4, 3}} /* shl1add r5, r4, r3 */ - }, - {981ll /* 0x3d5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {4, 3, 1}, /* shl2add r4, r3, r1 */ - {5, 4, 4}} /* shl3add r5, r4, r4 */ - }, - {983ll /* 0x3d7 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {984ll /* 0x3d8 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {985ll /* 0x3d9 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* shl3add r5, r4, r1 */ - }, - {987ll /* 0x3db */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {988ll /* 0x3dc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {989ll /* 0x3dd */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {990ll /* 0x3de */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {991ll /* 0x3df */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {992ll /* 0x3e0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {993ll /* 0x3e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {994ll /* 0x3e2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* shl1add r5, r3, r4 */ - }, - {996ll /* 0x3e4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {997ll /* 0x3e5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* shl3add r4, r2, r1 */ - {4, 4, 3}} /* shl2add r5, r4, r3 */ - }, - {999ll /* 0x3e7 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1000ll /* 0x3e8 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {1001ll /* 0x3e9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* shl2add r4, r2, r1 */ - {5, 4, 3}} /* shl3add r5, r4, r3 */ - }, - {1003ll /* 0x3eb */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {1004ll /* 0x3ec */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {1005ll /* 0x3ed */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {1006ll /* 0x3ee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1007ll /* 0x3ef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1008ll /* 0x3f0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1009ll /* 0x3f1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {1010ll /* 0x3f2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* shl3add r5, r4, r2 */ - }, - {1011ll /* 0x3f3 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1012ll /* 0x3f4 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {1013ll /* 0x3f5 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* shl2add r5, r4, r1 */ - }, - {1014ll /* 0x3f6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1015ll /* 0x3f7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1016ll /* 0x3f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1017ll /* 0x3f9 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1018ll /* 0x3fa */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {1019ll /* 0x3fb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1020ll /* 0x3fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1021ll /* 0x3fd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1022ll /* 0x3fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1023ll /* 0x3ff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1024ll /* 0x400 */ , - {{6, 1, 10}} /* shli r2, r1, 10 */ - }, - {1025ll /* 0x401 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1026ll /* 0x402 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1027ll /* 0x403 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1028ll /* 0x404 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1029ll /* 0x405 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1030ll /* 0x406 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1031ll /* 0x407 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1032ll /* 0x408 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1033ll /* 0x409 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1034ll /* 0x40a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1036ll /* 0x40c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {1040ll /* 0x410 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1041ll /* 0x411 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1042ll /* 0x412 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1044ll /* 0x414 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {1048ll /* 0x418 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {1056ll /* 0x420 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1057ll /* 0x421 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* shl2add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1060ll /* 0x424 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {1064ll /* 0x428 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {1088ll /* 0x440 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1089ll /* 0x441 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* shl3add r3, r1, r2 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1090ll /* 0x442 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {3, 3, 2}} /* shl1add r4, r3, r2 */ - }, - {1092ll /* 0x444 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {1096ll /* 0x448 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {1152ll /* 0x480 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {1280ll /* 0x500 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {1312ll /* 0x520 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {1320ll /* 0x528 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {1344ll /* 0x540 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {1536ll /* 0x600 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {1664ll /* 0x680 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {2039ll /* 0x7f7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2040ll /* 0x7f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2041ll /* 0x7f9 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2043ll /* 0x7fb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2044ll /* 0x7fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2045ll /* 0x7fd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2046ll /* 0x7fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2047ll /* 0x7ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2048ll /* 0x800 */ , - {{6, 1, 11}} /* shli r2, r1, 11 */ - }, - {2049ll /* 0x801 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2050ll /* 0x802 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2051ll /* 0x803 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2052ll /* 0x804 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2053ll /* 0x805 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2054ll /* 0x806 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2055ll /* 0x807 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2056ll /* 0x808 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2057ll /* 0x809 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2058ll /* 0x80a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2064ll /* 0x810 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2080ll /* 0x820 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2112ll /* 0x840 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2176ll /* 0x880 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2184ll /* 0x888 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {2304ll /* 0x900 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {2320ll /* 0x910 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {5, 3, 2}} /* shl3add r4, r3, r2 */ - }, - {2560ll /* 0xa00 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {2592ll /* 0xa20 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {2880ll /* 0xb40 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {3072ll /* 0xc00 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {3328ll /* 0xd00 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {4087ll /* 0xff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4088ll /* 0xff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4089ll /* 0xff9 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4091ll /* 0xffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4092ll /* 0xffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4093ll /* 0xffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4094ll /* 0xffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4095ll /* 0xfff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4096ll /* 0x1000 */ , - {{6, 1, 12}} /* shli r2, r1, 12 */ - }, - {4097ll /* 0x1001 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4098ll /* 0x1002 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4099ll /* 0x1003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4100ll /* 0x1004 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4101ll /* 0x1005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4102ll /* 0x1006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4103ll /* 0x1007 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4104ll /* 0x1008 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4105ll /* 0x1009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4106ll /* 0x100a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4108ll /* 0x100c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {4112ll /* 0x1010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4128ll /* 0x1020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4160ll /* 0x1040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4224ll /* 0x1080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4352ll /* 0x1100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4608ll /* 0x1200 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {4864ll /* 0x1300 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {3, 2, 1}, /* shl1add r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {5120ll /* 0x1400 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {6144ll /* 0x1800 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {6400ll /* 0x1900 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {6656ll /* 0x1a00 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {4, 2, 1}, /* shl2add r3, r2, r1 */ - {6, 3, 9}} /* shli r4, r3, 9 */ - }, - {7169ll /* 0x1c01 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* shl3add r4, r2, r3 */ - }, - {8183ll /* 0x1ff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8184ll /* 0x1ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8185ll /* 0x1ff9 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {8187ll /* 0x1ffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8188ll /* 0x1ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8189ll /* 0x1ffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8190ll /* 0x1ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8191ll /* 0x1fff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8192ll /* 0x2000 */ , - {{6, 1, 13}} /* shli r2, r1, 13 */ - }, - {8193ll /* 0x2001 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8194ll /* 0x2002 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {8195ll /* 0x2003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8196ll /* 0x2004 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {8197ll /* 0x2005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8198ll /* 0x2006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8199ll /* 0x2007 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {8200ll /* 0x2008 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {8201ll /* 0x2009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8202ll /* 0x200a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8204ll /* 0x200c */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {4, 2, 3}} /* shl2add r4, r2, r3 */ - }, - {8208ll /* 0x2010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8224ll /* 0x2020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8256ll /* 0x2040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8320ll /* 0x2080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8448ll /* 0x2100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8704ll /* 0x2200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9216ll /* 0x2400 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {9217ll /* 0x2401 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {10240ll /* 0x2800 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {10248ll /* 0x2808 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {3, 1, 2}, /* shl1add r3, r1, r2 */ - {4, 3, 2}} /* shl2add r4, r3, r2 */ - }, - {10368ll /* 0x2880 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {12288ll /* 0x3000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {16375ll /* 0x3ff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16376ll /* 0x3ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16377ll /* 0x3ff9 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {16379ll /* 0x3ffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16380ll /* 0x3ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16381ll /* 0x3ffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16382ll /* 0x3ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16383ll /* 0x3fff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16384ll /* 0x4000 */ , - {{6, 1, 14}} /* shli r2, r1, 14 */ - }, - {16385ll /* 0x4001 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {16386ll /* 0x4002 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {16387ll /* 0x4003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16388ll /* 0x4004 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {16389ll /* 0x4005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16390ll /* 0x4006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {16391ll /* 0x4007 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {16392ll /* 0x4008 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {16393ll /* 0x4009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16394ll /* 0x400a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {16400ll /* 0x4010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16416ll /* 0x4020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16448ll /* 0x4040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16512ll /* 0x4080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16640ll /* 0x4100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16896ll /* 0x4200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17408ll /* 0x4400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18432ll /* 0x4800 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {20480ll /* 0x5000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {24576ll /* 0x6000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {25600ll /* 0x6400 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {5, 2, 1}, /* shl3add r3, r2, r1 */ - {6, 3, 10}} /* shli r4, r3, 10 */ - }, - {32759ll /* 0x7ff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32760ll /* 0x7ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32761ll /* 0x7ff9 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {32763ll /* 0x7ffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32764ll /* 0x7ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32765ll /* 0x7ffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32766ll /* 0x7ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32767ll /* 0x7fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {32768ll /* 0x8000 */ , - {{6, 1, 15}} /* shli r2, r1, 15 */ - }, - {32769ll /* 0x8001 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {32770ll /* 0x8002 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {32771ll /* 0x8003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32772ll /* 0x8004 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {32773ll /* 0x8005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32774ll /* 0x8006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {32775ll /* 0x8007 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {32776ll /* 0x8008 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {32777ll /* 0x8009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32778ll /* 0x800a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {32784ll /* 0x8010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32800ll /* 0x8020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32832ll /* 0x8040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32896ll /* 0x8080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33024ll /* 0x8100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33280ll /* 0x8200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33792ll /* 0x8400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34816ll /* 0x8800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36864ll /* 0x9000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {40960ll /* 0xa000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {49152ll /* 0xc000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {65527ll /* 0xfff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65528ll /* 0xfff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65529ll /* 0xfff9 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {65531ll /* 0xfffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65532ll /* 0xfffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65533ll /* 0xfffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65534ll /* 0xfffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65535ll /* 0xffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {65536ll /* 0x10000 */ , - {{6, 1, 16}} /* shli r2, r1, 16 */ - }, - {65537ll /* 0x10001 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {65538ll /* 0x10002 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {65539ll /* 0x10003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65540ll /* 0x10004 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {65541ll /* 0x10005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65542ll /* 0x10006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {65543ll /* 0x10007 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {65544ll /* 0x10008 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {65545ll /* 0x10009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65546ll /* 0x1000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {65552ll /* 0x10010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65568ll /* 0x10020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65600ll /* 0x10040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65664ll /* 0x10080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65792ll /* 0x10100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {66048ll /* 0x10200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {66560ll /* 0x10400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67584ll /* 0x10800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69632ll /* 0x11000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {73728ll /* 0x12000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {81920ll /* 0x14000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {98304ll /* 0x18000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {131063ll /* 0x1fff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131064ll /* 0x1fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131065ll /* 0x1fff9 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {131067ll /* 0x1fffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131068ll /* 0x1fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131069ll /* 0x1fffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131070ll /* 0x1fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131071ll /* 0x1ffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {131072ll /* 0x20000 */ , - {{6, 1, 17}} /* shli r2, r1, 17 */ - }, - {131073ll /* 0x20001 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {131074ll /* 0x20002 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {131075ll /* 0x20003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131076ll /* 0x20004 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {131077ll /* 0x20005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131078ll /* 0x20006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {131079ll /* 0x20007 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {131080ll /* 0x20008 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {131081ll /* 0x20009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131082ll /* 0x2000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {131088ll /* 0x20010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131104ll /* 0x20020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131136ll /* 0x20040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131200ll /* 0x20080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131328ll /* 0x20100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131584ll /* 0x20200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {132096ll /* 0x20400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {133120ll /* 0x20800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {135168ll /* 0x21000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {139264ll /* 0x22000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {147456ll /* 0x24000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {163840ll /* 0x28000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {196608ll /* 0x30000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {262135ll /* 0x3fff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262136ll /* 0x3fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262137ll /* 0x3fff9 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {262139ll /* 0x3fffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262140ll /* 0x3fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262141ll /* 0x3fffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262142ll /* 0x3fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262143ll /* 0x3ffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {262144ll /* 0x40000 */ , - {{6, 1, 18}} /* shli r2, r1, 18 */ - }, - {262145ll /* 0x40001 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {262146ll /* 0x40002 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {262147ll /* 0x40003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262148ll /* 0x40004 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {262149ll /* 0x40005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262150ll /* 0x40006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {262151ll /* 0x40007 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {262152ll /* 0x40008 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {262153ll /* 0x40009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262154ll /* 0x4000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {262160ll /* 0x40010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262176ll /* 0x40020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262208ll /* 0x40040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262272ll /* 0x40080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262400ll /* 0x40100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262656ll /* 0x40200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {263168ll /* 0x40400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {264192ll /* 0x40800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {266240ll /* 0x41000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {270336ll /* 0x42000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {278528ll /* 0x44000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {294912ll /* 0x48000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {327680ll /* 0x50000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {393216ll /* 0x60000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {524279ll /* 0x7fff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524280ll /* 0x7fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524281ll /* 0x7fff9 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {524283ll /* 0x7fffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524284ll /* 0x7fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524285ll /* 0x7fffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524286ll /* 0x7fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524287ll /* 0x7ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {524288ll /* 0x80000 */ , - {{6, 1, 19}} /* shli r2, r1, 19 */ - }, - {524289ll /* 0x80001 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {524290ll /* 0x80002 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {524291ll /* 0x80003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524292ll /* 0x80004 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {524293ll /* 0x80005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524294ll /* 0x80006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {524295ll /* 0x80007 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {524296ll /* 0x80008 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {524297ll /* 0x80009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524298ll /* 0x8000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {524304ll /* 0x80010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524320ll /* 0x80020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524352ll /* 0x80040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524416ll /* 0x80080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524544ll /* 0x80100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524800ll /* 0x80200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {525312ll /* 0x80400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {526336ll /* 0x80800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {528384ll /* 0x81000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {532480ll /* 0x82000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {540672ll /* 0x84000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {557056ll /* 0x88000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {589824ll /* 0x90000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {655360ll /* 0xa0000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {786432ll /* 0xc0000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {1048567ll /* 0xffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048568ll /* 0xffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048569ll /* 0xffff9 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1048571ll /* 0xffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048572ll /* 0xffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048573ll /* 0xffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048574ll /* 0xffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048575ll /* 0xfffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1048576ll /* 0x100000 */ , - {{6, 1, 20}} /* shli r2, r1, 20 */ - }, - {1048577ll /* 0x100001 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1048578ll /* 0x100002 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1048579ll /* 0x100003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048580ll /* 0x100004 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1048581ll /* 0x100005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048582ll /* 0x100006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1048583ll /* 0x100007 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1048584ll /* 0x100008 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1048585ll /* 0x100009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048586ll /* 0x10000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1048592ll /* 0x100010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048608ll /* 0x100020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048640ll /* 0x100040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048704ll /* 0x100080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048832ll /* 0x100100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1049088ll /* 0x100200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1049600ll /* 0x100400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1050624ll /* 0x100800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1052672ll /* 0x101000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1056768ll /* 0x102000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1064960ll /* 0x104000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1081344ll /* 0x108000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1114112ll /* 0x110000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1179648ll /* 0x120000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {1310720ll /* 0x140000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {1572864ll /* 0x180000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {2097143ll /* 0x1ffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097144ll /* 0x1ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097145ll /* 0x1ffff9 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2097147ll /* 0x1ffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097148ll /* 0x1ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097149ll /* 0x1ffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097150ll /* 0x1ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097151ll /* 0x1fffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2097152ll /* 0x200000 */ , - {{6, 1, 21}} /* shli r2, r1, 21 */ - }, - {2097153ll /* 0x200001 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2097154ll /* 0x200002 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2097155ll /* 0x200003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097156ll /* 0x200004 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2097157ll /* 0x200005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097158ll /* 0x200006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2097159ll /* 0x200007 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2097160ll /* 0x200008 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2097161ll /* 0x200009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097162ll /* 0x20000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2097168ll /* 0x200010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097184ll /* 0x200020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097216ll /* 0x200040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097280ll /* 0x200080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097408ll /* 0x200100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097664ll /* 0x200200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2098176ll /* 0x200400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2099200ll /* 0x200800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2101248ll /* 0x201000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2105344ll /* 0x202000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2113536ll /* 0x204000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2129920ll /* 0x208000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2162688ll /* 0x210000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2228224ll /* 0x220000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2359296ll /* 0x240000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {2621440ll /* 0x280000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {3145728ll /* 0x300000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {4194295ll /* 0x3ffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194296ll /* 0x3ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194297ll /* 0x3ffff9 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4194299ll /* 0x3ffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194300ll /* 0x3ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194301ll /* 0x3ffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194302ll /* 0x3ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194303ll /* 0x3fffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4194304ll /* 0x400000 */ , - {{6, 1, 22}} /* shli r2, r1, 22 */ - }, - {4194305ll /* 0x400001 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4194306ll /* 0x400002 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4194307ll /* 0x400003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194308ll /* 0x400004 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4194309ll /* 0x400005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194310ll /* 0x400006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4194311ll /* 0x400007 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4194312ll /* 0x400008 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4194313ll /* 0x400009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194314ll /* 0x40000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4194320ll /* 0x400010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194336ll /* 0x400020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194368ll /* 0x400040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194432ll /* 0x400080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194560ll /* 0x400100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194816ll /* 0x400200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4195328ll /* 0x400400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4196352ll /* 0x400800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4198400ll /* 0x401000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4202496ll /* 0x402000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4210688ll /* 0x404000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4227072ll /* 0x408000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4259840ll /* 0x410000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4325376ll /* 0x420000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4456448ll /* 0x440000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4718592ll /* 0x480000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {5242880ll /* 0x500000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {6291456ll /* 0x600000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {8388599ll /* 0x7ffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388600ll /* 0x7ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388601ll /* 0x7ffff9 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {8388603ll /* 0x7ffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388604ll /* 0x7ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388605ll /* 0x7ffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388606ll /* 0x7ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388607ll /* 0x7fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8388608ll /* 0x800000 */ , - {{6, 1, 23}} /* shli r2, r1, 23 */ - }, - {8388609ll /* 0x800001 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8388610ll /* 0x800002 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {8388611ll /* 0x800003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388612ll /* 0x800004 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {8388613ll /* 0x800005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388614ll /* 0x800006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8388615ll /* 0x800007 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {8388616ll /* 0x800008 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {8388617ll /* 0x800009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388618ll /* 0x80000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8388624ll /* 0x800010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388640ll /* 0x800020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388672ll /* 0x800040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388736ll /* 0x800080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388864ll /* 0x800100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8389120ll /* 0x800200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8389632ll /* 0x800400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8390656ll /* 0x800800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8392704ll /* 0x801000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8396800ll /* 0x802000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8404992ll /* 0x804000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8421376ll /* 0x808000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8454144ll /* 0x810000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8519680ll /* 0x820000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8650752ll /* 0x840000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8912896ll /* 0x880000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9437184ll /* 0x900000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {10485760ll /* 0xa00000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {11796480ll /* 0xb40000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 18}} /* shli r4, r3, 18 */ - }, - {12582912ll /* 0xc00000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {16777207ll /* 0xfffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777208ll /* 0xfffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777209ll /* 0xfffff9 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {16777211ll /* 0xfffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777212ll /* 0xfffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777213ll /* 0xfffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777214ll /* 0xfffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777215ll /* 0xffffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16777216ll /* 0x1000000 */ , - {{6, 1, 24}} /* shli r2, r1, 24 */ - }, - {16777217ll /* 0x1000001 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {16777218ll /* 0x1000002 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {16777219ll /* 0x1000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777220ll /* 0x1000004 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {16777221ll /* 0x1000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777222ll /* 0x1000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {16777223ll /* 0x1000007 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {16777224ll /* 0x1000008 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {16777225ll /* 0x1000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777226ll /* 0x100000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {16777232ll /* 0x1000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777248ll /* 0x1000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777280ll /* 0x1000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777344ll /* 0x1000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777472ll /* 0x1000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777728ll /* 0x1000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16778240ll /* 0x1000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16779264ll /* 0x1000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16781312ll /* 0x1001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16785408ll /* 0x1002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16793600ll /* 0x1004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16809984ll /* 0x1008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16842752ll /* 0x1010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16908288ll /* 0x1020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17039360ll /* 0x1040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17301504ll /* 0x1080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17825792ll /* 0x1100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18874368ll /* 0x1200000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {20971520ll /* 0x1400000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {23592960ll /* 0x1680000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {5, 2, 2}, /* shl3add r3, r2, r2 */ - {6, 3, 19}} /* shli r4, r3, 19 */ - }, - {25165824ll /* 0x1800000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {33554423ll /* 0x1fffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554424ll /* 0x1fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554425ll /* 0x1fffff9 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {33554427ll /* 0x1fffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554428ll /* 0x1fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554429ll /* 0x1fffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554430ll /* 0x1fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554431ll /* 0x1ffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {33554432ll /* 0x2000000 */ , - {{6, 1, 25}} /* shli r2, r1, 25 */ - }, - {33554433ll /* 0x2000001 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {33554434ll /* 0x2000002 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {33554435ll /* 0x2000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554436ll /* 0x2000004 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {33554437ll /* 0x2000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554438ll /* 0x2000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {33554439ll /* 0x2000007 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {33554440ll /* 0x2000008 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {33554441ll /* 0x2000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554442ll /* 0x200000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {33554448ll /* 0x2000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554464ll /* 0x2000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554496ll /* 0x2000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554560ll /* 0x2000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554688ll /* 0x2000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554944ll /* 0x2000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33555456ll /* 0x2000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33556480ll /* 0x2000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33558528ll /* 0x2001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33562624ll /* 0x2002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33570816ll /* 0x2004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33587200ll /* 0x2008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33619968ll /* 0x2010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33685504ll /* 0x2020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33816576ll /* 0x2040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34078720ll /* 0x2080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34603008ll /* 0x2100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35651584ll /* 0x2200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {37748736ll /* 0x2400000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {41943040ll /* 0x2800000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {50331648ll /* 0x3000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {67108855ll /* 0x3fffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108856ll /* 0x3fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108857ll /* 0x3fffff9 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {67108859ll /* 0x3fffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108860ll /* 0x3fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108861ll /* 0x3fffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108862ll /* 0x3fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108863ll /* 0x3ffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {67108864ll /* 0x4000000 */ , - {{6, 1, 26}} /* shli r2, r1, 26 */ - }, - {67108865ll /* 0x4000001 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {67108866ll /* 0x4000002 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {67108867ll /* 0x4000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108868ll /* 0x4000004 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {67108869ll /* 0x4000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108870ll /* 0x4000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {67108871ll /* 0x4000007 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {67108872ll /* 0x4000008 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {67108873ll /* 0x4000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108874ll /* 0x400000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {67108880ll /* 0x4000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108896ll /* 0x4000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108928ll /* 0x4000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108992ll /* 0x4000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109120ll /* 0x4000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109376ll /* 0x4000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109888ll /* 0x4000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67110912ll /* 0x4000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67112960ll /* 0x4001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67117056ll /* 0x4002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67125248ll /* 0x4004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67141632ll /* 0x4008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67174400ll /* 0x4010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67239936ll /* 0x4020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67371008ll /* 0x4040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67633152ll /* 0x4080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68157440ll /* 0x4100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69206016ll /* 0x4200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {71303168ll /* 0x4400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {75497472ll /* 0x4800000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {83886080ll /* 0x5000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {100663296ll /* 0x6000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {134217719ll /* 0x7fffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217720ll /* 0x7fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217721ll /* 0x7fffff9 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {134217723ll /* 0x7fffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217724ll /* 0x7fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217725ll /* 0x7fffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217726ll /* 0x7fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217727ll /* 0x7ffffff */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {134217728ll /* 0x8000000 */ , - {{6, 1, 27}} /* shli r2, r1, 27 */ - }, - {134217729ll /* 0x8000001 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {134217730ll /* 0x8000002 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {134217731ll /* 0x8000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217732ll /* 0x8000004 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {134217733ll /* 0x8000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217734ll /* 0x8000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {134217735ll /* 0x8000007 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {134217736ll /* 0x8000008 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {134217737ll /* 0x8000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217738ll /* 0x800000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {134217744ll /* 0x8000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217760ll /* 0x8000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217792ll /* 0x8000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217856ll /* 0x8000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217984ll /* 0x8000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134218240ll /* 0x8000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134218752ll /* 0x8000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134219776ll /* 0x8000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134221824ll /* 0x8001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134225920ll /* 0x8002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134234112ll /* 0x8004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134250496ll /* 0x8008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134283264ll /* 0x8010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134348800ll /* 0x8020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134479872ll /* 0x8040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134742016ll /* 0x8080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {135266304ll /* 0x8100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {136314880ll /* 0x8200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {138412032ll /* 0x8400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {142606336ll /* 0x8800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {150994944ll /* 0x9000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {167772160ll /* 0xa000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {201326592ll /* 0xc000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {268435447ll /* 0xffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435448ll /* 0xffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435449ll /* 0xffffff9 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {268435451ll /* 0xffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435452ll /* 0xffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435453ll /* 0xffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435454ll /* 0xffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435455ll /* 0xfffffff */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {268435456ll /* 0x10000000 */ , - {{6, 1, 28}} /* shli r2, r1, 28 */ - }, - {268435457ll /* 0x10000001 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {268435458ll /* 0x10000002 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {268435459ll /* 0x10000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435460ll /* 0x10000004 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {268435461ll /* 0x10000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435462ll /* 0x10000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {268435463ll /* 0x10000007 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {268435464ll /* 0x10000008 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {268435465ll /* 0x10000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435466ll /* 0x1000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {268435472ll /* 0x10000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435488ll /* 0x10000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435520ll /* 0x10000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435584ll /* 0x10000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435712ll /* 0x10000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435968ll /* 0x10000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268436480ll /* 0x10000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268437504ll /* 0x10000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268439552ll /* 0x10001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268443648ll /* 0x10002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268451840ll /* 0x10004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268468224ll /* 0x10008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268500992ll /* 0x10010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268566528ll /* 0x10020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268697600ll /* 0x10040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268959744ll /* 0x10080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {269484032ll /* 0x10100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {270532608ll /* 0x10200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {272629760ll /* 0x10400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {276824064ll /* 0x10800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {285212672ll /* 0x11000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {301989888ll /* 0x12000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {335544320ll /* 0x14000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {402653184ll /* 0x18000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {536870903ll /* 0x1ffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870904ll /* 0x1ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870905ll /* 0x1ffffff9 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {536870907ll /* 0x1ffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870908ll /* 0x1ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870909ll /* 0x1ffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870910ll /* 0x1ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870911ll /* 0x1fffffff */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {536870912ll /* 0x20000000 */ , - {{6, 1, 29}} /* shli r2, r1, 29 */ - }, - {536870913ll /* 0x20000001 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {536870914ll /* 0x20000002 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {536870915ll /* 0x20000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870916ll /* 0x20000004 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {536870917ll /* 0x20000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870918ll /* 0x20000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {536870919ll /* 0x20000007 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {536870920ll /* 0x20000008 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {536870921ll /* 0x20000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870922ll /* 0x2000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {536870928ll /* 0x20000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870944ll /* 0x20000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870976ll /* 0x20000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871040ll /* 0x20000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871168ll /* 0x20000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871424ll /* 0x20000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871936ll /* 0x20000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536872960ll /* 0x20000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536875008ll /* 0x20001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536879104ll /* 0x20002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536887296ll /* 0x20004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536903680ll /* 0x20008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536936448ll /* 0x20010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537001984ll /* 0x20020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537133056ll /* 0x20040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537395200ll /* 0x20080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537919488ll /* 0x20100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {538968064ll /* 0x20200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {541065216ll /* 0x20400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {545259520ll /* 0x20800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {553648128ll /* 0x21000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {570425344ll /* 0x22000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {603979776ll /* 0x24000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {671088640ll /* 0x28000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {805306368ll /* 0x30000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {1073741815ll /* 0x3ffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741816ll /* 0x3ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741817ll /* 0x3ffffff9 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1073741819ll /* 0x3ffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741820ll /* 0x3ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741821ll /* 0x3ffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741822ll /* 0x3ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741823ll /* 0x3fffffff */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1073741824ll /* 0x40000000 */ , - {{6, 1, 30}} /* shli r2, r1, 30 */ - }, - {1073741825ll /* 0x40000001 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1073741826ll /* 0x40000002 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1073741827ll /* 0x40000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741828ll /* 0x40000004 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1073741829ll /* 0x40000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741830ll /* 0x40000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1073741831ll /* 0x40000007 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1073741832ll /* 0x40000008 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1073741833ll /* 0x40000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741834ll /* 0x4000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1073741840ll /* 0x40000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741856ll /* 0x40000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741888ll /* 0x40000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741952ll /* 0x40000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742080ll /* 0x40000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742336ll /* 0x40000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742848ll /* 0x40000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073743872ll /* 0x40000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073745920ll /* 0x40001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073750016ll /* 0x40002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073758208ll /* 0x40004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073774592ll /* 0x40008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073807360ll /* 0x40010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073872896ll /* 0x40020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074003968ll /* 0x40040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074266112ll /* 0x40080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074790400ll /* 0x40100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1075838976ll /* 0x40200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1077936128ll /* 0x40400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1082130432ll /* 0x40800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1090519040ll /* 0x41000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1107296256ll /* 0x42000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1140850688ll /* 0x44000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1207959552ll /* 0x48000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {1342177280ll /* 0x50000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {1610612736ll /* 0x60000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {2147483639ll /* 0x7ffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483640ll /* 0x7ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483641ll /* 0x7ffffff9 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2147483643ll /* 0x7ffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483644ll /* 0x7ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483645ll /* 0x7ffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483646ll /* 0x7ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483647ll /* 0x7fffffff */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2147483648ll /* 0x80000000 */ , - {{6, 1, 31}} /* shli r2, r1, 31 */ - }, - {2147483649ll /* 0x80000001 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2147483650ll /* 0x80000002 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2147483651ll /* 0x80000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483652ll /* 0x80000004 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2147483653ll /* 0x80000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483654ll /* 0x80000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2147483655ll /* 0x80000007 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2147483656ll /* 0x80000008 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2147483657ll /* 0x80000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483658ll /* 0x8000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2147483664ll /* 0x80000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483680ll /* 0x80000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483712ll /* 0x80000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483776ll /* 0x80000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147483904ll /* 0x80000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147484160ll /* 0x80000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147484672ll /* 0x80000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147485696ll /* 0x80000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147487744ll /* 0x80001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147491840ll /* 0x80002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147500032ll /* 0x80004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147516416ll /* 0x80008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147549184ll /* 0x80010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147614720ll /* 0x80020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2147745792ll /* 0x80040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2148007936ll /* 0x80080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2148532224ll /* 0x80100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2149580800ll /* 0x80200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2151677952ll /* 0x80400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2155872256ll /* 0x80800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2164260864ll /* 0x81000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2181038080ll /* 0x82000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2214592512ll /* 0x84000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2281701376ll /* 0x88000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2415919104ll /* 0x90000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {2684354560ll /* 0xa0000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {3221225472ll /* 0xc0000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 30}} /* shli r3, r2, 30 */ - }, - {4294967287ll /* 0xfffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967288ll /* 0xfffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967289ll /* 0xfffffff9 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4294967291ll /* 0xfffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967292ll /* 0xfffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967293ll /* 0xfffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967294ll /* 0xfffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4294967295ll /* 0xffffffff */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4294967296ll /* 0x100000000 */ , - {{6, 1, 32}} /* shli r2, r1, 32 */ - }, - {4294967297ll /* 0x100000001 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4294967298ll /* 0x100000002 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4294967299ll /* 0x100000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967300ll /* 0x100000004 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4294967301ll /* 0x100000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967302ll /* 0x100000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4294967303ll /* 0x100000007 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4294967304ll /* 0x100000008 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4294967305ll /* 0x100000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967306ll /* 0x10000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4294967312ll /* 0x100000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967328ll /* 0x100000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967360ll /* 0x100000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967424ll /* 0x100000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967552ll /* 0x100000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294967808ll /* 0x100000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294968320ll /* 0x100000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294969344ll /* 0x100000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294971392ll /* 0x100001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294975488ll /* 0x100002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4294983680ll /* 0x100004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4295000064ll /* 0x100008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4295032832ll /* 0x100010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4295098368ll /* 0x100020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4295229440ll /* 0x100040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4295491584ll /* 0x100080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4296015872ll /* 0x100100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4297064448ll /* 0x100200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4299161600ll /* 0x100400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4303355904ll /* 0x100800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4311744512ll /* 0x101000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4328521728ll /* 0x102000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4362076160ll /* 0x104000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4429185024ll /* 0x108000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4563402752ll /* 0x110000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 32}, /* shli r3, r1, 32 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4831838208ll /* 0x120000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {5368709120ll /* 0x140000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 30}} /* shli r3, r2, 30 */ - }, - {6442450944ll /* 0x180000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 31}} /* shli r3, r2, 31 */ - }, - {8589934583ll /* 0x1fffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934584ll /* 0x1fffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934585ll /* 0x1fffffff9 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {8589934587ll /* 0x1fffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934588ll /* 0x1fffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934589ll /* 0x1fffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934590ll /* 0x1fffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8589934591ll /* 0x1ffffffff */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8589934592ll /* 0x200000000 */ , - {{6, 1, 33}} /* shli r2, r1, 33 */ - }, - {8589934593ll /* 0x200000001 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8589934594ll /* 0x200000002 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {8589934595ll /* 0x200000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934596ll /* 0x200000004 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {8589934597ll /* 0x200000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934598ll /* 0x200000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8589934599ll /* 0x200000007 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {8589934600ll /* 0x200000008 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {8589934601ll /* 0x200000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934602ll /* 0x20000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8589934608ll /* 0x200000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934624ll /* 0x200000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934656ll /* 0x200000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934720ll /* 0x200000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589934848ll /* 0x200000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589935104ll /* 0x200000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589935616ll /* 0x200000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589936640ll /* 0x200000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589938688ll /* 0x200001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589942784ll /* 0x200002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589950976ll /* 0x200004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8589967360ll /* 0x200008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8590000128ll /* 0x200010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8590065664ll /* 0x200020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8590196736ll /* 0x200040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8590458880ll /* 0x200080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8590983168ll /* 0x200100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8592031744ll /* 0x200200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8594128896ll /* 0x200400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8598323200ll /* 0x200800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8606711808ll /* 0x201000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8623489024ll /* 0x202000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8657043456ll /* 0x204000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8724152320ll /* 0x208000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8858370048ll /* 0x210000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9126805504ll /* 0x220000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 33}, /* shli r3, r1, 33 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9663676416ll /* 0x240000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 30}} /* shli r3, r2, 30 */ - }, - {10737418240ll /* 0x280000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 31}} /* shli r3, r2, 31 */ - }, - {12884901888ll /* 0x300000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 32}} /* shli r3, r2, 32 */ - }, - {17179869175ll /* 0x3fffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869176ll /* 0x3fffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869177ll /* 0x3fffffff9 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {17179869179ll /* 0x3fffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869180ll /* 0x3fffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869181ll /* 0x3fffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869182ll /* 0x3fffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17179869183ll /* 0x3ffffffff */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {17179869184ll /* 0x400000000 */ , - {{6, 1, 34}} /* shli r2, r1, 34 */ - }, - {17179869185ll /* 0x400000001 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {17179869186ll /* 0x400000002 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {17179869187ll /* 0x400000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869188ll /* 0x400000004 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {17179869189ll /* 0x400000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869190ll /* 0x400000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {17179869191ll /* 0x400000007 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {17179869192ll /* 0x400000008 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {17179869193ll /* 0x400000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869194ll /* 0x40000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {17179869200ll /* 0x400000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869216ll /* 0x400000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869248ll /* 0x400000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869312ll /* 0x400000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869440ll /* 0x400000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179869696ll /* 0x400000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179870208ll /* 0x400000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179871232ll /* 0x400000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179873280ll /* 0x400001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179877376ll /* 0x400002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179885568ll /* 0x400004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179901952ll /* 0x400008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17179934720ll /* 0x400010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17180000256ll /* 0x400020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17180131328ll /* 0x400040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17180393472ll /* 0x400080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17180917760ll /* 0x400100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17181966336ll /* 0x400200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17184063488ll /* 0x400400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17188257792ll /* 0x400800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17196646400ll /* 0x401000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17213423616ll /* 0x402000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17246978048ll /* 0x404000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17314086912ll /* 0x408000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17448304640ll /* 0x410000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17716740096ll /* 0x420000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18253611008ll /* 0x440000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 34}, /* shli r3, r1, 34 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {19327352832ll /* 0x480000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 31}} /* shli r3, r2, 31 */ - }, - {21474836480ll /* 0x500000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 32}} /* shli r3, r2, 32 */ - }, - {25769803776ll /* 0x600000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 33}} /* shli r3, r2, 33 */ - }, - {34359738359ll /* 0x7fffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738360ll /* 0x7fffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738361ll /* 0x7fffffff9 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {34359738363ll /* 0x7fffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738364ll /* 0x7fffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738365ll /* 0x7fffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738366ll /* 0x7fffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {34359738367ll /* 0x7ffffffff */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {34359738368ll /* 0x800000000 */ , - {{6, 1, 35}} /* shli r2, r1, 35 */ - }, - {34359738369ll /* 0x800000001 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {34359738370ll /* 0x800000002 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {34359738371ll /* 0x800000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738372ll /* 0x800000004 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {34359738373ll /* 0x800000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738374ll /* 0x800000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {34359738375ll /* 0x800000007 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {34359738376ll /* 0x800000008 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {34359738377ll /* 0x800000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738378ll /* 0x80000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {34359738384ll /* 0x800000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738400ll /* 0x800000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738432ll /* 0x800000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738496ll /* 0x800000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738624ll /* 0x800000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359738880ll /* 0x800000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359739392ll /* 0x800000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359740416ll /* 0x800000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359742464ll /* 0x800001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359746560ll /* 0x800002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359754752ll /* 0x800004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359771136ll /* 0x800008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359803904ll /* 0x800010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34359869440ll /* 0x800020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34360000512ll /* 0x800040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34360262656ll /* 0x800080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34360786944ll /* 0x800100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34361835520ll /* 0x800200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34363932672ll /* 0x800400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34368126976ll /* 0x800800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34376515584ll /* 0x801000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34393292800ll /* 0x802000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34426847232ll /* 0x804000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34493956096ll /* 0x808000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34628173824ll /* 0x810000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34896609280ll /* 0x820000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35433480192ll /* 0x840000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36507222016ll /* 0x880000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 35}, /* shli r3, r1, 35 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {38654705664ll /* 0x900000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 32}} /* shli r3, r2, 32 */ - }, - {42949672960ll /* 0xa00000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 33}} /* shli r3, r2, 33 */ - }, - {51539607552ll /* 0xc00000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 34}} /* shli r3, r2, 34 */ - }, - {68719476727ll /* 0xffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476728ll /* 0xffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476729ll /* 0xffffffff9 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {68719476731ll /* 0xffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476732ll /* 0xffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476733ll /* 0xffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476734ll /* 0xffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {68719476735ll /* 0xfffffffff */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {68719476736ll /* 0x1000000000 */ , - {{6, 1, 36}} /* shli r2, r1, 36 */ - }, - {68719476737ll /* 0x1000000001 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {68719476738ll /* 0x1000000002 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {68719476739ll /* 0x1000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476740ll /* 0x1000000004 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {68719476741ll /* 0x1000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476742ll /* 0x1000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {68719476743ll /* 0x1000000007 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {68719476744ll /* 0x1000000008 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {68719476745ll /* 0x1000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476746ll /* 0x100000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {68719476752ll /* 0x1000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476768ll /* 0x1000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476800ll /* 0x1000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476864ll /* 0x1000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719476992ll /* 0x1000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719477248ll /* 0x1000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719477760ll /* 0x1000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719478784ll /* 0x1000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719480832ll /* 0x1000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719484928ll /* 0x1000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719493120ll /* 0x1000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719509504ll /* 0x1000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719542272ll /* 0x1000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719607808ll /* 0x1000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68719738880ll /* 0x1000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68720001024ll /* 0x1000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68720525312ll /* 0x1000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68721573888ll /* 0x1000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68723671040ll /* 0x1000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68727865344ll /* 0x1000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68736253952ll /* 0x1001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68753031168ll /* 0x1002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68786585600ll /* 0x1004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68853694464ll /* 0x1008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68987912192ll /* 0x1010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69256347648ll /* 0x1020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69793218560ll /* 0x1040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70866960384ll /* 0x1080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {73014444032ll /* 0x1100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 36}, /* shli r3, r1, 36 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {77309411328ll /* 0x1200000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 33}} /* shli r3, r2, 33 */ - }, - {85899345920ll /* 0x1400000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 34}} /* shli r3, r2, 34 */ - }, - {103079215104ll /* 0x1800000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 35}} /* shli r3, r2, 35 */ - }, - {137438953463ll /* 0x1ffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953464ll /* 0x1ffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953465ll /* 0x1ffffffff9 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {137438953467ll /* 0x1ffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953468ll /* 0x1ffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953469ll /* 0x1ffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953470ll /* 0x1ffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {137438953471ll /* 0x1fffffffff */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {137438953472ll /* 0x2000000000 */ , - {{6, 1, 37}} /* shli r2, r1, 37 */ - }, - {137438953473ll /* 0x2000000001 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {137438953474ll /* 0x2000000002 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {137438953475ll /* 0x2000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953476ll /* 0x2000000004 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {137438953477ll /* 0x2000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953478ll /* 0x2000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {137438953479ll /* 0x2000000007 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {137438953480ll /* 0x2000000008 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {137438953481ll /* 0x2000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953482ll /* 0x200000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {137438953488ll /* 0x2000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953504ll /* 0x2000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953536ll /* 0x2000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953600ll /* 0x2000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953728ll /* 0x2000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438953984ll /* 0x2000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438954496ll /* 0x2000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438955520ll /* 0x2000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438957568ll /* 0x2000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438961664ll /* 0x2000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438969856ll /* 0x2000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137438986240ll /* 0x2000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137439019008ll /* 0x2000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137439084544ll /* 0x2000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137439215616ll /* 0x2000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137439477760ll /* 0x2000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137440002048ll /* 0x2000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137441050624ll /* 0x2000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137443147776ll /* 0x2000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137447342080ll /* 0x2000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137455730688ll /* 0x2001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137472507904ll /* 0x2002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137506062336ll /* 0x2004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137573171200ll /* 0x2008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137707388928ll /* 0x2010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {137975824384ll /* 0x2020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {138512695296ll /* 0x2040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {139586437120ll /* 0x2080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {141733920768ll /* 0x2100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {146028888064ll /* 0x2200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 37}, /* shli r3, r1, 37 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {154618822656ll /* 0x2400000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 34}} /* shli r3, r2, 34 */ - }, - {171798691840ll /* 0x2800000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 35}} /* shli r3, r2, 35 */ - }, - {206158430208ll /* 0x3000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 36}} /* shli r3, r2, 36 */ - }, - {274877906935ll /* 0x3ffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906936ll /* 0x3ffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906937ll /* 0x3ffffffff9 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {274877906939ll /* 0x3ffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906940ll /* 0x3ffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906941ll /* 0x3ffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906942ll /* 0x3ffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {274877906943ll /* 0x3fffffffff */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {274877906944ll /* 0x4000000000 */ , - {{6, 1, 38}} /* shli r2, r1, 38 */ - }, - {274877906945ll /* 0x4000000001 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {274877906946ll /* 0x4000000002 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {274877906947ll /* 0x4000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877906948ll /* 0x4000000004 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {274877906949ll /* 0x4000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877906950ll /* 0x4000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {274877906951ll /* 0x4000000007 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {274877906952ll /* 0x4000000008 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {274877906953ll /* 0x4000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877906954ll /* 0x400000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {274877906960ll /* 0x4000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877906976ll /* 0x4000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877907008ll /* 0x4000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877907072ll /* 0x4000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877907200ll /* 0x4000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877907456ll /* 0x4000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877907968ll /* 0x4000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877908992ll /* 0x4000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877911040ll /* 0x4000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877915136ll /* 0x4000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877923328ll /* 0x4000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877939712ll /* 0x4000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274877972480ll /* 0x4000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274878038016ll /* 0x4000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274878169088ll /* 0x4000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274878431232ll /* 0x4000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274878955520ll /* 0x4000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274880004096ll /* 0x4000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274882101248ll /* 0x4000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274886295552ll /* 0x4000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274894684160ll /* 0x4001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274911461376ll /* 0x4002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {274945015808ll /* 0x4004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {275012124672ll /* 0x4008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {275146342400ll /* 0x4010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {275414777856ll /* 0x4020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {275951648768ll /* 0x4040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {277025390592ll /* 0x4080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {279172874240ll /* 0x4100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {283467841536ll /* 0x4200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {292057776128ll /* 0x4400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 38}, /* shli r3, r1, 38 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {309237645312ll /* 0x4800000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 35}} /* shli r3, r2, 35 */ - }, - {343597383680ll /* 0x5000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 36}} /* shli r3, r2, 36 */ - }, - {412316860416ll /* 0x6000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 37}} /* shli r3, r2, 37 */ - }, - {549755813879ll /* 0x7ffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813880ll /* 0x7ffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813881ll /* 0x7ffffffff9 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {549755813883ll /* 0x7ffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813884ll /* 0x7ffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813885ll /* 0x7ffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813886ll /* 0x7ffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {549755813887ll /* 0x7fffffffff */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {549755813888ll /* 0x8000000000 */ , - {{6, 1, 39}} /* shli r2, r1, 39 */ - }, - {549755813889ll /* 0x8000000001 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {549755813890ll /* 0x8000000002 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {549755813891ll /* 0x8000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755813892ll /* 0x8000000004 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {549755813893ll /* 0x8000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755813894ll /* 0x8000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {549755813895ll /* 0x8000000007 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {549755813896ll /* 0x8000000008 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {549755813897ll /* 0x8000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755813898ll /* 0x800000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {549755813904ll /* 0x8000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755813920ll /* 0x8000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755813952ll /* 0x8000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755814016ll /* 0x8000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755814144ll /* 0x8000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755814400ll /* 0x8000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755814912ll /* 0x8000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755815936ll /* 0x8000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755817984ll /* 0x8000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755822080ll /* 0x8000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755830272ll /* 0x8000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755846656ll /* 0x8000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755879424ll /* 0x8000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549755944960ll /* 0x8000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549756076032ll /* 0x8000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549756338176ll /* 0x8000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549756862464ll /* 0x8000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549757911040ll /* 0x8000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549760008192ll /* 0x8000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549764202496ll /* 0x8000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549772591104ll /* 0x8001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549789368320ll /* 0x8002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549822922752ll /* 0x8004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {549890031616ll /* 0x8008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {550024249344ll /* 0x8010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {550292684800ll /* 0x8020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {550829555712ll /* 0x8040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {551903297536ll /* 0x8080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {554050781184ll /* 0x8100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {558345748480ll /* 0x8200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {566935683072ll /* 0x8400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {584115552256ll /* 0x8800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 39}, /* shli r3, r1, 39 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {618475290624ll /* 0x9000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 36}} /* shli r3, r2, 36 */ - }, - {687194767360ll /* 0xa000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 37}} /* shli r3, r2, 37 */ - }, - {824633720832ll /* 0xc000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 38}} /* shli r3, r2, 38 */ - }, - {1099511627767ll /* 0xfffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627768ll /* 0xfffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627769ll /* 0xfffffffff9 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1099511627771ll /* 0xfffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627772ll /* 0xfffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627773ll /* 0xfffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627774ll /* 0xfffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1099511627775ll /* 0xffffffffff */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1099511627776ll /* 0x10000000000 */ , - {{6, 1, 40}} /* shli r2, r1, 40 */ - }, - {1099511627777ll /* 0x10000000001 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1099511627778ll /* 0x10000000002 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1099511627779ll /* 0x10000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627780ll /* 0x10000000004 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1099511627781ll /* 0x10000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627782ll /* 0x10000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1099511627783ll /* 0x10000000007 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1099511627784ll /* 0x10000000008 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1099511627785ll /* 0x10000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627786ll /* 0x1000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1099511627792ll /* 0x10000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627808ll /* 0x10000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627840ll /* 0x10000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511627904ll /* 0x10000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511628032ll /* 0x10000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511628288ll /* 0x10000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511628800ll /* 0x10000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511629824ll /* 0x10000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511631872ll /* 0x10000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511635968ll /* 0x10000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511644160ll /* 0x10000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511660544ll /* 0x10000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511693312ll /* 0x10000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511758848ll /* 0x10000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099511889920ll /* 0x10000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099512152064ll /* 0x10000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099512676352ll /* 0x10000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099513724928ll /* 0x10000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099515822080ll /* 0x10000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099520016384ll /* 0x10000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099528404992ll /* 0x10001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099545182208ll /* 0x10002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099578736640ll /* 0x10004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099645845504ll /* 0x10008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1099780063232ll /* 0x10010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1100048498688ll /* 0x10020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1100585369600ll /* 0x10040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1101659111424ll /* 0x10080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1103806595072ll /* 0x10100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1108101562368ll /* 0x10200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1116691496960ll /* 0x10400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1133871366144ll /* 0x10800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1168231104512ll /* 0x11000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 40}, /* shli r3, r1, 40 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1236950581248ll /* 0x12000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 37}} /* shli r3, r2, 37 */ - }, - {1374389534720ll /* 0x14000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 38}} /* shli r3, r2, 38 */ - }, - {1649267441664ll /* 0x18000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 39}} /* shli r3, r2, 39 */ - }, - {2199023255543ll /* 0x1fffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255544ll /* 0x1fffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255545ll /* 0x1fffffffff9 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2199023255547ll /* 0x1fffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255548ll /* 0x1fffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255549ll /* 0x1fffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255550ll /* 0x1fffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2199023255551ll /* 0x1ffffffffff */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2199023255552ll /* 0x20000000000 */ , - {{6, 1, 41}} /* shli r2, r1, 41 */ - }, - {2199023255553ll /* 0x20000000001 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2199023255554ll /* 0x20000000002 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2199023255555ll /* 0x20000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255556ll /* 0x20000000004 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2199023255557ll /* 0x20000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255558ll /* 0x20000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2199023255559ll /* 0x20000000007 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2199023255560ll /* 0x20000000008 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2199023255561ll /* 0x20000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255562ll /* 0x2000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2199023255568ll /* 0x20000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255584ll /* 0x20000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255616ll /* 0x20000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255680ll /* 0x20000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023255808ll /* 0x20000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023256064ll /* 0x20000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023256576ll /* 0x20000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023257600ll /* 0x20000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023259648ll /* 0x20000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023263744ll /* 0x20000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023271936ll /* 0x20000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023288320ll /* 0x20000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023321088ll /* 0x20000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023386624ll /* 0x20000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023517696ll /* 0x20000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199023779840ll /* 0x20000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199024304128ll /* 0x20000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199025352704ll /* 0x20000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199027449856ll /* 0x20000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199031644160ll /* 0x20000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199040032768ll /* 0x20001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199056809984ll /* 0x20002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199090364416ll /* 0x20004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199157473280ll /* 0x20008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199291691008ll /* 0x20010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2199560126464ll /* 0x20020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2200096997376ll /* 0x20040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2201170739200ll /* 0x20080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2203318222848ll /* 0x20100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2207613190144ll /* 0x20200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2216203124736ll /* 0x20400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2233382993920ll /* 0x20800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2267742732288ll /* 0x21000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2336462209024ll /* 0x22000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 41}, /* shli r3, r1, 41 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2473901162496ll /* 0x24000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 38}} /* shli r3, r2, 38 */ - }, - {2748779069440ll /* 0x28000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 39}} /* shli r3, r2, 39 */ - }, - {3298534883328ll /* 0x30000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 40}} /* shli r3, r2, 40 */ - }, - {4398046511095ll /* 0x3fffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511096ll /* 0x3fffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511097ll /* 0x3fffffffff9 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4398046511099ll /* 0x3fffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511100ll /* 0x3fffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511101ll /* 0x3fffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511102ll /* 0x3fffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4398046511103ll /* 0x3ffffffffff */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4398046511104ll /* 0x40000000000 */ , - {{6, 1, 42}} /* shli r2, r1, 42 */ - }, - {4398046511105ll /* 0x40000000001 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4398046511106ll /* 0x40000000002 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4398046511107ll /* 0x40000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511108ll /* 0x40000000004 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4398046511109ll /* 0x40000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511110ll /* 0x40000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4398046511111ll /* 0x40000000007 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4398046511112ll /* 0x40000000008 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4398046511113ll /* 0x40000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511114ll /* 0x4000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4398046511120ll /* 0x40000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511136ll /* 0x40000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511168ll /* 0x40000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511232ll /* 0x40000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511360ll /* 0x40000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046511616ll /* 0x40000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046512128ll /* 0x40000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046513152ll /* 0x40000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046515200ll /* 0x40000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046519296ll /* 0x40000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046527488ll /* 0x40000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046543872ll /* 0x40000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046576640ll /* 0x40000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046642176ll /* 0x40000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398046773248ll /* 0x40000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398047035392ll /* 0x40000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398047559680ll /* 0x40000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398048608256ll /* 0x40000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398050705408ll /* 0x40000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398054899712ll /* 0x40000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398063288320ll /* 0x40001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398080065536ll /* 0x40002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398113619968ll /* 0x40004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398180728832ll /* 0x40008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398314946560ll /* 0x40010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4398583382016ll /* 0x40020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4399120252928ll /* 0x40040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4400193994752ll /* 0x40080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4402341478400ll /* 0x40100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4406636445696ll /* 0x40200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4415226380288ll /* 0x40400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4432406249472ll /* 0x40800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4466765987840ll /* 0x41000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4535485464576ll /* 0x42000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4672924418048ll /* 0x44000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 42}, /* shli r3, r1, 42 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4947802324992ll /* 0x48000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 39}} /* shli r3, r2, 39 */ - }, - {5497558138880ll /* 0x50000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 40}} /* shli r3, r2, 40 */ - }, - {6597069766656ll /* 0x60000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 41}} /* shli r3, r2, 41 */ - }, - {8796093022199ll /* 0x7fffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022200ll /* 0x7fffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022201ll /* 0x7fffffffff9 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {8796093022203ll /* 0x7fffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022204ll /* 0x7fffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022205ll /* 0x7fffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022206ll /* 0x7fffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8796093022207ll /* 0x7ffffffffff */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8796093022208ll /* 0x80000000000 */ , - {{6, 1, 43}} /* shli r2, r1, 43 */ - }, - {8796093022209ll /* 0x80000000001 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8796093022210ll /* 0x80000000002 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {8796093022211ll /* 0x80000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022212ll /* 0x80000000004 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {8796093022213ll /* 0x80000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022214ll /* 0x80000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8796093022215ll /* 0x80000000007 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {8796093022216ll /* 0x80000000008 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {8796093022217ll /* 0x80000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022218ll /* 0x8000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {8796093022224ll /* 0x80000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022240ll /* 0x80000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022272ll /* 0x80000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022336ll /* 0x80000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022464ll /* 0x80000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093022720ll /* 0x80000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093023232ll /* 0x80000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093024256ll /* 0x80000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093026304ll /* 0x80000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093030400ll /* 0x80000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093038592ll /* 0x80000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093054976ll /* 0x80000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093087744ll /* 0x80000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093153280ll /* 0x80000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093284352ll /* 0x80000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796093546496ll /* 0x80000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796094070784ll /* 0x80000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796095119360ll /* 0x80000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796097216512ll /* 0x80000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796101410816ll /* 0x80000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796109799424ll /* 0x80001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796126576640ll /* 0x80002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796160131072ll /* 0x80004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796227239936ll /* 0x80008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796361457664ll /* 0x80010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8796629893120ll /* 0x80020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8797166764032ll /* 0x80040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8798240505856ll /* 0x80080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8800387989504ll /* 0x80100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8804682956800ll /* 0x80200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8813272891392ll /* 0x80400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8830452760576ll /* 0x80800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8864812498944ll /* 0x81000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8933531975680ll /* 0x82000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9070970929152ll /* 0x84000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9345848836096ll /* 0x88000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 43}, /* shli r3, r1, 43 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9895604649984ll /* 0x90000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 40}} /* shli r3, r2, 40 */ - }, - {10995116277760ll /* 0xa0000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 41}} /* shli r3, r2, 41 */ - }, - {13194139533312ll /* 0xc0000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 42}} /* shli r3, r2, 42 */ - }, - {17592186044407ll /* 0xffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044408ll /* 0xffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044409ll /* 0xffffffffff9 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {17592186044411ll /* 0xffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044412ll /* 0xffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044413ll /* 0xffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044414ll /* 0xffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {17592186044415ll /* 0xfffffffffff */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {17592186044416ll /* 0x100000000000 */ , - {{6, 1, 44}} /* shli r2, r1, 44 */ - }, - {17592186044417ll /* 0x100000000001 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {17592186044418ll /* 0x100000000002 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {17592186044419ll /* 0x100000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044420ll /* 0x100000000004 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {17592186044421ll /* 0x100000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044422ll /* 0x100000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {17592186044423ll /* 0x100000000007 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {17592186044424ll /* 0x100000000008 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {17592186044425ll /* 0x100000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044426ll /* 0x10000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {17592186044432ll /* 0x100000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044448ll /* 0x100000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044480ll /* 0x100000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044544ll /* 0x100000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044672ll /* 0x100000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186044928ll /* 0x100000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186045440ll /* 0x100000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186046464ll /* 0x100000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186048512ll /* 0x100000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186052608ll /* 0x100000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186060800ll /* 0x100000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186077184ll /* 0x100000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186109952ll /* 0x100000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186175488ll /* 0x100000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186306560ll /* 0x100000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592186568704ll /* 0x100000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592187092992ll /* 0x100000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592188141568ll /* 0x100000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592190238720ll /* 0x100000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592194433024ll /* 0x100000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592202821632ll /* 0x100001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592219598848ll /* 0x100002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592253153280ll /* 0x100004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592320262144ll /* 0x100008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592454479872ll /* 0x100010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17592722915328ll /* 0x100020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17593259786240ll /* 0x100040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17594333528064ll /* 0x100080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17596481011712ll /* 0x100100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17600775979008ll /* 0x100200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17609365913600ll /* 0x100400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17626545782784ll /* 0x100800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17660905521152ll /* 0x101000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17729624997888ll /* 0x102000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17867063951360ll /* 0x104000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18141941858304ll /* 0x108000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18691697672192ll /* 0x110000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 44}, /* shli r3, r1, 44 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {19791209299968ll /* 0x120000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 41}} /* shli r3, r2, 41 */ - }, - {21990232555520ll /* 0x140000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 42}} /* shli r3, r2, 42 */ - }, - {26388279066624ll /* 0x180000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 43}} /* shli r3, r2, 43 */ - }, - {35184372088823ll /* 0x1ffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088824ll /* 0x1ffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088825ll /* 0x1ffffffffff9 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {35184372088827ll /* 0x1ffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088828ll /* 0x1ffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088829ll /* 0x1ffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088830ll /* 0x1ffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {35184372088831ll /* 0x1fffffffffff */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {35184372088832ll /* 0x200000000000 */ , - {{6, 1, 45}} /* shli r2, r1, 45 */ - }, - {35184372088833ll /* 0x200000000001 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {35184372088834ll /* 0x200000000002 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {35184372088835ll /* 0x200000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088836ll /* 0x200000000004 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {35184372088837ll /* 0x200000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088838ll /* 0x200000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {35184372088839ll /* 0x200000000007 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {35184372088840ll /* 0x200000000008 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {35184372088841ll /* 0x200000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088842ll /* 0x20000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {35184372088848ll /* 0x200000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088864ll /* 0x200000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088896ll /* 0x200000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372088960ll /* 0x200000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372089088ll /* 0x200000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372089344ll /* 0x200000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372089856ll /* 0x200000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372090880ll /* 0x200000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372092928ll /* 0x200000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372097024ll /* 0x200000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372105216ll /* 0x200000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372121600ll /* 0x200000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372154368ll /* 0x200000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372219904ll /* 0x200000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372350976ll /* 0x200000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184372613120ll /* 0x200000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184373137408ll /* 0x200000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184374185984ll /* 0x200000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184376283136ll /* 0x200000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184380477440ll /* 0x200000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184388866048ll /* 0x200001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184405643264ll /* 0x200002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184439197696ll /* 0x200004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184506306560ll /* 0x200008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184640524288ll /* 0x200010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35184908959744ll /* 0x200020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35185445830656ll /* 0x200040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35186519572480ll /* 0x200080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35188667056128ll /* 0x200100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35192962023424ll /* 0x200200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35201551958016ll /* 0x200400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35218731827200ll /* 0x200800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35253091565568ll /* 0x201000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35321811042304ll /* 0x202000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35459249995776ll /* 0x204000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35734127902720ll /* 0x208000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36283883716608ll /* 0x210000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {37383395344384ll /* 0x220000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 45}, /* shli r3, r1, 45 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {39582418599936ll /* 0x240000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 42}} /* shli r3, r2, 42 */ - }, - {43980465111040ll /* 0x280000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 43}} /* shli r3, r2, 43 */ - }, - {52776558133248ll /* 0x300000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 44}} /* shli r3, r2, 44 */ - }, - {70368744177655ll /* 0x3ffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177656ll /* 0x3ffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177657ll /* 0x3ffffffffff9 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {70368744177659ll /* 0x3ffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177660ll /* 0x3ffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177661ll /* 0x3ffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177662ll /* 0x3ffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {70368744177663ll /* 0x3fffffffffff */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {70368744177664ll /* 0x400000000000 */ , - {{6, 1, 46}} /* shli r2, r1, 46 */ - }, - {70368744177665ll /* 0x400000000001 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {70368744177666ll /* 0x400000000002 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {70368744177667ll /* 0x400000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177668ll /* 0x400000000004 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {70368744177669ll /* 0x400000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177670ll /* 0x400000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {70368744177671ll /* 0x400000000007 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {70368744177672ll /* 0x400000000008 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {70368744177673ll /* 0x400000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177674ll /* 0x40000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {70368744177680ll /* 0x400000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177696ll /* 0x400000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177728ll /* 0x400000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177792ll /* 0x400000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744177920ll /* 0x400000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744178176ll /* 0x400000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744178688ll /* 0x400000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744179712ll /* 0x400000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744181760ll /* 0x400000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744185856ll /* 0x400000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744194048ll /* 0x400000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744210432ll /* 0x400000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744243200ll /* 0x400000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744308736ll /* 0x400000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744439808ll /* 0x400000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368744701952ll /* 0x400000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368745226240ll /* 0x400000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368746274816ll /* 0x400000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368748371968ll /* 0x400000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368752566272ll /* 0x400000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368760954880ll /* 0x400001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368777732096ll /* 0x400002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368811286528ll /* 0x400004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70368878395392ll /* 0x400008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70369012613120ll /* 0x400010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70369281048576ll /* 0x400020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70369817919488ll /* 0x400040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70370891661312ll /* 0x400080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70373039144960ll /* 0x400100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70377334112256ll /* 0x400200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70385924046848ll /* 0x400400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70403103916032ll /* 0x400800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70437463654400ll /* 0x401000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70506183131136ll /* 0x402000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70643622084608ll /* 0x404000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70918499991552ll /* 0x408000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {71468255805440ll /* 0x410000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72567767433216ll /* 0x420000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {74766790688768ll /* 0x440000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 46}, /* shli r3, r1, 46 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {79164837199872ll /* 0x480000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 43}} /* shli r3, r2, 43 */ - }, - {87960930222080ll /* 0x500000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 44}} /* shli r3, r2, 44 */ - }, - {105553116266496ll /* 0x600000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 45}} /* shli r3, r2, 45 */ - }, - {140737488355319ll /* 0x7ffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355320ll /* 0x7ffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355321ll /* 0x7ffffffffff9 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {140737488355323ll /* 0x7ffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355324ll /* 0x7ffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355325ll /* 0x7ffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355326ll /* 0x7ffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {140737488355327ll /* 0x7fffffffffff */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {140737488355328ll /* 0x800000000000 */ , - {{6, 1, 47}} /* shli r2, r1, 47 */ - }, - {140737488355329ll /* 0x800000000001 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {140737488355330ll /* 0x800000000002 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {140737488355331ll /* 0x800000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355332ll /* 0x800000000004 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {140737488355333ll /* 0x800000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355334ll /* 0x800000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {140737488355335ll /* 0x800000000007 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {140737488355336ll /* 0x800000000008 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {140737488355337ll /* 0x800000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355338ll /* 0x80000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {140737488355344ll /* 0x800000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355360ll /* 0x800000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355392ll /* 0x800000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355456ll /* 0x800000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355584ll /* 0x800000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488355840ll /* 0x800000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488356352ll /* 0x800000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488357376ll /* 0x800000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488359424ll /* 0x800000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488363520ll /* 0x800000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488371712ll /* 0x800000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488388096ll /* 0x800000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488420864ll /* 0x800000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488486400ll /* 0x800000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488617472ll /* 0x800000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737488879616ll /* 0x800000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737489403904ll /* 0x800000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737490452480ll /* 0x800000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737492549632ll /* 0x800000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737496743936ll /* 0x800000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737505132544ll /* 0x800001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737521909760ll /* 0x800002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737555464192ll /* 0x800004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737622573056ll /* 0x800008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140737756790784ll /* 0x800010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140738025226240ll /* 0x800020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140738562097152ll /* 0x800040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140739635838976ll /* 0x800080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140741783322624ll /* 0x800100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140746078289920ll /* 0x800200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140754668224512ll /* 0x800400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140771848093696ll /* 0x800800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140806207832064ll /* 0x801000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {140874927308800ll /* 0x802000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {141012366262272ll /* 0x804000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {141287244169216ll /* 0x808000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {141836999983104ll /* 0x810000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {142936511610880ll /* 0x820000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {145135534866432ll /* 0x840000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {149533581377536ll /* 0x880000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 47}, /* shli r3, r1, 47 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {158329674399744ll /* 0x900000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 44}} /* shli r3, r2, 44 */ - }, - {175921860444160ll /* 0xa00000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 45}} /* shli r3, r2, 45 */ - }, - {211106232532992ll /* 0xc00000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 46}} /* shli r3, r2, 46 */ - }, - {281474976710647ll /* 0xfffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710648ll /* 0xfffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710649ll /* 0xfffffffffff9 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {281474976710651ll /* 0xfffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710652ll /* 0xfffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710653ll /* 0xfffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710654ll /* 0xfffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {281474976710655ll /* 0xffffffffffff */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {281474976710656ll /* 0x1000000000000 */ , - {{6, 1, 48}} /* shli r2, r1, 48 */ - }, - {281474976710657ll /* 0x1000000000001 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {281474976710658ll /* 0x1000000000002 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {281474976710659ll /* 0x1000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710660ll /* 0x1000000000004 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {281474976710661ll /* 0x1000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710662ll /* 0x1000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {281474976710663ll /* 0x1000000000007 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {281474976710664ll /* 0x1000000000008 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {281474976710665ll /* 0x1000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710666ll /* 0x100000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {281474976710672ll /* 0x1000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710688ll /* 0x1000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710720ll /* 0x1000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710784ll /* 0x1000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976710912ll /* 0x1000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976711168ll /* 0x1000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976711680ll /* 0x1000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976712704ll /* 0x1000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976714752ll /* 0x1000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976718848ll /* 0x1000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976727040ll /* 0x1000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976743424ll /* 0x1000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976776192ll /* 0x1000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976841728ll /* 0x1000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474976972800ll /* 0x1000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474977234944ll /* 0x1000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474977759232ll /* 0x1000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474978807808ll /* 0x1000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474980904960ll /* 0x1000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474985099264ll /* 0x1000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281474993487872ll /* 0x1000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281475010265088ll /* 0x1000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281475043819520ll /* 0x1000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281475110928384ll /* 0x1000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281475245146112ll /* 0x1000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281475513581568ll /* 0x1000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281476050452480ll /* 0x1000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281477124194304ll /* 0x1000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281479271677952ll /* 0x1000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281483566645248ll /* 0x1000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281492156579840ll /* 0x1000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281509336449024ll /* 0x1000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281543696187392ll /* 0x1001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281612415664128ll /* 0x1002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {281749854617600ll /* 0x1004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {282024732524544ll /* 0x1008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {282574488338432ll /* 0x1010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {283673999966208ll /* 0x1020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {285873023221760ll /* 0x1040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {290271069732864ll /* 0x1080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {299067162755072ll /* 0x1100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 48}, /* shli r3, r1, 48 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {316659348799488ll /* 0x1200000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 45}} /* shli r3, r2, 45 */ - }, - {351843720888320ll /* 0x1400000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 46}} /* shli r3, r2, 46 */ - }, - {422212465065984ll /* 0x1800000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 47}} /* shli r3, r2, 47 */ - }, - {562949953421303ll /* 0x1fffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421304ll /* 0x1fffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421305ll /* 0x1fffffffffff9 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {562949953421307ll /* 0x1fffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421308ll /* 0x1fffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421309ll /* 0x1fffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421310ll /* 0x1fffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {562949953421311ll /* 0x1ffffffffffff */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {562949953421312ll /* 0x2000000000000 */ , - {{6, 1, 49}} /* shli r2, r1, 49 */ - }, - {562949953421313ll /* 0x2000000000001 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {562949953421314ll /* 0x2000000000002 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {562949953421315ll /* 0x2000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421316ll /* 0x2000000000004 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {562949953421317ll /* 0x2000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421318ll /* 0x2000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {562949953421319ll /* 0x2000000000007 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {562949953421320ll /* 0x2000000000008 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {562949953421321ll /* 0x2000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421322ll /* 0x200000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {562949953421328ll /* 0x2000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421344ll /* 0x2000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421376ll /* 0x2000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421440ll /* 0x2000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421568ll /* 0x2000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953421824ll /* 0x2000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953422336ll /* 0x2000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953423360ll /* 0x2000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953425408ll /* 0x2000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953429504ll /* 0x2000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953437696ll /* 0x2000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953454080ll /* 0x2000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953486848ll /* 0x2000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953552384ll /* 0x2000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953683456ll /* 0x2000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949953945600ll /* 0x2000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949954469888ll /* 0x2000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949955518464ll /* 0x2000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949957615616ll /* 0x2000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949961809920ll /* 0x2000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949970198528ll /* 0x2000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562949986975744ll /* 0x2000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562950020530176ll /* 0x2000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562950087639040ll /* 0x2000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562950221856768ll /* 0x2000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562950490292224ll /* 0x2000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562951027163136ll /* 0x2000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562952100904960ll /* 0x2000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562954248388608ll /* 0x2000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562958543355904ll /* 0x2000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562967133290496ll /* 0x2000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {562984313159680ll /* 0x2000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {563018672898048ll /* 0x2001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {563087392374784ll /* 0x2002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {563224831328256ll /* 0x2004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {563499709235200ll /* 0x2008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {564049465049088ll /* 0x2010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {565148976676864ll /* 0x2020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {567347999932416ll /* 0x2040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {571746046443520ll /* 0x2080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {580542139465728ll /* 0x2100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {598134325510144ll /* 0x2200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 49}, /* shli r3, r1, 49 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {633318697598976ll /* 0x2400000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 46}} /* shli r3, r2, 46 */ - }, - {703687441776640ll /* 0x2800000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 47}} /* shli r3, r2, 47 */ - }, - {844424930131968ll /* 0x3000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 48}} /* shli r3, r2, 48 */ - }, - {1125899906842615ll /* 0x3fffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842616ll /* 0x3fffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842617ll /* 0x3fffffffffff9 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1125899906842619ll /* 0x3fffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842620ll /* 0x3fffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842621ll /* 0x3fffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842622ll /* 0x3fffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1125899906842623ll /* 0x3ffffffffffff */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1125899906842624ll /* 0x4000000000000 */ , - {{6, 1, 50}} /* shli r2, r1, 50 */ - }, - {1125899906842625ll /* 0x4000000000001 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1125899906842626ll /* 0x4000000000002 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1125899906842627ll /* 0x4000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842628ll /* 0x4000000000004 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1125899906842629ll /* 0x4000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842630ll /* 0x4000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1125899906842631ll /* 0x4000000000007 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1125899906842632ll /* 0x4000000000008 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1125899906842633ll /* 0x4000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842634ll /* 0x400000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1125899906842640ll /* 0x4000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842656ll /* 0x4000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842688ll /* 0x4000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842752ll /* 0x4000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906842880ll /* 0x4000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906843136ll /* 0x4000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906843648ll /* 0x4000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906844672ll /* 0x4000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906846720ll /* 0x4000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906850816ll /* 0x4000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906859008ll /* 0x4000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906875392ll /* 0x4000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906908160ll /* 0x4000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899906973696ll /* 0x4000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899907104768ll /* 0x4000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899907366912ll /* 0x4000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899907891200ll /* 0x4000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899908939776ll /* 0x4000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899911036928ll /* 0x4000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899915231232ll /* 0x4000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899923619840ll /* 0x4000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899940397056ll /* 0x4000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125899973951488ll /* 0x4000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125900041060352ll /* 0x4000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125900175278080ll /* 0x4000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125900443713536ll /* 0x4000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125900980584448ll /* 0x4000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125902054326272ll /* 0x4000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125904201809920ll /* 0x4000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125908496777216ll /* 0x4000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125917086711808ll /* 0x4000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125934266580992ll /* 0x4000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1125968626319360ll /* 0x4001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1126037345796096ll /* 0x4002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1126174784749568ll /* 0x4004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1126449662656512ll /* 0x4008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1126999418470400ll /* 0x4010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1128098930098176ll /* 0x4020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1130297953353728ll /* 0x4040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1134695999864832ll /* 0x4080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1143492092887040ll /* 0x4100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1161084278931456ll /* 0x4200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1196268651020288ll /* 0x4400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 50}, /* shli r3, r1, 50 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1266637395197952ll /* 0x4800000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 47}} /* shli r3, r2, 47 */ - }, - {1407374883553280ll /* 0x5000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 48}} /* shli r3, r2, 48 */ - }, - {1688849860263936ll /* 0x6000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 49}} /* shli r3, r2, 49 */ - }, - {2251799813685239ll /* 0x7fffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685240ll /* 0x7fffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685241ll /* 0x7fffffffffff9 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2251799813685243ll /* 0x7fffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685244ll /* 0x7fffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685245ll /* 0x7fffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685246ll /* 0x7fffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2251799813685247ll /* 0x7ffffffffffff */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2251799813685248ll /* 0x8000000000000 */ , - {{6, 1, 51}} /* shli r2, r1, 51 */ - }, - {2251799813685249ll /* 0x8000000000001 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2251799813685250ll /* 0x8000000000002 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2251799813685251ll /* 0x8000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685252ll /* 0x8000000000004 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2251799813685253ll /* 0x8000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685254ll /* 0x8000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2251799813685255ll /* 0x8000000000007 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2251799813685256ll /* 0x8000000000008 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2251799813685257ll /* 0x8000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685258ll /* 0x800000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2251799813685264ll /* 0x8000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685280ll /* 0x8000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685312ll /* 0x8000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685376ll /* 0x8000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685504ll /* 0x8000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813685760ll /* 0x8000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813686272ll /* 0x8000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813687296ll /* 0x8000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813689344ll /* 0x8000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813693440ll /* 0x8000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813701632ll /* 0x8000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813718016ll /* 0x8000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813750784ll /* 0x8000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813816320ll /* 0x8000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799813947392ll /* 0x8000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799814209536ll /* 0x8000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799814733824ll /* 0x8000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799815782400ll /* 0x8000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799817879552ll /* 0x8000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799822073856ll /* 0x8000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799830462464ll /* 0x8000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799847239680ll /* 0x8000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799880794112ll /* 0x8000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251799947902976ll /* 0x8000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251800082120704ll /* 0x8000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251800350556160ll /* 0x8000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251800887427072ll /* 0x8000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251801961168896ll /* 0x8000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251804108652544ll /* 0x8000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251808403619840ll /* 0x8000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251816993554432ll /* 0x8000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251834173423616ll /* 0x8000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251868533161984ll /* 0x8001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2251937252638720ll /* 0x8002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2252074691592192ll /* 0x8004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2252349569499136ll /* 0x8008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2252899325313024ll /* 0x8010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2253998836940800ll /* 0x8020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2256197860196352ll /* 0x8040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2260595906707456ll /* 0x8080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2269391999729664ll /* 0x8100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2286984185774080ll /* 0x8200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2322168557862912ll /* 0x8400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2392537302040576ll /* 0x8800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 51}, /* shli r3, r1, 51 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2533274790395904ll /* 0x9000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 48}} /* shli r3, r2, 48 */ - }, - {2814749767106560ll /* 0xa000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 49}} /* shli r3, r2, 49 */ - }, - {3377699720527872ll /* 0xc000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 50}} /* shli r3, r2, 50 */ - }, - {4503599627370487ll /* 0xffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370488ll /* 0xffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370489ll /* 0xffffffffffff9 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4503599627370491ll /* 0xffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370492ll /* 0xffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370493ll /* 0xffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370494ll /* 0xffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4503599627370495ll /* 0xfffffffffffff */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4503599627370496ll /* 0x10000000000000 */ , - {{6, 1, 52}} /* shli r2, r1, 52 */ - }, - {4503599627370497ll /* 0x10000000000001 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4503599627370498ll /* 0x10000000000002 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4503599627370499ll /* 0x10000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370500ll /* 0x10000000000004 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4503599627370501ll /* 0x10000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370502ll /* 0x10000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4503599627370503ll /* 0x10000000000007 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4503599627370504ll /* 0x10000000000008 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4503599627370505ll /* 0x10000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370506ll /* 0x1000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4503599627370512ll /* 0x10000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370528ll /* 0x10000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370560ll /* 0x10000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370624ll /* 0x10000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627370752ll /* 0x10000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627371008ll /* 0x10000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627371520ll /* 0x10000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627372544ll /* 0x10000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627374592ll /* 0x10000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627378688ll /* 0x10000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627386880ll /* 0x10000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627403264ll /* 0x10000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627436032ll /* 0x10000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627501568ll /* 0x10000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627632640ll /* 0x10000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599627894784ll /* 0x10000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599628419072ll /* 0x10000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599629467648ll /* 0x10000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599631564800ll /* 0x10000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599635759104ll /* 0x10000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599644147712ll /* 0x10000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599660924928ll /* 0x10000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599694479360ll /* 0x10000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599761588224ll /* 0x10000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503599895805952ll /* 0x10000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503600164241408ll /* 0x10000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503600701112320ll /* 0x10000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503601774854144ll /* 0x10000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503603922337792ll /* 0x10000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503608217305088ll /* 0x10000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503616807239680ll /* 0x10000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503633987108864ll /* 0x10000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503668346847232ll /* 0x10001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503737066323968ll /* 0x10002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4503874505277440ll /* 0x10004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4504149383184384ll /* 0x10008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4504699138998272ll /* 0x10010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4505798650626048ll /* 0x10020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4507997673881600ll /* 0x10040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4512395720392704ll /* 0x10080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4521191813414912ll /* 0x10100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4538783999459328ll /* 0x10200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4573968371548160ll /* 0x10400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4644337115725824ll /* 0x10800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4785074604081152ll /* 0x11000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 52}, /* shli r3, r1, 52 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {5066549580791808ll /* 0x12000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 49}} /* shli r3, r2, 49 */ - }, - {5629499534213120ll /* 0x14000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 50}} /* shli r3, r2, 50 */ - }, - {6755399441055744ll /* 0x18000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 51}} /* shli r3, r2, 51 */ - }, - {9007199254740983ll /* 0x1ffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740984ll /* 0x1ffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740985ll /* 0x1ffffffffffff9 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {9007199254740987ll /* 0x1ffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740988ll /* 0x1ffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740989ll /* 0x1ffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740990ll /* 0x1ffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9007199254740991ll /* 0x1fffffffffffff */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {9007199254740992ll /* 0x20000000000000 */ , - {{6, 1, 53}} /* shli r2, r1, 53 */ - }, - {9007199254740993ll /* 0x20000000000001 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {9007199254740994ll /* 0x20000000000002 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {9007199254740995ll /* 0x20000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254740996ll /* 0x20000000000004 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {9007199254740997ll /* 0x20000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254740998ll /* 0x20000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {9007199254740999ll /* 0x20000000000007 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {9007199254741000ll /* 0x20000000000008 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {9007199254741001ll /* 0x20000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741002ll /* 0x2000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {9007199254741008ll /* 0x20000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741024ll /* 0x20000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741056ll /* 0x20000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741120ll /* 0x20000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741248ll /* 0x20000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254741504ll /* 0x20000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254742016ll /* 0x20000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254743040ll /* 0x20000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254745088ll /* 0x20000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254749184ll /* 0x20000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254757376ll /* 0x20000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254773760ll /* 0x20000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254806528ll /* 0x20000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199254872064ll /* 0x20000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199255003136ll /* 0x20000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199255265280ll /* 0x20000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199255789568ll /* 0x20000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199256838144ll /* 0x20000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199258935296ll /* 0x20000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199263129600ll /* 0x20000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199271518208ll /* 0x20000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199288295424ll /* 0x20000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199321849856ll /* 0x20000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199388958720ll /* 0x20000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199523176448ll /* 0x20000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007199791611904ll /* 0x20000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007200328482816ll /* 0x20000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007201402224640ll /* 0x20000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007203549708288ll /* 0x20000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007207844675584ll /* 0x20000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007216434610176ll /* 0x20000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007233614479360ll /* 0x20000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007267974217728ll /* 0x20001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007336693694464ll /* 0x20002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007474132647936ll /* 0x20004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9007749010554880ll /* 0x20008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9008298766368768ll /* 0x20010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9009398277996544ll /* 0x20020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9011597301252096ll /* 0x20040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9015995347763200ll /* 0x20080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9024791440785408ll /* 0x20100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9042383626829824ll /* 0x20200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9077567998918656ll /* 0x20400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9147936743096320ll /* 0x20800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9288674231451648ll /* 0x21000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9570149208162304ll /* 0x22000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 53}, /* shli r3, r1, 53 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {10133099161583616ll /* 0x24000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 50}} /* shli r3, r2, 50 */ - }, - {11258999068426240ll /* 0x28000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 51}} /* shli r3, r2, 51 */ - }, - {13510798882111488ll /* 0x30000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 52}} /* shli r3, r2, 52 */ - }, - {18014398509481975ll /* 0x3ffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481976ll /* 0x3ffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481977ll /* 0x3ffffffffffff9 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {18014398509481979ll /* 0x3ffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481980ll /* 0x3ffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481981ll /* 0x3ffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481982ll /* 0x3ffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {18014398509481983ll /* 0x3fffffffffffff */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {18014398509481984ll /* 0x40000000000000 */ , - {{6, 1, 54}} /* shli r2, r1, 54 */ - }, - {18014398509481985ll /* 0x40000000000001 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {18014398509481986ll /* 0x40000000000002 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {18014398509481987ll /* 0x40000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509481988ll /* 0x40000000000004 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {18014398509481989ll /* 0x40000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509481990ll /* 0x40000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {18014398509481991ll /* 0x40000000000007 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {18014398509481992ll /* 0x40000000000008 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {18014398509481993ll /* 0x40000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509481994ll /* 0x4000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {18014398509482000ll /* 0x40000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509482016ll /* 0x40000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509482048ll /* 0x40000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509482112ll /* 0x40000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509482240ll /* 0x40000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509482496ll /* 0x40000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509483008ll /* 0x40000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509484032ll /* 0x40000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509486080ll /* 0x40000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509490176ll /* 0x40000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509498368ll /* 0x40000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509514752ll /* 0x40000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509547520ll /* 0x40000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509613056ll /* 0x40000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398509744128ll /* 0x40000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398510006272ll /* 0x40000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398510530560ll /* 0x40000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398511579136ll /* 0x40000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398513676288ll /* 0x40000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398517870592ll /* 0x40000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398526259200ll /* 0x40000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398543036416ll /* 0x40000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398576590848ll /* 0x40000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398643699712ll /* 0x40000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014398777917440ll /* 0x40000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014399046352896ll /* 0x40000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014399583223808ll /* 0x40000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014400656965632ll /* 0x40000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014402804449280ll /* 0x40000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014407099416576ll /* 0x40000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014415689351168ll /* 0x40000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014432869220352ll /* 0x40000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014467228958720ll /* 0x40001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014535948435456ll /* 0x40002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014673387388928ll /* 0x40004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18014948265295872ll /* 0x40008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18015498021109760ll /* 0x40010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18016597532737536ll /* 0x40020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18018796555993088ll /* 0x40040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18023194602504192ll /* 0x40080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18031990695526400ll /* 0x40100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18049582881570816ll /* 0x40200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18084767253659648ll /* 0x40400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18155135997837312ll /* 0x40800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18295873486192640ll /* 0x41000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18577348462903296ll /* 0x42000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {19140298416324608ll /* 0x44000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 54}, /* shli r3, r1, 54 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {20266198323167232ll /* 0x48000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 51}} /* shli r3, r2, 51 */ - }, - {22517998136852480ll /* 0x50000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 52}} /* shli r3, r2, 52 */ - }, - {27021597764222976ll /* 0x60000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 53}} /* shli r3, r2, 53 */ - }, - {36028797018963959ll /* 0x7ffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963960ll /* 0x7ffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963961ll /* 0x7ffffffffffff9 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {36028797018963963ll /* 0x7ffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963964ll /* 0x7ffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963965ll /* 0x7ffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963966ll /* 0x7ffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {36028797018963967ll /* 0x7fffffffffffff */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {36028797018963968ll /* 0x80000000000000 */ , - {{6, 1, 55}} /* shli r2, r1, 55 */ - }, - {36028797018963969ll /* 0x80000000000001 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {36028797018963970ll /* 0x80000000000002 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {36028797018963971ll /* 0x80000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018963972ll /* 0x80000000000004 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {36028797018963973ll /* 0x80000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018963974ll /* 0x80000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {36028797018963975ll /* 0x80000000000007 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {36028797018963976ll /* 0x80000000000008 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {36028797018963977ll /* 0x80000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018963978ll /* 0x8000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {36028797018963984ll /* 0x80000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964000ll /* 0x80000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964032ll /* 0x80000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964096ll /* 0x80000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964224ll /* 0x80000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964480ll /* 0x80000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018964992ll /* 0x80000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018966016ll /* 0x80000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018968064ll /* 0x80000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018972160ll /* 0x80000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018980352ll /* 0x80000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797018996736ll /* 0x80000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797019029504ll /* 0x80000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797019095040ll /* 0x80000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797019226112ll /* 0x80000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797019488256ll /* 0x80000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797020012544ll /* 0x80000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797021061120ll /* 0x80000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797023158272ll /* 0x80000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797027352576ll /* 0x80000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797035741184ll /* 0x80000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797052518400ll /* 0x80000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797086072832ll /* 0x80000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797153181696ll /* 0x80000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797287399424ll /* 0x80000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028797555834880ll /* 0x80000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028798092705792ll /* 0x80000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028799166447616ll /* 0x80000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028801313931264ll /* 0x80000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028805608898560ll /* 0x80000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028814198833152ll /* 0x80000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028831378702336ll /* 0x80000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028865738440704ll /* 0x80001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36028934457917440ll /* 0x80002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36029071896870912ll /* 0x80004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36029346774777856ll /* 0x80008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36029896530591744ll /* 0x80010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36030996042219520ll /* 0x80020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36033195065475072ll /* 0x80040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36037593111986176ll /* 0x80080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36046389205008384ll /* 0x80100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36063981391052800ll /* 0x80200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36099165763141632ll /* 0x80400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36169534507319296ll /* 0x80800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36310271995674624ll /* 0x81000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36591746972385280ll /* 0x82000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {37154696925806592ll /* 0x84000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {38280596832649216ll /* 0x88000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 55}, /* shli r3, r1, 55 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {40532396646334464ll /* 0x90000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 52}} /* shli r3, r2, 52 */ - }, - {45035996273704960ll /* 0xa0000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 53}} /* shli r3, r2, 53 */ - }, - {54043195528445952ll /* 0xc0000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 54}} /* shli r3, r2, 54 */ - }, - {72057594037927927ll /* 0xfffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927928ll /* 0xfffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927929ll /* 0xfffffffffffff9 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {72057594037927931ll /* 0xfffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927932ll /* 0xfffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927933ll /* 0xfffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927934ll /* 0xfffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {72057594037927935ll /* 0xffffffffffffff */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {72057594037927936ll /* 0x100000000000000 */ , - {{6, 1, 56}} /* shli r2, r1, 56 */ - }, - {72057594037927937ll /* 0x100000000000001 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {72057594037927938ll /* 0x100000000000002 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {72057594037927939ll /* 0x100000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037927940ll /* 0x100000000000004 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {72057594037927941ll /* 0x100000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037927942ll /* 0x100000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {72057594037927943ll /* 0x100000000000007 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {72057594037927944ll /* 0x100000000000008 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {72057594037927945ll /* 0x100000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037927946ll /* 0x10000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {72057594037927952ll /* 0x100000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037927968ll /* 0x100000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037928000ll /* 0x100000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037928064ll /* 0x100000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037928192ll /* 0x100000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037928448ll /* 0x100000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037928960ll /* 0x100000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037929984ll /* 0x100000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037932032ll /* 0x100000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037936128ll /* 0x100000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037944320ll /* 0x100000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037960704ll /* 0x100000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594037993472ll /* 0x100000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594038059008ll /* 0x100000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594038190080ll /* 0x100000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594038452224ll /* 0x100000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594038976512ll /* 0x100000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594040025088ll /* 0x100000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594042122240ll /* 0x100000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594046316544ll /* 0x100000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594054705152ll /* 0x100000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594071482368ll /* 0x100000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594105036800ll /* 0x100000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594172145664ll /* 0x100000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594306363392ll /* 0x100000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057594574798848ll /* 0x100000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057595111669760ll /* 0x100000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057596185411584ll /* 0x100000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057598332895232ll /* 0x100000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057602627862528ll /* 0x100000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057611217797120ll /* 0x100000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057628397666304ll /* 0x100000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057662757404672ll /* 0x100001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057731476881408ll /* 0x100002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72057868915834880ll /* 0x100004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72058143793741824ll /* 0x100008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72058693549555712ll /* 0x100010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72059793061183488ll /* 0x100020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72061992084439040ll /* 0x100040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72066390130950144ll /* 0x100080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72075186223972352ll /* 0x100100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72092778410016768ll /* 0x100200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72127962782105600ll /* 0x100400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72198331526283264ll /* 0x100800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72339069014638592ll /* 0x101000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {72620543991349248ll /* 0x102000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {73183493944770560ll /* 0x104000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {74309393851613184ll /* 0x108000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {76561193665298432ll /* 0x110000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 56}, /* shli r3, r1, 56 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {81064793292668928ll /* 0x120000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 53}} /* shli r3, r2, 53 */ - }, - {90071992547409920ll /* 0x140000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 54}} /* shli r3, r2, 54 */ - }, - {108086391056891904ll /* 0x180000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 55}} /* shli r3, r2, 55 */ - }, - {144115188075855863ll /* 0x1fffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855864ll /* 0x1fffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855865ll /* 0x1fffffffffffff9 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {144115188075855867ll /* 0x1fffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855868ll /* 0x1fffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855869ll /* 0x1fffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855870ll /* 0x1fffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {144115188075855871ll /* 0x1ffffffffffffff */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {144115188075855872ll /* 0x200000000000000 */ , - {{6, 1, 57}} /* shli r2, r1, 57 */ - }, - {144115188075855873ll /* 0x200000000000001 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {144115188075855874ll /* 0x200000000000002 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {144115188075855875ll /* 0x200000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075855876ll /* 0x200000000000004 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {144115188075855877ll /* 0x200000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075855878ll /* 0x200000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {144115188075855879ll /* 0x200000000000007 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {144115188075855880ll /* 0x200000000000008 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {144115188075855881ll /* 0x200000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075855882ll /* 0x20000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {144115188075855888ll /* 0x200000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075855904ll /* 0x200000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075855936ll /* 0x200000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075856000ll /* 0x200000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075856128ll /* 0x200000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075856384ll /* 0x200000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075856896ll /* 0x200000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075857920ll /* 0x200000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075859968ll /* 0x200000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075864064ll /* 0x200000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075872256ll /* 0x200000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075888640ll /* 0x200000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075921408ll /* 0x200000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188075986944ll /* 0x200000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188076118016ll /* 0x200000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188076380160ll /* 0x200000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188076904448ll /* 0x200000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188077953024ll /* 0x200000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188080050176ll /* 0x200000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188084244480ll /* 0x200000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188092633088ll /* 0x200000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188109410304ll /* 0x200000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188142964736ll /* 0x200000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188210073600ll /* 0x200000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188344291328ll /* 0x200000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115188612726784ll /* 0x200000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115189149597696ll /* 0x200000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115190223339520ll /* 0x200000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115192370823168ll /* 0x200000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115196665790464ll /* 0x200000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115205255725056ll /* 0x200000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115222435594240ll /* 0x200000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115256795332608ll /* 0x200001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115325514809344ll /* 0x200002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115462953762816ll /* 0x200004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144115737831669760ll /* 0x200008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144116287587483648ll /* 0x200010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144117387099111424ll /* 0x200020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144119586122366976ll /* 0x200040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144123984168878080ll /* 0x200080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144132780261900288ll /* 0x200100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144150372447944704ll /* 0x200200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144185556820033536ll /* 0x200400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144255925564211200ll /* 0x200800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144396663052566528ll /* 0x201000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {144678138029277184ll /* 0x202000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {145241087982698496ll /* 0x204000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {146366987889541120ll /* 0x208000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {148618787703226368ll /* 0x210000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {153122387330596864ll /* 0x220000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 57}, /* shli r3, r1, 57 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {162129586585337856ll /* 0x240000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 54}} /* shli r3, r2, 54 */ - }, - {180143985094819840ll /* 0x280000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 55}} /* shli r3, r2, 55 */ - }, - {216172782113783808ll /* 0x300000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 56}} /* shli r3, r2, 56 */ - }, - {288230376151711735ll /* 0x3fffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711736ll /* 0x3fffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711737ll /* 0x3fffffffffffff9 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {288230376151711739ll /* 0x3fffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711740ll /* 0x3fffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711741ll /* 0x3fffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711742ll /* 0x3fffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {288230376151711743ll /* 0x3ffffffffffffff */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {288230376151711744ll /* 0x400000000000000 */ , - {{6, 1, 58}} /* shli r2, r1, 58 */ - }, - {288230376151711745ll /* 0x400000000000001 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {288230376151711746ll /* 0x400000000000002 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {288230376151711747ll /* 0x400000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711748ll /* 0x400000000000004 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {288230376151711749ll /* 0x400000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711750ll /* 0x400000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {288230376151711751ll /* 0x400000000000007 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {288230376151711752ll /* 0x400000000000008 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {288230376151711753ll /* 0x400000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711754ll /* 0x40000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {288230376151711760ll /* 0x400000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711776ll /* 0x400000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711808ll /* 0x400000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151711872ll /* 0x400000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151712000ll /* 0x400000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151712256ll /* 0x400000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151712768ll /* 0x400000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151713792ll /* 0x400000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151715840ll /* 0x400000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151719936ll /* 0x400000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151728128ll /* 0x400000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151744512ll /* 0x400000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151777280ll /* 0x400000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151842816ll /* 0x400000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376151973888ll /* 0x400000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376152236032ll /* 0x400000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376152760320ll /* 0x400000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376153808896ll /* 0x400000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376155906048ll /* 0x400000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376160100352ll /* 0x400000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376168488960ll /* 0x400000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376185266176ll /* 0x400000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376218820608ll /* 0x400000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376285929472ll /* 0x400000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376420147200ll /* 0x400000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230376688582656ll /* 0x400000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230377225453568ll /* 0x400000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230378299195392ll /* 0x400000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230380446679040ll /* 0x400000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230384741646336ll /* 0x400000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230393331580928ll /* 0x400000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230410511450112ll /* 0x400000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230444871188480ll /* 0x400001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230513590665216ll /* 0x400002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230651029618688ll /* 0x400004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288230925907525632ll /* 0x400008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288231475663339520ll /* 0x400010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288232575174967296ll /* 0x400020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288234774198222848ll /* 0x400040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288239172244733952ll /* 0x400080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288247968337756160ll /* 0x400100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288265560523800576ll /* 0x400200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288300744895889408ll /* 0x400400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288371113640067072ll /* 0x400800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288511851128422400ll /* 0x401000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {288793326105133056ll /* 0x402000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {289356276058554368ll /* 0x404000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {290482175965396992ll /* 0x408000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {292733975779082240ll /* 0x410000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {297237575406452736ll /* 0x420000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {306244774661193728ll /* 0x440000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 58}, /* shli r3, r1, 58 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {324259173170675712ll /* 0x480000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 55}} /* shli r3, r2, 55 */ - }, - {360287970189639680ll /* 0x500000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 56}} /* shli r3, r2, 56 */ - }, - {432345564227567616ll /* 0x600000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 57}} /* shli r3, r2, 57 */ - }, - {576460752303423479ll /* 0x7fffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423480ll /* 0x7fffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423481ll /* 0x7fffffffffffff9 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {576460752303423483ll /* 0x7fffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423484ll /* 0x7fffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423485ll /* 0x7fffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423486ll /* 0x7fffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {576460752303423487ll /* 0x7ffffffffffffff */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {576460752303423488ll /* 0x800000000000000 */ , - {{6, 1, 59}} /* shli r2, r1, 59 */ - }, - {576460752303423489ll /* 0x800000000000001 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {576460752303423490ll /* 0x800000000000002 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {576460752303423491ll /* 0x800000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423492ll /* 0x800000000000004 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {576460752303423493ll /* 0x800000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423494ll /* 0x800000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {576460752303423495ll /* 0x800000000000007 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {576460752303423496ll /* 0x800000000000008 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {576460752303423497ll /* 0x800000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423498ll /* 0x80000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {576460752303423504ll /* 0x800000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423520ll /* 0x800000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423552ll /* 0x800000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423616ll /* 0x800000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303423744ll /* 0x800000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303424000ll /* 0x800000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303424512ll /* 0x800000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303425536ll /* 0x800000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303427584ll /* 0x800000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303431680ll /* 0x800000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303439872ll /* 0x800000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303456256ll /* 0x800000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303489024ll /* 0x800000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303554560ll /* 0x800000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303685632ll /* 0x800000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752303947776ll /* 0x800000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752304472064ll /* 0x800000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752305520640ll /* 0x800000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752307617792ll /* 0x800000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752311812096ll /* 0x800000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752320200704ll /* 0x800000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752336977920ll /* 0x800000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752370532352ll /* 0x800000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752437641216ll /* 0x800000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752571858944ll /* 0x800000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460752840294400ll /* 0x800000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460753377165312ll /* 0x800000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460754450907136ll /* 0x800000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460756598390784ll /* 0x800000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460760893358080ll /* 0x800000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460769483292672ll /* 0x800000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460786663161856ll /* 0x800000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460821022900224ll /* 0x800001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576460889742376960ll /* 0x800002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576461027181330432ll /* 0x800004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576461302059237376ll /* 0x800008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576461851815051264ll /* 0x800010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576462951326679040ll /* 0x800020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576465150349934592ll /* 0x800040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576469548396445696ll /* 0x800080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576478344489467904ll /* 0x800100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576495936675512320ll /* 0x800200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576531121047601152ll /* 0x800400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576601489791778816ll /* 0x800800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {576742227280134144ll /* 0x801000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {577023702256844800ll /* 0x802000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {577586652210266112ll /* 0x804000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {578712552117108736ll /* 0x808000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {580964351930793984ll /* 0x810000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {585467951558164480ll /* 0x820000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {594475150812905472ll /* 0x840000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {612489549322387456ll /* 0x880000000000000 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {6, 1, 59}, /* shli r3, r1, 59 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {648518346341351424ll /* 0x900000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 56}} /* shli r3, r2, 56 */ - }, - {720575940379279360ll /* 0xa00000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 57}} /* shli r3, r2, 57 */ - }, - {864691128455135232ll /* 0xc00000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 58}} /* shli r3, r2, 58 */ - }, - {1152921504606846967ll /* 0xffffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846968ll /* 0xffffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846969ll /* 0xffffffffffffff9 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {1152921504606846971ll /* 0xffffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846972ll /* 0xffffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846973ll /* 0xffffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846974ll /* 0xffffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1152921504606846975ll /* 0xfffffffffffffff */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1152921504606846976ll /* 0x1000000000000000 */ , - {{6, 1, 60}} /* shli r2, r1, 60 */ - }, - {1152921504606846977ll /* 0x1000000000000001 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1152921504606846978ll /* 0x1000000000000002 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {1152921504606846979ll /* 0x1000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606846980ll /* 0x1000000000000004 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {1152921504606846981ll /* 0x1000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606846982ll /* 0x1000000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1152921504606846983ll /* 0x1000000000000007 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {1152921504606846984ll /* 0x1000000000000008 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {1152921504606846985ll /* 0x1000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606846986ll /* 0x100000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {1152921504606846992ll /* 0x1000000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606847008ll /* 0x1000000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606847040ll /* 0x1000000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606847104ll /* 0x1000000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606847232ll /* 0x1000000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606847488ll /* 0x1000000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606848000ll /* 0x1000000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606849024ll /* 0x1000000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606851072ll /* 0x1000000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606855168ll /* 0x1000000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606863360ll /* 0x1000000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606879744ll /* 0x1000000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606912512ll /* 0x1000000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504606978048ll /* 0x1000000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504607109120ll /* 0x1000000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504607371264ll /* 0x1000000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504607895552ll /* 0x1000000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504608944128ll /* 0x1000000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504611041280ll /* 0x1000000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504615235584ll /* 0x1000000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504623624192ll /* 0x1000000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504640401408ll /* 0x1000000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504673955840ll /* 0x1000000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504741064704ll /* 0x1000000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921504875282432ll /* 0x1000000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921505143717888ll /* 0x1000000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921505680588800ll /* 0x1000000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921506754330624ll /* 0x1000000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921508901814272ll /* 0x1000000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921513196781568ll /* 0x1000000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921521786716160ll /* 0x1000000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921538966585344ll /* 0x1000000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921573326323712ll /* 0x1000001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921642045800448ll /* 0x1000002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152921779484753920ll /* 0x1000004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152922054362660864ll /* 0x1000008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152922604118474752ll /* 0x1000010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152923703630102528ll /* 0x1000020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152925902653358080ll /* 0x1000040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152930300699869184ll /* 0x1000080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152939096792891392ll /* 0x1000100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152956688978935808ll /* 0x1000200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1152991873351024640ll /* 0x1000400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1153062242095202304ll /* 0x1000800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1153202979583557632ll /* 0x1001000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1153484454560268288ll /* 0x1002000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1154047404513689600ll /* 0x1004000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1155173304420532224ll /* 0x1008000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1157425104234217472ll /* 0x1010000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1161928703861587968ll /* 0x1020000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1170935903116328960ll /* 0x1040000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1188950301625810944ll /* 0x1080000000000000 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1224979098644774912ll /* 0x1100000000000000 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {6, 1, 60}, /* shli r3, r1, 60 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1297036692682702848ll /* 0x1200000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 57}} /* shli r3, r2, 57 */ - }, - {1441151880758558720ll /* 0x1400000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 58}} /* shli r3, r2, 58 */ - }, - {1729382256910270464ll /* 0x1800000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 59}} /* shli r3, r2, 59 */ - }, - {2305843009213693943ll /* 0x1ffffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693944ll /* 0x1ffffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693945ll /* 0x1ffffffffffffff9 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {2305843009213693947ll /* 0x1ffffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693948ll /* 0x1ffffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693949ll /* 0x1ffffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693950ll /* 0x1ffffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2305843009213693951ll /* 0x1fffffffffffffff */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2305843009213693952ll /* 0x2000000000000000 */ , - {{6, 1, 61}} /* shli r2, r1, 61 */ - }, - {2305843009213693953ll /* 0x2000000000000001 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2305843009213693954ll /* 0x2000000000000002 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {2305843009213693955ll /* 0x2000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213693956ll /* 0x2000000000000004 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {2305843009213693957ll /* 0x2000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213693958ll /* 0x2000000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2305843009213693959ll /* 0x2000000000000007 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {2305843009213693960ll /* 0x2000000000000008 */ , - {{6, 1, 61}, /* shli r2, r1, 61 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {2305843009213693961ll /* 0x2000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213693962ll /* 0x200000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {2305843009213693968ll /* 0x2000000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213693984ll /* 0x2000000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213694016ll /* 0x2000000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213694080ll /* 0x2000000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213694208ll /* 0x2000000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213694464ll /* 0x2000000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213694976ll /* 0x2000000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213696000ll /* 0x2000000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213698048ll /* 0x2000000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213702144ll /* 0x2000000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213710336ll /* 0x2000000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213726720ll /* 0x2000000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213759488ll /* 0x2000000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213825024ll /* 0x2000000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009213956096ll /* 0x2000000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009214218240ll /* 0x2000000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009214742528ll /* 0x2000000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009215791104ll /* 0x2000000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009217888256ll /* 0x2000000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009222082560ll /* 0x2000000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009230471168ll /* 0x2000000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009247248384ll /* 0x2000000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009280802816ll /* 0x2000000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009347911680ll /* 0x2000000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009482129408ll /* 0x2000000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843009750564864ll /* 0x2000000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843010287435776ll /* 0x2000000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843011361177600ll /* 0x2000000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843013508661248ll /* 0x2000000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843017803628544ll /* 0x2000000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843026393563136ll /* 0x2000000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843043573432320ll /* 0x2000000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843077933170688ll /* 0x2000001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843146652647424ll /* 0x2000002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843284091600896ll /* 0x2000004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305843558969507840ll /* 0x2000008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305844108725321728ll /* 0x2000010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305845208236949504ll /* 0x2000020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305847407260205056ll /* 0x2000040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305851805306716160ll /* 0x2000080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305860601399738368ll /* 0x2000100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305878193585782784ll /* 0x2000200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305913377957871616ll /* 0x2000400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2305983746702049280ll /* 0x2000800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2306124484190404608ll /* 0x2001000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2306405959167115264ll /* 0x2002000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2306968909120536576ll /* 0x2004000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2308094809027379200ll /* 0x2008000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2310346608841064448ll /* 0x2010000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2314850208468434944ll /* 0x2020000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2323857407723175936ll /* 0x2040000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2341871806232657920ll /* 0x2080000000000000 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2377900603251621888ll /* 0x2100000000000000 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2449958197289549824ll /* 0x2200000000000000 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {6, 1, 61}, /* shli r3, r1, 61 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2594073385365405696ll /* 0x2400000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 58}} /* shli r3, r2, 58 */ - }, - {2882303761517117440ll /* 0x2800000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 59}} /* shli r3, r2, 59 */ - }, - {3458764513820540928ll /* 0x3000000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 60}} /* shli r3, r2, 60 */ - }, - {4611686018427387895ll /* 0x3ffffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387896ll /* 0x3ffffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387897ll /* 0x3ffffffffffffff9 */ , - {{6, 1, 59}, /* shli r2, r1, 59 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {4611686018427387899ll /* 0x3ffffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387900ll /* 0x3ffffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387901ll /* 0x3ffffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387902ll /* 0x3ffffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4611686018427387903ll /* 0x3fffffffffffffff */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4611686018427387904ll /* 0x4000000000000000 */ , - {{6, 1, 62}} /* shli r2, r1, 62 */ - }, - {4611686018427387905ll /* 0x4000000000000001 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4611686018427387906ll /* 0x4000000000000002 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {3, 1, 2}} /* shl1add r3, r1, r2 */ - }, - {4611686018427387907ll /* 0x4000000000000003 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427387908ll /* 0x4000000000000004 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {4, 1, 2}} /* shl2add r3, r1, r2 */ - }, - {4611686018427387909ll /* 0x4000000000000005 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427387910ll /* 0x4000000000000006 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4611686018427387911ll /* 0x4000000000000007 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* shl3add r4, r1, r3 */ - }, - {4611686018427387912ll /* 0x4000000000000008 */ , - {{6, 1, 62}, /* shli r2, r1, 62 */ - {5, 1, 2}} /* shl3add r3, r1, r2 */ - }, - {4611686018427387913ll /* 0x4000000000000009 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427387914ll /* 0x400000000000000a */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {3, 2, 3}} /* shl1add r4, r2, r3 */ - }, - {4611686018427387920ll /* 0x4000000000000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427387936ll /* 0x4000000000000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427387968ll /* 0x4000000000000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427388032ll /* 0x4000000000000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427388160ll /* 0x4000000000000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427388416ll /* 0x4000000000000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427388928ll /* 0x4000000000000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427389952ll /* 0x4000000000000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427392000ll /* 0x4000000000001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427396096ll /* 0x4000000000002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427404288ll /* 0x4000000000004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427420672ll /* 0x4000000000008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427453440ll /* 0x4000000000010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427518976ll /* 0x4000000000020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427650048ll /* 0x4000000000040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018427912192ll /* 0x4000000000080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018428436480ll /* 0x4000000000100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018429485056ll /* 0x4000000000200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018431582208ll /* 0x4000000000400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018435776512ll /* 0x4000000000800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018444165120ll /* 0x4000000001000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018460942336ll /* 0x4000000002000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018494496768ll /* 0x4000000004000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018561605632ll /* 0x4000000008000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018695823360ll /* 0x4000000010000000 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686018964258816ll /* 0x4000000020000000 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686019501129728ll /* 0x4000000040000000 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686020574871552ll /* 0x4000000080000000 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686022722355200ll /* 0x4000000100000000 */ , - {{6, 1, 32}, /* shli r2, r1, 32 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686027017322496ll /* 0x4000000200000000 */ , - {{6, 1, 33}, /* shli r2, r1, 33 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686035607257088ll /* 0x4000000400000000 */ , - {{6, 1, 34}, /* shli r2, r1, 34 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686052787126272ll /* 0x4000000800000000 */ , - {{6, 1, 35}, /* shli r2, r1, 35 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686087146864640ll /* 0x4000001000000000 */ , - {{6, 1, 36}, /* shli r2, r1, 36 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686155866341376ll /* 0x4000002000000000 */ , - {{6, 1, 37}, /* shli r2, r1, 37 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686293305294848ll /* 0x4000004000000000 */ , - {{6, 1, 38}, /* shli r2, r1, 38 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611686568183201792ll /* 0x4000008000000000 */ , - {{6, 1, 39}, /* shli r2, r1, 39 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611687117939015680ll /* 0x4000010000000000 */ , - {{6, 1, 40}, /* shli r2, r1, 40 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611688217450643456ll /* 0x4000020000000000 */ , - {{6, 1, 41}, /* shli r2, r1, 41 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611690416473899008ll /* 0x4000040000000000 */ , - {{6, 1, 42}, /* shli r2, r1, 42 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611694814520410112ll /* 0x4000080000000000 */ , - {{6, 1, 43}, /* shli r2, r1, 43 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611703610613432320ll /* 0x4000100000000000 */ , - {{6, 1, 44}, /* shli r2, r1, 44 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611721202799476736ll /* 0x4000200000000000 */ , - {{6, 1, 45}, /* shli r2, r1, 45 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611756387171565568ll /* 0x4000400000000000 */ , - {{6, 1, 46}, /* shli r2, r1, 46 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611826755915743232ll /* 0x4000800000000000 */ , - {{6, 1, 47}, /* shli r2, r1, 47 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4611967493404098560ll /* 0x4001000000000000 */ , - {{6, 1, 48}, /* shli r2, r1, 48 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4612248968380809216ll /* 0x4002000000000000 */ , - {{6, 1, 49}, /* shli r2, r1, 49 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4612811918334230528ll /* 0x4004000000000000 */ , - {{6, 1, 50}, /* shli r2, r1, 50 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4613937818241073152ll /* 0x4008000000000000 */ , - {{6, 1, 51}, /* shli r2, r1, 51 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4616189618054758400ll /* 0x4010000000000000 */ , - {{6, 1, 52}, /* shli r2, r1, 52 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4620693217682128896ll /* 0x4020000000000000 */ , - {{6, 1, 53}, /* shli r2, r1, 53 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4629700416936869888ll /* 0x4040000000000000 */ , - {{6, 1, 54}, /* shli r2, r1, 54 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4647714815446351872ll /* 0x4080000000000000 */ , - {{6, 1, 55}, /* shli r2, r1, 55 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4683743612465315840ll /* 0x4100000000000000 */ , - {{6, 1, 56}, /* shli r2, r1, 56 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4755801206503243776ll /* 0x4200000000000000 */ , - {{6, 1, 57}, /* shli r2, r1, 57 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4899916394579099648ll /* 0x4400000000000000 */ , - {{6, 1, 58}, /* shli r2, r1, 58 */ - {6, 1, 62}, /* shli r3, r1, 62 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {5188146770730811392ll /* 0x4800000000000000 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 2, 59}} /* shli r3, r2, 59 */ - }, - {5764607523034234880ll /* 0x5000000000000000 */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 2, 60}} /* shli r3, r2, 60 */ - }, - {6917529027641081855ll /* 0x5fffffffffffffff */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 61}, /* shli r3, r2, 61 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {6917529027641081856ll /* 0x6000000000000000 */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 2, 61}} /* shli r3, r2, 61 */ - }, - {9223372036854775799ll /* 0x7ffffffffffffff7 */ , - {{5, 1, 1}, /* shl3add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775800ll /* 0x7ffffffffffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775801ll /* 0x7ffffffffffffff9 */ , - {{6, 1, 60}, /* shli r2, r1, 60 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* shl3add r4, r3, r1 */ - }, - {9223372036854775803ll /* 0x7ffffffffffffffb */ , - {{4, 1, 1}, /* shl2add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775804ll /* 0x7ffffffffffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775805ll /* 0x7ffffffffffffffd */ , - {{3, 1, 1}, /* shl1add r2, r1, r1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775806ll /* 0x7ffffffffffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 63}, /* shli r3, r1, 63 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {9223372036854775807ll /* 0x7fffffffffffffff */ , - {{6, 1, 63}, /* shli r2, r1, 63 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - } -}; - -const int tilegx_multiply_insn_seq_table_size = - (int) (sizeof tilegx_multiply_insn_seq_table - / sizeof tilegx_multiply_insn_seq_table[0]); diff --git a/gcc/config/tilegx/predicates.md b/gcc/config/tilegx/predicates.md deleted file mode 100644 index f21ddab..0000000 --- a/gcc/config/tilegx/predicates.md +++ /dev/null @@ -1,290 +0,0 @@ -;; Predicate definitions for Tilera TILE-Gx. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -;; Return true if OP is the zero constant for MODE. -(define_predicate "const_zero_operand" - (and (match_code "const_int,const_double,const_vector") - (match_test "op == CONST0_RTX (mode)"))) - -;; Returns true if OP is either the constant zero or a register. -(define_predicate "reg_or_0_operand" - (and (ior (match_operand 0 "register_operand") - (match_operand 0 "const_zero_operand")) - (match_test "GET_MODE_SIZE (mode) <= UNITS_PER_WORD"))) - -; Return 1 if OP is a valid Pmode pointer. -(define_predicate "pointer_operand" - (and (match_operand 0 "address_operand") - (ior (match_operand 0 "pmode_register_operand") - (match_operand 0 "const_zero_operand")))) - -; Return 1 if OP is a network register identifier. -(define_predicate "netreg_operand" - (and (match_code "const_int") - (match_test "IN_RANGE (INTVAL (op), 0, 5)"))) - -; Return 1 if OP is an unsigned 6-bit constant. -(define_predicate "u6bit_cint_operand" - (and (match_code "const_int") - (match_test "INTVAL (op) == (INTVAL (op) & 0x3F)"))) - -;; Return 1 if OP is an unsigned 16-bit constant. -(define_predicate "u16bit_cint_operand" - (and (match_code "const_int") - (match_test "(unsigned HOST_WIDE_INT)INTVAL (op) < (1U << 16)"))) - -;; Return 1 if OP is a signed 8-bit constant. -(define_predicate "s8bit_cint_operand" - (and (match_code "const_int") - (match_test "satisfies_constraint_I (op)"))) - -;; Return 1 if OP is a signed 16-bit constant. -(define_predicate "s16bit_cint_operand" - (and (match_code "const_int") - (match_test "satisfies_constraint_J (op)"))) - -;; Return 1 if OP is an unsigned 14-bit constant. -(define_predicate "u14bit_cint_operand" - (and (match_code "const_int") - (match_test "(unsigned HOST_WIDE_INT)INTVAL (op) < (1U << 14)"))) - -;; Return 1 if OP is a constant or any register. -(define_predicate "reg_or_cint_operand" - (ior (match_operand 0 "register_operand") - (match_operand 0 "const_int_operand"))) - -;; Returns 1 if OP is a "last" unspec wrapper for a symbol, got, or -;; tls reference. -(define_predicate "const_last_symbolic_operand" - (and (match_code "const") - (match_test "GET_CODE (XEXP (op,0)) == UNSPEC") - (ior (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_LAST") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW2_LAST") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW2_LAST_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_LAST_GOT") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_GOT") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_TLS_GD") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_TLS_IE") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_TLS_LE") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_LAST_PLT_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW2_LAST_PLT_PCREL")))) - -;; Returns 1 if OP is an unspec wrapper for a symbol, got, or tls -;; reference. -(define_predicate "const_symbolic_operand" - (and (match_code "const") - (match_test "GET_CODE (XEXP (op,0)) == UNSPEC") - (ior (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW2") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW3") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_GOT") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_TLS_GD") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_TLS_IE") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_TLS_LE") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW0_PLT_PCREL") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_HW1_PLT_PCREL")))) - -;; Return 1 if OP is a 8-element vector constant with identical signed -;; 8-bit elements or any register. -(define_predicate "reg_or_v8s8bit_operand" - (ior (match_operand 0 "register_operand") - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 8 - && (satisfies_constraint_I - (unwrap_const_vec_duplicate (op)))")))) - -;; Return 1 if OP is a 4-element vector constant with identical signed -;; 8-bit elements or any register. -(define_predicate "reg_or_v4s8bit_operand" - (ior (match_operand 0 "register_operand") - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 4 - && (satisfies_constraint_I - (unwrap_const_vec_duplicate (op)))")))) - -;; Return 1 if the operand is a valid second operand to an add insn. -(define_predicate "add_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_J (op)") - (ior (match_operand 0 "register_operand") - (match_operand 0 "const_last_symbolic_operand")))) - -;; Return 1 if the operand is a register or signed 8-bit immediate operand. -(define_predicate "reg_or_s8bit_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_I (op)") - (match_operand 0 "register_operand"))) - -;; Return 1 if the operand is a register or unsigned 5-bit immediate operand. -(define_predicate "reg_or_u5bit_operand" - (if_then_else (match_code "const_int") - (match_test "INTVAL (op) == (INTVAL (op) & 0x1F)") - (match_operand 0 "register_operand"))) - -;; Return 1 if the operand is a register or unsigned 6-bit immediate operand. -(define_predicate "reg_or_u6bit_operand" - (if_then_else (match_code "const_int") - (match_test "INTVAL (op) == (INTVAL (op) & 0x3F)") - (match_operand 0 "register_operand"))) - -;; Return 1 for an operand suitable for ANDing with a register. -(define_predicate "and_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_I (op) || satisfies_constraint_M (op)") - (match_operand 0 "register_operand"))) - -; Return 1 if the operand is 2, 4 or 8. -(define_predicate "cint_248_operand" - (and (match_code "const_int") - (match_test - "INTVAL (op) == 2 || INTVAL (op) == 4 || INTVAL (op) == 8"))) - -;; Return true if OP is a TLS symbolic operand. -(define_predicate "tls_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) != TLS_MODEL_NONE"))) - -;; Return true if OP is a symbolic operand for the TLS Global Dynamic model. -(define_predicate "tls_gd_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_GLOBAL_DYNAMIC"))) - -;; Return true if OP is a symbolic operand for the TLS Local Dynamic model. -(define_predicate "tls_ld_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_DYNAMIC"))) - -;; Return true if OP is a symbolic operand that can be used for the -;; TLS Initial Exec model. -(define_predicate "tls_ie_symbolic_operand" - (and (match_code "symbol_ref") - (ior (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_INITIAL_EXEC") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC")))) - -;; Return true if OP is a symbolic operand for the TLS Local Exec model. -(define_predicate "tls_le_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC"))) - -;; Returns true if OP is any general operand except for an -;; auto-incrementing address operand. -(define_predicate "nonautoinc_operand" - (and (match_operand 0 "general_operand") - (not (ior (match_code "pre_dec") (match_code "pre_inc") - (match_code "post_dec") (match_code "post_inc") - (match_code "post_modify") (match_code "pre_modify"))))) - -;; Returns true if OP is a non-auto-incrementing memory operand. -(define_predicate "nonautoincmem_operand" - (match_operand 0 "memory_operand") -{ - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); -}) - -;; Returns true if OP is a non-auto-incrementing memory, general -;; operand. -(define_predicate "nonautoincmem_general_operand" - (match_operand 0 "general_operand") -{ - if (memory_operand (op, mode)) - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); - else - return true; -}) - -;; Returns true if OP is a non-auto-incrementing memory, non-immediate -;; operand. -(define_predicate "nonautoincmem_nonimmediate_operand" - (match_operand 0 "nonimmediate_operand") -{ - if (memory_operand (op, mode)) - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); - else - return true; -}) - -;; Return true if OP is a valid operand for the source of a move insn. -(define_predicate "move_operand" - (match_operand 0 "general_operand") -{ - /* If both modes are non-void they must be the same. */ - if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op)) - return false; - - switch (GET_CODE (op)) - { - case CONST_INT: - return (satisfies_constraint_J (op) - || satisfies_constraint_K (op) - || (mode == DImode && - (satisfies_constraint_N (op) - || satisfies_constraint_P (op)))); - - case MEM: - return memory_address_p (mode, XEXP (op, 0)); - - case CONST: - return const_last_symbolic_operand (op, mode); - - default: - return register_operand (op, mode); - } -}) - -;; Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref, -;; possibly with an offset. -(define_predicate "symbolic_operand" - (ior (match_code "symbol_ref,label_ref") - (and (match_code "const") - (match_test "GET_CODE (XEXP (op,0)) == PLUS - && (GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF - || GET_CODE (XEXP (XEXP (op,0), 0)) == LABEL_REF) - && CONST_INT_P (XEXP (XEXP (op,0), 1))")))) - -;; Return 1 for an unsigned 16 bit or a const symbolc operand. -(define_predicate "u16bit_or_const_symbolic_operand" - (ior (match_operand 0 "u16bit_cint_operand") - (match_operand 0 "const_symbolic_operand"))) - -;; Return true if OP is an address suitable for a call insn. -;; Call insn on TILE can take a PC-relative constant address -;; or any regular memory address. -(define_predicate "call_address_operand" - (ior (match_operand 0 "symbolic_operand") - (match_test "memory_address_p (Pmode, op)"))) - -;; Return true if OP is an operand suitable for a call insn. -(define_predicate "call_operand" - (and (match_code "mem") - (match_test "call_address_operand (XEXP (op, 0), mode)"))) - -;; Return 1 if OP is a signed comparison operation. -;; We can use these directly in compares against zero. -(define_predicate "signed_comparison_operator" - (match_code "eq,ne,le,lt,ge,gt")) - -;; Return 1 if OP is a equal or not-equal operation. -(define_predicate "eqne_operator" - (match_code "eq,ne")) diff --git a/gcc/config/tilegx/sync.md b/gcc/config/tilegx/sync.md deleted file mode 100644 index 74be4c9..0000000 --- a/gcc/config/tilegx/sync.md +++ /dev/null @@ -1,227 +0,0 @@ -;; GCC machine description for Tilera TILE-Gx synchronization -;; instructions. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_code_iterator fetchop [plus ior and]) -(define_code_attr fetchop_name [(plus "add") (ior "or") (and "and")]) - -(define_insn "mtspr_cmpexch" - [(set (reg:I48MODE TILEGX_CMPEXCH_REG) - (unspec_volatile:I48MODE - [(match_operand:I48MODE 0 "reg_or_0_operand" "rO")] - UNSPEC_SPR_MOVE))] - "" - "mtspr\tCMPEXCH_VALUE, %r0" - [(set_attr "type" "X1")]) - - -(define_expand "atomic_compare_and_swap" - [(match_operand:DI 0 "register_operand" "") ;; bool output - (match_operand:I48MODE 1 "register_operand" "") ;; val output - (match_operand:I48MODE 2 "nonautoincmem_operand" "") ;; memory - (match_operand:I48MODE 3 "reg_or_0_operand" "") ;; expected value - (match_operand:I48MODE 4 "reg_or_0_operand" "") ;; desired value - (match_operand:SI 5 "const_int_operand" "") ;; is_weak - (match_operand:SI 6 "const_int_operand" "") ;; mod_s - (match_operand:SI 7 "const_int_operand" "")] ;; mod_f - "" -{ - enum memmodel mod_s = (enum memmodel) INTVAL (operands[6]); - - if (operands[3] != const0_rtx) - operands[3] = force_reg (mode, operands[3]); - if (operands[4] != const0_rtx) - operands[4] = force_reg (mode, operands[4]); - - tilegx_pre_atomic_barrier (mod_s); - emit_insn (gen_mtspr_cmpexch (operands[3])); - emit_insn (gen_atomic_compare_and_swap_bare (operands[1], operands[2], - operands[4])); - tilegx_post_atomic_barrier (mod_s); - emit_insn (gen_insn_cmpeq_di (operands[0], operands[1], operands[3])); - DONE; -}) - - -(define_insn "atomic_compare_and_swap_bare" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (match_operand:I48MODE 1 "nonautoincmem_operand" "+U")) - (set (match_dup 1) - (unspec_volatile:I48MODE - [(match_dup 1) - (reg:I48MODE TILEGX_CMPEXCH_REG) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")] - UNSPEC_CMPXCHG))] - "" - "cmpexch\t%0, %1, %r2" - [(set_attr "type" "X1_remote")]) - - -(define_expand "atomic_exchange" - [(match_operand:I48MODE 0 "register_operand" "") ;; result - (match_operand:I48MODE 1 "nonautoincmem_operand" "") ;; memory - (match_operand:I48MODE 2 "reg_or_0_operand" "") ;; input - (match_operand:SI 3 "const_int_operand" "")] ;; model - "" -{ - enum memmodel model = (enum memmodel) INTVAL (operands[3]); - - tilegx_pre_atomic_barrier (model); - emit_insn (gen_atomic_exchange_bare (operands[0], operands[1], - operands[2])); - tilegx_post_atomic_barrier (model); - DONE; -}) - - -(define_insn "atomic_exchange_bare" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (match_operand:I48MODE 1 "nonautoincmem_operand" "+U")) - (set (match_dup 1) - (unspec_volatile:I48MODE - [(match_operand:I48MODE 2 "reg_or_0_operand" "rO")] - UNSPEC_XCHG))] - "" - "exch\t%0, %1, %r2" - [(set_attr "type" "X1_remote")]) - - -(define_expand "atomic_fetch_" - [(match_operand:I48MODE 0 "register_operand" "") ;; result - (match_operand:I48MODE 1 "nonautoincmem_operand" "") ;; memory - (unspec_volatile:I48MODE - [(fetchop:I48MODE - (match_dup 1) - (match_operand:I48MODE 2 "reg_or_0_operand" ""))] ;; value - UNSPEC_ATOMIC) - (match_operand:SI 3 "const_int_operand" "")] ;; model - "" -{ - enum memmodel model = (enum memmodel) INTVAL (operands[3]); - - tilegx_pre_atomic_barrier (model); - emit_insn (gen_atomic_fetch__bare (operands[0], - operands[1], - operands[2])); - tilegx_post_atomic_barrier (model); - DONE; -}) - - -(define_insn "atomic_fetch__bare" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (match_operand:I48MODE 1 "nonautoincmem_operand" "+U")) - (set (match_dup 1) - (unspec_volatile:I48MODE - [(fetchop:I48MODE - (match_dup 1) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO"))] - UNSPEC_ATOMIC))] - "" - "fetch\t%0, %1, %r2" - [(set_attr "type" "X1_remote")]) - - -(define_expand "atomic_fetch_sub" - [(match_operand:I48MODE 0 "register_operand" "") ;; result - (match_operand:I48MODE 1 "nonautoincmem_operand" "") ;; memory - (unspec_volatile:I48MODE - [(minus:I48MODE - (match_dup 1) - (match_operand:I48MODE 2 "reg_or_0_operand" ""))] ;; value - UNSPEC_ATOMIC) - (match_operand:SI 3 "const_int_operand" "")] ;; model - "" -{ - rtx addend; - enum memmodel model = (enum memmodel) INTVAL (operands[3]); - - if (operands[2] != const0_rtx) - { - addend = gen_reg_rtx (mode); - emit_move_insn (addend, - gen_rtx_MINUS (mode, const0_rtx, operands[2])); - } - else - addend = operands[2]; - - tilegx_pre_atomic_barrier (model); - emit_insn (gen_atomic_fetch_add_bare (operands[0], - operands[1], - addend)); - tilegx_post_atomic_barrier (model); - DONE; -}) - - -(define_expand "atomic_test_and_set" - [(match_operand:QI 0 "register_operand" "") ;; bool output - (match_operand:QI 1 "nonautoincmem_operand" "+U") ;; memory - (match_operand:SI 2 "const_int_operand" "")] ;; model - "" -{ - rtx addr, aligned_addr, aligned_mem, offset, word, shmt, tmp; - rtx result = operands[0]; - rtx mem = operands[1]; - enum memmodel model = (enum memmodel) INTVAL (operands[2]); - - addr = force_reg (Pmode, XEXP (mem, 0)); - - aligned_addr = gen_reg_rtx (Pmode); - emit_move_insn (aligned_addr, gen_rtx_AND (Pmode, addr, GEN_INT (-8))); - - aligned_mem = change_address (mem, DImode, aligned_addr); - set_mem_alias_set (aligned_mem, 0); - - tmp = gen_reg_rtx (Pmode); - if (BYTES_BIG_ENDIAN) - { - emit_move_insn (gen_lowpart (DImode, tmp), - gen_rtx_NOT (DImode, gen_lowpart (DImode, addr))); - } - else - { - tmp = addr; - } - - offset = gen_reg_rtx (DImode); - emit_move_insn (offset, gen_rtx_AND (DImode, gen_lowpart (DImode, tmp), - GEN_INT (7))); - - tmp = gen_reg_rtx (DImode); - emit_move_insn (tmp, GEN_INT (1)); - - shmt = gen_reg_rtx (DImode); - emit_move_insn (shmt, gen_rtx_ASHIFT (DImode, offset, GEN_INT (3))); - - word = gen_reg_rtx (DImode); - emit_move_insn (word, gen_rtx_ASHIFT (DImode, tmp, - gen_lowpart (SImode, shmt))); - - tmp = gen_reg_rtx (DImode); - tilegx_pre_atomic_barrier (model); - emit_insn (gen_atomic_fetch_or_baredi (tmp, aligned_mem, word)); - tilegx_post_atomic_barrier (model); - - emit_move_insn (gen_lowpart (DImode, result), - gen_rtx_LSHIFTRT (DImode, tmp, - gen_lowpart (SImode, shmt))); - DONE; -}) diff --git a/gcc/config/tilegx/t-tilegx b/gcc/config/tilegx/t-tilegx deleted file mode 100644 index f357194..0000000 --- a/gcc/config/tilegx/t-tilegx +++ /dev/null @@ -1,21 +0,0 @@ -MULTILIB_OPTIONS = m64/m32 -MULTILIB_DIRNAMES = 64 32 -MULTILIB_OSDIRNAMES = ../lib ../lib32 - -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib - -tilegx-c.o: $(srcdir)/config/tilegx/tilegx-c.cc \ - $(CONFIG_H) $(SYSTEM_H) coretypes.h $(MACHMODE_H) \ - $(TM_H) $(TM_P_H) $(CPPLIB_H) $(TREE_H) $(C_COMMON_H) - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< - -$(srcdir)/config/tilegx/mul-tables.cc: \ - $(srcdir)/config/tilepro/gen-mul-tables.cc - $(CXX_FOR_BUILD) $(BUILD_CPPFLAGS) -O2 -o gen-mul-tables $<; - ./gen-mul-tables > $@ - -mul-tables.o: $(srcdir)/config/tilegx/mul-tables.cc \ - $(CONFIG_H) $(SYSTEM_H) coretypes.h $(EXPR_H) $(OPTABS_H) \ - $(srcdir)/config/tilegx/tilegx-multiply.h - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< diff --git a/gcc/config/tilegx/tilegx-builtins.h b/gcc/config/tilegx/tilegx-builtins.h deleted file mode 100644 index 22fdf84..0000000 --- a/gcc/config/tilegx/tilegx-builtins.h +++ /dev/null @@ -1,325 +0,0 @@ -/* Enum for builtin intrinsics for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC_TILEGX_BUILTINS_H -#define GCC_TILEGX_BUILTINS_H - -enum tilegx_builtin -{ - TILEGX_INSN_ADD, - TILEGX_INSN_ADDX, - TILEGX_INSN_ADDXSC, - TILEGX_INSN_AND, - TILEGX_INSN_BFEXTS, - TILEGX_INSN_BFEXTU, - TILEGX_INSN_BFINS, - TILEGX_INSN_CLZ, - TILEGX_INSN_CMOVEQZ, - TILEGX_INSN_CMOVNEZ, - TILEGX_INSN_CMPEQ, - TILEGX_INSN_CMPEXCH, - TILEGX_INSN_CMPEXCH4, - TILEGX_INSN_CMPLES, - TILEGX_INSN_CMPLEU, - TILEGX_INSN_CMPLTS, - TILEGX_INSN_CMPLTU, - TILEGX_INSN_CMPNE, - TILEGX_INSN_CMUL, - TILEGX_INSN_CMULA, - TILEGX_INSN_CMULAF, - TILEGX_INSN_CMULF, - TILEGX_INSN_CMULFR, - TILEGX_INSN_CMULH, - TILEGX_INSN_CMULHR, - TILEGX_INSN_CRC32_32, - TILEGX_INSN_CRC32_8, - TILEGX_INSN_CTZ, - TILEGX_INSN_DBLALIGN, - TILEGX_INSN_DBLALIGN2, - TILEGX_INSN_DBLALIGN4, - TILEGX_INSN_DBLALIGN6, - TILEGX_INSN_DRAIN, - TILEGX_INSN_DTLBPR, - TILEGX_INSN_EXCH, - TILEGX_INSN_EXCH4, - TILEGX_INSN_FDOUBLE_ADD_FLAGS, - TILEGX_INSN_FDOUBLE_ADDSUB, - TILEGX_INSN_FDOUBLE_MUL_FLAGS, - TILEGX_INSN_FDOUBLE_PACK1, - TILEGX_INSN_FDOUBLE_PACK2, - TILEGX_INSN_FDOUBLE_SUB_FLAGS, - TILEGX_INSN_FDOUBLE_UNPACK_MAX, - TILEGX_INSN_FDOUBLE_UNPACK_MIN, - TILEGX_INSN_FETCHADD, - TILEGX_INSN_FETCHADD4, - TILEGX_INSN_FETCHADDGEZ, - TILEGX_INSN_FETCHADDGEZ4, - TILEGX_INSN_FETCHAND, - TILEGX_INSN_FETCHAND4, - TILEGX_INSN_FETCHOR, - TILEGX_INSN_FETCHOR4, - TILEGX_INSN_FINV, - TILEGX_INSN_FLUSH, - TILEGX_INSN_FLUSHWB, - TILEGX_INSN_FNOP, - TILEGX_INSN_FSINGLE_ADD1, - TILEGX_INSN_FSINGLE_ADDSUB2, - TILEGX_INSN_FSINGLE_MUL1, - TILEGX_INSN_FSINGLE_MUL2, - TILEGX_INSN_FSINGLE_PACK1, - TILEGX_INSN_FSINGLE_PACK2, - TILEGX_INSN_FSINGLE_SUB1, - TILEGX_INSN_ICOH, - TILEGX_INSN_ILL, - TILEGX_INSN_INFO, - TILEGX_INSN_INFOL, - TILEGX_INSN_INV, - TILEGX_INSN_LD, - TILEGX_INSN_LD1S, - TILEGX_INSN_LD1U, - TILEGX_INSN_LD2S, - TILEGX_INSN_LD2U, - TILEGX_INSN_LD4S, - TILEGX_INSN_LD4U, - TILEGX_INSN_LDNA, - TILEGX_INSN_LDNT, - TILEGX_INSN_LDNT1S, - TILEGX_INSN_LDNT1U, - TILEGX_INSN_LDNT2S, - TILEGX_INSN_LDNT2U, - TILEGX_INSN_LDNT4S, - TILEGX_INSN_LDNT4U, - TILEGX_INSN_LD_L2, - TILEGX_INSN_LD1S_L2, - TILEGX_INSN_LD1U_L2, - TILEGX_INSN_LD2S_L2, - TILEGX_INSN_LD2U_L2, - TILEGX_INSN_LD4S_L2, - TILEGX_INSN_LD4U_L2, - TILEGX_INSN_LDNA_L2, - TILEGX_INSN_LDNT_L2, - TILEGX_INSN_LDNT1S_L2, - TILEGX_INSN_LDNT1U_L2, - TILEGX_INSN_LDNT2S_L2, - TILEGX_INSN_LDNT2U_L2, - TILEGX_INSN_LDNT4S_L2, - TILEGX_INSN_LDNT4U_L2, - TILEGX_INSN_LD_MISS, - TILEGX_INSN_LD1S_MISS, - TILEGX_INSN_LD1U_MISS, - TILEGX_INSN_LD2S_MISS, - TILEGX_INSN_LD2U_MISS, - TILEGX_INSN_LD4S_MISS, - TILEGX_INSN_LD4U_MISS, - TILEGX_INSN_LDNA_MISS, - TILEGX_INSN_LDNT_MISS, - TILEGX_INSN_LDNT1S_MISS, - TILEGX_INSN_LDNT1U_MISS, - TILEGX_INSN_LDNT2S_MISS, - TILEGX_INSN_LDNT2U_MISS, - TILEGX_INSN_LDNT4S_MISS, - TILEGX_INSN_LDNT4U_MISS, - TILEGX_INSN_LNK, - TILEGX_INSN_MF, - TILEGX_INSN_MFSPR, - TILEGX_INSN_MM, - TILEGX_INSN_MNZ, - TILEGX_INSN_MOVE, - TILEGX_INSN_MTSPR, - TILEGX_INSN_MUL_HS_HS, - TILEGX_INSN_MUL_HS_HU, - TILEGX_INSN_MUL_HS_LS, - TILEGX_INSN_MUL_HS_LU, - TILEGX_INSN_MUL_HU_HU, - TILEGX_INSN_MUL_HU_LS, - TILEGX_INSN_MUL_HU_LU, - TILEGX_INSN_MUL_LS_LS, - TILEGX_INSN_MUL_LS_LU, - TILEGX_INSN_MUL_LU_LU, - TILEGX_INSN_MULA_HS_HS, - TILEGX_INSN_MULA_HS_HU, - TILEGX_INSN_MULA_HS_LS, - TILEGX_INSN_MULA_HS_LU, - TILEGX_INSN_MULA_HU_HU, - TILEGX_INSN_MULA_HU_LS, - TILEGX_INSN_MULA_HU_LU, - TILEGX_INSN_MULA_LS_LS, - TILEGX_INSN_MULA_LS_LU, - TILEGX_INSN_MULA_LU_LU, - TILEGX_INSN_MULAX, - TILEGX_INSN_MULX, - TILEGX_INSN_MZ, - TILEGX_INSN_NAP, - TILEGX_INSN_NOP, - TILEGX_INSN_NOR, - TILEGX_INSN_OR, - TILEGX_INSN_PCNT, - TILEGX_INSN_PREFETCH_L1, - TILEGX_INSN_PREFETCH_L1_FAULT, - TILEGX_INSN_PREFETCH_L2, - TILEGX_INSN_PREFETCH_L2_FAULT, - TILEGX_INSN_PREFETCH_L3, - TILEGX_INSN_PREFETCH_L3_FAULT, - TILEGX_INSN_REVBITS, - TILEGX_INSN_REVBYTES, - TILEGX_INSN_ROTL, - TILEGX_INSN_SHL, - TILEGX_INSN_SHL16INSLI, - TILEGX_INSN_SHL1ADD, - TILEGX_INSN_SHL1ADDX, - TILEGX_INSN_SHL2ADD, - TILEGX_INSN_SHL2ADDX, - TILEGX_INSN_SHL3ADD, - TILEGX_INSN_SHL3ADDX, - TILEGX_INSN_SHLX, - TILEGX_INSN_SHRS, - TILEGX_INSN_SHRU, - TILEGX_INSN_SHRUX, - TILEGX_INSN_SHUFFLEBYTES, - TILEGX_INSN_SHUFFLEBYTES1, - TILEGX_INSN_ST, - TILEGX_INSN_ST1, - TILEGX_INSN_ST2, - TILEGX_INSN_ST4, - TILEGX_INSN_STNT, - TILEGX_INSN_STNT1, - TILEGX_INSN_STNT2, - TILEGX_INSN_STNT4, - TILEGX_INSN_SUB, - TILEGX_INSN_SUBX, - TILEGX_INSN_SUBXSC, - TILEGX_INSN_TBLIDXB0, - TILEGX_INSN_TBLIDXB1, - TILEGX_INSN_TBLIDXB2, - TILEGX_INSN_TBLIDXB3, - TILEGX_INSN_V1ADD, - TILEGX_INSN_V1ADDI, - TILEGX_INSN_V1ADDUC, - TILEGX_INSN_V1ADIFFU, - TILEGX_INSN_V1AVGU, - TILEGX_INSN_V1CMPEQ, - TILEGX_INSN_V1CMPEQI, - TILEGX_INSN_V1CMPLES, - TILEGX_INSN_V1CMPLEU, - TILEGX_INSN_V1CMPLTS, - TILEGX_INSN_V1CMPLTSI, - TILEGX_INSN_V1CMPLTU, - TILEGX_INSN_V1CMPLTUI, - TILEGX_INSN_V1CMPNE, - TILEGX_INSN_V1DDOTPU, - TILEGX_INSN_V1DDOTPUA, - TILEGX_INSN_V1DDOTPUS, - TILEGX_INSN_V1DDOTPUSA, - TILEGX_INSN_V1DOTP, - TILEGX_INSN_V1DOTPA, - TILEGX_INSN_V1DOTPU, - TILEGX_INSN_V1DOTPUA, - TILEGX_INSN_V1DOTPUS, - TILEGX_INSN_V1DOTPUSA, - TILEGX_INSN_V1INT_H, - TILEGX_INSN_V1INT_L, - TILEGX_INSN_V1MAXU, - TILEGX_INSN_V1MAXUI, - TILEGX_INSN_V1MINU, - TILEGX_INSN_V1MINUI, - TILEGX_INSN_V1MNZ, - TILEGX_INSN_V1MULTU, - TILEGX_INSN_V1MULU, - TILEGX_INSN_V1MULUS, - TILEGX_INSN_V1MZ, - TILEGX_INSN_V1SADAU, - TILEGX_INSN_V1SADU, - TILEGX_INSN_V1SHL, - TILEGX_INSN_V1SHLI, - TILEGX_INSN_V1SHRS, - TILEGX_INSN_V1SHRSI, - TILEGX_INSN_V1SHRU, - TILEGX_INSN_V1SHRUI, - TILEGX_INSN_V1SUB, - TILEGX_INSN_V1SUBUC, - TILEGX_INSN_V2ADD, - TILEGX_INSN_V2ADDI, - TILEGX_INSN_V2ADDSC, - TILEGX_INSN_V2ADIFFS, - TILEGX_INSN_V2AVGS, - TILEGX_INSN_V2CMPEQ, - TILEGX_INSN_V2CMPEQI, - TILEGX_INSN_V2CMPLES, - TILEGX_INSN_V2CMPLEU, - TILEGX_INSN_V2CMPLTS, - TILEGX_INSN_V2CMPLTSI, - TILEGX_INSN_V2CMPLTU, - TILEGX_INSN_V2CMPLTUI, - TILEGX_INSN_V2CMPNE, - TILEGX_INSN_V2DOTP, - TILEGX_INSN_V2DOTPA, - TILEGX_INSN_V2INT_H, - TILEGX_INSN_V2INT_L, - TILEGX_INSN_V2MAXS, - TILEGX_INSN_V2MAXSI, - TILEGX_INSN_V2MINS, - TILEGX_INSN_V2MINSI, - TILEGX_INSN_V2MNZ, - TILEGX_INSN_V2MULFSC, - TILEGX_INSN_V2MULS, - TILEGX_INSN_V2MULTS, - TILEGX_INSN_V2MZ, - TILEGX_INSN_V2PACKH, - TILEGX_INSN_V2PACKL, - TILEGX_INSN_V2PACKUC, - TILEGX_INSN_V2SADAS, - TILEGX_INSN_V2SADAU, - TILEGX_INSN_V2SADS, - TILEGX_INSN_V2SADU, - TILEGX_INSN_V2SHL, - TILEGX_INSN_V2SHLI, - TILEGX_INSN_V2SHLSC, - TILEGX_INSN_V2SHRS, - TILEGX_INSN_V2SHRSI, - TILEGX_INSN_V2SHRU, - TILEGX_INSN_V2SHRUI, - TILEGX_INSN_V2SUB, - TILEGX_INSN_V2SUBSC, - TILEGX_INSN_V4ADD, - TILEGX_INSN_V4ADDSC, - TILEGX_INSN_V4INT_H, - TILEGX_INSN_V4INT_L, - TILEGX_INSN_V4PACKSC, - TILEGX_INSN_V4SHL, - TILEGX_INSN_V4SHLSC, - TILEGX_INSN_V4SHRS, - TILEGX_INSN_V4SHRU, - TILEGX_INSN_V4SUB, - TILEGX_INSN_V4SUBSC, - TILEGX_INSN_WH64, - TILEGX_INSN_XOR, - TILEGX_NETWORK_BARRIER, - TILEGX_IDN0_RECEIVE, - TILEGX_IDN1_RECEIVE, - TILEGX_IDN_SEND, - TILEGX_UDN0_RECEIVE, - TILEGX_UDN1_RECEIVE, - TILEGX_UDN2_RECEIVE, - TILEGX_UDN3_RECEIVE, - TILEGX_UDN_SEND, - TILEGX_BUILTIN_max -}; - -#endif /* !GCC_TILEGX_BUILTINS_H */ diff --git a/gcc/config/tilegx/tilegx-c.cc b/gcc/config/tilegx/tilegx-c.cc deleted file mode 100644 index 6ef6808..0000000 --- a/gcc/config/tilegx/tilegx-c.cc +++ /dev/null @@ -1,55 +0,0 @@ -/* Definitions of C specific functions for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "c-family/c-common.h" - -/* copy defines in c-cppbuiltin.cc */ -# define builtin_define(TXT) cpp_define (pfile, TXT) -# define builtin_assert(TXT) cpp_assert (pfile, TXT) - - -/* Implement TARGET_CPU_CPP_BUILTINS. */ -void -tilegx_cpu_cpp_builtins (struct cpp_reader *pfile) -{ - builtin_define ("__tile__"); - builtin_define ("__tilegx__"); - builtin_define ("__tile_chip__=10"); - builtin_define ("__tile_chip_rev__=0"); - builtin_assert ("cpu=tilegx"); - builtin_assert ("machine=tilegx"); - - if (TARGET_32BIT) - builtin_define ("__tilegx32__"); - - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); - - TILEGX_CPU_CPP_ENDIAN_BUILTINS (); - GNU_USER_TARGET_OS_CPP_BUILTINS (); -} - - diff --git a/gcc/config/tilegx/tilegx-generic.md b/gcc/config/tilegx/tilegx-generic.md deleted file mode 100644 index debfe9d..0000000 --- a/gcc/config/tilegx/tilegx-generic.md +++ /dev/null @@ -1,115 +0,0 @@ -;; Scheduling description for Tilera TILE-Gx chip. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_automaton "tile") - -; Make the scheduling automaton an ndfa. -(automata_option "ndfa") - -; Name the three pipes. -(define_cpu_unit "X0" "tile") -(define_cpu_unit "X1" "tile") -(define_cpu_unit "Y0" "tile") -(define_cpu_unit "Y1" "tile") -(define_cpu_unit "Y2" "tile") - -(define_insn_reservation "X0" 1 - (eq_attr "type" "X0") - "X0") - -(define_insn_reservation "X0_2cycle" 2 - (eq_attr "type" "X0_2cycle") - "X0,nothing") - -(define_insn_reservation "X1" 1 - (eq_attr "type" "X1,X1_branch") - "X1") - -(define_insn_reservation "X1_2cycle" 2 - (eq_attr "type" "X1_2cycle") - "X1,nothing") - -(define_insn_reservation "X1_L2" 11 - (eq_attr "type" "X1_L2") - "X1") - -(define_insn_reservation "X1_remote" 50 - (eq_attr "type" "X1_remote") - "X1") - -(define_insn_reservation "X1_miss" 80 - (eq_attr "type" "X1_miss") - "X1") - -(define_insn_reservation "X01" 1 - (eq_attr "type" "X01") - "X0|X1") - -(define_insn_reservation "Y0" 1 - (eq_attr "type" "Y0") - "Y0|X0") - -(define_insn_reservation "Y0_2cycle" 2 - (eq_attr "type" "Y0_2cycle") - "Y0|X0,nothing") - -(define_insn_reservation "Y1" 1 - (eq_attr "type" "Y1") - "Y1|X1") - -(define_insn_reservation "Y2" 1 - (eq_attr "type" "Y2") - "Y2|X1") - -(define_insn_reservation "Y2_2cycle" 2 - (eq_attr "type" "Y2_2cycle") - "Y2|X1,nothing") - -(define_insn_reservation "Y2_L2" 11 - (eq_attr "type" "Y2_L2") - "Y2|X1") - -(define_insn_reservation "Y2_miss" 80 - (eq_attr "type" "Y2_miss") - "Y2|X1") - -(define_insn_reservation "Y01" 1 - (eq_attr "type" "Y01") - "Y0|Y1|X0|X1") - -(define_insn_reservation "nothing" 0 - (eq_attr "type" "nothing") - "nothing") - -(define_insn_reservation "cannot_bundle" 1 - (eq_attr "type" "cannot_bundle") - "X0+X1") - -(define_insn_reservation "cannot_bundle_3cycle" 3 - (eq_attr "type" "cannot_bundle_3cycle") - "X0+X1") - -(define_insn_reservation "cannot_bundle_4cycle" 4 - (eq_attr "type" "cannot_bundle_4cycle") - "X0+X1") - - -; A bundle must be in either X format or Y format. -(exclusion_set "X0,X1" "Y0,Y1,Y2") diff --git a/gcc/config/tilegx/tilegx-modes.def b/gcc/config/tilegx/tilegx-modes.def deleted file mode 100644 index d5fa23a..0000000 --- a/gcc/config/tilegx/tilegx-modes.def +++ /dev/null @@ -1,37 +0,0 @@ -/* TILE-Gx extra machine modes. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* Extra modes for handling struct returns in up to 10 registers. */ -INT_MODE (R3I, 24); -INT_MODE (R5I, 40); -INT_MODE (R6I, 48); -INT_MODE (R7I, 56); -INT_MODE (R8I, 64); -INT_MODE (R9I, 72); -INT_MODE (R10I, 80); - -/* Vector modes. */ -VECTOR_MODES (INT, 8); /* V8QI V4HI V2SI */ -VECTOR_MODE (INT, QI, 16); /* V16QI */ -VECTOR_MODE (INT, HI, 8); /* V8HI */ -VECTOR_MODE (INT, SI, 4); /* V4SI */ -VECTOR_MODE (INT, HI, 2); /* V2HI */ - -VECTOR_MODE (INT, QI, 4); /* V4QI */ diff --git a/gcc/config/tilegx/tilegx-multiply.h b/gcc/config/tilegx/tilegx-multiply.h deleted file mode 100644 index 766a638..0000000 --- a/gcc/config/tilegx/tilegx-multiply.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Header for constant multiple table for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC_TILEGX_MULTIPLY_H -#define GCC_TILEGX_MULTIPLY_H - -/* A node of a tilegx_multiply_insn_seq, corresponding to a single - machine instruction such as 'add', 's1a', or an shl by a constant. */ -struct tilegx_multiply_insn_seq_entry -{ - /* Which operation this node performs (e.g. an add or sub). - Don't use this directly, call get_opcode() table to get a insn_code. */ - unsigned char compressed_opcode; - - /* The left-hand side of this expression tree. - If equal to 0, it refers to 'zero'. - If equal to 1, it refers to the original input to the multiply operation. - Otherwise, subtract two and it is an index into the containing - tilegx_multiply_insn_seq's 'op' array. Since it can only point to some - value that has already been computed it will always point to an - earlier entry in the array. */ - unsigned char lhs; - - /* This is like lhs, but for the right-hand side. However, for shift - opcodes this is a shift count rather than an operand index. */ - unsigned char rhs; -}; - -/* Maximum size of op array. */ -#define tilegx_multiply_insn_seq_MAX_OPERATIONS 4 - -/* This defines a DAG describing how to multiply by a constant in - terms of one or more machine instructions. */ -struct tilegx_multiply_insn_seq -{ - /* The constant factor by which this expression tree multiplies its input. */ - long long multiplier; - - /* The nodes of the parse tree. These are ordered so that instructions - can be emitted in the same order that they appear in this array. - Entry entry in this array can only refer to earlier entries in - the array. */ - struct tilegx_multiply_insn_seq_entry - op[tilegx_multiply_insn_seq_MAX_OPERATIONS]; - -}; - -/* A mapping from the compressed opcode to the corresponding enum - insn_code. */ -extern const enum insn_code tilegx_multiply_insn_seq_decode_opcode[]; - -/* Table mapping constant int multipliers to an expression - tree that efficiently performs that multiplication. - This is sorted by its 'multiplier' field so a binary search - can look for matches. */ -extern const struct tilegx_multiply_insn_seq tilegx_multiply_insn_seq_table[]; - -/* The number of elements in multiply_insn_seq_table. */ -extern const int tilegx_multiply_insn_seq_table_size; - -#endif /* !GCC_TILEGX_MULTIPLY_H */ diff --git a/gcc/config/tilegx/tilegx-opts.h b/gcc/config/tilegx/tilegx-opts.h deleted file mode 100644 index ecc06e2..0000000 --- a/gcc/config/tilegx/tilegx-opts.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Definitions for option handling for TILE-Gx. - Copyright (C) 2012-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef TILEGX_OPTS_H -#define TILEGX_OPTS_H - -enum cmodel { - CM_SMALL, /* Makes various assumpation about sizes of code and - data fits. */ - CM_LARGE, /* No assumptions. */ - CM_SMALL_PIC, /* Makes various assumpation about sizes of code and - data fits. */ - CM_LARGE_PIC /* No assumptions. */ -}; - -#endif diff --git a/gcc/config/tilegx/tilegx-protos.h b/gcc/config/tilegx/tilegx-protos.h deleted file mode 100644 index 7263524..0000000 --- a/gcc/config/tilegx/tilegx-protos.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Prototypes of target machine for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC_TILEGX_PROTOS_H -#define GCC_TILEGX_PROTOS_H - -extern void tilegx_init_expanders (void); -extern void tilegx_compute_pcrel_address (rtx, rtx); -extern void tilegx_compute_pcrel_plt_address (rtx, rtx); -extern bool tilegx_legitimate_pic_operand_p (rtx); -extern rtx tilegx_simd_int (rtx, machine_mode); - -#ifdef RTX_CODE -extern bool tilegx_bitfield_operand_p (HOST_WIDE_INT, int *, int *); -extern void tilegx_expand_set_const64 (rtx, rtx); -extern bool tilegx_expand_mov (machine_mode, rtx *); -extern void tilegx_expand_unaligned_load (rtx, rtx, HOST_WIDE_INT, - HOST_WIDE_INT, bool); -extern void tilegx_expand_movmisalign (machine_mode, rtx *); -extern void tilegx_allocate_stack (rtx, rtx); -extern bool tilegx_expand_muldi (rtx, rtx, rtx); -extern void tilegx_expand_smuldi3_highpart (rtx, rtx, rtx); -extern void tilegx_expand_umuldi3_highpart (rtx, rtx, rtx); - -extern bool tilegx_emit_setcc (rtx[], machine_mode); -extern void tilegx_emit_conditional_branch (rtx[], machine_mode); -extern rtx tilegx_emit_conditional_move (rtx); -extern const char *tilegx_output_cbranch_with_opcode (rtx_insn *, rtx *, - const char *, - const char *, int); -extern const char *tilegx_output_cbranch (rtx_insn *, rtx *, bool); -extern void tilegx_expand_tablejump (rtx, rtx); -extern void tilegx_expand_builtin_vector_binop (rtx (*)(rtx, rtx, rtx), - machine_mode, rtx, - machine_mode, rtx, rtx, - bool); -extern void tilegx_pre_atomic_barrier (enum memmodel); -extern void tilegx_post_atomic_barrier (enum memmodel); -#endif /* RTX_CODE */ - -extern bool tilegx_can_use_return_insn_p (void); -extern void tilegx_expand_prologue (void); -extern void tilegx_expand_epilogue (bool); -extern int tilegx_initial_elimination_offset (int, int); -extern rtx tilegx_return_addr (int, rtx); -extern rtx tilegx_eh_return_handler_rtx (void); -extern int tilegx_adjust_insn_length (rtx_insn *, int); - -extern int tilegx_asm_preferred_eh_data_format (int, int); -extern void tilegx_final_prescan_insn (rtx_insn *); -extern const char *tilegx_asm_output_opcode (FILE *, const char *); -extern void tilegx_function_profiler (FILE *, int); - -/* Declare functions in tilegx-c.cc */ - -extern void tilegx_cpu_cpp_builtins (struct cpp_reader *); - -#endif /* GCC_TILEGX_PROTOS_H */ diff --git a/gcc/config/tilegx/tilegx.cc b/gcc/config/tilegx/tilegx.cc deleted file mode 100644 index c40fc74..0000000 --- a/gcc/config/tilegx/tilegx.cc +++ /dev/null @@ -1,5728 +0,0 @@ -/* Subroutines used for code generation on the Tilera TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "memmodel.h" -#include "backend.h" -#include "target.h" -#include "rtl.h" -#include "tree.h" -#include "gimple.h" -#include "df.h" -#include "tm_p.h" -#include "stringpool.h" -#include "attribs.h" -#include "expmed.h" -#include "optabs.h" -#include "regs.h" -#include "emit-rtl.h" -#include "recog.h" -#include "diagnostic.h" -#include "output.h" -#include "insn-attr.h" -#include "alias.h" -#include "explow.h" -#include "calls.h" -#include "varasm.h" -#include "expr.h" -#include "langhooks.h" -#include "cfgrtl.h" -#include "tm-constrs.h" -#include "dwarf2.h" -#include "fold-const.h" -#include "stor-layout.h" -#include "gimplify.h" -#include "tilegx-builtins.h" -#include "tilegx-multiply.h" -#include "builtins.h" -#include "opts.h" - -/* This file should be included last. */ -#include "target-def.h" - -/* SYMBOL_REF for GOT */ -static GTY(()) rtx g_got_symbol = NULL; - -/* Report whether we're printing out the first address fragment of a - POST_INC or POST_DEC memory reference, from TARGET_PRINT_OPERAND to - TARGET_PRINT_OPERAND_ADDRESS. */ -static bool output_memory_autoinc_first; - - - -/* Option handling */ - -/* Implement TARGET_OPTION_OVERRIDE. */ -static void -tilegx_option_override (void) -{ - if (OPTION_SET_P (tilegx_cmodel)) - { - switch (tilegx_cmodel) - { - case CM_SMALL: - case CM_SMALL_PIC: - if (flag_pic) - tilegx_cmodel = CM_SMALL_PIC; - break; - - case CM_LARGE: - case CM_LARGE_PIC: - if (flag_pic) - tilegx_cmodel = CM_LARGE_PIC; - break; - - default: - gcc_unreachable (); - } - } - else - tilegx_cmodel = flag_pic ? CM_SMALL_PIC : CM_SMALL; - - /* When modulo scheduling is enabled, we still rely on regular - scheduler for bundling. */ - if (flag_modulo_sched) - flag_resched_modulo_sched = 1; -} - - - -/* Implement TARGET_SCALAR_MODE_SUPPORTED_P. */ -static bool -tilegx_scalar_mode_supported_p (scalar_mode mode) -{ - switch (mode) - { - case E_QImode: - case E_HImode: - case E_SImode: - case E_DImode: - case E_TImode: - return true; - - case E_SFmode: - case E_DFmode: - return true; - - default: - return false; - } -} - - -/* Implement TARGET_VECTOR_MODE_SUPPORTED_P. */ -static bool -tilegx_vector_mode_supported_p (machine_mode mode) -{ - return mode == V8QImode || mode == V4HImode || mode == V2SImode; -} - - -/* Implement TARGET_CANNOT_FORCE_CONST_MEM. */ -static bool -tilegx_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, - rtx x ATTRIBUTE_UNUSED) -{ - return true; -} - - -/* Implement TARGET_FUNCTION_OK_FOR_SIBCALL. */ -static bool -tilegx_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) -{ - return (tilegx_cmodel != CM_LARGE && tilegx_cmodel != CM_LARGE_PIC - && (decl != NULL)); -} - - -/* Implement TARGET_PASS_BY_REFERENCE. Variable sized types are - passed by reference. */ -static bool -tilegx_pass_by_reference (cumulative_args_t, const function_arg_info &arg) -{ - return (arg.type - && TYPE_SIZE (arg.type) - && TREE_CODE (TYPE_SIZE (arg.type)) != INTEGER_CST); -} - - -/* Implement TARGET_RETURN_IN_MSB. We return a value in the most - significant part of a register if: - - the target is big-endian; and - - the value has an aggregate type (e.g., structure or union). */ -static bool -tilegx_return_in_msb (const_tree valtype) -{ - return (TARGET_BIG_ENDIAN && AGGREGATE_TYPE_P (valtype)); -} - - -/* Implement TARGET_RETURN_IN_MEMORY. */ -static bool -tilegx_return_in_memory (const_tree type, const_tree fndecl ATTRIBUTE_UNUSED) -{ - return !IN_RANGE (int_size_in_bytes (type), - 0, TILEGX_NUM_RETURN_REGS * UNITS_PER_WORD); -} - - -/* Implement TARGET_MODE_REP_EXTENDED. */ -static int -tilegx_mode_rep_extended (scalar_int_mode mode, scalar_int_mode mode_rep) -{ - /* SImode register values are sign-extended to DImode. */ - if (mode == SImode && mode_rep == DImode) - return SIGN_EXTEND; - - return UNKNOWN; -} - - -/* Implement TARGET_FUNCTION_ARG_BOUNDARY. */ -static unsigned int -tilegx_function_arg_boundary (machine_mode mode, const_tree type) -{ - unsigned int alignment; - - alignment = type ? TYPE_ALIGN (type) : GET_MODE_ALIGNMENT (mode); - if (alignment < PARM_BOUNDARY) - alignment = PARM_BOUNDARY; - if (alignment > STACK_BOUNDARY) - alignment = STACK_BOUNDARY; - return alignment; -} - - -/* Implement TARGET_FUNCTION_ARG. */ -static rtx -tilegx_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) -{ - CUMULATIVE_ARGS cum = *get_cumulative_args (cum_v); - int byte_size = arg.promoted_size_in_bytes (); - bool doubleword_aligned_p; - - if (cum >= TILEGX_NUM_ARG_REGS) - return NULL_RTX; - - /* See whether the argument has doubleword alignment. */ - doubleword_aligned_p = - tilegx_function_arg_boundary (arg.mode, arg.type) > BITS_PER_WORD; - - if (doubleword_aligned_p) - cum += cum & 1; - - /* The ABI does not allow parameters to be passed partially in reg - and partially in stack. */ - if ((cum + (byte_size + UNITS_PER_WORD - 1) / UNITS_PER_WORD) - > TILEGX_NUM_ARG_REGS) - return NULL_RTX; - - return gen_rtx_REG (arg.mode, cum); -} - - -/* Implement TARGET_FUNCTION_ARG_ADVANCE. */ -static void -tilegx_function_arg_advance (cumulative_args_t cum_v, - const function_arg_info &arg) -{ - CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v); - - int byte_size = arg.promoted_size_in_bytes (); - int word_size = (byte_size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; - bool doubleword_aligned_p; - - /* See whether the argument has doubleword alignment. */ - doubleword_aligned_p = - tilegx_function_arg_boundary (arg.mode, arg.type) > BITS_PER_WORD; - - if (doubleword_aligned_p) - *cum += *cum & 1; - - /* If the current argument does not fit in the pretend_args space, - skip over it. */ - if (*cum < TILEGX_NUM_ARG_REGS - && *cum + word_size > TILEGX_NUM_ARG_REGS) - *cum = TILEGX_NUM_ARG_REGS; - - *cum += word_size; -} - - -/* Implement TARGET_FUNCTION_VALUE. */ -static rtx -tilegx_function_value (const_tree valtype, const_tree fn_decl_or_type, - bool outgoing ATTRIBUTE_UNUSED) -{ - machine_mode mode; - int unsigned_p; - - mode = TYPE_MODE (valtype); - unsigned_p = TYPE_UNSIGNED (valtype); - - mode = promote_function_mode (valtype, mode, &unsigned_p, - fn_decl_or_type, 1); - - return gen_rtx_REG (mode, 0); -} - - -/* Implement TARGET_LIBCALL_VALUE. */ -static rtx -tilegx_libcall_value (machine_mode mode, - const_rtx fun ATTRIBUTE_UNUSED) -{ - return gen_rtx_REG (mode, 0); -} - - -/* Implement FUNCTION_VALUE_REGNO_P. */ -static bool -tilegx_function_value_regno_p (const unsigned int regno) -{ - return regno < TILEGX_NUM_RETURN_REGS; -} - - -/* Implement TARGET_BUILD_BUILTIN_VA_LIST. */ -static tree -tilegx_build_builtin_va_list (void) -{ - tree f_args, f_skip, record, type_decl; - bool owp; - - record = lang_hooks.types.make_type (RECORD_TYPE); - - type_decl = build_decl (BUILTINS_LOCATION, TYPE_DECL, - get_identifier ("__va_list_tag"), record); - - f_args = build_decl (BUILTINS_LOCATION, FIELD_DECL, - get_identifier ("__args"), ptr_type_node); - f_skip = build_decl (BUILTINS_LOCATION, FIELD_DECL, - get_identifier ("__skip"), ptr_type_node); - - DECL_FIELD_CONTEXT (f_args) = record; - - DECL_FIELD_CONTEXT (f_skip) = record; - - TREE_CHAIN (record) = type_decl; - TYPE_NAME (record) = type_decl; - TYPE_FIELDS (record) = f_args; - TREE_CHAIN (f_args) = f_skip; - - /* We know this is being padded and we want it too. It is an - internal type so hide the warnings from the user. */ - owp = warn_padded; - warn_padded = false; - - layout_type (record); - - warn_padded = owp; - - /* The correct type is an array type of one element. */ - return record; -} - - -/* Implement TARGET_EXPAND_BUILTIN_VA_START. */ -static void -tilegx_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) -{ - tree f_args, f_skip; - tree args, skip, t; - - f_args = TYPE_FIELDS (TREE_TYPE (valist)); - f_skip = TREE_CHAIN (f_args); - - args = - build3 (COMPONENT_REF, TREE_TYPE (f_args), valist, f_args, NULL_TREE); - skip = - build3 (COMPONENT_REF, TREE_TYPE (f_skip), valist, f_skip, NULL_TREE); - - /* Find the __args area. */ - t = make_tree (TREE_TYPE (args), virtual_incoming_args_rtx); - t = fold_build_pointer_plus_hwi (t, - UNITS_PER_WORD * - (crtl->args.info - TILEGX_NUM_ARG_REGS)); - - if (crtl->args.pretend_args_size > 0) - t = fold_build_pointer_plus_hwi (t, -STACK_POINTER_OFFSET); - - t = build2 (MODIFY_EXPR, TREE_TYPE (args), args, t); - TREE_SIDE_EFFECTS (t) = 1; - expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); - - /* Find the __skip area. */ - t = make_tree (TREE_TYPE (skip), virtual_incoming_args_rtx); - t = fold_build_pointer_plus_hwi (t, -STACK_POINTER_OFFSET); - t = build2 (MODIFY_EXPR, TREE_TYPE (skip), skip, t); - TREE_SIDE_EFFECTS (t) = 1; - expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); -} - - -/* Implement TARGET_SETUP_INCOMING_VARARGS. */ -static void -tilegx_setup_incoming_varargs (cumulative_args_t cum, - const function_arg_info &arg, - int *pretend_args, int no_rtl) -{ - CUMULATIVE_ARGS local_cum = *get_cumulative_args (cum); - int first_reg; - - /* The caller has advanced CUM up to, but not beyond, the last named - argument. Advance a local copy of CUM past the last "real" named - argument, to find out how many registers are left over. */ - targetm.calls.function_arg_advance (pack_cumulative_args (&local_cum), arg); - first_reg = local_cum; - - if (local_cum < TILEGX_NUM_ARG_REGS) - { - *pretend_args = UNITS_PER_WORD * (TILEGX_NUM_ARG_REGS - first_reg); - - if (!no_rtl) - { - alias_set_type set = get_varargs_alias_set (); - rtx tmp = - gen_rtx_MEM (BLKmode, plus_constant (Pmode, - virtual_incoming_args_rtx, - -STACK_POINTER_OFFSET - - UNITS_PER_WORD * - (TILEGX_NUM_ARG_REGS - - first_reg))); - MEM_NOTRAP_P (tmp) = 1; - set_mem_alias_set (tmp, set); - move_block_from_reg (first_reg, tmp, - TILEGX_NUM_ARG_REGS - first_reg); - } - } - else - *pretend_args = 0; -} - - -/* Implement TARGET_GIMPLIFY_VA_ARG_EXPR. Gimplify va_arg by updating - the va_list structure VALIST as required to retrieve an argument of - type TYPE, and returning that argument. - - ret = va_arg(VALIST, TYPE); - - generates code equivalent to: - - paddedsize = (sizeof(TYPE) + 7) & -8; - if ( (VALIST.__args + paddedsize > VALIST.__skip) - & (VALIST.__args <= VALIST.__skip)) - addr = VALIST.__skip + STACK_POINTER_OFFSET; - else - addr = VALIST.__args; - VALIST.__args = addr + paddedsize; - if (BYTES_BIG_ENDIAN) - ret = *(TYPE *)(addr + paddedsize - sizeof(TYPE)); - else - ret = *(TYPE *)addr; - */ -static tree -tilegx_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, - gimple_seq *post_p ATTRIBUTE_UNUSED) -{ - tree f_args, f_skip; - tree args, skip; - HOST_WIDE_INT size, rsize; - tree addr, tmp; - bool pass_by_reference_p; - - f_args = TYPE_FIELDS (va_list_type_node); - f_skip = TREE_CHAIN (f_args); - - args = - build3 (COMPONENT_REF, TREE_TYPE (f_args), valist, f_args, NULL_TREE); - skip = - build3 (COMPONENT_REF, TREE_TYPE (f_skip), valist, f_skip, NULL_TREE); - - addr = create_tmp_var (ptr_type_node, "va_arg"); - - /* If an object is dynamically sized, a pointer to it is passed - instead of the object itself. */ - pass_by_reference_p = pass_va_arg_by_reference (type); - - if (pass_by_reference_p) - type = build_pointer_type (type); - - size = int_size_in_bytes (type); - rsize = ((size + UNITS_PER_WORD - 1) / UNITS_PER_WORD) * UNITS_PER_WORD; - - /* If the alignment of the type is greater than the default for a - parameter, align to the STACK_BOUNDARY. */ - if (TYPE_ALIGN (type) > PARM_BOUNDARY) - { - /* Assert the only case we generate code for: when - stack boundary = 2 * parm boundary. */ - gcc_assert (STACK_BOUNDARY == PARM_BOUNDARY * 2); - - tmp = build2 (BIT_AND_EXPR, sizetype, - fold_convert (sizetype, unshare_expr (args)), - size_int (PARM_BOUNDARY / 8)); - tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node, - unshare_expr (args), tmp); - - gimplify_assign (unshare_expr (args), tmp, pre_p); - } - - /* Build conditional expression to calculate addr. The expression - will be gimplified later. */ - tmp = fold_build_pointer_plus_hwi (unshare_expr (args), rsize); - tmp = build2 (TRUTH_AND_EXPR, boolean_type_node, - build2 (GT_EXPR, boolean_type_node, tmp, unshare_expr (skip)), - build2 (LE_EXPR, boolean_type_node, unshare_expr (args), - unshare_expr (skip))); - - tmp = build3 (COND_EXPR, ptr_type_node, tmp, - build2 (POINTER_PLUS_EXPR, ptr_type_node, unshare_expr (skip), - size_int (STACK_POINTER_OFFSET)), - unshare_expr (args)); - - /* Adjust the address of va_arg if it is in big endian mode. */ - if (BYTES_BIG_ENDIAN && rsize > size) - tmp = fold_build_pointer_plus_hwi (tmp, rsize - size); - gimplify_assign (addr, tmp, pre_p); - - /* Update VALIST.__args. */ - - if (BYTES_BIG_ENDIAN && rsize > size) - tmp = fold_build_pointer_plus_hwi (addr, size); - else - tmp = fold_build_pointer_plus_hwi (addr, rsize); - gimplify_assign (unshare_expr (args), tmp, pre_p); - - addr = fold_convert (build_pointer_type (type), addr); - - if (pass_by_reference_p) - addr = build_va_arg_indirect_ref (addr); - - return build_va_arg_indirect_ref (addr); -} - - - -/* Implement TARGET_RTX_COSTS. */ -static bool -tilegx_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, - int *total, bool speed) -{ - int code = GET_CODE (x); - - switch (code) - { - case CONST_INT: - /* If this is an 8-bit constant, return zero since it can be - used nearly anywhere with no cost. If it is a valid operand - for an ADD or AND, likewise return 0 if we know it will be - used in that context. Otherwise, return 2 since it might be - used there later. All other constants take at least two - insns. */ - if (satisfies_constraint_I (x)) - { - *total = 0; - return true; - } - else if (outer_code == PLUS && add_operand (x, VOIDmode)) - { - /* Slightly penalize large constants even though we can add - them in one instruction, because it forces the use of - 2-wide bundling mode. */ - *total = 1; - return true; - } - else if (move_operand (x, SImode)) - { - /* We can materialize in one move. */ - *total = COSTS_N_INSNS (1); - return true; - } - else - { - /* We can materialize in two moves. */ - *total = COSTS_N_INSNS (2); - return true; - } - - return false; - - case CONST: - case LABEL_REF: - case SYMBOL_REF: - *total = COSTS_N_INSNS (2); - return true; - - case CONST_DOUBLE: - *total = COSTS_N_INSNS (4); - return true; - - case HIGH: - *total = 0; - return true; - - case MEM: - /* If outer-code was a sign or zero extension, a cost of - COSTS_N_INSNS (1) was already added in, so account for - that. */ - if (outer_code == ZERO_EXTEND || outer_code == SIGN_EXTEND) - *total = COSTS_N_INSNS (1); - else - *total = COSTS_N_INSNS (2); - return true; - - case PLUS: - /* Convey that shl[123]add are efficient. */ - if (GET_CODE (XEXP (x, 0)) == MULT - && cint_248_operand (XEXP (XEXP (x, 0), 1), VOIDmode)) - { - *total = (rtx_cost (XEXP (XEXP (x, 0), 0), mode, - (enum rtx_code) outer_code, opno, speed) - + rtx_cost (XEXP (x, 1), mode, - (enum rtx_code) outer_code, opno, speed) - + COSTS_N_INSNS (1)); - return true; - } - return false; - - case MULT: - *total = COSTS_N_INSNS (2); - return false; - - case DIV: - case UDIV: - case MOD: - case UMOD: - /* These are handled by software and are very expensive. */ - *total = COSTS_N_INSNS (100); - return false; - - case UNSPEC: - case UNSPEC_VOLATILE: - { - int num = XINT (x, 1); - - if (num <= TILEGX_LAST_LATENCY_1_INSN) - *total = COSTS_N_INSNS (1); - else if (num <= TILEGX_LAST_LATENCY_2_INSN) - *total = COSTS_N_INSNS (2); - else if (num > TILEGX_LAST_LATENCY_INSN) - { - if (num == UNSPEC_NON_TEMPORAL) - { - /* These are basically loads. */ - if (outer_code == ZERO_EXTEND || outer_code == SIGN_EXTEND) - *total = COSTS_N_INSNS (1); - else - *total = COSTS_N_INSNS (2); - } - else - { - if (outer_code == PLUS) - *total = 0; - else - *total = COSTS_N_INSNS (1); - } - } - else - { - switch (num) - { - case UNSPEC_BLOCKAGE: - case UNSPEC_NETWORK_BARRIER: - case UNSPEC_ATOMIC: - *total = 0; - break; - - case UNSPEC_LNK_AND_LABEL: - case UNSPEC_MF: - case UNSPEC_MOV_PCREL_STEP3: - case UNSPEC_NETWORK_RECEIVE: - case UNSPEC_NETWORK_SEND: - case UNSPEC_SPR_MOVE: - case UNSPEC_TLS_GD_ADD: - *total = COSTS_N_INSNS (1); - break; - - case UNSPEC_TLS_IE_LOAD: - case UNSPEC_XCHG: - *total = COSTS_N_INSNS (2); - break; - - case UNSPEC_SP_SET: - *total = COSTS_N_INSNS (3); - break; - - case UNSPEC_SP_TEST: - *total = COSTS_N_INSNS (4); - break; - - case UNSPEC_CMPXCHG: - case UNSPEC_INSN_CMPEXCH: - case UNSPEC_LATENCY_L2: - *total = COSTS_N_INSNS (11); - break; - - case UNSPEC_TLS_GD_CALL: - *total = COSTS_N_INSNS (30); - break; - - case UNSPEC_LATENCY_MISS: - *total = COSTS_N_INSNS (80); - break; - - default: - *total = COSTS_N_INSNS (1); - } - } - return true; - } - - default: - return false; - } -} - - - -/* Rtl lowering. */ - -/* Create a temporary variable to hold a partial result, to enable - CSE. */ -static rtx -create_temp_reg_if_possible (machine_mode mode, rtx default_reg) -{ - return can_create_pseudo_p () ? gen_reg_rtx (mode) : default_reg; -} - - -/* Functions to save and restore machine-specific function data. */ -static struct machine_function * -tilegx_init_machine_status (void) -{ - return ggc_cleared_alloc (); -} - - -/* Do anything needed before RTL is emitted for each function. */ -void -tilegx_init_expanders (void) -{ - /* Arrange to initialize and mark the machine per-function - status. */ - init_machine_status = tilegx_init_machine_status; - - if (cfun && cfun->machine && flag_pic) - { - static int label_num = 0; - - char text_label_name[32]; - - struct machine_function *machine = cfun->machine; - - ASM_GENERATE_INTERNAL_LABEL (text_label_name, "L_PICLNK", label_num++); - - machine->text_label_symbol = - gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (text_label_name)); - - machine->text_label_rtx = - gen_rtx_REG (Pmode, TILEGX_PIC_TEXT_LABEL_REGNUM); - - machine->got_rtx = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM); - - machine->calls_tls_get_addr = false; - } -} - - -/* Implement TARGET_EXPAND_TO_RTL_HOOK. */ -static void -tilegx_expand_to_rtl_hook (void) -{ - /* Exclude earlier sets of crtl->uses_pic_offset_table, because we - only care about uses actually emitted. */ - crtl->uses_pic_offset_table = 0; -} - - -/* Implement TARGET_SHIFT_TRUNCATION_MASK. DImode shifts use the mode - matching insns and therefore guarantee that the shift count is - modulo 64. SImode shifts sometimes use the 64 bit version so do - not hold such guarantee. */ -static unsigned HOST_WIDE_INT -tilegx_shift_truncation_mask (machine_mode mode) -{ - return mode == DImode ? 63 : 0; -} - - -/* Implement TARGET_INIT_LIBFUNCS. */ -static void -tilegx_init_libfuncs (void) -{ - /* We need to explicitly generate these libfunc's to support - conversion of divide by constant to multiply (the divide stubs in - tilegx.md exist also for this reason). Normally we'd expect gcc - to lazily generate them when they are needed, but for some reason - it's set up to only generate them if the mode is the word - mode. */ - set_optab_libfunc (sdiv_optab, SImode, "__divsi3"); - set_optab_libfunc (udiv_optab, SImode, "__udivsi3"); - set_optab_libfunc (smod_optab, SImode, "__modsi3"); - set_optab_libfunc (umod_optab, SImode, "__umodsi3"); -} - - -/* Return true if X contains a thread-local symbol. */ -static bool -tilegx_tls_referenced_p (rtx x) -{ - if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS) - x = XEXP (XEXP (x, 0), 0); - - if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x)) - return true; - - /* That's all we handle in tilegx_legitimize_tls_address for - now. */ - return false; -} - - -/* Return true if X requires a scratch register. It is given that - flag_pic is on and that X satisfies CONSTANT_P. */ -static int -tilegx_pic_address_needs_scratch (rtx x) -{ - if (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == PLUS - && (GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF - || GET_CODE (XEXP (XEXP (x, 0), 0)) == LABEL_REF) - && (CONST_INT_P (XEXP (XEXP (x, 0), 1)))) - return true; - - return false; -} - - -/* Implement TARGET_LEGITIMATE_CONSTANT_P. This is all constants for - which we are willing to load the value into a register via a move - pattern. TLS cannot be treated as a constant because it can - include a function call. */ -static bool -tilegx_legitimate_constant_p (machine_mode mode ATTRIBUTE_UNUSED, rtx x) -{ - switch (GET_CODE (x)) - { - case CONST: - case SYMBOL_REF: - return !tilegx_tls_referenced_p (x); - - default: - return true; - } -} - - -/* Return true if the constant value X is a legitimate general operand - when generating PIC code. It is given that flag_pic is on and that - X satisfies CONSTANT_P. */ -bool -tilegx_legitimate_pic_operand_p (rtx x) -{ - if (tilegx_pic_address_needs_scratch (x)) - return false; - - if (tilegx_tls_referenced_p (x)) - return false; - - return true; -} - - -/* Return true if the rtx X can be used as an address operand. */ -static bool -tilegx_legitimate_address_p (machine_mode ARG_UNUSED (mode), rtx x, - bool strict) -{ - if (GET_CODE (x) == SUBREG) - x = SUBREG_REG (x); - - switch (GET_CODE (x)) - { - case POST_INC: - case POST_DEC: - if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) - return false; - - x = XEXP (x, 0); - break; - - case POST_MODIFY: - if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) - return false; - - if (GET_CODE (XEXP (x, 1)) != PLUS) - return false; - - if (!rtx_equal_p (XEXP (x, 0), XEXP (XEXP (x, 1), 0))) - return false; - - if (!satisfies_constraint_I (XEXP (XEXP (x, 1), 1))) - return false; - - x = XEXP (x, 0); - break; - - case REG: - break; - - default: - return false; - } - - /* Check if x is a valid reg. */ - if (!REG_P (x)) - return false; - - if (strict) - return REGNO_OK_FOR_BASE_P (REGNO (x)); - else - return true; -} - - -/* Return the rtx containing SYMBOL_REF to the text label. */ -static rtx -tilegx_text_label_symbol (void) -{ - return cfun->machine->text_label_symbol; -} - - -/* Return the register storing the value of the text label. */ -static rtx -tilegx_text_label_rtx (void) -{ - return cfun->machine->text_label_rtx; -} - - -/* Return the register storing the value of the global offset - table. */ -static rtx -tilegx_got_rtx (void) -{ - return cfun->machine->got_rtx; -} - - -/* Return the SYMBOL_REF for _GLOBAL_OFFSET_TABLE_. */ -static rtx -tilegx_got_symbol (void) -{ - if (g_got_symbol == NULL) - g_got_symbol = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); - - return g_got_symbol; -} - - -/* Return a reference to the got to be used by tls references. */ -static rtx -tilegx_tls_got (void) -{ - rtx temp; - if (flag_pic) - { - crtl->uses_pic_offset_table = 1; - return tilegx_got_rtx (); - } - - temp = gen_reg_rtx (Pmode); - emit_move_insn (temp, tilegx_got_symbol ()); - - return temp; -} - - -/* ADDR contains a thread-local SYMBOL_REF. Generate code to compute - this (thread-local) address. */ -static rtx -tilegx_legitimize_tls_address (rtx addr) -{ - rtx ret; - - gcc_assert (can_create_pseudo_p ()); - - if (GET_CODE (addr) == SYMBOL_REF) - switch (SYMBOL_REF_TLS_MODEL (addr)) - { - case TLS_MODEL_GLOBAL_DYNAMIC: - case TLS_MODEL_LOCAL_DYNAMIC: - { - rtx r0, temp, temp2, temp3, got; - - ret = gen_reg_rtx (Pmode); - r0 = gen_rtx_REG (Pmode, 0); - temp = gen_reg_rtx (Pmode); - temp2 = gen_reg_rtx (Pmode); - temp3 = gen_reg_rtx (Pmode); - - got = tilegx_tls_got (); - if (TARGET_32BIT) - { - emit_insn (gen_mov_tls_gd_step1_32bit (temp, addr)); - emit_insn (gen_mov_tls_gd_step2_32bit (temp2, temp, addr)); - emit_insn (gen_tls_add_32bit (temp2, got, temp2, addr)); - } - else - { - emit_insn (gen_mov_tls_gd_step1 (temp, addr)); - emit_insn (gen_mov_tls_gd_step2 (temp2, temp, addr)); - emit_insn (gen_tls_add (temp2, got, temp2, addr)); - } - - emit_move_insn (r0, temp2); - - if (TARGET_32BIT) - { - emit_insn (gen_tls_gd_call_32bit (addr)); - } - else - { - emit_insn (gen_tls_gd_call (addr)); - } - - emit_move_insn (temp3, r0); - - rtx_insn *last; - if (TARGET_32BIT) - last = emit_insn (gen_tls_gd_add_32bit (ret, temp3, addr)); - else - last = emit_insn (gen_tls_gd_add (ret, temp3, addr)); - - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - case TLS_MODEL_INITIAL_EXEC: - { - rtx temp, temp2, temp3, got; - rtx_insn *last; - - ret = gen_reg_rtx (Pmode); - temp = gen_reg_rtx (Pmode); - temp2 = gen_reg_rtx (Pmode); - temp3 = gen_reg_rtx (Pmode); - - got = tilegx_tls_got (); - if (TARGET_32BIT) - { - emit_insn (gen_mov_tls_ie_step1_32bit (temp, addr)); - emit_insn (gen_mov_tls_ie_step2_32bit (temp2, temp, addr)); - emit_insn (gen_tls_add_32bit (temp2, got, temp2, addr)); - emit_insn (gen_tls_ie_load_32bit (temp3, temp2, addr)); - } - else - { - emit_insn (gen_mov_tls_ie_step1 (temp, addr)); - emit_insn (gen_mov_tls_ie_step2 (temp2, temp, addr)); - emit_insn (gen_tls_add (temp2, got, temp2, addr)); - emit_insn (gen_tls_ie_load (temp3, temp2, addr)); - } - - last = - emit_move_insn(ret, - gen_rtx_PLUS (Pmode, - gen_rtx_REG (Pmode, - THREAD_POINTER_REGNUM), - temp3)); - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - case TLS_MODEL_LOCAL_EXEC: - { - rtx temp, temp2; - rtx_insn *last; - - ret = gen_reg_rtx (Pmode); - temp = gen_reg_rtx (Pmode); - temp2 = gen_reg_rtx (Pmode); - - if (TARGET_32BIT) - { - emit_insn (gen_mov_tls_le_step1_32bit (temp, addr)); - emit_insn (gen_mov_tls_le_step2_32bit (temp2, temp, addr)); - } - else - { - emit_insn (gen_mov_tls_le_step1 (temp, addr)); - emit_insn (gen_mov_tls_le_step2 (temp2, temp, addr)); - } - - last = - emit_move_insn (ret, - gen_rtx_PLUS (Pmode, - gen_rtx_REG (Pmode, - THREAD_POINTER_REGNUM), - temp2)); - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - default: - gcc_unreachable (); - } - else if (GET_CODE (addr) == CONST) - { - rtx base, offset; - - gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS); - - base = tilegx_legitimize_tls_address (XEXP (XEXP (addr, 0), 0)); - offset = XEXP (XEXP (addr, 0), 1); - - base = force_operand (base, NULL_RTX); - ret = force_reg (Pmode, gen_rtx_PLUS (Pmode, base, offset)); - } - else - gcc_unreachable (); - - return ret; -} - - -/* Returns a register that points to ADDR, a symbolic address, by - computing its address relative to tilegx_text_label_symbol. */ -void -tilegx_compute_pcrel_address (rtx result, rtx addr) -{ - rtx text_label_symbol = tilegx_text_label_symbol (); - rtx text_label_rtx = tilegx_text_label_rtx (); - rtx temp, temp2, temp3; - - temp = create_temp_reg_if_possible (Pmode, result); - temp2 = create_temp_reg_if_possible (Pmode, result); - - if (TARGET_32BIT) - { - emit_insn (gen_mov_pcrel_step1_32bit (temp, addr, text_label_symbol)); - emit_insn (gen_mov_pcrel_step2_32bit (temp2, temp, addr, - text_label_symbol)); - emit_insn (gen_mov_pcrel_step3_32bit (result, temp2, - text_label_rtx, - addr, text_label_symbol)); - } - else if (tilegx_cmodel == CM_LARGE_PIC) - { - temp3 = create_temp_reg_if_possible (Pmode, result); - emit_insn (gen_mov_large_pcrel_step1 (temp, addr, text_label_symbol)); - emit_insn (gen_mov_large_pcrel_step2 (temp2, temp, addr, - text_label_symbol)); - emit_insn (gen_mov_large_pcrel_step3 (temp3, temp2, addr, - text_label_symbol)); - emit_insn (gen_mov_large_pcrel_step4 (result, temp3, - text_label_rtx, - addr, text_label_symbol)); - } - else - { - emit_insn (gen_mov_pcrel_step1 (temp, addr, text_label_symbol)); - emit_insn (gen_mov_pcrel_step2 (temp2, temp, addr, text_label_symbol)); - emit_insn (gen_mov_pcrel_step3 (result, temp2, - text_label_rtx, - addr, text_label_symbol)); - } -} - - -/* Returns a register that points to the plt entry of ADDR, a symbolic - address, by computing its address relative to - tilegx_text_label_symbol. */ -void -tilegx_compute_pcrel_plt_address (rtx result, rtx addr) -{ - rtx text_label_symbol = tilegx_text_label_symbol (); - rtx text_label_rtx = tilegx_text_label_rtx (); - rtx temp, temp2, temp3; - - temp = create_temp_reg_if_possible (Pmode, result); - temp2 = create_temp_reg_if_possible (Pmode, result); - - if (TARGET_32BIT) - { - emit_insn (gen_mov_plt_pcrel_step1_32bit (temp, addr, - text_label_symbol)); - emit_insn (gen_mov_plt_pcrel_step2_32bit (temp2, temp, addr, - text_label_symbol)); - emit_move_insn (result, gen_rtx_PLUS (Pmode, temp2, text_label_rtx)); - } - else - { - temp3 = create_temp_reg_if_possible (Pmode, result); - - emit_insn (gen_mov_plt_pcrel_step1 (temp, addr, text_label_symbol)); - emit_insn (gen_mov_plt_pcrel_step2 (temp2, temp, addr, - text_label_symbol)); - emit_insn (gen_mov_plt_pcrel_step3 (temp3, temp2, addr, - text_label_symbol)); - emit_move_insn (result, gen_rtx_PLUS (Pmode, temp3, text_label_rtx)); - } -} - - -/* Legitimize PIC addresses. If the address is already - position-independent, we return ORIG. Newly generated - position-independent addresses go into a reg. This is REG if - nonzero, otherwise we allocate register(s) as necessary. */ -static rtx -tilegx_legitimize_pic_address (rtx orig, - machine_mode mode ATTRIBUTE_UNUSED, - rtx reg) -{ - if (GET_CODE (orig) == SYMBOL_REF) - { - rtx address, pic_ref; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - if (SYMBOL_REF_LOCAL_P (orig)) - { - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - rtx temp_reg = create_temp_reg_if_possible (Pmode, reg); - tilegx_compute_pcrel_address (temp_reg, orig); - - /* Note: this is conservative. We use the text_label but we - don't use the pic_offset_table. However, in some cases - we may need the pic_offset_table (see - tilegx_fixup_pcrel_references). */ - crtl->uses_pic_offset_table = 1; - - address = temp_reg; - - emit_move_insn (reg, address); - return reg; - } - else - { - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - rtx temp_reg = create_temp_reg_if_possible (Pmode, reg); - - gcc_assert (flag_pic); - if (flag_pic == 1) - { - if (TARGET_32BIT) - { - emit_insn (gen_add_got16_32bit (temp_reg, - tilegx_got_rtx (), - orig)); - } - else - { - emit_insn (gen_add_got16 (temp_reg, - tilegx_got_rtx (), orig)); - } - } - else - { - rtx temp_reg2 = create_temp_reg_if_possible (Pmode, reg); - rtx temp_reg3 = create_temp_reg_if_possible (Pmode, reg); - if (TARGET_32BIT) - { - emit_insn (gen_mov_got32_step1_32bit (temp_reg3, orig)); - emit_insn (gen_mov_got32_step2_32bit - (temp_reg2, temp_reg3, orig)); - } - else - { - emit_insn (gen_mov_got32_step1 (temp_reg3, orig)); - emit_insn (gen_mov_got32_step2 (temp_reg2, temp_reg3, - orig)); - } - emit_move_insn (temp_reg, - gen_rtx_PLUS (Pmode, - tilegx_got_rtx (), temp_reg2)); - } - - address = temp_reg; - - pic_ref = gen_const_mem (Pmode, address); - crtl->uses_pic_offset_table = 1; - emit_move_insn (reg, pic_ref); - /* The following put a REG_EQUAL note on this insn, so that - it can be optimized by loop. But it causes the label to - be optimized away. */ - /* set_unique_reg_note (insn, REG_EQUAL, orig); */ - return reg; - } - } - else if (GET_CODE (orig) == CONST) - { - rtx base, offset; - - if (GET_CODE (XEXP (orig, 0)) == PLUS - && XEXP (XEXP (orig, 0), 0) == tilegx_got_rtx ()) - return orig; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS); - base = tilegx_legitimize_pic_address (XEXP (XEXP (orig, 0), 0), - Pmode, reg); - offset = tilegx_legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, - base == reg ? 0 : reg); - - if (CONST_INT_P (offset)) - { - if (can_create_pseudo_p ()) - offset = force_reg (Pmode, offset); - else - /* If we reach here, then something is seriously wrong. */ - gcc_unreachable (); - } - - if (can_create_pseudo_p ()) - return force_reg (Pmode, gen_rtx_PLUS (Pmode, base, offset)); - else - gcc_unreachable (); - } - else if (GET_CODE (orig) == LABEL_REF) - { - rtx address; - rtx temp_reg; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - temp_reg = create_temp_reg_if_possible (Pmode, reg); - tilegx_compute_pcrel_address (temp_reg, orig); - - /* Note: this is conservative. We use the text_label but we - don't use the pic_offset_table. */ - crtl->uses_pic_offset_table = 1; - - address = temp_reg; - - emit_move_insn (reg, address); - - return reg; - } - - return orig; -} - - -/* Implement TARGET_LEGITIMIZE_ADDRESS. */ -static rtx -tilegx_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, - machine_mode mode) -{ - if (GET_MODE_SIZE (mode) <= UNITS_PER_WORD - && symbolic_operand (x, Pmode) && tilegx_tls_referenced_p (x)) - { - return tilegx_legitimize_tls_address (x); - } - else if (flag_pic) - { - return tilegx_legitimize_pic_address (x, mode, 0); - } - else - return x; -} - - -/* Implement TARGET_DELEGITIMIZE_ADDRESS. */ -static rtx -tilegx_delegitimize_address (rtx x) -{ - x = delegitimize_mem_from_attrs (x); - - if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == UNSPEC) - { - switch (XINT (XEXP (x, 0), 1)) - { - case UNSPEC_HW0: - case UNSPEC_HW1: - case UNSPEC_HW2: - case UNSPEC_HW3: - case UNSPEC_HW0_LAST: - case UNSPEC_HW1_LAST: - case UNSPEC_HW2_LAST: - case UNSPEC_HW0_PCREL: - case UNSPEC_HW1_PCREL: - case UNSPEC_HW1_LAST_PCREL: - case UNSPEC_HW2_LAST_PCREL: - case UNSPEC_HW0_PLT_PCREL: - case UNSPEC_HW1_PLT_PCREL: - case UNSPEC_HW1_LAST_PLT_PCREL: - case UNSPEC_HW2_LAST_PLT_PCREL: - case UNSPEC_HW0_GOT: - case UNSPEC_HW0_LAST_GOT: - case UNSPEC_HW1_LAST_GOT: - case UNSPEC_HW0_TLS_GD: - case UNSPEC_HW1_LAST_TLS_GD: - case UNSPEC_HW0_TLS_IE: - case UNSPEC_HW1_LAST_TLS_IE: - case UNSPEC_HW0_TLS_LE: - case UNSPEC_HW1_LAST_TLS_LE: - x = XVECEXP (XEXP (x, 0), 0, 0); - break; - } - } - - return x; -} - - -/* Emit code to load the PIC register. */ -static void -load_pic_register (bool delay_pic_helper ATTRIBUTE_UNUSED) -{ - int orig_flag_pic = flag_pic; - - rtx got_symbol = tilegx_got_symbol (); - rtx text_label_symbol = tilegx_text_label_symbol (); - rtx text_label_rtx = tilegx_text_label_rtx (); - flag_pic = 0; - - if (TARGET_32BIT) - { - emit_insn (gen_insn_lnk_and_label_32bit (text_label_rtx, - text_label_symbol)); - } - else - { - emit_insn (gen_insn_lnk_and_label (text_label_rtx, text_label_symbol)); - } - - tilegx_compute_pcrel_address (tilegx_got_rtx (), got_symbol); - - flag_pic = orig_flag_pic; - - /* Need to emit this whether or not we obey regdecls, since - setjmp/longjmp can cause life info to screw up. ??? In the case - where we don't obey regdecls, this is not sufficient since we may - not fall out the bottom. */ - emit_use (tilegx_got_rtx ()); -} - - -/* Return the simd variant of the constant NUM of mode MODE, by - replicating it to fill an interger of mode DImode. NUM is first - truncated to fit in MODE. */ -rtx -tilegx_simd_int (rtx num, machine_mode mode) -{ - HOST_WIDE_INT n = 0; - - gcc_assert (CONST_INT_P (num)); - - n = INTVAL (num); - - switch (mode) - { - case E_QImode: - n = 0x0101010101010101LL * (n & 0x000000FF); - break; - case E_HImode: - n = 0x0001000100010001LL * (n & 0x0000FFFF); - break; - case E_SImode: - n = 0x0000000100000001LL * (n & 0xFFFFFFFF); - break; - case E_DImode: - break; - default: - gcc_unreachable (); - } - - return GEN_INT (n); -} - - -/* Returns true iff VAL can be moved into a register in one - instruction. And if it can, it emits the code to move the constant - into DEST_REG. - - If THREE_WIDE_ONLY is true, this insists on an instruction that - works in a bundle containing three instructions. */ -static bool -expand_set_cint64_one_inst (rtx dest_reg, - HOST_WIDE_INT val, bool three_wide_only) -{ - if (val == trunc_int_for_mode (val, QImode)) - { - /* Success! */ - emit_move_insn (dest_reg, GEN_INT (val)); - return true; - } - else if (!three_wide_only) - { - /* Test for the following constraints: J, K, N, P. We avoid - generating an rtx and using existing predicates because we - can be testing and rejecting a lot of constants, and GEN_INT - is O(N). */ - if ((val >= -32768 && val <= 65535) - || ((val == (val & 0xFF) * 0x0101010101010101LL)) - || (val == ((trunc_int_for_mode (val, QImode) & 0xFFFF) - * 0x0001000100010001LL))) - { - emit_move_insn (dest_reg, GEN_INT (val)); - return true; - } - } - - return false; -} - - -/* Implement DImode rotatert. */ -static HOST_WIDE_INT -rotate_right (HOST_WIDE_INT n, int count) -{ - unsigned HOST_WIDE_INT x = n & 0xFFFFFFFFFFFFFFFFULL; - if (count == 0) - return x; - return ((x >> count) | (x << (64 - count))) & 0xFFFFFFFFFFFFFFFFULL; -} - - -/* Return true iff n contains exactly one contiguous sequence of 1 - bits, possibly wrapping around from high bits to low bits. */ -bool -tilegx_bitfield_operand_p (HOST_WIDE_INT n, int *first_bit, int *last_bit) -{ - int i; - - if (n == 0) - return false; - - for (i = 0; i < 64; i++) - { - unsigned HOST_WIDE_INT x = rotate_right (n, i); - if (!(x & 1)) - continue; - - /* See if x is a power of two minus one, i.e. only consecutive 1 - bits starting from bit 0. */ - if ((x & (x + 1)) == 0) - { - if (first_bit != NULL) - *first_bit = i; - if (last_bit != NULL) - *last_bit = (i + exact_log2 (x ^ (x >> 1))) & 63; - - return true; - } - } - - return false; -} - - -/* Create code to move the CONST_INT value in src_val to dest_reg. */ -static void -expand_set_cint64 (rtx dest_reg, rtx src_val) -{ - HOST_WIDE_INT val; - int leading_zeroes, trailing_zeroes; - int three_wide_only; - int shift, ins_shift, zero_cluster_shift; - rtx temp, subreg; - - gcc_assert (CONST_INT_P (src_val)); - val = trunc_int_for_mode (INTVAL (src_val), GET_MODE (dest_reg)); - - /* See if we can generate the constant in one instruction. */ - if (expand_set_cint64_one_inst (dest_reg, val, false)) - return; - - /* Force the destination to DImode so we can use DImode instructions - to create it. This both allows instructions like rotl, and - certain efficient 3-wide instructions. */ - subreg = simplify_gen_subreg (DImode, dest_reg, GET_MODE (dest_reg), 0); - gcc_assert (subreg != NULL); - dest_reg = subreg; - - temp = create_temp_reg_if_possible (DImode, dest_reg); - - leading_zeroes = 63 - floor_log2 (val & 0xFFFFFFFFFFFFFFFFULL); - trailing_zeroes = exact_log2 (val & -val); - - /* First try all three-wide instructions that generate a constant - (i.e. movei) followed by various shifts and rotates. If none of - those work, try various two-wide ways of generating a constant - followed by various shifts and rotates. */ - for (three_wide_only = 1; three_wide_only >= 0; three_wide_only--) - { - int count; - - if (expand_set_cint64_one_inst (temp, val >> trailing_zeroes, - three_wide_only)) - { - /* 0xFFFFFFFFFFFFA500 becomes: - movei temp, 0xFFFFFFFFFFFFFFA5 - shli dest, temp, 8 */ - emit_move_insn (dest_reg, - gen_rtx_ASHIFT (DImode, temp, - GEN_INT (trailing_zeroes))); - return; - } - - if (expand_set_cint64_one_inst (temp, val << leading_zeroes, - three_wide_only)) - { - /* 0x7FFFFFFFFFFFFFFF becomes: - movei temp, -2 - shrui dest, temp, 1 */ - emit_move_insn (dest_reg, - gen_rtx_LSHIFTRT (DImode, temp, - GEN_INT (leading_zeroes))); - return; - } - - /* Try rotating a one-instruction immediate. */ - for (count = 1; count < 64; count++) - { - HOST_WIDE_INT r = rotate_right (val, count); - if (expand_set_cint64_one_inst (temp, r, three_wide_only)) - { - /* 0xFFFFFFFFFFA5FFFF becomes: - movei temp, 0xFFFFFFFFFFFFFFA5 - rotli dest, temp, 16 */ - emit_move_insn (dest_reg, - gen_rtx_ROTATE (DImode, temp, GEN_INT (count))); - return; - } - } - } - - /* There are two cases here to produce a large constant. - In the most general case, we do this: - - moveli x, hw3(NUM) - shl16insli x, x, hw2(NUM) - shl16insli x, x, hw1(NUM) - shl16insli x, x, hw0(NUM) - - However, we can sometimes do better. shl16insli is a poor way to - insert 16 zero bits, because simply shifting left by 16 has more - bundling freedom. So if we see any contiguous aligned sequence - of 16 or more zero bits (below the highest set bit), it is always - more efficient to materialize the bits above the zero bits, then - left shift to put in the zeroes, then insert whatever bits - remain. For example, we might end up with: - - movei x, NUM >> (37 + 16) - shli x, x, 37 - shl16insli x, x, hw0(NUM) */ - - zero_cluster_shift = -1; - - for (shift = 0; shift < 48 - leading_zeroes; shift += 16) - { - HOST_WIDE_INT x = val >> shift; - - /* Find the least significant group of 16 aligned zero bits. */ - if ((x & 0xFFFF) == 0x0000) - { - /* Grab any following zero bits as well. */ - zero_cluster_shift = exact_log2 (x & -x); - shift += zero_cluster_shift; - break; - } - } - - if (zero_cluster_shift >= 0) - { - unsigned HOST_WIDE_INT leftover; - - /* Recursively create the constant above the lowest 16 zero - bits. */ - expand_set_cint64 (temp, GEN_INT (val >> shift)); - - /* See if we can easily insert the remaining bits, or if we need - to fall through to the more general case. */ - leftover = val - ((val >> shift) << shift); - if (leftover == 0) - { - /* A simple left shift is enough. */ - emit_move_insn (dest_reg, - gen_rtx_ASHIFT (DImode, temp, GEN_INT (shift))); - return; - } - else if (leftover <= 32767) - { - /* Left shift into position then add in the leftover. */ - rtx temp2 = create_temp_reg_if_possible (DImode, temp); - emit_move_insn (temp2, - gen_rtx_ASHIFT (DImode, temp, GEN_INT (shift))); - emit_move_insn (dest_reg, - gen_rtx_PLUS (DImode, temp2, GEN_INT (leftover))); - return; - } - else - { - /* Shift in the batch of >= 16 zeroes we detected earlier. - After this, shift will be aligned mod 16 so the final - loop can use shl16insli. */ - rtx temp2 = create_temp_reg_if_possible (DImode, temp); - rtx shift_count_rtx = GEN_INT (zero_cluster_shift); - - emit_move_insn (temp2, - gen_rtx_ASHIFT (DImode, temp, shift_count_rtx)); - - shift -= zero_cluster_shift; - temp = temp2; - } - } - else - { - /* Set as many high 16-bit blocks as we can with a single - instruction. We'll insert the remaining 16-bit blocks - below. */ - for (shift = 16;; shift += 16) - { - gcc_assert (shift < 64); - if (expand_set_cint64_one_inst (temp, val >> shift, false)) - break; - } - } - - /* At this point, temp == val >> shift, shift % 16 == 0, and we - still need to insert any bits of 'val' below 'shift'. Those bits - are guaranteed to not have 16 contiguous zeroes. */ - - gcc_assert ((shift & 15) == 0); - - for (ins_shift = shift - 16; ins_shift >= 0; ins_shift -= 16) - { - rtx result; - HOST_WIDE_INT bits = (val >> ins_shift) & 0xFFFF; - gcc_assert (bits != 0); - - /* On the last iteration we need to store into dest_reg. */ - if (ins_shift == 0) - result = dest_reg; - else - result = create_temp_reg_if_possible (DImode, dest_reg); - - emit_insn (gen_insn_shl16insli (result, temp, GEN_INT (bits))); - - temp = result; - } -} - - -/* Load OP1, a 64-bit constant, into OP0, a register. We know it - can't be done in one insn when we get here, the move expander - guarantees this. */ -void -tilegx_expand_set_const64 (rtx op0, rtx op1) -{ - if (CONST_INT_P (op1)) - { - /* TODO: I don't know if we want to split large constants - now, or wait until later (with a define_split). - - Does splitting early help CSE? Does it harm other - optimizations that might fold loads? */ - expand_set_cint64 (op0, op1); - } - else - { - rtx temp = create_temp_reg_if_possible (Pmode, op0); - - if (TARGET_32BIT) - { - /* Generate the 2-insn sequence to materialize a symbolic - address. */ - emit_insn (gen_mov_address_32bit_step1 (temp, op1)); - emit_insn (gen_mov_address_32bit_step2 (op0, temp, op1)); - } - else - { - /* Generate the 3-insn sequence to materialize a symbolic - address. Note that this assumes that virtual addresses - fit in 48 signed bits, which is currently true. */ - rtx temp2 = create_temp_reg_if_possible (Pmode, op0); - emit_insn (gen_mov_address_step1 (temp, op1)); - emit_insn (gen_mov_address_step2 (temp2, temp, op1)); - emit_insn (gen_mov_address_step3 (op0, temp2, op1)); - } - } -} - - -/* Expand a move instruction. Return true if all work is done. */ -bool -tilegx_expand_mov (machine_mode mode, rtx *operands) -{ - /* Handle sets of MEM first. */ - if (MEM_P (operands[0])) - { - if (can_create_pseudo_p ()) - operands[0] = validize_mem (operands[0]); - - if (reg_or_0_operand (operands[1], mode)) - return false; - - if (!reload_in_progress) - operands[1] = force_reg (mode, operands[1]); - } - - /* Fixup TLS cases. */ - if (CONSTANT_P (operands[1]) && tilegx_tls_referenced_p (operands[1])) - { - operands[1] = tilegx_legitimize_tls_address (operands[1]); - return false; - } - - /* Fixup PIC cases. */ - if (flag_pic && CONSTANT_P (operands[1])) - { - if (tilegx_pic_address_needs_scratch (operands[1])) - operands[1] = tilegx_legitimize_pic_address (operands[1], mode, 0); - - if (symbolic_operand (operands[1], mode)) - { - operands[1] = tilegx_legitimize_pic_address (operands[1], - mode, - (reload_in_progress ? - operands[0] : - NULL_RTX)); - return false; - } - } - - /* Accept non-constants and valid constants unmodified. */ - if (!CONSTANT_P (operands[1]) || move_operand (operands[1], mode)) - return false; - - /* Split large integers. */ - tilegx_expand_set_const64 (operands[0], operands[1]); - return true; -} - - -/* Expand unaligned loads. */ -void -tilegx_expand_unaligned_load (rtx dest_reg, rtx mem, HOST_WIDE_INT bitsize, - HOST_WIDE_INT bit_offset, bool sign) -{ - machine_mode mode; - rtx addr_lo, addr_hi; - rtx mem_lo, mem_hi, hi; - rtx mema, wide_result; - int last_byte_offset; - HOST_WIDE_INT byte_offset = bit_offset / BITS_PER_UNIT; - - mode = GET_MODE (dest_reg); - - if (bitsize == 2 * BITS_PER_UNIT && (bit_offset % BITS_PER_UNIT) == 0) - { - rtx mem_left, mem_right; - rtx left = gen_reg_rtx (mode); - - /* When just loading a two byte value, we can load the two bytes - individually and combine them efficiently. */ - - mem_lo = adjust_address (mem, QImode, byte_offset); - mem_hi = adjust_address (mem, QImode, byte_offset + 1); - - if (BYTES_BIG_ENDIAN) - { - mem_left = mem_lo; - mem_right = mem_hi; - } - else - { - mem_left = mem_hi; - mem_right = mem_lo; - } - - if (sign) - { - /* Do a signed load of the second byte and use bfins to set - the high bits of the result. */ - emit_insn (gen_zero_extendqidi2 (gen_lowpart (DImode, dest_reg), - mem_right)); - emit_insn (gen_extendqidi2 (gen_lowpart (DImode, left), mem_left)); - emit_insn (gen_insv (gen_lowpart (DImode, dest_reg), - GEN_INT (64 - 8), GEN_INT (8), - gen_lowpart (DImode, left))); - } - else - { - /* Do two unsigned loads and use v1int_l to interleave - them. */ - rtx right = gen_reg_rtx (mode); - emit_insn (gen_zero_extendqidi2 (gen_lowpart (DImode, right), - mem_right)); - emit_insn (gen_zero_extendqidi2 (gen_lowpart (DImode, left), - mem_left)); - emit_insn (gen_insn_v1int_l (gen_lowpart (DImode, dest_reg), - gen_lowpart (DImode, left), - gen_lowpart (DImode, right))); - } - - return; - } - - mema = XEXP (mem, 0); - - /* AND addresses cannot be in any alias set, since they may - implicitly alias surrounding code. Ideally we'd have some alias - set that covered all types except those with alignment 8 or - higher. */ - addr_lo = force_reg (Pmode, plus_constant (Pmode, mema, byte_offset)); - mem_lo = change_address (mem, mode, - gen_rtx_AND (GET_MODE (mema), addr_lo, - GEN_INT (-8))); - set_mem_alias_set (mem_lo, 0); - - /* Load the high word at an address that will not fault if the low - address is aligned and at the very end of a page. */ - last_byte_offset = (bit_offset + bitsize - 1) / BITS_PER_UNIT; - addr_hi = force_reg (Pmode, plus_constant (Pmode, mema, last_byte_offset)); - mem_hi = change_address (mem, mode, - gen_rtx_AND (GET_MODE (mema), addr_hi, - GEN_INT (-8))); - set_mem_alias_set (mem_hi, 0); - - if (bitsize == 64) - { - addr_lo = make_safe_from (addr_lo, dest_reg); - wide_result = dest_reg; - } - else - { - wide_result = gen_reg_rtx (mode); - } - - /* Load hi first in case dest_reg is used in mema. */ - hi = gen_reg_rtx (mode); - emit_move_insn (hi, mem_hi); - emit_move_insn (wide_result, mem_lo); - - emit_insn (gen_insn_dblalign (gen_lowpart (DImode, wide_result), - gen_lowpart (DImode, wide_result), - gen_lowpart (DImode, hi), addr_lo)); - - if (bitsize != 64) - { - rtx extracted = - extract_bit_field (gen_lowpart (DImode, wide_result), - bitsize, bit_offset % BITS_PER_UNIT, - !sign, gen_lowpart (DImode, dest_reg), - DImode, DImode, false, NULL); - - if (extracted != dest_reg) - emit_move_insn (dest_reg, gen_lowpart (DImode, extracted)); - } -} - - -/* Expand unaligned stores. */ -static void -tilegx_expand_unaligned_store (rtx mem, rtx src, HOST_WIDE_INT bitsize, - HOST_WIDE_INT bit_offset) -{ - HOST_WIDE_INT byte_offset = bit_offset / BITS_PER_UNIT; - HOST_WIDE_INT bytesize = bitsize / BITS_PER_UNIT; - HOST_WIDE_INT shift_init, shift_increment, shift_amt; - HOST_WIDE_INT i; - rtx mem_addr; - rtx store_val; - - shift_init = BYTES_BIG_ENDIAN ? (bitsize - BITS_PER_UNIT) : 0; - shift_increment = BYTES_BIG_ENDIAN ? -BITS_PER_UNIT : BITS_PER_UNIT; - - for (i = 0, shift_amt = shift_init; - i < bytesize; - i++, shift_amt += shift_increment) - { - mem_addr = adjust_address (mem, QImode, byte_offset + i); - - if (shift_amt) - { - store_val = expand_simple_binop (DImode, LSHIFTRT, - gen_lowpart (DImode, src), - GEN_INT (shift_amt), NULL, 1, - OPTAB_LIB_WIDEN); - store_val = gen_lowpart (QImode, store_val); - } - else - { - store_val = gen_lowpart (QImode, src); - } - - emit_move_insn (mem_addr, store_val); - } -} - - -/* Implement the movmisalign patterns. One of the operands is a - memory that is not naturally aligned. Emit instructions to load - it. */ -void -tilegx_expand_movmisalign (machine_mode mode, rtx *operands) -{ - if (MEM_P (operands[1])) - { - rtx tmp; - - if (register_operand (operands[0], mode)) - tmp = operands[0]; - else - tmp = gen_reg_rtx (mode); - - tilegx_expand_unaligned_load (tmp, operands[1], GET_MODE_BITSIZE (mode), - 0, true); - - if (tmp != operands[0]) - emit_move_insn (operands[0], tmp); - } - else if (MEM_P (operands[0])) - { - if (!reg_or_0_operand (operands[1], mode)) - operands[1] = force_reg (mode, operands[1]); - - tilegx_expand_unaligned_store (operands[0], operands[1], - GET_MODE_BITSIZE (mode), 0); - } - else - gcc_unreachable (); - -} - - -/* Implement the allocate_stack pattern (alloca). */ -void -tilegx_allocate_stack (rtx op0, rtx op1) -{ - /* Technically the correct way to initialize chain_loc is with - * gen_frame_mem() instead of gen_rtx_MEM(), but gen_frame_mem() - * sets the alias_set to that of a frame reference. Some of our - * tests rely on some unsafe assumption about when the chaining - * update is done, we need to be conservative about reordering the - * chaining instructions. - */ - rtx fp_addr = gen_reg_rtx (Pmode); - rtx fp_value = gen_reg_rtx (Pmode); - rtx fp_loc; - - emit_move_insn (fp_addr, gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD))); - - fp_loc = gen_frame_mem (Pmode, fp_addr); - - emit_move_insn (fp_value, fp_loc); - - op1 = force_reg (Pmode, op1); - - emit_move_insn (stack_pointer_rtx, - gen_rtx_MINUS (Pmode, stack_pointer_rtx, op1)); - - emit_move_insn (fp_addr, gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD))); - - fp_loc = gen_frame_mem (Pmode, fp_addr); - - emit_move_insn (fp_loc, fp_value); - - emit_move_insn (op0, virtual_stack_dynamic_rtx); -} - - - -/* Multiplies */ - - -/* Returns the insn_code in ENTRY. */ -static enum insn_code -tilegx_multiply_get_opcode (const struct tilegx_multiply_insn_seq_entry - *entry) -{ - return tilegx_multiply_insn_seq_decode_opcode[entry->compressed_opcode]; -} - - -/* Returns the length of the 'op' array. */ -static int -tilegx_multiply_get_num_ops (const struct tilegx_multiply_insn_seq *seq) -{ - /* The array either uses all of its allocated slots or is terminated - by a bogus opcode. Either way, the array size is the index of the - last valid opcode plus one. */ - int i; - for (i = tilegx_multiply_insn_seq_MAX_OPERATIONS - 1; i >= 0; i--) - if (tilegx_multiply_get_opcode (&seq->op[i]) != CODE_FOR_nothing) - return i + 1; - - /* An empty array is not allowed. */ - gcc_unreachable (); -} - - -/* We precompute a number of expression trees for multiplying by - constants. This generates code for such an expression tree by - walking through the nodes in the tree (which are conveniently - pre-linearized) and emitting an instruction for each one. */ -static void -tilegx_expand_constant_multiply_given_sequence (rtx result, rtx src, - const struct - tilegx_multiply_insn_seq *seq) -{ - int i; - int num_ops; - - /* Keep track of the subexpressions computed so far, so later - instructions can refer to them. We seed the array with zero and - the value being multiplied. */ - int num_subexprs = 2; - rtx subexprs[tilegx_multiply_insn_seq_MAX_OPERATIONS + 2]; - subexprs[0] = const0_rtx; - subexprs[1] = src; - - /* Determine how many instructions we are going to generate. */ - num_ops = tilegx_multiply_get_num_ops (seq); - gcc_assert (num_ops > 0 - && num_ops <= tilegx_multiply_insn_seq_MAX_OPERATIONS); - - for (i = 0; i < num_ops; i++) - { - const struct tilegx_multiply_insn_seq_entry *entry = &seq->op[i]; - - /* Figure out where to store the output of this instruction. */ - const bool is_last_op = (i + 1 == num_ops); - rtx out = is_last_op ? result : gen_reg_rtx (DImode); - - enum insn_code opcode = tilegx_multiply_get_opcode (entry); - if (opcode == CODE_FOR_ashldi3) - { - /* Handle shift by immediate. This is a special case because - the meaning of the second operand is a constant shift - count rather than an operand index. */ - - /* Make sure the shift count is in range. Zero should not - happen. */ - const int shift_count = entry->rhs; - gcc_assert (shift_count > 0 && shift_count < 64); - - /* Emit the actual instruction. */ - emit_insn (GEN_FCN (opcode) - (out, subexprs[entry->lhs], - gen_rtx_CONST_INT (DImode, shift_count))); - } - else - { - /* Handle a normal two-operand instruction, such as add or - shl1add. */ - - /* Make sure we are referring to a previously computed - subexpression. */ - gcc_assert (entry->rhs < num_subexprs); - - /* Emit the actual instruction. */ - emit_insn (GEN_FCN (opcode) - (out, subexprs[entry->lhs], subexprs[entry->rhs])); - } - - /* Record this subexpression for use by later expressions. */ - subexprs[num_subexprs++] = out; - } -} - - -/* bsearch helper function. */ -static int -tilegx_compare_multipliers (const void *key, const void *t) -{ - long long delta = - (*(const long long *) key - - ((const struct tilegx_multiply_insn_seq *) t)->multiplier); - return (delta < 0) ? -1 : (delta > 0); -} - - -/* Returns the tilegx_multiply_insn_seq for multiplier, or NULL if none - exists. */ -static const struct tilegx_multiply_insn_seq * -tilegx_find_multiply_insn_seq_for_constant (long long multiplier) -{ - return ((const struct tilegx_multiply_insn_seq *) - bsearch (&multiplier, tilegx_multiply_insn_seq_table, - tilegx_multiply_insn_seq_table_size, - sizeof tilegx_multiply_insn_seq_table[0], - tilegx_compare_multipliers)); -} - - -/* Try to a expand constant multiply in DImode by looking it up in a - precompiled table. OP0 is the result operand, OP1 is the source - operand, and MULTIPLIER is the value of the constant. Return true - if it succeeds. */ -static bool -tilegx_expand_const_muldi (rtx op0, rtx op1, long long multiplier) -{ - /* See if we have precomputed an efficient way to multiply by this - constant. */ - const struct tilegx_multiply_insn_seq *seq = - tilegx_find_multiply_insn_seq_for_constant (multiplier); - if (seq != NULL) - { - tilegx_expand_constant_multiply_given_sequence (op0, op1, seq); - return true; - } - else - return false; -} - - -/* Expand the muldi pattern. */ -bool -tilegx_expand_muldi (rtx op0, rtx op1, rtx op2) -{ - if (CONST_INT_P (op2)) - { - HOST_WIDE_INT n = trunc_int_for_mode (INTVAL (op2), DImode); - return tilegx_expand_const_muldi (op0, op1, n); - } - return false; -} - - -/* Expand a high multiply pattern in DImode. RESULT, OP1, OP2 are the - operands, and SIGN is true if it's a signed multiply, and false if - it's an unsigned multiply. */ -static void -tilegx_expand_high_multiply (rtx result, rtx op1, rtx op2, bool sign) -{ - rtx tmp0 = gen_reg_rtx (DImode); - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - rtx tmp3 = gen_reg_rtx (DImode); - rtx tmp4 = gen_reg_rtx (DImode); - rtx tmp5 = gen_reg_rtx (DImode); - rtx tmp6 = gen_reg_rtx (DImode); - rtx tmp7 = gen_reg_rtx (DImode); - rtx tmp8 = gen_reg_rtx (DImode); - rtx tmp9 = gen_reg_rtx (DImode); - rtx tmp10 = gen_reg_rtx (DImode); - rtx tmp11 = gen_reg_rtx (DImode); - rtx tmp12 = gen_reg_rtx (DImode); - rtx tmp13 = gen_reg_rtx (DImode); - rtx result_lo = gen_reg_rtx (DImode); - - if (sign) - { - emit_insn (gen_insn_mul_hs_lu (tmp0, op1, op2)); - emit_insn (gen_insn_mul_hs_lu (tmp1, op2, op1)); - emit_insn (gen_insn_mul_lu_lu (tmp2, op1, op2)); - emit_insn (gen_insn_mul_hs_hs (tmp3, op1, op2)); - } - else - { - emit_insn (gen_insn_mul_hu_lu (tmp0, op1, op2)); - emit_insn (gen_insn_mul_hu_lu (tmp1, op2, op1)); - emit_insn (gen_insn_mul_lu_lu (tmp2, op1, op2)); - emit_insn (gen_insn_mul_hu_hu (tmp3, op1, op2)); - } - - emit_move_insn (tmp4, (gen_rtx_ASHIFT (DImode, tmp0, GEN_INT (32)))); - - emit_move_insn (tmp5, (gen_rtx_ASHIFT (DImode, tmp1, GEN_INT (32)))); - - emit_move_insn (tmp6, (gen_rtx_PLUS (DImode, tmp4, tmp5))); - emit_move_insn (result_lo, (gen_rtx_PLUS (DImode, tmp2, tmp6))); - - emit_move_insn (tmp7, gen_rtx_LTU (DImode, tmp6, tmp4)); - emit_move_insn (tmp8, gen_rtx_LTU (DImode, result_lo, tmp2)); - - if (sign) - { - emit_move_insn (tmp9, (gen_rtx_ASHIFTRT (DImode, tmp0, GEN_INT (32)))); - emit_move_insn (tmp10, (gen_rtx_ASHIFTRT (DImode, tmp1, GEN_INT (32)))); - } - else - { - emit_move_insn (tmp9, (gen_rtx_LSHIFTRT (DImode, tmp0, GEN_INT (32)))); - emit_move_insn (tmp10, (gen_rtx_LSHIFTRT (DImode, tmp1, GEN_INT (32)))); - } - - emit_move_insn (tmp11, (gen_rtx_PLUS (DImode, tmp3, tmp7))); - emit_move_insn (tmp12, (gen_rtx_PLUS (DImode, tmp8, tmp9))); - emit_move_insn (tmp13, (gen_rtx_PLUS (DImode, tmp11, tmp12))); - emit_move_insn (result, (gen_rtx_PLUS (DImode, tmp13, tmp10))); -} - - -/* Implement smuldi3_highpart. */ -void -tilegx_expand_smuldi3_highpart (rtx op0, rtx op1, rtx op2) -{ - tilegx_expand_high_multiply (op0, op1, op2, true); -} - - -/* Implement umuldi3_highpart. */ -void -tilegx_expand_umuldi3_highpart (rtx op0, rtx op1, rtx op2) -{ - tilegx_expand_high_multiply (op0, op1, op2, false); -} - - - -/* Compare and branches */ - -/* Produce the rtx yielding a bool for a floating point - comparison. */ -static bool -tilegx_emit_fp_setcc (rtx res, enum rtx_code code, machine_mode mode, - rtx op0, rtx op1) -{ - /* TODO: Certain compares again constants can be done using entirely - integer operations. But you have to get the special cases right - e.g. NaN, +0 == -0, etc. */ - - rtx flags; - int flag_index; - rtx a = force_reg (DImode, gen_lowpart (DImode, op0)); - rtx b = force_reg (DImode, gen_lowpart (DImode, op1)); - - flags = gen_reg_rtx (DImode); - - if (mode == SFmode) - { - emit_insn (gen_insn_fsingle_add1 (flags, a, b)); - } - else - { - gcc_assert (mode == DFmode); - emit_insn (gen_insn_fdouble_add_flags (flags, a, b)); - } - - switch (code) - { - case EQ: flag_index = 30; break; - case NE: flag_index = 31; break; - case LE: flag_index = 27; break; - case LT: flag_index = 26; break; - case GE: flag_index = 29; break; - case GT: flag_index = 28; break; - default: gcc_unreachable (); - } - - gcc_assert (GET_MODE (res) == DImode); - emit_move_insn (res, gen_rtx_ZERO_EXTRACT (DImode, flags, GEN_INT (1), - GEN_INT (flag_index))); - return true; -} - - -/* Certain simplifications can be done to make invalid setcc - operations valid. Return the final comparison, or NULL if we can't - work. */ -static bool -tilegx_emit_setcc_internal (rtx res, enum rtx_code code, rtx op0, rtx op1, - machine_mode cmp_mode) -{ - rtx tmp; - bool swap = false; - - if (cmp_mode == SFmode || cmp_mode == DFmode) - return tilegx_emit_fp_setcc (res, code, cmp_mode, op0, op1); - - /* The general case: fold the comparison code to the types of - compares that we have, choosing the branch as necessary. */ - - switch (code) - { - case EQ: - case NE: - case LE: - case LT: - case LEU: - case LTU: - /* We have these compares. */ - break; - - case GE: - case GT: - case GEU: - case GTU: - /* We do not have these compares, so we reverse the - operands. */ - swap = true; - break; - - default: - /* We should not have called this with any other code. */ - gcc_unreachable (); - } - - if (swap) - { - code = swap_condition (code); - tmp = op0, op0 = op1, op1 = tmp; - } - - if (!reg_or_0_operand (op0, cmp_mode)) - op0 = force_reg (cmp_mode, op0); - - if (!CONST_INT_P (op1) && !register_operand (op1, cmp_mode)) - op1 = force_reg (cmp_mode, op1); - - /* Return the setcc comparison. */ - emit_insn (gen_rtx_SET (res, gen_rtx_fmt_ee (code, DImode, op0, op1))); - - return true; -} - - -/* Implement cstore patterns. */ -bool -tilegx_emit_setcc (rtx operands[], machine_mode cmp_mode) -{ - return - tilegx_emit_setcc_internal (operands[0], GET_CODE (operands[1]), - operands[2], operands[3], cmp_mode); -} - - -/* Return whether CODE is a signed comparison. */ -static bool -signed_compare_p (enum rtx_code code) -{ - return (code == EQ || code == NE || code == LT || code == LE - || code == GT || code == GE); -} - - -/* Generate the comparison for a DImode conditional branch. */ -static rtx -tilegx_emit_cc_test (enum rtx_code code, rtx op0, rtx op1, - machine_mode cmp_mode, bool eq_ne_only) -{ - enum rtx_code branch_code; - rtx temp; - - if (cmp_mode == SFmode || cmp_mode == DFmode) - { - /* Compute a boolean saying whether the comparison is true. */ - temp = gen_reg_rtx (DImode); - tilegx_emit_setcc_internal (temp, code, op0, op1, cmp_mode); - - /* Test that flag. */ - return gen_rtx_fmt_ee (NE, VOIDmode, temp, const0_rtx); - } - - /* Check for a compare against zero using a comparison we can do - directly. */ - if (op1 == const0_rtx - && (code == EQ || code == NE - || (!eq_ne_only && signed_compare_p (code)))) - { - op0 = force_reg (cmp_mode, op0); - return gen_rtx_fmt_ee (code, VOIDmode, op0, const0_rtx); - } - - /* The general case: fold the comparison code to the types of - compares that we have, choosing the branch as necessary. */ - switch (code) - { - case EQ: - case LE: - case LT: - case LEU: - case LTU: - /* We have these compares. */ - branch_code = NE; - break; - - case NE: - case GE: - case GT: - case GEU: - case GTU: - /* These must be reversed (except NE, but let's - canonicalize). */ - code = reverse_condition (code); - branch_code = EQ; - break; - - default: - gcc_unreachable (); - } - - if (CONST_INT_P (op1) && (!satisfies_constraint_I (op1) || code == LEU)) - { - HOST_WIDE_INT n = INTVAL (op1); - - switch (code) - { - case EQ: - /* Subtract off the value we want to compare against and see - if we get zero. This is cheaper than creating a constant - in a register. Except that subtracting -128 is more - expensive than seqi to -128, so we leave that alone. */ - /* ??? Don't do this when comparing against symbols, - otherwise we'll reduce (&x == 0x1234) to (&x-0x1234 == - 0), which will be declared false out of hand (at least - for non-weak). */ - if (n != -128 - && add_operand (GEN_INT (-n), DImode) - && !(symbolic_operand (op0, VOIDmode) - || (REG_P (op0) && REG_POINTER (op0)))) - { - /* TODO: Use a SIMD add immediate to hit zero for tiled - constants in a single instruction. */ - if (GET_MODE (op0) != DImode) - { - /* Convert to DImode so we can use addli. Note that - this will not actually generate any code because - sign extension from SI -> DI is a no-op. I don't - know if it's safe just to make a paradoxical - subreg here though. */ - rtx temp2 = gen_reg_rtx (DImode); - emit_insn (gen_extendsidi2 (temp2, op0)); - op0 = temp2; - } - else - { - op0 = force_reg (DImode, op0); - } - temp = gen_reg_rtx (DImode); - emit_move_insn (temp, gen_rtx_PLUS (DImode, op0, GEN_INT (-n))); - return gen_rtx_fmt_ee (reverse_condition (branch_code), - VOIDmode, temp, const0_rtx); - } - break; - - case LEU: - if (n == -1) - break; - /* FALLTHRU */ - - case LTU: - /* Change ((unsigned)x < 0x1000) into !((int)x >> 12), etc. - We use arithmetic shift right because it's a 3-wide op, - while logical shift right is not. */ - { - int first = exact_log2 (code == LTU ? n : n + 1); - if (first != -1) - { - op0 = force_reg (cmp_mode, op0); - temp = gen_reg_rtx (cmp_mode); - emit_move_insn (temp, - gen_rtx_ASHIFTRT (cmp_mode, op0, - GEN_INT (first))); - return gen_rtx_fmt_ee (reverse_condition (branch_code), - VOIDmode, temp, const0_rtx); - } - } - break; - - default: - break; - } - } - - /* Compute a flag saying whether we should branch. */ - temp = gen_reg_rtx (DImode); - tilegx_emit_setcc_internal (temp, code, op0, op1, cmp_mode); - - /* Return the branch comparison. */ - return gen_rtx_fmt_ee (branch_code, VOIDmode, temp, const0_rtx); -} - - -/* Generate the comparison for a conditional branch. */ -void -tilegx_emit_conditional_branch (rtx operands[], machine_mode cmp_mode) -{ - rtx cmp_rtx = - tilegx_emit_cc_test (GET_CODE (operands[0]), operands[1], operands[2], - cmp_mode, false); - rtx branch_rtx = gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, cmp_rtx, - gen_rtx_LABEL_REF - (VOIDmode, - operands[3]), - pc_rtx)); - emit_jump_insn (branch_rtx); -} - - -/* Implement the movcc pattern. */ -rtx -tilegx_emit_conditional_move (rtx cmp) -{ - return - tilegx_emit_cc_test (GET_CODE (cmp), XEXP (cmp, 0), XEXP (cmp, 1), - GET_MODE (XEXP (cmp, 0)), true); -} - - -/* Return true if INSN is annotated with a REG_BR_PROB note that - indicates it's a branch that's predicted taken. */ -static bool -cbranch_predicted_p (rtx_insn *insn) -{ - rtx x = find_reg_note (insn, REG_BR_PROB, 0); - - if (x) - { - return profile_probability::from_reg_br_prob_note (XINT (x, 0)) - >= profile_probability::even (); - } - - return false; -} - - -/* Output assembly code for a specific branch instruction, appending - the branch prediction flag to the opcode if appropriate. */ -static const char * -tilegx_output_simple_cbranch_with_opcode (rtx_insn *insn, const char *opcode, - int regop, bool reverse_predicted) -{ - static char buf[64]; - sprintf (buf, "%s%s\t%%r%d, %%l0", opcode, - (cbranch_predicted_p (insn) ^ reverse_predicted) ? "t" : "", - regop); - return buf; -} - - -/* Output assembly code for a specific branch instruction, appending - the branch prediction flag to the opcode if appropriate. */ -const char * -tilegx_output_cbranch_with_opcode (rtx_insn *insn, rtx *operands, - const char *opcode, - const char *rev_opcode, int regop) -{ - const char *branch_if_false; - rtx taken, not_taken; - bool is_simple_branch; - - gcc_assert (LABEL_P (operands[0])); - - is_simple_branch = true; - if (INSN_ADDRESSES_SET_P ()) - { - int from_addr = INSN_ADDRESSES (INSN_UID (insn)); - int to_addr = INSN_ADDRESSES (INSN_UID (operands[0])); - int delta = to_addr - from_addr; - is_simple_branch = IN_RANGE (delta, -524288, 524280); - } - - if (is_simple_branch) - { - /* Just a simple conditional branch. */ - return - tilegx_output_simple_cbranch_with_opcode (insn, opcode, regop, false); - } - - /* Generate a reversed branch around a direct jump. This fallback - does not use branch-likely instructions. */ - not_taken = gen_label_rtx (); - taken = operands[0]; - - /* Generate the reversed branch to NOT_TAKEN. */ - operands[0] = not_taken; - branch_if_false = - tilegx_output_simple_cbranch_with_opcode (insn, rev_opcode, regop, true); - output_asm_insn (branch_if_false, operands); - - output_asm_insn ("j\t%l0", &taken); - - /* Output NOT_TAKEN. */ - targetm.asm_out.internal_label (asm_out_file, "L", - CODE_LABEL_NUMBER (not_taken)); - return ""; -} - - -/* Output assembly code for a conditional branch instruction. */ -const char * -tilegx_output_cbranch (rtx_insn *insn, rtx *operands, bool reversed) -{ - enum rtx_code code = GET_CODE (operands[1]); - const char *opcode; - const char *rev_opcode; - - if (reversed) - code = reverse_condition (code); - - switch (code) - { - case NE: - opcode = "bnez"; - rev_opcode = "beqz"; - break; - case EQ: - opcode = "beqz"; - rev_opcode = "bnez"; - break; - case GE: - opcode = "bgez"; - rev_opcode = "bltz"; - break; - case GT: - opcode = "bgtz"; - rev_opcode = "blez"; - break; - case LE: - opcode = "blez"; - rev_opcode = "bgtz"; - break; - case LT: - opcode = "bltz"; - rev_opcode = "bgez"; - break; - default: - gcc_unreachable (); - } - - return tilegx_output_cbranch_with_opcode (insn, operands, opcode, - rev_opcode, 2); -} - - -/* Implement the tablejump pattern. */ -void -tilegx_expand_tablejump (rtx op0, rtx op1) -{ - if (flag_pic) - { - rtx temp = gen_reg_rtx (Pmode); - rtx temp2 = gen_reg_rtx (Pmode); - - tilegx_compute_pcrel_address (temp, gen_rtx_LABEL_REF (Pmode, op1)); - emit_move_insn (temp2, - gen_rtx_PLUS (Pmode, - convert_to_mode (Pmode, op0, false), - temp)); - op0 = temp2; - } - - emit_jump_insn (gen_tablejump_aux (op0, op1)); -} - - -/* Emit barrier before an atomic, as needed for the memory MODEL. */ -void -tilegx_pre_atomic_barrier (enum memmodel model) -{ - if (need_atomic_barrier_p (model, true)) - emit_insn (gen_memory_barrier ()); -} - - -/* Emit barrier after an atomic, as needed for the memory MODEL. */ -void -tilegx_post_atomic_barrier (enum memmodel model) -{ - if (need_atomic_barrier_p (model, false)) - emit_insn (gen_memory_barrier ()); -} - - - -/* Expand a builtin vector binary op, by calling gen function GEN with - operands in the proper modes. DEST is converted to DEST_MODE, and - src0 and src1 (if DO_SRC1 is true) is converted to SRC_MODE. */ -void -tilegx_expand_builtin_vector_binop (rtx (*gen) (rtx, rtx, rtx), - machine_mode dest_mode, - rtx dest, - machine_mode src_mode, - rtx src0, rtx src1, bool do_src1) -{ - dest = gen_lowpart (dest_mode, dest); - - if (src0 == const0_rtx) - src0 = CONST0_RTX (src_mode); - else - src0 = gen_lowpart (src_mode, src0); - - if (do_src1) - { - if (src1 == const0_rtx) - src1 = CONST0_RTX (src_mode); - else - src1 = gen_lowpart (src_mode, src1); - } - - emit_insn ((*gen) (dest, src0, src1)); -} - - - -/* Intrinsics */ - - -struct tile_builtin_info -{ - enum insn_code icode; - tree fndecl; -}; - -static struct tile_builtin_info tilegx_builtin_info[TILEGX_BUILTIN_max] = { - { CODE_FOR_adddi3, NULL }, /* add */ - { CODE_FOR_addsi3, NULL }, /* addx */ - { CODE_FOR_ssaddsi3, NULL }, /* addxsc */ - { CODE_FOR_anddi3, NULL }, /* and */ - { CODE_FOR_insn_bfexts, NULL }, /* bfexts */ - { CODE_FOR_insn_bfextu, NULL }, /* bfextu */ - { CODE_FOR_insn_bfins, NULL }, /* bfins */ - { CODE_FOR_clzdi2, NULL }, /* clz */ - { CODE_FOR_insn_cmoveqz, NULL }, /* cmoveqz */ - { CODE_FOR_insn_cmovnez, NULL }, /* cmovnez */ - { CODE_FOR_insn_cmpeq_didi, NULL }, /* cmpeq */ - { CODE_FOR_insn_cmpexch, NULL }, /* cmpexch */ - { CODE_FOR_insn_cmpexch4, NULL }, /* cmpexch4 */ - { CODE_FOR_insn_cmples_didi, NULL }, /* cmples */ - { CODE_FOR_insn_cmpleu_didi, NULL }, /* cmpleu */ - { CODE_FOR_insn_cmplts_didi, NULL }, /* cmplts */ - { CODE_FOR_insn_cmpltu_didi, NULL }, /* cmpltu */ - { CODE_FOR_insn_cmpne_didi, NULL }, /* cmpne */ - { CODE_FOR_insn_cmul, NULL }, /* cmul */ - { CODE_FOR_insn_cmula, NULL }, /* cmula */ - { CODE_FOR_insn_cmulaf, NULL }, /* cmulaf */ - { CODE_FOR_insn_cmulf, NULL }, /* cmulf */ - { CODE_FOR_insn_cmulfr, NULL }, /* cmulfr */ - { CODE_FOR_insn_cmulh, NULL }, /* cmulh */ - { CODE_FOR_insn_cmulhr, NULL }, /* cmulhr */ - { CODE_FOR_insn_crc32_32, NULL }, /* crc32_32 */ - { CODE_FOR_insn_crc32_8, NULL }, /* crc32_8 */ - { CODE_FOR_ctzdi2, NULL }, /* ctz */ - { CODE_FOR_insn_dblalign, NULL }, /* dblalign */ - { CODE_FOR_insn_dblalign2, NULL }, /* dblalign2 */ - { CODE_FOR_insn_dblalign4, NULL }, /* dblalign4 */ - { CODE_FOR_insn_dblalign6, NULL }, /* dblalign6 */ - { CODE_FOR_insn_drain, NULL }, /* drain */ - { CODE_FOR_insn_dtlbpr, NULL }, /* dtlbpr */ - { CODE_FOR_insn_exch, NULL }, /* exch */ - { CODE_FOR_insn_exch4, NULL }, /* exch4 */ - { CODE_FOR_insn_fdouble_add_flags, NULL }, /* fdouble_add_flags */ - { CODE_FOR_insn_fdouble_addsub, NULL }, /* fdouble_addsub */ - { CODE_FOR_insn_fdouble_mul_flags, NULL }, /* fdouble_mul_flags */ - { CODE_FOR_insn_fdouble_pack1, NULL }, /* fdouble_pack1 */ - { CODE_FOR_insn_fdouble_pack2, NULL }, /* fdouble_pack2 */ - { CODE_FOR_insn_fdouble_sub_flags, NULL }, /* fdouble_sub_flags */ - { CODE_FOR_insn_fdouble_unpack_max, NULL }, /* fdouble_unpack_max */ - { CODE_FOR_insn_fdouble_unpack_min, NULL }, /* fdouble_unpack_min */ - { CODE_FOR_insn_fetchadd, NULL }, /* fetchadd */ - { CODE_FOR_insn_fetchadd4, NULL }, /* fetchadd4 */ - { CODE_FOR_insn_fetchaddgez, NULL }, /* fetchaddgez */ - { CODE_FOR_insn_fetchaddgez4, NULL }, /* fetchaddgez4 */ - { CODE_FOR_insn_fetchand, NULL }, /* fetchand */ - { CODE_FOR_insn_fetchand4, NULL }, /* fetchand4 */ - { CODE_FOR_insn_fetchor, NULL }, /* fetchor */ - { CODE_FOR_insn_fetchor4, NULL }, /* fetchor4 */ - { CODE_FOR_insn_finv, NULL }, /* finv */ - { CODE_FOR_insn_flush, NULL }, /* flush */ - { CODE_FOR_insn_flushwb, NULL }, /* flushwb */ - { CODE_FOR_insn_fnop, NULL }, /* fnop */ - { CODE_FOR_insn_fsingle_add1, NULL }, /* fsingle_add1 */ - { CODE_FOR_insn_fsingle_addsub2, NULL }, /* fsingle_addsub2 */ - { CODE_FOR_insn_fsingle_mul1, NULL }, /* fsingle_mul1 */ - { CODE_FOR_insn_fsingle_mul2, NULL }, /* fsingle_mul2 */ - { CODE_FOR_insn_fsingle_pack1, NULL }, /* fsingle_pack1 */ - { CODE_FOR_insn_fsingle_pack2, NULL }, /* fsingle_pack2 */ - { CODE_FOR_insn_fsingle_sub1, NULL }, /* fsingle_sub1 */ - { CODE_FOR_insn_icoh, NULL }, /* icoh */ - { CODE_FOR_insn_ill, NULL }, /* ill */ - { CODE_FOR_insn_info, NULL }, /* info */ - { CODE_FOR_insn_infol, NULL }, /* infol */ - { CODE_FOR_insn_inv, NULL }, /* inv */ - { CODE_FOR_insn_ld, NULL }, /* ld */ - { CODE_FOR_insn_ld1s, NULL }, /* ld1s */ - { CODE_FOR_insn_ld1u, NULL }, /* ld1u */ - { CODE_FOR_insn_ld2s, NULL }, /* ld2s */ - { CODE_FOR_insn_ld2u, NULL }, /* ld2u */ - { CODE_FOR_insn_ld4s, NULL }, /* ld4s */ - { CODE_FOR_insn_ld4u, NULL }, /* ld4u */ - { CODE_FOR_insn_ldna, NULL }, /* ldna */ - { CODE_FOR_insn_ldnt, NULL }, /* ldnt */ - { CODE_FOR_insn_ldnt1s, NULL }, /* ldnt1s */ - { CODE_FOR_insn_ldnt1u, NULL }, /* ldnt1u */ - { CODE_FOR_insn_ldnt2s, NULL }, /* ldnt2s */ - { CODE_FOR_insn_ldnt2u, NULL }, /* ldnt2u */ - { CODE_FOR_insn_ldnt4s, NULL }, /* ldnt4s */ - { CODE_FOR_insn_ldnt4u, NULL }, /* ldnt4u */ - { CODE_FOR_insn_ld_L2, NULL }, /* ld_L2 */ - { CODE_FOR_insn_ld1s_L2, NULL }, /* ld1s_L2 */ - { CODE_FOR_insn_ld1u_L2, NULL }, /* ld1u_L2 */ - { CODE_FOR_insn_ld2s_L2, NULL }, /* ld2s_L2 */ - { CODE_FOR_insn_ld2u_L2, NULL }, /* ld2u_L2 */ - { CODE_FOR_insn_ld4s_L2, NULL }, /* ld4s_L2 */ - { CODE_FOR_insn_ld4u_L2, NULL }, /* ld4u_L2 */ - { CODE_FOR_insn_ldna_L2, NULL }, /* ldna_L2 */ - { CODE_FOR_insn_ldnt_L2, NULL }, /* ldnt_L2 */ - { CODE_FOR_insn_ldnt1s_L2, NULL }, /* ldnt1s_L2 */ - { CODE_FOR_insn_ldnt1u_L2, NULL }, /* ldnt1u_L2 */ - { CODE_FOR_insn_ldnt2s_L2, NULL }, /* ldnt2s_L2 */ - { CODE_FOR_insn_ldnt2u_L2, NULL }, /* ldnt2u_L2 */ - { CODE_FOR_insn_ldnt4s_L2, NULL }, /* ldnt4s_L2 */ - { CODE_FOR_insn_ldnt4u_L2, NULL }, /* ldnt4u_L2 */ - { CODE_FOR_insn_ld_miss, NULL }, /* ld_miss */ - { CODE_FOR_insn_ld1s_miss, NULL }, /* ld1s_miss */ - { CODE_FOR_insn_ld1u_miss, NULL }, /* ld1u_miss */ - { CODE_FOR_insn_ld2s_miss, NULL }, /* ld2s_miss */ - { CODE_FOR_insn_ld2u_miss, NULL }, /* ld2u_miss */ - { CODE_FOR_insn_ld4s_miss, NULL }, /* ld4s_miss */ - { CODE_FOR_insn_ld4u_miss, NULL }, /* ld4u_miss */ - { CODE_FOR_insn_ldna_miss, NULL }, /* ldna_miss */ - { CODE_FOR_insn_ldnt_miss, NULL }, /* ldnt_miss */ - { CODE_FOR_insn_ldnt1s_miss, NULL }, /* ldnt1s_miss */ - { CODE_FOR_insn_ldnt1u_miss, NULL }, /* ldnt1u_miss */ - { CODE_FOR_insn_ldnt2s_miss, NULL }, /* ldnt2s_miss */ - { CODE_FOR_insn_ldnt2u_miss, NULL }, /* ldnt2u_miss */ - { CODE_FOR_insn_ldnt4s_miss, NULL }, /* ldnt4s_miss */ - { CODE_FOR_insn_ldnt4u_miss, NULL }, /* ldnt4u_miss */ - { CODE_FOR_insn_lnk, NULL }, /* lnk */ - { CODE_FOR_memory_barrier, NULL }, /* mf */ - { CODE_FOR_insn_mfspr, NULL }, /* mfspr */ - { CODE_FOR_insn_mm, NULL }, /* mm */ - { CODE_FOR_insn_mnz, NULL }, /* mnz */ - { CODE_FOR_movdi, NULL }, /* move */ - { CODE_FOR_insn_mtspr, NULL }, /* mtspr */ - { CODE_FOR_insn_mul_hs_hs, NULL }, /* mul_hs_hs */ - { CODE_FOR_insn_mul_hs_hu, NULL }, /* mul_hs_hu */ - { CODE_FOR_insn_mul_hs_ls, NULL }, /* mul_hs_ls */ - { CODE_FOR_insn_mul_hs_lu, NULL }, /* mul_hs_lu */ - { CODE_FOR_insn_mul_hu_hu, NULL }, /* mul_hu_hu */ - { CODE_FOR_insn_mul_hu_ls, NULL }, /* mul_hu_ls */ - { CODE_FOR_insn_mul_hu_lu, NULL }, /* mul_hu_lu */ - { CODE_FOR_insn_mul_ls_ls, NULL }, /* mul_ls_ls */ - { CODE_FOR_insn_mul_ls_lu, NULL }, /* mul_ls_lu */ - { CODE_FOR_insn_mul_lu_lu, NULL }, /* mul_lu_lu */ - { CODE_FOR_insn_mula_hs_hs, NULL }, /* mula_hs_hs */ - { CODE_FOR_insn_mula_hs_hu, NULL }, /* mula_hs_hu */ - { CODE_FOR_insn_mula_hs_ls, NULL }, /* mula_hs_ls */ - { CODE_FOR_insn_mula_hs_lu, NULL }, /* mula_hs_lu */ - { CODE_FOR_insn_mula_hu_hu, NULL }, /* mula_hu_hu */ - { CODE_FOR_insn_mula_hu_ls, NULL }, /* mula_hu_ls */ - { CODE_FOR_insn_mula_hu_lu, NULL }, /* mula_hu_lu */ - { CODE_FOR_insn_mula_ls_ls, NULL }, /* mula_ls_ls */ - { CODE_FOR_insn_mula_ls_lu, NULL }, /* mula_ls_lu */ - { CODE_FOR_insn_mula_lu_lu, NULL }, /* mula_lu_lu */ - { CODE_FOR_insn_mulax, NULL }, /* mulax */ - { CODE_FOR_mulsi3, NULL }, /* mulx */ - { CODE_FOR_insn_mz, NULL }, /* mz */ - { CODE_FOR_insn_nap, NULL }, /* nap */ - { CODE_FOR_nop, NULL }, /* nop */ - { CODE_FOR_insn_nor_di, NULL }, /* nor */ - { CODE_FOR_iordi3, NULL }, /* or */ - { CODE_FOR_popcountdi2, NULL }, /* pcnt */ - { CODE_FOR_insn_prefetch_l1, NULL }, /* prefetch_l1 */ - { CODE_FOR_insn_prefetch_l1_fault, NULL }, /* prefetch_l1_fault */ - { CODE_FOR_insn_prefetch_l2, NULL }, /* prefetch_l2 */ - { CODE_FOR_insn_prefetch_l2_fault, NULL }, /* prefetch_l2_fault */ - { CODE_FOR_insn_prefetch_l3, NULL }, /* prefetch_l3 */ - { CODE_FOR_insn_prefetch_l3_fault, NULL }, /* prefetch_l3_fault */ - { CODE_FOR_insn_revbits, NULL }, /* revbits */ - { CODE_FOR_bswapdi2, NULL }, /* revbytes */ - { CODE_FOR_rotldi3, NULL }, /* rotl */ - { CODE_FOR_ashldi3, NULL }, /* shl */ - { CODE_FOR_insn_shl16insli, NULL }, /* shl16insli */ - { CODE_FOR_insn_shl1add, NULL }, /* shl1add */ - { CODE_FOR_insn_shl1addx, NULL }, /* shl1addx */ - { CODE_FOR_insn_shl2add, NULL }, /* shl2add */ - { CODE_FOR_insn_shl2addx, NULL }, /* shl2addx */ - { CODE_FOR_insn_shl3add, NULL }, /* shl3add */ - { CODE_FOR_insn_shl3addx, NULL }, /* shl3addx */ - { CODE_FOR_ashlsi3, NULL }, /* shlx */ - { CODE_FOR_ashrdi3, NULL }, /* shrs */ - { CODE_FOR_lshrdi3, NULL }, /* shru */ - { CODE_FOR_lshrsi3, NULL }, /* shrux */ - { CODE_FOR_insn_shufflebytes, NULL }, /* shufflebytes */ - { CODE_FOR_insn_shufflebytes1, NULL }, /* shufflebytes1 */ - { CODE_FOR_insn_st, NULL }, /* st */ - { CODE_FOR_insn_st1, NULL }, /* st1 */ - { CODE_FOR_insn_st2, NULL }, /* st2 */ - { CODE_FOR_insn_st4, NULL }, /* st4 */ - { CODE_FOR_insn_stnt, NULL }, /* stnt */ - { CODE_FOR_insn_stnt1, NULL }, /* stnt1 */ - { CODE_FOR_insn_stnt2, NULL }, /* stnt2 */ - { CODE_FOR_insn_stnt4, NULL }, /* stnt4 */ - { CODE_FOR_subdi3, NULL }, /* sub */ - { CODE_FOR_subsi3, NULL }, /* subx */ - { CODE_FOR_sssubsi3, NULL }, /* subxsc */ - { CODE_FOR_insn_tblidxb0, NULL }, /* tblidxb0 */ - { CODE_FOR_insn_tblidxb1, NULL }, /* tblidxb1 */ - { CODE_FOR_insn_tblidxb2, NULL }, /* tblidxb2 */ - { CODE_FOR_insn_tblidxb3, NULL }, /* tblidxb3 */ - { CODE_FOR_insn_v1add, NULL }, /* v1add */ - { CODE_FOR_insn_v1addi, NULL }, /* v1addi */ - { CODE_FOR_insn_v1adduc, NULL }, /* v1adduc */ - { CODE_FOR_insn_v1adiffu, NULL }, /* v1adiffu */ - { CODE_FOR_insn_v1avgu, NULL }, /* v1avgu */ - { CODE_FOR_insn_v1cmpeq, NULL }, /* v1cmpeq */ - { CODE_FOR_insn_v1cmpeqi, NULL }, /* v1cmpeqi */ - { CODE_FOR_insn_v1cmples, NULL }, /* v1cmples */ - { CODE_FOR_insn_v1cmpleu, NULL }, /* v1cmpleu */ - { CODE_FOR_insn_v1cmplts, NULL }, /* v1cmplts */ - { CODE_FOR_insn_v1cmpltsi, NULL }, /* v1cmpltsi */ - { CODE_FOR_insn_v1cmpltu, NULL }, /* v1cmpltu */ - { CODE_FOR_insn_v1cmpltui, NULL }, /* v1cmpltui */ - { CODE_FOR_insn_v1cmpne, NULL }, /* v1cmpne */ - { CODE_FOR_insn_v1ddotpu, NULL }, /* v1ddotpu */ - { CODE_FOR_insn_v1ddotpua, NULL }, /* v1ddotpua */ - { CODE_FOR_insn_v1ddotpus, NULL }, /* v1ddotpus */ - { CODE_FOR_insn_v1ddotpusa, NULL }, /* v1ddotpusa */ - { CODE_FOR_insn_v1dotp, NULL }, /* v1dotp */ - { CODE_FOR_insn_v1dotpa, NULL }, /* v1dotpa */ - { CODE_FOR_insn_v1dotpu, NULL }, /* v1dotpu */ - { CODE_FOR_insn_v1dotpua, NULL }, /* v1dotpua */ - { CODE_FOR_insn_v1dotpus, NULL }, /* v1dotpus */ - { CODE_FOR_insn_v1dotpusa, NULL }, /* v1dotpusa */ - { CODE_FOR_insn_v1int_h, NULL }, /* v1int_h */ - { CODE_FOR_insn_v1int_l, NULL }, /* v1int_l */ - { CODE_FOR_insn_v1maxu, NULL }, /* v1maxu */ - { CODE_FOR_insn_v1maxui, NULL }, /* v1maxui */ - { CODE_FOR_insn_v1minu, NULL }, /* v1minu */ - { CODE_FOR_insn_v1minui, NULL }, /* v1minui */ - { CODE_FOR_insn_v1mnz, NULL }, /* v1mnz */ - { CODE_FOR_insn_v1multu, NULL }, /* v1multu */ - { CODE_FOR_insn_v1mulu, NULL }, /* v1mulu */ - { CODE_FOR_insn_v1mulus, NULL }, /* v1mulus */ - { CODE_FOR_insn_v1mz, NULL }, /* v1mz */ - { CODE_FOR_insn_v1sadau, NULL }, /* v1sadau */ - { CODE_FOR_insn_v1sadu, NULL }, /* v1sadu */ - { CODE_FOR_insn_v1shl, NULL }, /* v1shl */ - { CODE_FOR_insn_v1shl, NULL }, /* v1shli */ - { CODE_FOR_insn_v1shrs, NULL }, /* v1shrs */ - { CODE_FOR_insn_v1shrs, NULL }, /* v1shrsi */ - { CODE_FOR_insn_v1shru, NULL }, /* v1shru */ - { CODE_FOR_insn_v1shru, NULL }, /* v1shrui */ - { CODE_FOR_insn_v1sub, NULL }, /* v1sub */ - { CODE_FOR_insn_v1subuc, NULL }, /* v1subuc */ - { CODE_FOR_insn_v2add, NULL }, /* v2add */ - { CODE_FOR_insn_v2addi, NULL }, /* v2addi */ - { CODE_FOR_insn_v2addsc, NULL }, /* v2addsc */ - { CODE_FOR_insn_v2adiffs, NULL }, /* v2adiffs */ - { CODE_FOR_insn_v2avgs, NULL }, /* v2avgs */ - { CODE_FOR_insn_v2cmpeq, NULL }, /* v2cmpeq */ - { CODE_FOR_insn_v2cmpeqi, NULL }, /* v2cmpeqi */ - { CODE_FOR_insn_v2cmples, NULL }, /* v2cmples */ - { CODE_FOR_insn_v2cmpleu, NULL }, /* v2cmpleu */ - { CODE_FOR_insn_v2cmplts, NULL }, /* v2cmplts */ - { CODE_FOR_insn_v2cmpltsi, NULL }, /* v2cmpltsi */ - { CODE_FOR_insn_v2cmpltu, NULL }, /* v2cmpltu */ - { CODE_FOR_insn_v2cmpltui, NULL }, /* v2cmpltui */ - { CODE_FOR_insn_v2cmpne, NULL }, /* v2cmpne */ - { CODE_FOR_insn_v2dotp, NULL }, /* v2dotp */ - { CODE_FOR_insn_v2dotpa, NULL }, /* v2dotpa */ - { CODE_FOR_insn_v2int_h, NULL }, /* v2int_h */ - { CODE_FOR_insn_v2int_l, NULL }, /* v2int_l */ - { CODE_FOR_insn_v2maxs, NULL }, /* v2maxs */ - { CODE_FOR_insn_v2maxsi, NULL }, /* v2maxsi */ - { CODE_FOR_insn_v2mins, NULL }, /* v2mins */ - { CODE_FOR_insn_v2minsi, NULL }, /* v2minsi */ - { CODE_FOR_insn_v2mnz, NULL }, /* v2mnz */ - { CODE_FOR_insn_v2mulfsc, NULL }, /* v2mulfsc */ - { CODE_FOR_insn_v2muls, NULL }, /* v2muls */ - { CODE_FOR_insn_v2mults, NULL }, /* v2mults */ - { CODE_FOR_insn_v2mz, NULL }, /* v2mz */ - { CODE_FOR_insn_v2packh, NULL }, /* v2packh */ - { CODE_FOR_insn_v2packl, NULL }, /* v2packl */ - { CODE_FOR_insn_v2packuc, NULL }, /* v2packuc */ - { CODE_FOR_insn_v2sadas, NULL }, /* v2sadas */ - { CODE_FOR_insn_v2sadau, NULL }, /* v2sadau */ - { CODE_FOR_insn_v2sads, NULL }, /* v2sads */ - { CODE_FOR_insn_v2sadu, NULL }, /* v2sadu */ - { CODE_FOR_insn_v2shl, NULL }, /* v2shl */ - { CODE_FOR_insn_v2shl, NULL }, /* v2shli */ - { CODE_FOR_insn_v2shlsc, NULL }, /* v2shlsc */ - { CODE_FOR_insn_v2shrs, NULL }, /* v2shrs */ - { CODE_FOR_insn_v2shrs, NULL }, /* v2shrsi */ - { CODE_FOR_insn_v2shru, NULL }, /* v2shru */ - { CODE_FOR_insn_v2shru, NULL }, /* v2shrui */ - { CODE_FOR_insn_v2sub, NULL }, /* v2sub */ - { CODE_FOR_insn_v2subsc, NULL }, /* v2subsc */ - { CODE_FOR_insn_v4add, NULL }, /* v4add */ - { CODE_FOR_insn_v4addsc, NULL }, /* v4addsc */ - { CODE_FOR_insn_v4int_h, NULL }, /* v4int_h */ - { CODE_FOR_insn_v4int_l, NULL }, /* v4int_l */ - { CODE_FOR_insn_v4packsc, NULL }, /* v4packsc */ - { CODE_FOR_insn_v4shl, NULL }, /* v4shl */ - { CODE_FOR_insn_v4shlsc, NULL }, /* v4shlsc */ - { CODE_FOR_insn_v4shrs, NULL }, /* v4shrs */ - { CODE_FOR_insn_v4shru, NULL }, /* v4shru */ - { CODE_FOR_insn_v4sub, NULL }, /* v4sub */ - { CODE_FOR_insn_v4subsc, NULL }, /* v4subsc */ - { CODE_FOR_insn_wh64, NULL }, /* wh64 */ - { CODE_FOR_xordi3, NULL }, /* xor */ - { CODE_FOR_tilegx_network_barrier, NULL }, /* network_barrier */ - { CODE_FOR_tilegx_idn0_receive, NULL }, /* idn0_receive */ - { CODE_FOR_tilegx_idn1_receive, NULL }, /* idn1_receive */ - { CODE_FOR_tilegx_idn_send, NULL }, /* idn_send */ - { CODE_FOR_tilegx_udn0_receive, NULL }, /* udn0_receive */ - { CODE_FOR_tilegx_udn1_receive, NULL }, /* udn1_receive */ - { CODE_FOR_tilegx_udn2_receive, NULL }, /* udn2_receive */ - { CODE_FOR_tilegx_udn3_receive, NULL }, /* udn3_receive */ - { CODE_FOR_tilegx_udn_send, NULL }, /* udn_send */ -}; - - -struct tilegx_builtin_def -{ - const char *name; - enum tilegx_builtin code; - bool is_const; - /* The first character is the return type. Subsequent characters - are the argument types. See char_to_type. */ - const char *type; -}; - - -static const struct tilegx_builtin_def tilegx_builtins[] = { - { "__insn_add", TILEGX_INSN_ADD, true, "lll" }, - { "__insn_addi", TILEGX_INSN_ADD, true, "lll" }, - { "__insn_addli", TILEGX_INSN_ADD, true, "lll" }, - { "__insn_addx", TILEGX_INSN_ADDX, true, "iii" }, - { "__insn_addxi", TILEGX_INSN_ADDX, true, "iii" }, - { "__insn_addxli", TILEGX_INSN_ADDX, true, "iii" }, - { "__insn_addxsc", TILEGX_INSN_ADDXSC, true, "iii" }, - { "__insn_and", TILEGX_INSN_AND, true, "lll" }, - { "__insn_andi", TILEGX_INSN_AND, true, "lll" }, - { "__insn_bfexts", TILEGX_INSN_BFEXTS, true, "llll" }, - { "__insn_bfextu", TILEGX_INSN_BFEXTU, true, "llll" }, - { "__insn_bfins", TILEGX_INSN_BFINS, true, "lllll"}, - { "__insn_clz", TILEGX_INSN_CLZ, true, "ll" }, - { "__insn_cmoveqz", TILEGX_INSN_CMOVEQZ, true, "llll" }, - { "__insn_cmovnez", TILEGX_INSN_CMOVNEZ, true, "llll" }, - { "__insn_cmpeq", TILEGX_INSN_CMPEQ, true, "lll" }, - { "__insn_cmpeqi", TILEGX_INSN_CMPEQ, true, "lll" }, - { "__insn_cmpexch", TILEGX_INSN_CMPEXCH, false, "lpl" }, - { "__insn_cmpexch4", TILEGX_INSN_CMPEXCH4, false, "ipi" }, - { "__insn_cmples", TILEGX_INSN_CMPLES, true, "lll" }, - { "__insn_cmpleu", TILEGX_INSN_CMPLEU, true, "lll" }, - { "__insn_cmplts", TILEGX_INSN_CMPLTS, true, "lll" }, - { "__insn_cmpltsi", TILEGX_INSN_CMPLTS, true, "lll" }, - { "__insn_cmpltu", TILEGX_INSN_CMPLTU, true, "lll" }, - { "__insn_cmpltui", TILEGX_INSN_CMPLTU, true, "lll" }, - { "__insn_cmpne", TILEGX_INSN_CMPNE, true, "lll" }, - { "__insn_cmul", TILEGX_INSN_CMUL, true, "lll" }, - { "__insn_cmula", TILEGX_INSN_CMULA, true, "llll" }, - { "__insn_cmulaf", TILEGX_INSN_CMULAF, true, "llll" }, - { "__insn_cmulf", TILEGX_INSN_CMULF, true, "lll" }, - { "__insn_cmulfr", TILEGX_INSN_CMULFR, true, "lll" }, - { "__insn_cmulh", TILEGX_INSN_CMULH, true, "lll" }, - { "__insn_cmulhr", TILEGX_INSN_CMULHR, true, "lll" }, - { "__insn_crc32_32", TILEGX_INSN_CRC32_32, true, "lll" }, - { "__insn_crc32_8", TILEGX_INSN_CRC32_8, true, "lll" }, - { "__insn_ctz", TILEGX_INSN_CTZ, true, "ll" }, - { "__insn_dblalign", TILEGX_INSN_DBLALIGN, true, "lllk" }, - { "__insn_dblalign2", TILEGX_INSN_DBLALIGN2, true, "lll" }, - { "__insn_dblalign4", TILEGX_INSN_DBLALIGN4, true, "lll" }, - { "__insn_dblalign6", TILEGX_INSN_DBLALIGN6, true, "lll" }, - { "__insn_drain", TILEGX_INSN_DRAIN, false, "v" }, - { "__insn_dtlbpr", TILEGX_INSN_DTLBPR, false, "vl" }, - { "__insn_exch", TILEGX_INSN_EXCH, false, "lpl" }, - { "__insn_exch4", TILEGX_INSN_EXCH4, false, "ipi" }, - { "__insn_fdouble_add_flags", TILEGX_INSN_FDOUBLE_ADD_FLAGS, true, "lll" }, - { "__insn_fdouble_addsub", TILEGX_INSN_FDOUBLE_ADDSUB, true, "llll" }, - { "__insn_fdouble_mul_flags", TILEGX_INSN_FDOUBLE_MUL_FLAGS, true, "lll" }, - { "__insn_fdouble_pack1", TILEGX_INSN_FDOUBLE_PACK1, true, "lll" }, - { "__insn_fdouble_pack2", TILEGX_INSN_FDOUBLE_PACK2, true, "llll" }, - { "__insn_fdouble_sub_flags", TILEGX_INSN_FDOUBLE_SUB_FLAGS, true, "lll" }, - { "__insn_fdouble_unpack_max", TILEGX_INSN_FDOUBLE_UNPACK_MAX, true, "lll" }, - { "__insn_fdouble_unpack_min", TILEGX_INSN_FDOUBLE_UNPACK_MIN, true, "lll" }, - { "__insn_fetchadd", TILEGX_INSN_FETCHADD, false, "lpl" }, - { "__insn_fetchadd4", TILEGX_INSN_FETCHADD4, false, "ipi" }, - { "__insn_fetchaddgez", TILEGX_INSN_FETCHADDGEZ, false, "lpl" }, - { "__insn_fetchaddgez4", TILEGX_INSN_FETCHADDGEZ4, false, "ipi" }, - { "__insn_fetchand", TILEGX_INSN_FETCHAND, false, "lpl" }, - { "__insn_fetchand4", TILEGX_INSN_FETCHAND4, false, "ipi" }, - { "__insn_fetchor", TILEGX_INSN_FETCHOR, false, "lpl" }, - { "__insn_fetchor4", TILEGX_INSN_FETCHOR4, false, "ipi" }, - { "__insn_finv", TILEGX_INSN_FINV, false, "vk" }, - { "__insn_flush", TILEGX_INSN_FLUSH, false, "vk" }, - { "__insn_flushwb", TILEGX_INSN_FLUSHWB, false, "v" }, - { "__insn_fnop", TILEGX_INSN_FNOP, false, "v" }, - { "__insn_fsingle_add1", TILEGX_INSN_FSINGLE_ADD1, true, "lll" }, - { "__insn_fsingle_addsub2", TILEGX_INSN_FSINGLE_ADDSUB2, true, "llll" }, - { "__insn_fsingle_mul1", TILEGX_INSN_FSINGLE_MUL1, true, "lll" }, - { "__insn_fsingle_mul2", TILEGX_INSN_FSINGLE_MUL2, true, "lll" }, - { "__insn_fsingle_pack1", TILEGX_INSN_FSINGLE_PACK1, true, "ll" }, - { "__insn_fsingle_pack2", TILEGX_INSN_FSINGLE_PACK2, true, "lll" }, - { "__insn_fsingle_sub1", TILEGX_INSN_FSINGLE_SUB1, true, "lll" }, - { "__insn_icoh", TILEGX_INSN_ICOH, false, "vk" }, - { "__insn_ill", TILEGX_INSN_ILL, false, "v" }, - { "__insn_info", TILEGX_INSN_INFO, false, "vl" }, - { "__insn_infol", TILEGX_INSN_INFOL, false, "vl" }, - { "__insn_inv", TILEGX_INSN_INV, false, "vp" }, - { "__insn_ld", TILEGX_INSN_LD, false, "lk" }, - { "__insn_ld1s", TILEGX_INSN_LD1S, false, "lk" }, - { "__insn_ld1u", TILEGX_INSN_LD1U, false, "lk" }, - { "__insn_ld2s", TILEGX_INSN_LD2S, false, "lk" }, - { "__insn_ld2u", TILEGX_INSN_LD2U, false, "lk" }, - { "__insn_ld4s", TILEGX_INSN_LD4S, false, "lk" }, - { "__insn_ld4u", TILEGX_INSN_LD4U, false, "lk" }, - { "__insn_ldna", TILEGX_INSN_LDNA, false, "lk" }, - { "__insn_ldnt", TILEGX_INSN_LDNT, false, "lk" }, - { "__insn_ldnt1s", TILEGX_INSN_LDNT1S, false, "lk" }, - { "__insn_ldnt1u", TILEGX_INSN_LDNT1U, false, "lk" }, - { "__insn_ldnt2s", TILEGX_INSN_LDNT2S, false, "lk" }, - { "__insn_ldnt2u", TILEGX_INSN_LDNT2U, false, "lk" }, - { "__insn_ldnt4s", TILEGX_INSN_LDNT4S, false, "lk" }, - { "__insn_ldnt4u", TILEGX_INSN_LDNT4U, false, "lk" }, - { "__insn_ld_L2", TILEGX_INSN_LD_L2, false, "lk" }, - { "__insn_ld1s_L2", TILEGX_INSN_LD1S_L2, false, "lk" }, - { "__insn_ld1u_L2", TILEGX_INSN_LD1U_L2, false, "lk" }, - { "__insn_ld2s_L2", TILEGX_INSN_LD2S_L2, false, "lk" }, - { "__insn_ld2u_L2", TILEGX_INSN_LD2U_L2, false, "lk" }, - { "__insn_ld4s_L2", TILEGX_INSN_LD4S_L2, false, "lk" }, - { "__insn_ld4u_L2", TILEGX_INSN_LD4U_L2, false, "lk" }, - { "__insn_ldna_L2", TILEGX_INSN_LDNA_L2, false, "lk" }, - { "__insn_ldnt_L2", TILEGX_INSN_LDNT_L2, false, "lk" }, - { "__insn_ldnt1s_L2", TILEGX_INSN_LDNT1S_L2, false, "lk" }, - { "__insn_ldnt1u_L2", TILEGX_INSN_LDNT1U_L2, false, "lk" }, - { "__insn_ldnt2s_L2", TILEGX_INSN_LDNT2S_L2, false, "lk" }, - { "__insn_ldnt2u_L2", TILEGX_INSN_LDNT2U_L2, false, "lk" }, - { "__insn_ldnt4s_L2", TILEGX_INSN_LDNT4S_L2, false, "lk" }, - { "__insn_ldnt4u_L2", TILEGX_INSN_LDNT4U_L2, false, "lk" }, - { "__insn_ld_miss", TILEGX_INSN_LD_MISS, false, "lk" }, - { "__insn_ld1s_miss", TILEGX_INSN_LD1S_MISS, false, "lk" }, - { "__insn_ld1u_miss", TILEGX_INSN_LD1U_MISS, false, "lk" }, - { "__insn_ld2s_miss", TILEGX_INSN_LD2S_MISS, false, "lk" }, - { "__insn_ld2u_miss", TILEGX_INSN_LD2U_MISS, false, "lk" }, - { "__insn_ld4s_miss", TILEGX_INSN_LD4S_MISS, false, "lk" }, - { "__insn_ld4u_miss", TILEGX_INSN_LD4U_MISS, false, "lk" }, - { "__insn_ldna_miss", TILEGX_INSN_LDNA_MISS, false, "lk" }, - { "__insn_ldnt_miss", TILEGX_INSN_LDNT_MISS, false, "lk" }, - { "__insn_ldnt1s_miss", TILEGX_INSN_LDNT1S_MISS, false, "lk" }, - { "__insn_ldnt1u_miss", TILEGX_INSN_LDNT1U_MISS, false, "lk" }, - { "__insn_ldnt2s_miss", TILEGX_INSN_LDNT2S_MISS, false, "lk" }, - { "__insn_ldnt2u_miss", TILEGX_INSN_LDNT2U_MISS, false, "lk" }, - { "__insn_ldnt4s_miss", TILEGX_INSN_LDNT4S_MISS, false, "lk" }, - { "__insn_ldnt4u_miss", TILEGX_INSN_LDNT4U_MISS, false, "lk" }, - { "__insn_lnk", TILEGX_INSN_LNK, true, "l" }, - { "__insn_mf", TILEGX_INSN_MF, false, "v" }, - { "__insn_mfspr", TILEGX_INSN_MFSPR, false, "ll" }, - { "__insn_mm", TILEGX_INSN_MM, true, "lllll"}, - { "__insn_mnz", TILEGX_INSN_MNZ, true, "lll" }, - { "__insn_move", TILEGX_INSN_MOVE, true, "ll" }, - { "__insn_movei", TILEGX_INSN_MOVE, true, "ll" }, - { "__insn_moveli", TILEGX_INSN_MOVE, true, "ll" }, - { "__insn_mtspr", TILEGX_INSN_MTSPR, false, "vll" }, - { "__insn_mul_hs_hs", TILEGX_INSN_MUL_HS_HS, true, "lll" }, - { "__insn_mul_hs_hu", TILEGX_INSN_MUL_HS_HU, true, "lll" }, - { "__insn_mul_hs_ls", TILEGX_INSN_MUL_HS_LS, true, "lll" }, - { "__insn_mul_hs_lu", TILEGX_INSN_MUL_HS_LU, true, "lll" }, - { "__insn_mul_hu_hu", TILEGX_INSN_MUL_HU_HU, true, "lll" }, - { "__insn_mul_hu_ls", TILEGX_INSN_MUL_HU_LS, true, "lll" }, - { "__insn_mul_hu_lu", TILEGX_INSN_MUL_HU_LU, true, "lll" }, - { "__insn_mul_ls_ls", TILEGX_INSN_MUL_LS_LS, true, "lll" }, - { "__insn_mul_ls_lu", TILEGX_INSN_MUL_LS_LU, true, "lll" }, - { "__insn_mul_lu_lu", TILEGX_INSN_MUL_LU_LU, true, "lll" }, - { "__insn_mula_hs_hs", TILEGX_INSN_MULA_HS_HS, true, "llll" }, - { "__insn_mula_hs_hu", TILEGX_INSN_MULA_HS_HU, true, "llll" }, - { "__insn_mula_hs_ls", TILEGX_INSN_MULA_HS_LS, true, "llll" }, - { "__insn_mula_hs_lu", TILEGX_INSN_MULA_HS_LU, true, "llll" }, - { "__insn_mula_hu_hu", TILEGX_INSN_MULA_HU_HU, true, "llll" }, - { "__insn_mula_hu_ls", TILEGX_INSN_MULA_HU_LS, true, "llll" }, - { "__insn_mula_hu_lu", TILEGX_INSN_MULA_HU_LU, true, "llll" }, - { "__insn_mula_ls_ls", TILEGX_INSN_MULA_LS_LS, true, "llll" }, - { "__insn_mula_ls_lu", TILEGX_INSN_MULA_LS_LU, true, "llll" }, - { "__insn_mula_lu_lu", TILEGX_INSN_MULA_LU_LU, true, "llll" }, - { "__insn_mulax", TILEGX_INSN_MULAX, true, "iiii" }, - { "__insn_mulx", TILEGX_INSN_MULX, true, "iii" }, - { "__insn_mz", TILEGX_INSN_MZ, true, "lll" }, - { "__insn_nap", TILEGX_INSN_NAP, false, "v" }, - { "__insn_nop", TILEGX_INSN_NOP, true, "v" }, - { "__insn_nor", TILEGX_INSN_NOR, true, "lll" }, - { "__insn_or", TILEGX_INSN_OR, true, "lll" }, - { "__insn_ori", TILEGX_INSN_OR, true, "lll" }, - { "__insn_pcnt", TILEGX_INSN_PCNT, true, "ll" }, - { "__insn_prefetch", TILEGX_INSN_PREFETCH_L1, false, "vk" }, - { "__insn_prefetch_l1", TILEGX_INSN_PREFETCH_L1, false, "vk" }, - { "__insn_prefetch_l1_fault", TILEGX_INSN_PREFETCH_L1_FAULT, false, "vk" }, - { "__insn_prefetch_l2", TILEGX_INSN_PREFETCH_L2, false, "vk" }, - { "__insn_prefetch_l2_fault", TILEGX_INSN_PREFETCH_L2_FAULT, false, "vk" }, - { "__insn_prefetch_l3", TILEGX_INSN_PREFETCH_L3, false, "vk" }, - { "__insn_prefetch_l3_fault", TILEGX_INSN_PREFETCH_L3_FAULT, false, "vk" }, - { "__insn_revbits", TILEGX_INSN_REVBITS, true, "ll" }, - { "__insn_revbytes", TILEGX_INSN_REVBYTES, true, "ll" }, - { "__insn_rotl", TILEGX_INSN_ROTL, true, "lli" }, - { "__insn_rotli", TILEGX_INSN_ROTL, true, "lli" }, - { "__insn_shl", TILEGX_INSN_SHL, true, "lli" }, - { "__insn_shl16insli", TILEGX_INSN_SHL16INSLI, true, "lll" }, - { "__insn_shl1add", TILEGX_INSN_SHL1ADD, true, "lll" }, - { "__insn_shl1addx", TILEGX_INSN_SHL1ADDX, true, "iii" }, - { "__insn_shl2add", TILEGX_INSN_SHL2ADD, true, "lll" }, - { "__insn_shl2addx", TILEGX_INSN_SHL2ADDX, true, "iii" }, - { "__insn_shl3add", TILEGX_INSN_SHL3ADD, true, "lll" }, - { "__insn_shl3addx", TILEGX_INSN_SHL3ADDX, true, "iii" }, - { "__insn_shli", TILEGX_INSN_SHL, true, "lli" }, - { "__insn_shlx", TILEGX_INSN_SHLX, true, "iii" }, - { "__insn_shlxi", TILEGX_INSN_SHLX, true, "iii" }, - { "__insn_shrs", TILEGX_INSN_SHRS, true, "lli" }, - { "__insn_shrsi", TILEGX_INSN_SHRS, true, "lli" }, - { "__insn_shru", TILEGX_INSN_SHRU, true, "lli" }, - { "__insn_shrui", TILEGX_INSN_SHRU, true, "lli" }, - { "__insn_shrux", TILEGX_INSN_SHRUX, true, "iii" }, - { "__insn_shruxi", TILEGX_INSN_SHRUX, true, "iii" }, - { "__insn_shufflebytes", TILEGX_INSN_SHUFFLEBYTES, true, "llll" }, - { "__insn_shufflebytes1", TILEGX_INSN_SHUFFLEBYTES1, true, "lll" }, - { "__insn_st", TILEGX_INSN_ST, false, "vpl" }, - { "__insn_st1", TILEGX_INSN_ST1, false, "vpl" }, - { "__insn_st2", TILEGX_INSN_ST2, false, "vpl" }, - { "__insn_st4", TILEGX_INSN_ST4, false, "vpl" }, - { "__insn_stnt", TILEGX_INSN_STNT, false, "vpl" }, - { "__insn_stnt1", TILEGX_INSN_STNT1, false, "vpl" }, - { "__insn_stnt2", TILEGX_INSN_STNT2, false, "vpl" }, - { "__insn_stnt4", TILEGX_INSN_STNT4, false, "vpl" }, - { "__insn_sub", TILEGX_INSN_SUB, true, "lll" }, - { "__insn_subx", TILEGX_INSN_SUBX, true, "iii" }, - { "__insn_subxsc", TILEGX_INSN_SUBXSC, true, "iii" }, - { "__insn_tblidxb0", TILEGX_INSN_TBLIDXB0, true, "lll" }, - { "__insn_tblidxb1", TILEGX_INSN_TBLIDXB1, true, "lll" }, - { "__insn_tblidxb2", TILEGX_INSN_TBLIDXB2, true, "lll" }, - { "__insn_tblidxb3", TILEGX_INSN_TBLIDXB3, true, "lll" }, - { "__insn_v1add", TILEGX_INSN_V1ADD, true, "lll" }, - { "__insn_v1addi", TILEGX_INSN_V1ADDI, true, "lll" }, - { "__insn_v1adduc", TILEGX_INSN_V1ADDUC, true, "lll" }, - { "__insn_v1adiffu", TILEGX_INSN_V1ADIFFU, true, "lll" }, - { "__insn_v1avgu", TILEGX_INSN_V1AVGU, true, "lll" }, - { "__insn_v1cmpeq", TILEGX_INSN_V1CMPEQ, true, "lll" }, - { "__insn_v1cmpeqi", TILEGX_INSN_V1CMPEQI, true, "lll" }, - { "__insn_v1cmples", TILEGX_INSN_V1CMPLES, true, "lll" }, - { "__insn_v1cmpleu", TILEGX_INSN_V1CMPLEU, true, "lll" }, - { "__insn_v1cmplts", TILEGX_INSN_V1CMPLTS, true, "lll" }, - { "__insn_v1cmpltsi", TILEGX_INSN_V1CMPLTSI, true, "lll" }, - { "__insn_v1cmpltu", TILEGX_INSN_V1CMPLTU, true, "lll" }, - { "__insn_v1cmpltui", TILEGX_INSN_V1CMPLTUI, true, "lll" }, - { "__insn_v1cmpne", TILEGX_INSN_V1CMPNE, true, "lll" }, - { "__insn_v1ddotpu", TILEGX_INSN_V1DDOTPU, true, "lll" }, - { "__insn_v1ddotpua", TILEGX_INSN_V1DDOTPUA, true, "llll" }, - { "__insn_v1ddotpus", TILEGX_INSN_V1DDOTPUS, true, "lll" }, - { "__insn_v1ddotpusa", TILEGX_INSN_V1DDOTPUSA, true, "llll" }, - { "__insn_v1dotp", TILEGX_INSN_V1DOTP, true, "lll" }, - { "__insn_v1dotpa", TILEGX_INSN_V1DOTPA, true, "llll" }, - { "__insn_v1dotpu", TILEGX_INSN_V1DOTPU, true, "lll" }, - { "__insn_v1dotpua", TILEGX_INSN_V1DOTPUA, true, "llll" }, - { "__insn_v1dotpus", TILEGX_INSN_V1DOTPUS, true, "lll" }, - { "__insn_v1dotpusa", TILEGX_INSN_V1DOTPUSA, true, "llll" }, - { "__insn_v1int_h", TILEGX_INSN_V1INT_H, true, "lll" }, - { "__insn_v1int_l", TILEGX_INSN_V1INT_L, true, "lll" }, - { "__insn_v1maxu", TILEGX_INSN_V1MAXU, true, "lll" }, - { "__insn_v1maxui", TILEGX_INSN_V1MAXUI, true, "lll" }, - { "__insn_v1minu", TILEGX_INSN_V1MINU, true, "lll" }, - { "__insn_v1minui", TILEGX_INSN_V1MINUI, true, "lll" }, - { "__insn_v1mnz", TILEGX_INSN_V1MNZ, true, "lll" }, - { "__insn_v1multu", TILEGX_INSN_V1MULTU, true, "lll" }, - { "__insn_v1mulu", TILEGX_INSN_V1MULU, true, "lll" }, - { "__insn_v1mulus", TILEGX_INSN_V1MULUS, true, "lll" }, - { "__insn_v1mz", TILEGX_INSN_V1MZ, true, "lll" }, - { "__insn_v1sadau", TILEGX_INSN_V1SADAU, true, "llll" }, - { "__insn_v1sadu", TILEGX_INSN_V1SADU, true, "lll" }, - { "__insn_v1shl", TILEGX_INSN_V1SHL, true, "lll" }, - { "__insn_v1shli", TILEGX_INSN_V1SHLI, true, "lll" }, - { "__insn_v1shrs", TILEGX_INSN_V1SHRS, true, "lll" }, - { "__insn_v1shrsi", TILEGX_INSN_V1SHRSI, true, "lll" }, - { "__insn_v1shru", TILEGX_INSN_V1SHRU, true, "lll" }, - { "__insn_v1shrui", TILEGX_INSN_V1SHRUI, true, "lll" }, - { "__insn_v1sub", TILEGX_INSN_V1SUB, true, "lll" }, - { "__insn_v1subuc", TILEGX_INSN_V1SUBUC, true, "lll" }, - { "__insn_v2add", TILEGX_INSN_V2ADD, true, "lll" }, - { "__insn_v2addi", TILEGX_INSN_V2ADDI, true, "lll" }, - { "__insn_v2addsc", TILEGX_INSN_V2ADDSC, true, "lll" }, - { "__insn_v2adiffs", TILEGX_INSN_V2ADIFFS, true, "lll" }, - { "__insn_v2avgs", TILEGX_INSN_V2AVGS, true, "lll" }, - { "__insn_v2cmpeq", TILEGX_INSN_V2CMPEQ, true, "lll" }, - { "__insn_v2cmpeqi", TILEGX_INSN_V2CMPEQI, true, "lll" }, - { "__insn_v2cmples", TILEGX_INSN_V2CMPLES, true, "lll" }, - { "__insn_v2cmpleu", TILEGX_INSN_V2CMPLEU, true, "lll" }, - { "__insn_v2cmplts", TILEGX_INSN_V2CMPLTS, true, "lll" }, - { "__insn_v2cmpltsi", TILEGX_INSN_V2CMPLTSI, true, "lll" }, - { "__insn_v2cmpltu", TILEGX_INSN_V2CMPLTU, true, "lll" }, - { "__insn_v2cmpltui", TILEGX_INSN_V2CMPLTUI, true, "lll" }, - { "__insn_v2cmpne", TILEGX_INSN_V2CMPNE, true, "lll" }, - { "__insn_v2dotp", TILEGX_INSN_V2DOTP, true, "lll" }, - { "__insn_v2dotpa", TILEGX_INSN_V2DOTPA, true, "llll" }, - { "__insn_v2int_h", TILEGX_INSN_V2INT_H, true, "lll" }, - { "__insn_v2int_l", TILEGX_INSN_V2INT_L, true, "lll" }, - { "__insn_v2maxs", TILEGX_INSN_V2MAXS, true, "lll" }, - { "__insn_v2maxsi", TILEGX_INSN_V2MAXSI, true, "lll" }, - { "__insn_v2mins", TILEGX_INSN_V2MINS, true, "lll" }, - { "__insn_v2minsi", TILEGX_INSN_V2MINSI, true, "lll" }, - { "__insn_v2mnz", TILEGX_INSN_V2MNZ, true, "lll" }, - { "__insn_v2mulfsc", TILEGX_INSN_V2MULFSC, true, "lll" }, - { "__insn_v2muls", TILEGX_INSN_V2MULS, true, "lll" }, - { "__insn_v2mults", TILEGX_INSN_V2MULTS, true, "lll" }, - { "__insn_v2mz", TILEGX_INSN_V2MZ, true, "lll" }, - { "__insn_v2packh", TILEGX_INSN_V2PACKH, true, "lll" }, - { "__insn_v2packl", TILEGX_INSN_V2PACKL, true, "lll" }, - { "__insn_v2packuc", TILEGX_INSN_V2PACKUC, true, "lll" }, - { "__insn_v2sadas", TILEGX_INSN_V2SADAS, true, "llll" }, - { "__insn_v2sadau", TILEGX_INSN_V2SADAU, true, "llll" }, - { "__insn_v2sads", TILEGX_INSN_V2SADS, true, "lll" }, - { "__insn_v2sadu", TILEGX_INSN_V2SADU, true, "lll" }, - { "__insn_v2shl", TILEGX_INSN_V2SHL, true, "lll" }, - { "__insn_v2shli", TILEGX_INSN_V2SHLI, true, "lll" }, - { "__insn_v2shlsc", TILEGX_INSN_V2SHLSC, true, "lll" }, - { "__insn_v2shrs", TILEGX_INSN_V2SHRS, true, "lll" }, - { "__insn_v2shrsi", TILEGX_INSN_V2SHRSI, true, "lll" }, - { "__insn_v2shru", TILEGX_INSN_V2SHRU, true, "lll" }, - { "__insn_v2shrui", TILEGX_INSN_V2SHRUI, true, "lll" }, - { "__insn_v2sub", TILEGX_INSN_V2SUB, true, "lll" }, - { "__insn_v2subsc", TILEGX_INSN_V2SUBSC, true, "lll" }, - { "__insn_v4add", TILEGX_INSN_V4ADD, true, "lll" }, - { "__insn_v4addsc", TILEGX_INSN_V4ADDSC, true, "lll" }, - { "__insn_v4int_h", TILEGX_INSN_V4INT_H, true, "lll" }, - { "__insn_v4int_l", TILEGX_INSN_V4INT_L, true, "lll" }, - { "__insn_v4packsc", TILEGX_INSN_V4PACKSC, true, "lll" }, - { "__insn_v4shl", TILEGX_INSN_V4SHL, true, "lll" }, - { "__insn_v4shlsc", TILEGX_INSN_V4SHLSC, true, "lll" }, - { "__insn_v4shrs", TILEGX_INSN_V4SHRS, true, "lll" }, - { "__insn_v4shru", TILEGX_INSN_V4SHRU, true, "lll" }, - { "__insn_v4sub", TILEGX_INSN_V4SUB, true, "lll" }, - { "__insn_v4subsc", TILEGX_INSN_V4SUBSC, true, "lll" }, - { "__insn_wh64", TILEGX_INSN_WH64, false, "vp" }, - { "__insn_xor", TILEGX_INSN_XOR, true, "lll" }, - { "__insn_xori", TILEGX_INSN_XOR, true, "lll" }, - { "__tile_network_barrier", TILEGX_NETWORK_BARRIER, false, "v" }, - { "__tile_idn0_receive", TILEGX_IDN0_RECEIVE, false, "l" }, - { "__tile_idn1_receive", TILEGX_IDN1_RECEIVE, false, "l" }, - { "__tile_idn_send", TILEGX_IDN_SEND, false, "vl" }, - { "__tile_udn0_receive", TILEGX_UDN0_RECEIVE, false, "l" }, - { "__tile_udn1_receive", TILEGX_UDN1_RECEIVE, false, "l" }, - { "__tile_udn2_receive", TILEGX_UDN2_RECEIVE, false, "l" }, - { "__tile_udn3_receive", TILEGX_UDN3_RECEIVE, false, "l" }, - { "__tile_udn_send", TILEGX_UDN_SEND, false, "vl" }, -}; - - -/* Convert a character in a builtin type string to a tree type. */ -static tree -char_to_type (char c) -{ - static tree volatile_ptr_type_node = NULL; - static tree volatile_const_ptr_type_node = NULL; - - if (volatile_ptr_type_node == NULL) - { - volatile_ptr_type_node = - build_pointer_type (build_qualified_type (void_type_node, - TYPE_QUAL_VOLATILE)); - volatile_const_ptr_type_node = - build_pointer_type (build_qualified_type (void_type_node, - TYPE_QUAL_CONST - | TYPE_QUAL_VOLATILE)); - } - - switch (c) - { - case 'v': - return void_type_node; - case 'i': - return unsigned_type_node; - case 'l': - return long_long_unsigned_type_node; - case 'p': - return volatile_ptr_type_node; - case 'k': - return volatile_const_ptr_type_node; - default: - gcc_unreachable (); - } -} - - -/* Implement TARGET_INIT_BUILTINS. */ -static void -tilegx_init_builtins (void) -{ - size_t i; - - for (i = 0; i < ARRAY_SIZE (tilegx_builtins); i++) - { - const struct tilegx_builtin_def *p = &tilegx_builtins[i]; - tree ftype, ret_type, arg_type_list = void_list_node; - tree decl; - int j; - - for (j = strlen (p->type) - 1; j > 0; j--) - { - arg_type_list = - tree_cons (NULL_TREE, char_to_type (p->type[j]), arg_type_list); - } - - ret_type = char_to_type (p->type[0]); - - ftype = build_function_type (ret_type, arg_type_list); - - decl = add_builtin_function (p->name, ftype, p->code, BUILT_IN_MD, - NULL, NULL); - - if (p->is_const) - TREE_READONLY (decl) = 1; - TREE_NOTHROW (decl) = 1; - - if (tilegx_builtin_info[p->code].fndecl == NULL) - tilegx_builtin_info[p->code].fndecl = decl; - } -} - - -/* Implement TARGET_EXPAND_BUILTIN. */ -static rtx -tilegx_expand_builtin (tree exp, - rtx target, - rtx subtarget ATTRIBUTE_UNUSED, - machine_mode mode ATTRIBUTE_UNUSED, - int ignore ATTRIBUTE_UNUSED) -{ -#define MAX_BUILTIN_ARGS 4 - - tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0); - unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl); - tree arg; - call_expr_arg_iterator iter; - enum insn_code icode; - rtx op[MAX_BUILTIN_ARGS + 1], pat; - int opnum; - bool nonvoid; - insn_gen_fn fn; - - if (fcode >= TILEGX_BUILTIN_max) - internal_error ("bad builtin fcode"); - icode = tilegx_builtin_info[fcode].icode; - if (icode == 0) - internal_error ("bad builtin icode"); - - nonvoid = TREE_TYPE (TREE_TYPE (fndecl)) != void_type_node; - - opnum = nonvoid; - FOR_EACH_CALL_EXPR_ARG (arg, iter, exp) - { - const struct insn_operand_data *insn_op; - - if (arg == error_mark_node) - return NULL_RTX; - if (opnum > MAX_BUILTIN_ARGS) - return NULL_RTX; - - insn_op = &insn_data[icode].operand[opnum]; - - op[opnum] = expand_expr (arg, NULL_RTX, insn_op->mode, EXPAND_NORMAL); - - if (!(*insn_op->predicate) (op[opnum], insn_op->mode)) - { - machine_mode opmode = insn_op->mode; - - /* pointer_operand and pmode_register_operand operands do - not specify a mode, so use the operand's mode instead - (which should always be right by the time we get here, - except for constants, which are VOIDmode). */ - if (opmode == VOIDmode) - { - machine_mode m = GET_MODE (op[opnum]); - gcc_assert (m == Pmode || m == VOIDmode); - opmode = Pmode; - } - - op[opnum] = copy_to_mode_reg (opmode, op[opnum]); - } - - if (!(*insn_op->predicate) (op[opnum], insn_op->mode)) - { - /* We still failed to meet the predicate even after moving - into a register. Assume we needed an immediate. */ - error_at (EXPR_LOCATION (exp), - "operand must be an immediate of the right size"); - return const0_rtx; - } - - opnum++; - } - - if (nonvoid) - { - machine_mode tmode = insn_data[icode].operand[0].mode; - if (!target - || GET_MODE (target) != tmode - || !(*insn_data[icode].operand[0].predicate) (target, tmode)) - { - if (tmode == VOIDmode) - { - /* get the mode from the return type. */ - tmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl))); - } - target = gen_reg_rtx (tmode); - } - op[0] = target; - } - - fn = GEN_FCN (icode); - switch (opnum) - { - case 0: - pat = fn (NULL_RTX); - break; - case 1: - pat = fn (op[0]); - break; - case 2: - pat = fn (op[0], op[1]); - break; - case 3: - pat = fn (op[0], op[1], op[2]); - break; - case 4: - pat = fn (op[0], op[1], op[2], op[3]); - break; - case 5: - pat = fn (op[0], op[1], op[2], op[3], op[4]); - break; - default: - gcc_unreachable (); - } - if (!pat) - return NULL_RTX; - - /* If we are generating a prefetch, tell the scheduler not to move - it around. */ - if (GET_CODE (pat) == PREFETCH) - PREFETCH_SCHEDULE_BARRIER_P (pat) = true; - - emit_insn (pat); - - if (nonvoid) - return target; - else - return const0_rtx; -} - - -/* Implement TARGET_BUILTIN_DECL. */ -static tree -tilegx_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) -{ - if (code >= TILEGX_BUILTIN_max) - return error_mark_node; - - return tilegx_builtin_info[code].fndecl; -} - - - -/* Stack frames */ - -/* Return whether REGNO needs to be saved in the stack frame. */ -static bool -need_to_save_reg (unsigned int regno) -{ - if (!call_used_or_fixed_reg_p (regno) - && df_regs_ever_live_p (regno)) - return true; - - if (flag_pic - && (regno == PIC_OFFSET_TABLE_REGNUM - || regno == TILEGX_PIC_TEXT_LABEL_REGNUM) - && (crtl->uses_pic_offset_table || crtl->saves_all_registers)) - return true; - - if (crtl->calls_eh_return) - { - unsigned i; - for (i = 0; EH_RETURN_DATA_REGNO (i) != INVALID_REGNUM; i++) - { - if (regno == EH_RETURN_DATA_REGNO (i)) - return true; - } - } - - return false; -} - - -/* Return the size of the register savev area. This function is only - correct starting with local register allocation */ -static int -tilegx_saved_regs_size (void) -{ - int reg_save_size = 0; - int regno; - int offset_to_frame; - int align_mask; - - for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (need_to_save_reg (regno)) - reg_save_size += UNITS_PER_WORD; - - /* Pad out the register save area if necessary to make - frame_pointer_rtx be as aligned as the stack pointer. */ - offset_to_frame = crtl->args.pretend_args_size + reg_save_size; - align_mask = (STACK_BOUNDARY / BITS_PER_UNIT) - 1; - reg_save_size += (-offset_to_frame) & align_mask; - - return reg_save_size; -} - - -/* Round up frame size SIZE. */ -static int -round_frame_size (int size) -{ - return ((size + STACK_BOUNDARY / BITS_PER_UNIT - 1) - & -STACK_BOUNDARY / BITS_PER_UNIT); -} - - -/* Emit a store in the stack frame to save REGNO at address ADDR, and - emit the corresponding REG_CFA_OFFSET note described by CFA and - CFA_OFFSET. Return the emitted insn. */ -static rtx -frame_emit_store (int regno, int regno_note, rtx addr, rtx cfa, - int cfa_offset) -{ - rtx reg = gen_rtx_REG (DImode, regno); - rtx mem = gen_frame_mem (DImode, addr); - rtx mov = gen_movdi (mem, reg); - - /* Describe what just happened in a way that dwarf understands. We - use temporary registers to hold the address to make scheduling - easier, and use the REG_CFA_OFFSET to describe the address as an - offset from the CFA. */ - rtx reg_note = gen_rtx_REG (DImode, regno_note); - rtx cfa_relative_addr = gen_rtx_PLUS (Pmode, cfa, GEN_INT (cfa_offset)); - rtx cfa_relative_mem = gen_frame_mem (DImode, cfa_relative_addr); - rtx real = gen_rtx_SET (cfa_relative_mem, reg_note); - add_reg_note (mov, REG_CFA_OFFSET, real); - - return emit_insn (mov); -} - - -/* Emit a load in the stack frame to load REGNO from address ADDR. - Add a REG_CFA_RESTORE note to CFA_RESTORES if CFA_RESTORES is - non-null. Return the emitted insn. */ -static rtx_insn * -frame_emit_load (int regno, rtx addr, rtx *cfa_restores) -{ - rtx reg = gen_rtx_REG (DImode, regno); - rtx mem = gen_frame_mem (DImode, addr); - if (cfa_restores) - *cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, *cfa_restores); - return emit_insn (gen_movdi (reg, mem)); -} - - -/* Helper function to set RTX_FRAME_RELATED_P on instructions, - including sequences. */ -static rtx -set_frame_related_p (void) -{ - rtx_insn *seq = get_insns (); - rtx_insn *insn; - - end_sequence (); - - if (!seq) - return NULL_RTX; - - if (INSN_P (seq)) - { - insn = seq; - while (insn != NULL_RTX) - { - RTX_FRAME_RELATED_P (insn) = 1; - insn = NEXT_INSN (insn); - } - seq = emit_insn (seq); - } - else - { - seq = emit_insn (seq); - RTX_FRAME_RELATED_P (seq) = 1; - } - return seq; -} - - -#define FRP(exp) (start_sequence (), exp, set_frame_related_p ()) - -/* This emits code for 'sp += offset'. - - The ABI only allows us to modify 'sp' in a single 'addi' or - 'addli', so the backtracer understands it. Larger amounts cannot - use those instructions, so are added by placing the offset into a - large register and using 'add'. - - This happens after reload, so we need to expand it ourselves. */ -static rtx_insn * -emit_sp_adjust (int offset, int *next_scratch_regno, bool frame_related, - rtx reg_notes) -{ - rtx to_add; - rtx imm_rtx = GEN_INT (offset); - rtx pat; - rtx_insn *insn; - - if (satisfies_constraint_J (imm_rtx)) - { - /* We can add this using a single immediate add. */ - to_add = imm_rtx; - } - else - { - rtx tmp = gen_rtx_REG (Pmode, (*next_scratch_regno)--); - tilegx_expand_set_const64 (tmp, imm_rtx); - to_add = tmp; - } - - /* Actually adjust the stack pointer. */ - if (TARGET_32BIT) - pat = gen_sp_adjust_32bit (stack_pointer_rtx, stack_pointer_rtx, to_add); - else - pat = gen_sp_adjust (stack_pointer_rtx, stack_pointer_rtx, to_add); - - insn = emit_insn (pat); - REG_NOTES (insn) = reg_notes; - - /* Describe what just happened in a way that dwarf understands. */ - if (frame_related) - { - rtx real = gen_rtx_SET (stack_pointer_rtx, - gen_rtx_PLUS (Pmode, stack_pointer_rtx, - imm_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; - add_reg_note (insn, REG_CFA_ADJUST_CFA, real); - } - - return insn; -} - - -/* Return whether the current function is leaf. This takes into - account whether the function calls tls_get_addr. */ -static bool -tilegx_current_function_is_leaf (void) -{ - return crtl->is_leaf && !cfun->machine->calls_tls_get_addr; -} - - -/* Return the frame size. */ -static int -compute_total_frame_size (void) -{ - int total_size = (get_frame_size () + tilegx_saved_regs_size () - + crtl->outgoing_args_size - + crtl->args.pretend_args_size); - - if (!tilegx_current_function_is_leaf () || cfun->calls_alloca) - { - /* Make room for save area in callee. */ - total_size += STACK_POINTER_OFFSET; - } - - return round_frame_size (total_size); -} - - -/* Return nonzero if this function is known to have a null epilogue. - This allows the optimizer to omit jumps to jumps if no stack was - created. */ -bool -tilegx_can_use_return_insn_p (void) -{ - return (reload_completed - && !cfun->static_chain_decl - && !compute_total_frame_size () - && tilegx_current_function_is_leaf () - && !crtl->profile && !df_regs_ever_live_p (TILEGX_LINK_REGNUM)); -} - - -/* Returns an rtx for a stack slot at 'FP + offset_from_fp'. If there - is a frame pointer, it computes the value relative to - that. Otherwise it uses the stack pointer. */ -static rtx -compute_frame_addr (int offset_from_fp, int *next_scratch_regno) -{ - rtx base_reg_rtx, tmp_reg_rtx, offset_rtx; - int offset_from_base; - - if (frame_pointer_needed) - { - base_reg_rtx = hard_frame_pointer_rtx; - offset_from_base = offset_from_fp; - } - else - { - int offset_from_sp = compute_total_frame_size () + offset_from_fp; - offset_from_base = offset_from_sp; - base_reg_rtx = stack_pointer_rtx; - } - - if (offset_from_base == 0) - return base_reg_rtx; - - /* Compute the new value of the stack pointer. */ - tmp_reg_rtx = gen_rtx_REG (Pmode, (*next_scratch_regno)--); - offset_rtx = GEN_INT (offset_from_base); - - if (!add_operand (offset_rtx, Pmode)) - { - expand_set_cint64 (tmp_reg_rtx, offset_rtx); - offset_rtx = tmp_reg_rtx; - } - - emit_insn (gen_rtx_SET (tmp_reg_rtx, - gen_rtx_PLUS (Pmode, base_reg_rtx, offset_rtx))); - - return tmp_reg_rtx; -} - - -/* The stack frame looks like this: - +-------------+ - | ... | - | incoming | - | stack args | - AP -> +-------------+ - | caller's HFP| - +-------------+ - | lr save | - HFP -> +-------------+ - | var args | - | reg save | crtl->args.pretend_args_size bytes - +-------------+ - | ... | - | saved regs | tilegx_saved_regs_size() bytes - FP -> +-------------+ - | ... | - | vars | get_frame_size() bytes - +-------------+ - | ... | - | outgoing | - | stack args | crtl->outgoing_args_size bytes - +-------------+ - | HFP | ptr_size bytes (only here if nonleaf / alloca) - +-------------+ - | callee lr | ptr_size bytes (only here if nonleaf / alloca) - | save | - SP -> +-------------+ - - HFP == incoming SP. - - For functions with a frame larger than 32767 bytes, or which use - alloca (), r52 is used as a frame pointer. Otherwise there is no - frame pointer. - - FP is saved at SP+ptr_size before calling a subroutine so the callee - can chain. */ -void -tilegx_expand_prologue (void) -{ -#define ROUND_ROBIN_SIZE 4 - /* We round-robin through four scratch registers to hold temporary - addresses for saving registers, to make instruction scheduling - easier. */ - rtx reg_save_addr[ROUND_ROBIN_SIZE] = { - NULL_RTX, NULL_RTX, NULL_RTX, NULL_RTX - }; - rtx insn, cfa; - unsigned int which_scratch; - int offset, start_offset, regno; - - /* A register that holds a copy of the incoming fp. */ - int fp_copy_regno = -1; - - /* A register that holds a copy of the incoming sp. */ - int sp_copy_regno = -1; - - /* Next scratch register number to hand out (postdecrementing). */ - int next_scratch_regno = 29; - - int total_size = compute_total_frame_size (); - - if (flag_stack_usage_info) - current_function_static_stack_size = total_size; - - /* Save lr first in its special location because code after this - might use the link register as a scratch register. */ - if (df_regs_ever_live_p (TILEGX_LINK_REGNUM) || crtl->calls_eh_return) - { - FRP (frame_emit_store (TILEGX_LINK_REGNUM, TILEGX_LINK_REGNUM, - stack_pointer_rtx, stack_pointer_rtx, 0)); - emit_insn (gen_blockage ()); - } - - if (total_size == 0) - { - /* Load the PIC register if needed. */ - if (flag_pic && crtl->uses_pic_offset_table) - load_pic_register (false); - - return; - } - - cfa = stack_pointer_rtx; - - if (frame_pointer_needed) - { - fp_copy_regno = next_scratch_regno--; - - /* Copy the old frame pointer aside so we can save it later. */ - insn = - FRP (emit_move_insn (gen_rtx_REG (word_mode, fp_copy_regno), - gen_lowpart (word_mode, hard_frame_pointer_rtx))); - add_reg_note (insn, REG_CFA_REGISTER, NULL_RTX); - - /* Set up the frame pointer. */ - insn = FRP (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx)); - add_reg_note (insn, REG_CFA_DEF_CFA, hard_frame_pointer_rtx); - cfa = hard_frame_pointer_rtx; - REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = STACK_BOUNDARY; - - /* fp holds a copy of the incoming sp, in case we need to store - it. */ - sp_copy_regno = HARD_FRAME_POINTER_REGNUM; - } - else if (!tilegx_current_function_is_leaf ()) - { - /* Copy the old stack pointer aside so we can save it later. */ - sp_copy_regno = next_scratch_regno--; - emit_move_insn (gen_rtx_REG (Pmode, sp_copy_regno), - stack_pointer_rtx); - } - - if (tilegx_current_function_is_leaf ()) - { - /* No need to store chain pointer to caller's frame. */ - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - } - else - { - /* Save the frame pointer (incoming sp value) to support - backtracing. First we need to create an rtx with the store - address. */ - rtx chain_addr = gen_rtx_REG (Pmode, next_scratch_regno--); - rtx size_rtx = GEN_INT (-(total_size - UNITS_PER_WORD)); - - if (add_operand (size_rtx, Pmode)) - { - /* Expose more parallelism by computing this value from the - original stack pointer, not the one after we have pushed - the frame. */ - rtx p = gen_rtx_PLUS (Pmode, stack_pointer_rtx, size_rtx); - emit_insn (gen_rtx_SET (chain_addr, p)); - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - } - else - { - /* The stack frame is large, so just store the incoming sp - value at *(new_sp + UNITS_PER_WORD). */ - rtx p; - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - p = gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD)); - emit_insn (gen_rtx_SET (chain_addr, p)); - } - - /* Save our frame pointer for backtrace chaining. */ - emit_insn (gen_movdi (gen_frame_mem (DImode, chain_addr), - gen_rtx_REG (DImode, sp_copy_regno))); - } - - /* Compute where to start storing registers we need to save. */ - start_offset = -crtl->args.pretend_args_size - UNITS_PER_WORD; - offset = start_offset; - - /* Store all registers that need saving. */ - which_scratch = 0; - for (regno = FIRST_PSEUDO_REGISTER - 1; regno >= 0; regno--) - if (need_to_save_reg (regno)) - { - rtx r = reg_save_addr[which_scratch]; - int from_regno; - int cfa_offset = frame_pointer_needed ? offset : total_size + offset; - - if (r == NULL_RTX) - { - int prev_scratch_regno = next_scratch_regno; - r = compute_frame_addr (offset, &next_scratch_regno); - if (prev_scratch_regno != next_scratch_regno) - reg_save_addr[which_scratch] = r; - } - else - { - /* Advance to the next stack slot to store this - register. */ - int stride = ROUND_ROBIN_SIZE * -UNITS_PER_WORD; - rtx p = gen_rtx_PLUS (Pmode, r, GEN_INT (stride)); - emit_insn (gen_rtx_SET (r, p)); - } - - /* Save this register to the stack (but use the old fp value - we copied aside if appropriate). */ - from_regno = - (fp_copy_regno >= 0 && regno == HARD_FRAME_POINTER_REGNUM) - ? fp_copy_regno : regno; - FRP (frame_emit_store (from_regno, regno, r, cfa, cfa_offset)); - - offset -= UNITS_PER_WORD; - which_scratch = (which_scratch + 1) % ROUND_ROBIN_SIZE; - } - - /* If profiling, force that to happen after the frame is set up. */ - if (crtl->profile) - emit_insn (gen_blockage ()); - - /* Load the PIC register if needed. */ - if (flag_pic && crtl->uses_pic_offset_table) - load_pic_register (false); -} - - -/* Implement the epilogue and sibcall_epilogue patterns. SIBCALL_P is - true for a sibcall_epilogue pattern, and false for an epilogue - pattern. */ -void -tilegx_expand_epilogue (bool sibcall_p) -{ - /* We round-robin through four scratch registers to hold temporary - addresses for saving registers, to make instruction scheduling - easier. */ - rtx reg_save_addr[ROUND_ROBIN_SIZE] = { - NULL_RTX, NULL_RTX, NULL_RTX, NULL_RTX - }; - rtx_insn *last_insn, *insn; - unsigned int which_scratch; - int offset, start_offset, regno; - rtx cfa_restores = NULL_RTX; - - /* A register that holds a copy of the incoming fp. */ - int fp_copy_regno = -1; - - /* Next scratch register number to hand out (postdecrementing). */ - int next_scratch_regno = 29; - - int total_size = compute_total_frame_size (); - - last_insn = get_last_insn (); - - /* Load lr first since we are going to need it first. */ - insn = NULL; - if (df_regs_ever_live_p (TILEGX_LINK_REGNUM)) - { - insn = frame_emit_load (TILEGX_LINK_REGNUM, - compute_frame_addr (0, &next_scratch_regno), - &cfa_restores); - } - - if (total_size == 0) - { - if (insn) - { - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = cfa_restores; - } - goto done; - } - - /* Compute where to start restoring registers. */ - start_offset = -crtl->args.pretend_args_size - UNITS_PER_WORD; - offset = start_offset; - - if (frame_pointer_needed) - fp_copy_regno = next_scratch_regno--; - - /* Restore all callee-saved registers. */ - which_scratch = 0; - for (regno = FIRST_PSEUDO_REGISTER - 1; regno >= 0; regno--) - if (need_to_save_reg (regno)) - { - rtx r = reg_save_addr[which_scratch]; - if (r == NULL_RTX) - { - r = compute_frame_addr (offset, &next_scratch_regno); - reg_save_addr[which_scratch] = r; - } - else - { - /* Advance to the next stack slot to store this register. */ - int stride = ROUND_ROBIN_SIZE * -UNITS_PER_WORD; - rtx p = gen_rtx_PLUS (Pmode, r, GEN_INT (stride)); - emit_insn (gen_rtx_SET (r, p)); - } - - if (fp_copy_regno >= 0 && regno == HARD_FRAME_POINTER_REGNUM) - frame_emit_load (fp_copy_regno, r, NULL); - else - frame_emit_load (regno, r, &cfa_restores); - - offset -= UNITS_PER_WORD; - which_scratch = (which_scratch + 1) % ROUND_ROBIN_SIZE; - } - - if (!tilegx_current_function_is_leaf ()) - cfa_restores = - alloc_reg_note (REG_CFA_RESTORE, stack_pointer_rtx, cfa_restores); - - emit_insn (gen_blockage ()); - - if (frame_pointer_needed) - { - /* Restore the old stack pointer by copying from the frame - pointer. */ - if (TARGET_32BIT) - { - insn = emit_insn (gen_sp_restore_32bit (stack_pointer_rtx, - hard_frame_pointer_rtx)); - } - else - { - insn = emit_insn (gen_sp_restore (stack_pointer_rtx, - hard_frame_pointer_rtx)); - } - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = cfa_restores; - add_reg_note (insn, REG_CFA_DEF_CFA, stack_pointer_rtx); - } - else - { - insn = emit_sp_adjust (total_size, &next_scratch_regno, true, - cfa_restores); - } - - if (crtl->calls_eh_return) - { - if (TARGET_32BIT) - emit_insn (gen_sp_adjust_32bit (stack_pointer_rtx, stack_pointer_rtx, - EH_RETURN_STACKADJ_RTX)); - else - emit_insn (gen_sp_adjust (stack_pointer_rtx, stack_pointer_rtx, - EH_RETURN_STACKADJ_RTX)); - } - - /* Restore the old frame pointer. */ - if (frame_pointer_needed) - { - insn = emit_move_insn (gen_lowpart (DImode, hard_frame_pointer_rtx), - gen_rtx_REG (DImode, fp_copy_regno)); - add_reg_note (insn, REG_CFA_RESTORE, hard_frame_pointer_rtx); - } - - /* Mark the pic registers as live outside of the function. */ - if (flag_pic) - { - emit_use (cfun->machine->text_label_rtx); - emit_use (cfun->machine->got_rtx); - } - -done: - if (!sibcall_p) - { - emit_jump_insn (gen__return ()); - } - else - { - emit_use (gen_rtx_REG (Pmode, TILEGX_LINK_REGNUM)); - } - - /* Mark all insns we just emitted as frame-related. */ - for (; last_insn != NULL_RTX; last_insn = next_insn (last_insn)) - RTX_FRAME_RELATED_P (last_insn) = 1; -} - -#undef ROUND_ROBIN_SIZE - - -/* Implement INITIAL_ELIMINATION_OFFSET. */ -int -tilegx_initial_elimination_offset (int from, int to) -{ - int total_size = compute_total_frame_size (); - - if (from == FRAME_POINTER_REGNUM && to == STACK_POINTER_REGNUM) - { - return (total_size - crtl->args.pretend_args_size - - tilegx_saved_regs_size ()); - } - else if (from == FRAME_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM) - { - return -(crtl->args.pretend_args_size + tilegx_saved_regs_size ()); - } - else if (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM) - { - return STACK_POINTER_OFFSET + total_size; - } - else if (from == ARG_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM) - { - return STACK_POINTER_OFFSET; - } - else - gcc_unreachable (); -} - - -/* Return an RTX indicating where the return address to the calling - function can be found. */ -rtx -tilegx_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) -{ - if (count != 0) - return const0_rtx; - - return get_hard_reg_initial_val (Pmode, TILEGX_LINK_REGNUM); -} - - -/* Implement EH_RETURN_HANDLER_RTX. The MEM needs to be volatile to - prevent it from being deleted. */ -rtx -tilegx_eh_return_handler_rtx (void) -{ - rtx tmp = gen_frame_mem (Pmode, hard_frame_pointer_rtx); - MEM_VOLATILE_P (tmp) = true; - return tmp; -} - - - -/* Registers */ - -/* Implemnet TARGET_CONDITIONAL_REGISTER_USAGE. */ -static void -tilegx_conditional_register_usage (void) -{ - global_regs[TILEGX_NETORDER_REGNUM] = 1; - /* TILEGX_PIC_TEXT_LABEL_REGNUM is conditionally used. */ - if (TILEGX_PIC_TEXT_LABEL_REGNUM != INVALID_REGNUM) - fixed_regs[TILEGX_PIC_TEXT_LABEL_REGNUM] = 1; - if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM) - fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; -} - - -/* Implement TARGET_FRAME_POINTER_REQUIRED. */ -static bool -tilegx_frame_pointer_required (void) -{ - return crtl->calls_eh_return || cfun->calls_alloca; -} - - - -/* Scheduling and reorg */ - -/* Return the length of INSN. LENGTH is the initial length computed - by attributes in the machine-description file. This is where we - account for bundles. */ -int -tilegx_adjust_insn_length (rtx_insn *insn, int length) -{ - machine_mode mode = GET_MODE (insn); - - /* A non-termininating instruction in a bundle has length 0. */ - if (mode == SImode) - return 0; - - /* By default, there is not length adjustment. */ - return length; -} - - -/* Implement TARGET_SCHED_ISSUE_RATE. */ -static int -tilegx_issue_rate (void) -{ - return 3; -} - - -/* Return the rtx for the jump target. */ -static rtx -get_jump_target (rtx branch) -{ - if (CALL_P (branch)) - { - rtx call; - call = PATTERN (branch); - - if (GET_CODE (call) == PARALLEL) - call = XVECEXP (call, 0, 0); - - if (GET_CODE (call) == SET) - call = SET_SRC (call); - - if (GET_CODE (call) == CALL) - return XEXP (XEXP (call, 0), 0); - } - return 0; -} - - -/* Implement TARGET_SCHED_ADJUST_COST. */ -static int -tilegx_sched_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, - int cost, unsigned int) -{ - /* If we have a true dependence, INSN is a call, and DEP_INSN - defines a register that is needed by the call (argument or stack - pointer) , set its latency to 0 so that it can be bundled with - the call. Explicitly check for and exclude the case when - DEP_INSN defines the target of the jump. */ - if (CALL_P (insn) && dep_type == REG_DEP_TRUE) - { - rtx target = get_jump_target (insn); - if (!REG_P (target) || !set_of (target, dep_insn)) - return 0; - } - - return cost; -} - - -/* Skip over irrelevant NOTEs and such and look for the next insn we - would consider bundling. */ -static rtx_insn * -next_insn_to_bundle (rtx_insn *r, rtx_insn *end) -{ - for (; r != end; r = NEXT_INSN (r)) - { - if (NONDEBUG_INSN_P (r) - && GET_CODE (PATTERN (r)) != USE - && GET_CODE (PATTERN (r)) != CLOBBER) - return r; - } - - return NULL; -} - - -/* Go through all insns, and use the information generated during - scheduling to generate SEQUENCEs to represent bundles of - instructions issued simultaneously. */ -static void -tilegx_gen_bundles (void) -{ - basic_block bb; - FOR_EACH_BB_FN (bb, cfun) - { - rtx_insn *insn, *next, *prev; - rtx_insn *end = NEXT_INSN (BB_END (bb)); - - prev = NULL; - for (insn = next_insn_to_bundle (BB_HEAD (bb), end); insn; insn = next) - { - next = next_insn_to_bundle (NEXT_INSN (insn), end); - - /* Never wrap {} around inline asm. */ - if (GET_CODE (PATTERN (insn)) != ASM_INPUT) - { - if (next == NULL_RTX || GET_MODE (next) == TImode - /* NOTE: The scheduler incorrectly believes a call - insn can execute in the same cycle as the insn - after the call. This is of course impossible. - Really we need to fix the scheduler somehow, so - the code after the call gets scheduled - optimally. */ - || CALL_P (insn)) - { - /* Mark current insn as the end of a bundle. */ - PUT_MODE (insn, QImode); - } - else - { - /* Mark it as part of a bundle. */ - PUT_MODE (insn, SImode); - } - } - - /* Delete barrier insns, because they can mess up the - emitting of bundle braces. If it is end-of-bundle, then - the previous insn must be marked end-of-bundle. */ - if (get_attr_type (insn) == TYPE_NOTHING) { - if (GET_MODE (insn) == QImode && prev != NULL - && GET_MODE (prev) == SImode) - { - PUT_MODE (prev, QImode); - } - delete_insn (insn); - - // Note: prev remains the same for next iteration. - } - else - prev = insn; - } - } -} - - -/* Replace OLD_INSN with NEW_INSN. */ -static void -replace_insns (rtx_insn *old_insn, rtx_insn *new_insns) -{ - if (new_insns) - emit_insn_before (new_insns, old_insn); - - delete_insn (old_insn); -} - - -/* Returns true if INSN is the first instruction of a pc-relative - address compuatation. */ -static bool -match_pcrel_step1 (rtx insn) -{ - rtx pattern = PATTERN (insn); - rtx src; - - if (GET_CODE (pattern) != SET) - return false; - - src = SET_SRC (pattern); - - return (GET_CODE (src) == CONST - && GET_CODE (XEXP (src, 0)) == UNSPEC - && XINT (XEXP (src, 0), 1) == UNSPEC_HW1_LAST_PCREL); -} - - -/* Do the first replacement step in tilegx_fixup_pcrel_references. */ -static void -replace_mov_pcrel_step1 (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx unspec; - rtx opnds[2]; - rtx_insn *new_insns; - - gcc_assert (GET_CODE (pattern) == SET); - opnds[0] = SET_DEST (pattern); - - gcc_assert (GET_CODE (SET_SRC (pattern)) == CONST); - - unspec = XEXP (SET_SRC (pattern), 0); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_HW1_LAST_PCREL); - opnds[1] = XVECEXP (unspec, 0, 0); - - /* We only need to replace SYMBOL_REFs, not LABEL_REFs. */ - if (GET_CODE (opnds[1]) != SYMBOL_REF) - return; - - start_sequence (); - - if (flag_pic != 1) - { - if (TARGET_32BIT) - emit_insn (gen_mov_got32_step1_32bit (opnds[0], opnds[1])); - else - emit_insn (gen_mov_got32_step1 (opnds[0], opnds[1])); - } - - new_insns = get_insns (); - end_sequence (); - - replace_insns (insn, new_insns); -} - - -/* Returns true if INSN is the second instruction of a pc-relative - address compuatation. */ -static bool -match_pcrel_step2 (rtx_insn *insn) -{ - rtx unspec; - rtx addr; - - if (TARGET_32BIT) - { - if (recog_memoized (insn) != CODE_FOR_insn_addr_shl16insli_32bit) - return false; - } - else - { - if (recog_memoized (insn) != CODE_FOR_insn_addr_shl16insli) - return false; - } - - unspec = SET_SRC (PATTERN (insn)); - addr = XVECEXP (unspec, 0, 1); - - return (GET_CODE (addr) == CONST - && GET_CODE (XEXP (addr, 0)) == UNSPEC - && XINT (XEXP (addr, 0), 1) == UNSPEC_HW0_PCREL); -} - - -/* Do the second replacement step in tilegx_fixup_pcrel_references. */ -static void -replace_mov_pcrel_step2 (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx unspec; - rtx addr; - rtx opnds[3]; - rtx_insn *new_insns; - rtx got_rtx = tilegx_got_rtx (); - - gcc_assert (GET_CODE (pattern) == SET); - opnds[0] = SET_DEST (pattern); - - unspec = SET_SRC (pattern); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_INSN_ADDR_SHL16INSLI); - - opnds[1] = XVECEXP (unspec, 0, 0); - - addr = XVECEXP (unspec, 0, 1); - gcc_assert (GET_CODE (addr) == CONST); - - unspec = XEXP (addr, 0); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_HW0_PCREL); - opnds[2] = XVECEXP (unspec, 0, 0); - - /* We only need to replace SYMBOL_REFs, not LABEL_REFs. */ - if (GET_CODE (opnds[2]) != SYMBOL_REF) - return; - - start_sequence (); - - if (flag_pic == 1) - { - if (TARGET_32BIT) - emit_insn (gen_add_got16_32bit (opnds[0], got_rtx, opnds[2])); - else - emit_insn (gen_add_got16 (opnds[0], got_rtx, opnds[2])); - } - else - { - if (TARGET_32BIT) - emit_insn (gen_mov_got32_step2_32bit - (opnds[0], opnds[1], opnds[2])); - else - emit_insn (gen_mov_got32_step2 (opnds[0], opnds[1], opnds[2])); - } - - new_insns = get_insns (); - end_sequence (); - - replace_insns (insn, new_insns); -} - - -/* Do the third replacement step in tilegx_fixup_pcrel_references. */ -static void -replace_mov_pcrel_step3 (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx unspec; - rtx opnds[4]; - rtx_insn *new_insns; - rtx got_rtx = tilegx_got_rtx (); - rtx text_label_rtx = tilegx_text_label_rtx (); - - gcc_assert (GET_CODE (pattern) == SET); - opnds[0] = SET_DEST (pattern); - - unspec = SET_SRC (pattern); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_MOV_PCREL_STEP3); - - opnds[1] = got_rtx; - - if (XVECEXP (unspec, 0, 0) == text_label_rtx) - opnds[2] = XVECEXP (unspec, 0, 1); - else - { - gcc_assert (XVECEXP (unspec, 0, 1) == text_label_rtx); - opnds[2] = XVECEXP (unspec, 0, 0); - } - - opnds[3] = XVECEXP (unspec, 0, 2); - - /* We only need to replace SYMBOL_REFs, not LABEL_REFs. */ - if (GET_CODE (opnds[3]) != SYMBOL_REF) - return; - - start_sequence (); - - if (flag_pic == 1) - { - emit_move_insn (opnds[0], gen_const_mem (Pmode, opnds[2])); - } - else - { - emit_move_insn (opnds[0], gen_rtx_PLUS (Pmode, opnds[1], opnds[2])); - emit_move_insn (opnds[0], gen_const_mem (Pmode, opnds[0])); - } - - new_insns = get_insns (); - end_sequence (); - - replace_insns (insn, new_insns); -} - - -/* We generate PC relative SYMBOL_REFs as an optimization, to avoid - going through the GOT when the symbol is local to the compilation - unit. But such a symbol requires that the common text_label that - we generate at the beginning of the function be in the same section - as the reference to the SYMBOL_REF. This may not be true if we - generate hot/cold sections. This function looks for such cases and - replaces such references with the longer sequence going through the - GOT. - - We expect following instruction sequence: - moveli tmp1, hw1_last(x-.L_PICLNK) [1] - shl16insli tmp2, tmp1, hw0(x-.L_PICLNK) [2] - add tmp3, txt_label_reg, tmp2 [3] - - If we're compiling -fpic, we replace with the following sequence - (the numbers in brackets match the instructions they're replacing - above). - - addli tmp2, got_reg, hw0_last_got(x) [2] - ld<4> tmp3, tmp2 [3] - - If we're compiling -fPIC, we replace the first instruction with: - - moveli tmp1, hw1_last_got(x) [1] - shl16insli tmp2, tmp1, hw0_got(x) [2] - add tmp3, got_reg, tmp2 [3] - ld<4> tmp3, tmp3 [3] - - Note that we're careful to disturb the instruction sequence as - little as possible, since it's very late in the compilation - process. */ -static void -tilegx_fixup_pcrel_references (void) -{ - rtx_insn *insn, *next_insn; - bool same_section_as_entry = true; - - for (insn = get_insns (); insn; insn = next_insn) - { - next_insn = NEXT_INSN (insn); - - if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) - { - same_section_as_entry = !same_section_as_entry; - continue; - } - - if (same_section_as_entry) - continue; - - if (!(INSN_P (insn) - && GET_CODE (PATTERN (insn)) != USE - && GET_CODE (PATTERN (insn)) != CLOBBER)) - continue; - - if (TARGET_32BIT) - { - if (match_pcrel_step1 (insn)) - replace_mov_pcrel_step1 (insn); - else if (match_pcrel_step2 (insn)) - replace_mov_pcrel_step2 (insn); - else if (recog_memoized (insn) == CODE_FOR_mov_pcrel_step3_32bit) - replace_mov_pcrel_step3 (insn); - } - else - { - if (match_pcrel_step1 (insn)) - replace_mov_pcrel_step1 (insn); - else if (match_pcrel_step2 (insn)) - replace_mov_pcrel_step2 (insn); - else if (recog_memoized (insn) == CODE_FOR_mov_pcrel_step3) - replace_mov_pcrel_step3 (insn); - } - } -} - - -/* Ensure that no var tracking notes are emitted in the middle of a - three-instruction bundle. */ -static void -reorder_var_tracking_notes (void) -{ - basic_block bb; - FOR_EACH_BB_FN (bb, cfun) - { - rtx_insn *insn, *next; - rtx_insn *queue = NULL; - bool in_bundle = false; - - for (insn = BB_HEAD (bb); insn != BB_END (bb); insn = next) - { - next = NEXT_INSN (insn); - - if (INSN_P (insn)) - { - /* Emit queued up notes at the last instruction of a - bundle. */ - if (GET_MODE (insn) == QImode) - { - while (queue) - { - rtx_insn *next_queue = PREV_INSN (queue); - SET_PREV_INSN (NEXT_INSN (insn)) = queue; - SET_NEXT_INSN (queue) = NEXT_INSN (insn); - SET_NEXT_INSN (insn) = queue; - SET_PREV_INSN (queue) = insn; - queue = next_queue; - } - in_bundle = false; - } - else if (GET_MODE (insn) == SImode) - in_bundle = true; - } - else if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION) - { - if (in_bundle) - { - rtx_insn *prev = PREV_INSN (insn); - SET_PREV_INSN (next) = prev; - SET_NEXT_INSN (prev) = next; - - SET_PREV_INSN (insn) = queue; - queue = insn; - } - } - } - } -} - - -/* Perform machine dependent operations on the rtl chain INSNS. */ -static void -tilegx_reorg (void) -{ - /* We are freeing block_for_insn in the toplev to keep compatibility - with old MDEP_REORGS that are not CFG based. Recompute it - now. */ - compute_bb_for_insn (); - - if (flag_reorder_blocks_and_partition) - { - tilegx_fixup_pcrel_references (); - } - - if (flag_schedule_insns_after_reload) - { - split_all_insns (); - - timevar_push (TV_SCHED2); - schedule_insns (); - timevar_pop (TV_SCHED2); - - /* Examine the schedule to group into bundles. */ - tilegx_gen_bundles (); - } - - df_analyze (); - - if (flag_var_tracking) - { - timevar_push (TV_VAR_TRACKING); - variable_tracking_main (); - reorder_var_tracking_notes (); - timevar_pop (TV_VAR_TRACKING); - } - - df_finish_pass (false); -} - - - -/* Assembly */ - -/* Select a format to encode pointers in exception handling data. - CODE is 0 for data, 1 for code labels, 2 for function pointers. - GLOBAL is true if the symbol may be affected by dynamic - relocations. */ -int -tilegx_asm_preferred_eh_data_format (int code ATTRIBUTE_UNUSED, int global) -{ - int type = TARGET_32BIT ? DW_EH_PE_sdata4 : DW_EH_PE_sdata8; - return (global ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | type; -} - - -/* Implement TARGET_ASM_OUTPUT_MI_THUNK. */ -static void -tilegx_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, - HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset, - tree function) -{ - const char *fnname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk_fndecl)); - rtx this_rtx, funexp, addend; - rtx_insn *insn; - - /* Pretend to be a post-reload pass while generating rtl. */ - reload_completed = 1; - - /* Mark the end of the (empty) prologue. */ - emit_note (NOTE_INSN_PROLOGUE_END); - - /* Find the "this" pointer. If the function returns a structure, - the structure return pointer is in $1. */ - if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)), function)) - this_rtx = gen_rtx_REG (Pmode, 1); - else - this_rtx = gen_rtx_REG (Pmode, 0); - - /* Add DELTA to THIS_RTX. */ - if (!(delta >= -32868 && delta <= 32767)) - { - addend = gen_rtx_REG (Pmode, 29); - emit_move_insn (addend, GEN_INT (delta)); - } - else - addend = GEN_INT (delta); - - if (TARGET_32BIT) - emit_insn (gen_addsi3 (this_rtx, this_rtx, addend)); - else - emit_insn (gen_adddi3 (this_rtx, this_rtx, addend)); - - /* If needed, add *(*THIS_RTX + VCALL_OFFSET) to THIS_RTX. */ - if (vcall_offset) - { - rtx tmp; - - tmp = gen_rtx_REG (Pmode, 29); - emit_move_insn (tmp, gen_rtx_MEM (Pmode, this_rtx)); - - if (!(vcall_offset >= -32868 && vcall_offset <= 32767)) - { - addend = gen_rtx_REG (Pmode, 28); - emit_move_insn (addend, GEN_INT (vcall_offset)); - } - else - addend = GEN_INT (vcall_offset); - - if (TARGET_32BIT) - emit_insn (gen_addsi3 (tmp, tmp, addend)); - else - emit_insn (gen_adddi3 (tmp, tmp, addend)); - - emit_move_insn (tmp, gen_rtx_MEM (Pmode, tmp)); - - if (TARGET_32BIT) - emit_insn (gen_addsi3 (this_rtx, this_rtx, tmp)); - else - emit_insn (gen_adddi3 (this_rtx, this_rtx, tmp)); - } - - /* Generate a tail call to the target function. */ - if (!TREE_USED (function)) - { - assemble_external (function); - TREE_USED (function) = 1; - } - funexp = XEXP (DECL_RTL (function), 0); - funexp = gen_rtx_MEM (FUNCTION_MODE, funexp); - insn = emit_call_insn (gen_sibcall (funexp, const0_rtx)); - SIBLING_CALL_P (insn) = 1; - - /* Run just enough of rest_of_compilation to get the insns emitted. - There's not really enough bulk here to make other passes such as - instruction scheduling worth while. - - We don't currently bundle, but the instruciton sequence is all - serial except for the tail call, so we're only wasting one cycle. - */ - insn = get_insns (); - shorten_branches (insn); - assemble_start_function (thunk_fndecl, fnname); - final_start_function (insn, file, 1); - final (insn, file, 1); - final_end_function (); - assemble_end_function (thunk_fndecl, fnname); - - /* Stop pretending to be a post-reload pass. */ - reload_completed = 0; -} - - -/* Implement TARGET_ASM_TRAMPOLINE_TEMPLATE. */ -static void -tilegx_asm_trampoline_template (FILE *file) -{ - int ptr_mode_size = GET_MODE_SIZE (ptr_mode); - if (TARGET_32BIT) - { - fprintf (file, "\tlnk r10\n"); - fprintf (file, "\taddxi r10, r10, 32\n"); - fprintf (file, "\tld4s_add r11, r10, %d\n", ptr_mode_size); - fprintf (file, "\tld4s r10, r10\n"); - fprintf (file, "\tjr r11\n"); - fprintf (file, "\t.word 0 # \n"); - fprintf (file, "\t.word 0 # \n"); - } - else - { - fprintf (file, "\tlnk r10\n"); - fprintf (file, "\taddi r10, r10, 32\n"); - fprintf (file, "\tld_add r11, r10, %d\n", ptr_mode_size); - fprintf (file, "\tld r10, r10\n"); - fprintf (file, "\tjr r11\n"); - fprintf (file, "\t.quad 0 # \n"); - fprintf (file, "\t.quad 0 # \n"); - } -} - - -/* Implement TARGET_TRAMPOLINE_INIT. */ -static void -tilegx_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain) -{ - rtx fnaddr, chaddr; - rtx mem; - rtx begin_addr, end_addr; - int ptr_mode_size = GET_MODE_SIZE (ptr_mode); - - fnaddr = copy_to_reg (XEXP (DECL_RTL (fndecl), 0)); - chaddr = copy_to_reg (static_chain); - - emit_block_move (m_tramp, assemble_trampoline_template (), - GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL); - - mem = adjust_address (m_tramp, ptr_mode, - TRAMPOLINE_SIZE - 2 * ptr_mode_size); - emit_move_insn (mem, fnaddr); - mem = adjust_address (m_tramp, ptr_mode, - TRAMPOLINE_SIZE - ptr_mode_size); - emit_move_insn (mem, chaddr); - - /* Get pointers to the beginning and end of the code block. */ - begin_addr = force_reg (Pmode, XEXP (m_tramp, 0)); - end_addr = force_reg (Pmode, plus_constant (Pmode, XEXP (m_tramp, 0), - TRAMPOLINE_SIZE)); - - maybe_emit_call_builtin___clear_cache (begin_addr, end_addr); -} - - -/* Implement TARGET_PRINT_OPERAND. */ -static void -tilegx_print_operand (FILE *file, rtx x, int code) -{ - switch (code) - { - case 'c': - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("z", file); - break; - case NE: - fputs ("nz", file); - break; - default: - output_operand_lossage ("invalid %%c operand"); - } - return; - - case 'C': - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("nz", file); - break; - case NE: - fputs ("z", file); - break; - default: - output_operand_lossage ("invalid %%C operand"); - } - return; - - case 'd': - { - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("eq", file); - break; - case NE: - fputs ("ne", file); - break; - default: - output_operand_lossage ("invalid %%d operand"); - } - return; - } - - case 'D': - { - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("ne", file); - break; - case NE: - fputs ("eq", file); - break; - default: - output_operand_lossage ("invalid %%D operand"); - } - return; - } - - case 'H': - { - if (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == UNSPEC) - { - rtx addr = XVECEXP (XEXP (x, 0), 0, 0); - int unspec = XINT (XEXP (x, 0), 1); - const char *opstr = NULL; - switch (unspec) - { - case UNSPEC_HW0: - case UNSPEC_HW0_PCREL: - opstr = "hw0"; - break; - case UNSPEC_HW1: - case UNSPEC_HW1_PCREL: - opstr = "hw1"; - break; - case UNSPEC_HW2: - opstr = "hw2"; - break; - case UNSPEC_HW3: - opstr = "hw3"; - break; - case UNSPEC_HW0_LAST: - opstr = "hw0_last"; - break; - case UNSPEC_HW1_LAST: - case UNSPEC_HW1_LAST_PCREL: - opstr = "hw1_last"; - break; - case UNSPEC_HW2_LAST: - case UNSPEC_HW2_LAST_PCREL: - opstr = "hw2_last"; - break; - case UNSPEC_HW0_GOT: - opstr = "hw0_got"; - break; - case UNSPEC_HW0_LAST_GOT: - opstr = "hw0_last_got"; - break; - case UNSPEC_HW1_LAST_GOT: - opstr = "hw1_last_got"; - break; - case UNSPEC_HW0_TLS_GD: - opstr = "hw0_tls_gd"; - break; - case UNSPEC_HW1_LAST_TLS_GD: - opstr = "hw1_last_tls_gd"; - break; - case UNSPEC_HW0_TLS_IE: - opstr = "hw0_tls_ie"; - break; - case UNSPEC_HW1_LAST_TLS_IE: - opstr = "hw1_last_tls_ie"; - break; - case UNSPEC_HW0_TLS_LE: - opstr = "hw0_tls_le"; - break; - case UNSPEC_HW1_LAST_TLS_LE: - opstr = "hw1_last_tls_le"; - break; - case UNSPEC_HW0_PLT_PCREL: - opstr = "hw0_plt"; - break; - case UNSPEC_HW1_PLT_PCREL: - opstr = "hw1_plt"; - break; - case UNSPEC_HW1_LAST_PLT_PCREL: - opstr = "hw1_last_plt"; - break; - case UNSPEC_HW2_LAST_PLT_PCREL: - opstr = "hw2_last_plt"; - break; - default: - output_operand_lossage ("invalid %%H specifier"); - } - - fputs (opstr, file); - fputc ('(', file); - output_addr_const (file, addr); - - if (unspec == UNSPEC_HW0_PCREL - || unspec == UNSPEC_HW1_PCREL - || unspec == UNSPEC_HW1_LAST_PCREL - || unspec == UNSPEC_HW2_LAST_PCREL - || unspec == UNSPEC_HW0_PLT_PCREL - || unspec == UNSPEC_HW1_PLT_PCREL - || unspec == UNSPEC_HW1_LAST_PLT_PCREL - || unspec == UNSPEC_HW2_LAST_PLT_PCREL) - { - rtx addr2 = XVECEXP (XEXP (x, 0), 0, 1); - fputs (" - " , file); - output_addr_const (file, addr2); - } - - fputc (')', file); - return; - } - else if (symbolic_operand (x, VOIDmode)) - { - output_addr_const (file, x); - return; - } - } - /* FALLTHRU */ - - case 'h': - { - /* Print the low 16 bits of a constant. */ - HOST_WIDE_INT i; - if (CONST_INT_P (x)) - i = INTVAL (x); - else if (GET_CODE (x) == CONST_DOUBLE) - i = CONST_DOUBLE_LOW (x); - else - { - output_operand_lossage ("invalid %%h operand"); - return; - } - i = trunc_int_for_mode (i, HImode); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - - case 'I': - /* Print an auto-inc memory operand. */ - if (!MEM_P (x)) - { - output_operand_lossage ("invalid %%I operand"); - return; - } - - output_memory_autoinc_first = true; - output_address (GET_MODE (x), XEXP (x, 0)); - return; - - case 'i': - /* Print an auto-inc memory operand. */ - if (!MEM_P (x)) - { - output_operand_lossage ("invalid %%i operand"); - return; - } - - output_memory_autoinc_first = false; - output_address (GET_MODE (x), XEXP (x, 0)); - return; - - case 'j': - { - /* Print the low 8 bits of a constant. */ - HOST_WIDE_INT i; - if (CONST_INT_P (x)) - i = INTVAL (x); - else if (GET_CODE (x) == CONST_DOUBLE) - i = CONST_DOUBLE_LOW (x); - else if (GET_CODE (x) == CONST_VECTOR - && CONST_INT_P (CONST_VECTOR_ELT (x, 0))) - i = INTVAL (CONST_VECTOR_ELT (x, 0)); - else - { - output_operand_lossage ("invalid %%j operand"); - return; - } - i = trunc_int_for_mode (i, QImode); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - - case 'P': - { - /* Print a constant plus one. */ - if (!CONST_INT_P (x)) - { - output_operand_lossage ("invalid %%P operand"); - return; - } - fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) + 1); - return; - } - - case 'm': - case 'M': - { - /* Print a bfextu-style bit range. */ - int first_bit, last_bit; - HOST_WIDE_INT flip = (code == 'm') ? ~0 : 0; - - if (!CONST_INT_P (x) - || !tilegx_bitfield_operand_p (INTVAL (x) ^ flip, - &first_bit, &last_bit)) - { - output_operand_lossage ("invalid %%%c operand", code); - return; - } - - fprintf (file, "%d, %d", first_bit, last_bit); - return; - } - - case 'N': - { - const char *reg = NULL; - - /* Print a network register. */ - if (!CONST_INT_P (x)) - { - output_operand_lossage ("invalid %%N operand"); - return; - } - - switch (INTVAL (x)) - { - case TILEGX_NETREG_IDN0: reg = "idn0"; break; - case TILEGX_NETREG_IDN1: reg = "idn1"; break; - case TILEGX_NETREG_UDN0: reg = "udn0"; break; - case TILEGX_NETREG_UDN1: reg = "udn1"; break; - case TILEGX_NETREG_UDN2: reg = "udn2"; break; - case TILEGX_NETREG_UDN3: reg = "udn3"; break; - default: - gcc_unreachable (); - } - - fprintf (file, reg); - return; - } - - case 'p': - if (GET_CODE (x) == SYMBOL_REF) - { - if (flag_pic && !SYMBOL_REF_LOCAL_P (x)) - fprintf (file, "plt("); - output_addr_const (file, x); - if (flag_pic && !SYMBOL_REF_LOCAL_P (x)) - fprintf (file, ")"); - } - else - output_addr_const (file, x); - return; - - case 'r': - /* In this case we need a register. Use 'zero' if the operand - is const0_rtx. */ - if (x == const0_rtx - || (GET_MODE (x) != VOIDmode && x == CONST0_RTX (GET_MODE (x)))) - { - fputs ("zero", file); - return; - } - else if (!REG_P (x)) - { - output_operand_lossage ("invalid operand for 'r' specifier"); - return; - } - /* FALLTHRU */ - - case 0: - if (REG_P (x)) - { - fprintf (file, "%s", reg_names[REGNO (x)]); - return; - } - else if (MEM_P (x)) - { - output_address (VOIDmode, XEXP (x, 0)); - return; - } - else - { - output_addr_const (file, x); - return; - } - } - - debug_rtx (x); - output_operand_lossage ("unable to print out operand yet; code == %d (%c)", - code, code); -} - - -/* Implement TARGET_PRINT_OPERAND_ADDRESS. */ -static void -tilegx_print_operand_address (FILE *file, machine_mode mode, rtx addr) -{ - if (GET_CODE (addr) == POST_DEC - || GET_CODE (addr) == POST_INC) - { - int offset = GET_MODE_SIZE (mode); - - gcc_assert (mode != VOIDmode); - - if (output_memory_autoinc_first) - fprintf (file, "%s", reg_names[REGNO (XEXP (addr, 0))]); - else - fprintf (file, "%d", - GET_CODE (addr) == POST_DEC ? -offset : offset); - } - else if (GET_CODE (addr) == POST_MODIFY) - { - gcc_assert (mode != VOIDmode); - - gcc_assert (GET_CODE (XEXP (addr, 1)) == PLUS); - - if (output_memory_autoinc_first) - fprintf (file, "%s", reg_names[REGNO (XEXP (addr, 0))]); - else - fprintf (file, HOST_WIDE_INT_PRINT_DEC, - INTVAL (XEXP (XEXP (addr, 1), 1))); - } - else - tilegx_print_operand (file, addr, 'r'); -} - - -/* Machine mode of current insn, for determining curly brace - placement. */ -static machine_mode insn_mode; - - -/* Implement FINAL_PRESCAN_INSN. This is used to emit bundles. */ -void -tilegx_final_prescan_insn (rtx_insn *insn) -{ - /* Record this for tilegx_asm_output_opcode to examine. */ - insn_mode = GET_MODE (insn); -} - - -/* While emitting asm, are we currently inside '{' for a bundle? */ -static bool tilegx_in_bundle = false; - -/* Implement ASM_OUTPUT_OPCODE. Prepend/append curly braces as - appropriate given the bundling information recorded by - tilegx_gen_bundles. */ -const char * -tilegx_asm_output_opcode (FILE *stream, const char *code) -{ - bool pseudo = !strcmp (code, "pseudo"); - - if (!tilegx_in_bundle && insn_mode == SImode) - { - /* Start a new bundle. */ - fprintf (stream, "{\n\t"); - tilegx_in_bundle = true; - } - - if (tilegx_in_bundle && insn_mode == QImode) - { - /* Close an existing bundle. */ - static char buf[100]; - - gcc_assert (strlen (code) + 3 + 1 < sizeof (buf)); - - strcpy (buf, pseudo ? "" : code); - strcat (buf, "\n\t}"); - tilegx_in_bundle = false; - - return buf; - } - else - { - return pseudo ? "" : code; - } -} - - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. */ -void -tilegx_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) -{ - if (tilegx_in_bundle) - { - fprintf (file, "\t}\n"); - } - - if (cfun->static_chain_decl) - { - fprintf (file, - "\t{\n" - "\taddi\tsp, sp, -16\n" - "\tst\tsp, r10\n" - "\t}\n"); - } - - if (flag_pic) - { - fprintf (file, - "\t{\n" - "\tmove\tr10, lr\n" - "\tjal\tplt(%s)\n" - "\t}\n", MCOUNT_NAME); - } - else - { - fprintf (file, - "\t{\n" - "\tmove\tr10, lr\n" - "\tjal\t%s\n" - "\t}\n", MCOUNT_NAME); - } - - if (cfun->static_chain_decl) - { - fprintf (file, - "\taddi\tsp, sp, 16\n" - "\tld\tr10, sp\n"); - } - - tilegx_in_bundle = false; -} - - -/* Implement TARGET_ASM_FILE_END. */ -static void -tilegx_file_end (void) -{ - if (NEED_INDICATE_EXEC_STACK) - file_end_indicate_exec_stack (); -} - -/* Implement TARGET_TRULY_NOOP_TRUNCATION. We represent all SI values - as sign-extended DI values in registers. */ - -static bool -tilegx_truly_noop_truncation (poly_uint64 outprec, poly_uint64 inprec) -{ - return inprec <= 32 || outprec > 32; -} - -#undef TARGET_HAVE_TLS -#define TARGET_HAVE_TLS HAVE_AS_TLS - -#undef TARGET_OPTION_OVERRIDE -#define TARGET_OPTION_OVERRIDE tilegx_option_override - -#ifdef TARGET_THREAD_SSP_OFFSET -#undef TARGET_STACK_PROTECT_GUARD -#define TARGET_STACK_PROTECT_GUARD hook_tree_void_null -#endif - -#undef TARGET_SCALAR_MODE_SUPPORTED_P -#define TARGET_SCALAR_MODE_SUPPORTED_P tilegx_scalar_mode_supported_p - -#undef TARGET_VECTOR_MODE_SUPPORTED_P -#define TARGET_VECTOR_MODE_SUPPORTED_P tilegx_vector_mode_supported_p - -#undef TARGET_CANNOT_FORCE_CONST_MEM -#define TARGET_CANNOT_FORCE_CONST_MEM tilegx_cannot_force_const_mem - -#undef TARGET_FUNCTION_OK_FOR_SIBCALL -#define TARGET_FUNCTION_OK_FOR_SIBCALL tilegx_function_ok_for_sibcall - -#undef TARGET_PASS_BY_REFERENCE -#define TARGET_PASS_BY_REFERENCE tilegx_pass_by_reference - -#undef TARGET_RETURN_IN_MSB -#define TARGET_RETURN_IN_MSB tilegx_return_in_msb - -#undef TARGET_RETURN_IN_MEMORY -#define TARGET_RETURN_IN_MEMORY tilegx_return_in_memory - -#undef TARGET_MODE_REP_EXTENDED -#define TARGET_MODE_REP_EXTENDED tilegx_mode_rep_extended - -#undef TARGET_FUNCTION_ARG_BOUNDARY -#define TARGET_FUNCTION_ARG_BOUNDARY tilegx_function_arg_boundary - -#undef TARGET_FUNCTION_ARG -#define TARGET_FUNCTION_ARG tilegx_function_arg - -#undef TARGET_FUNCTION_ARG_ADVANCE -#define TARGET_FUNCTION_ARG_ADVANCE tilegx_function_arg_advance - -#undef TARGET_FUNCTION_VALUE -#define TARGET_FUNCTION_VALUE tilegx_function_value - -#undef TARGET_LIBCALL_VALUE -#define TARGET_LIBCALL_VALUE tilegx_libcall_value - -#undef TARGET_FUNCTION_VALUE_REGNO_P -#define TARGET_FUNCTION_VALUE_REGNO_P tilegx_function_value_regno_p - -#undef TARGET_PROMOTE_FUNCTION_MODE -#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote - -#undef TARGET_PROMOTE_PROTOTYPES -#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false - -#undef TARGET_BUILD_BUILTIN_VA_LIST -#define TARGET_BUILD_BUILTIN_VA_LIST tilegx_build_builtin_va_list - -#undef TARGET_EXPAND_BUILTIN_VA_START -#define TARGET_EXPAND_BUILTIN_VA_START tilegx_va_start - -#undef TARGET_SETUP_INCOMING_VARARGS -#define TARGET_SETUP_INCOMING_VARARGS tilegx_setup_incoming_varargs - -#undef TARGET_GIMPLIFY_VA_ARG_EXPR -#define TARGET_GIMPLIFY_VA_ARG_EXPR tilegx_gimplify_va_arg_expr - -#undef TARGET_RTX_COSTS -#define TARGET_RTX_COSTS tilegx_rtx_costs - -#undef TARGET_EXPAND_TO_RTL_HOOK -#define TARGET_EXPAND_TO_RTL_HOOK tilegx_expand_to_rtl_hook - -#undef TARGET_SHIFT_TRUNCATION_MASK -#define TARGET_SHIFT_TRUNCATION_MASK tilegx_shift_truncation_mask - -#undef TARGET_INIT_LIBFUNCS -#define TARGET_INIT_LIBFUNCS tilegx_init_libfuncs - -/* Limit to what we can reach in one addli. */ -#undef TARGET_MIN_ANCHOR_OFFSET -#define TARGET_MIN_ANCHOR_OFFSET -32768 -#undef TARGET_MAX_ANCHOR_OFFSET -#define TARGET_MAX_ANCHOR_OFFSET 32767 - -#undef TARGET_LEGITIMATE_CONSTANT_P -#define TARGET_LEGITIMATE_CONSTANT_P tilegx_legitimate_constant_p - -#undef TARGET_LRA_P -#define TARGET_LRA_P hook_bool_void_false - -#undef TARGET_LEGITIMATE_ADDRESS_P -#define TARGET_LEGITIMATE_ADDRESS_P tilegx_legitimate_address_p - -#undef TARGET_LEGITIMIZE_ADDRESS -#define TARGET_LEGITIMIZE_ADDRESS tilegx_legitimize_address - -#undef TARGET_DELEGITIMIZE_ADDRESS -#define TARGET_DELEGITIMIZE_ADDRESS tilegx_delegitimize_address - -#undef TARGET_INIT_BUILTINS -#define TARGET_INIT_BUILTINS tilegx_init_builtins - -#undef TARGET_BUILTIN_DECL -#define TARGET_BUILTIN_DECL tilegx_builtin_decl - -#undef TARGET_EXPAND_BUILTIN -#define TARGET_EXPAND_BUILTIN tilegx_expand_builtin - -#undef TARGET_CONDITIONAL_REGISTER_USAGE -#define TARGET_CONDITIONAL_REGISTER_USAGE tilegx_conditional_register_usage - -#undef TARGET_FRAME_POINTER_REQUIRED -#define TARGET_FRAME_POINTER_REQUIRED tilegx_frame_pointer_required - -#undef TARGET_DELAY_SCHED2 -#define TARGET_DELAY_SCHED2 true - -#undef TARGET_DELAY_VARTRACK -#define TARGET_DELAY_VARTRACK true - -#undef TARGET_SCHED_ISSUE_RATE -#define TARGET_SCHED_ISSUE_RATE tilegx_issue_rate - -#undef TARGET_SCHED_ADJUST_COST -#define TARGET_SCHED_ADJUST_COST tilegx_sched_adjust_cost - -#undef TARGET_MACHINE_DEPENDENT_REORG -#define TARGET_MACHINE_DEPENDENT_REORG tilegx_reorg - -#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK -#define TARGET_ASM_CAN_OUTPUT_MI_THUNK \ - hook_bool_const_tree_hwi_hwi_const_tree_true - -#undef TARGET_ASM_OUTPUT_MI_THUNK -#define TARGET_ASM_OUTPUT_MI_THUNK tilegx_output_mi_thunk - -#undef TARGET_ASM_TRAMPOLINE_TEMPLATE -#define TARGET_ASM_TRAMPOLINE_TEMPLATE tilegx_asm_trampoline_template - -#undef TARGET_TRAMPOLINE_INIT -#define TARGET_TRAMPOLINE_INIT tilegx_trampoline_init - -#undef TARGET_PRINT_OPERAND -#define TARGET_PRINT_OPERAND tilegx_print_operand - -#undef TARGET_PRINT_OPERAND_ADDRESS -#define TARGET_PRINT_OPERAND_ADDRESS tilegx_print_operand_address - -#undef TARGET_ASM_FILE_END -#define TARGET_ASM_FILE_END tilegx_file_end - -#undef TARGET_ASM_ALIGNED_DI_OP -#define TARGET_ASM_ALIGNED_DI_OP "\t.quad\t" - -#undef TARGET_CAN_USE_DOLOOP_P -#define TARGET_CAN_USE_DOLOOP_P can_use_doloop_if_innermost - -#undef TARGET_TRULY_NOOP_TRUNCATION -#define TARGET_TRULY_NOOP_TRUNCATION tilegx_truly_noop_truncation - -#undef TARGET_CONSTANT_ALIGNMENT -#define TARGET_CONSTANT_ALIGNMENT constant_alignment_word_strings - -struct gcc_target targetm = TARGET_INITIALIZER; - -#include "gt-tilegx.h" diff --git a/gcc/config/tilegx/tilegx.h b/gcc/config/tilegx/tilegx.h deleted file mode 100644 index 3f1c25d..0000000 --- a/gcc/config/tilegx/tilegx.h +++ /dev/null @@ -1,530 +0,0 @@ -/* Definitions of target machine for GNU compiler for TILE-Gx. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* Default target_flags if no switches are specified */ -#ifndef TARGET_DEFAULT -#define TARGET_DEFAULT 0 -#endif - -#ifndef TARGET_BIG_ENDIAN_DEFAULT -#define TARGET_BIG_ENDIAN_DEFAULT 0 -#endif - -#ifndef TARGET_ENDIAN_DEFAULT -#if TARGET_BIG_ENDIAN_DEFAULT -#define TARGET_ENDIAN_DEFAULT MASK_BIG_ENDIAN -#else -#define TARGET_ENDIAN_DEFAULT 0 -#endif -#endif - -/* This is used by tilegx_cpu_cpp_builtins to indicate the byte order - we're compiling for. */ -#define TILEGX_CPU_CPP_ENDIAN_BUILTINS() \ - do \ - { \ - if (TARGET_BIG_ENDIAN) \ - builtin_define ("__BIG_ENDIAN__"); \ - else \ - builtin_define ("__LITTLE_ENDIAN__"); \ - } \ - while (0) - -#include "config/tilegx/tilegx-opts.h" - - -/* Target CPU builtins. */ -#define TARGET_CPU_CPP_BUILTINS() \ - tilegx_cpu_cpp_builtins (pfile) - -#undef PTRDIFF_TYPE -#define PTRDIFF_TYPE (TARGET_32BIT ? "int" : "long int") - -#undef SIZE_TYPE -#define SIZE_TYPE (TARGET_32BIT ? "unsigned int" : "long unsigned int") - -#undef WCHAR_TYPE -#define WCHAR_TYPE "int" - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - - -/* Target machine storage layout */ - -#define BITS_BIG_ENDIAN 0 -#define BYTES_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0) -#define WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0) -#define FLOAT_WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0) - -#define UNITS_PER_WORD 8 -#define PARM_BOUNDARY BITS_PER_WORD -#define STACK_BOUNDARY 128 -#define FUNCTION_BOUNDARY 64 -#define BIGGEST_ALIGNMENT 128 -#define STRICT_ALIGNMENT 1 - -#define INT_TYPE_SIZE 32 -#define LONG_TYPE_SIZE (TARGET_32BIT ? 32 : 64) -#define LONG_LONG_TYPE_SIZE 64 -#define FLOAT_TYPE_SIZE 32 -#define DOUBLE_TYPE_SIZE 64 -#define LONG_DOUBLE_TYPE_SIZE 64 -#define POINTER_SIZE LONG_TYPE_SIZE - -#define PCC_BITFIELD_TYPE_MATTERS 1 -#define FASTEST_ALIGNMENT 64 -#define BIGGEST_FIELD_ALIGNMENT 128 -#define WIDEST_HARDWARE_FP_SIZE 64 - -/* Make arrays of chars word-aligned for the same reasons. */ -#define DATA_ALIGNMENT(TYPE, ALIGN) \ - (TREE_CODE (TYPE) == ARRAY_TYPE \ - && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ - && (ALIGN) < FASTEST_ALIGNMENT ? FASTEST_ALIGNMENT : (ALIGN)) - -/* Make local arrays of chars word-aligned for the same reasons. */ -#define LOCAL_ALIGNMENT(TYPE, ALIGN) DATA_ALIGNMENT (TYPE, ALIGN) - - -/* Standard register usage. */ - -#define FIRST_PSEUDO_REGISTER (64 + 4) - -#define FIXED_REGISTERS \ - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1, 1} -#define CALL_REALLY_USED_REGISTERS \ - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1, 1} - -#define REG_ALLOC_ORDER { \ - 10, 11, 12, 13, 14, /* call used */ \ - 15, 16, 17, 18, 19, \ - 20, 21, 22, 23, 24, \ - 25, 26, 27, 28, 29, \ - \ - 9, 8, 7, 6, 5, /* argument */ \ - 4, 3, 2, 1, 0, \ - \ - 55, /* return address */ \ - \ - 30, 31, 32, 33, 34, /* call saved registers */ \ - 35, 36, 37, 38, 39, \ - 40, 41, 42, 43, 44, \ - 45, 46, 47, 48, 49, \ - 50, 51, \ - \ - 52, /* hard frame pointer */ \ - 53, 54, /* tp, sp */ \ - \ - 56, 57, 58, 59, 60, /* special purpose */ \ - 61, 62, 63, 64, 65, /* or fake registers */ \ - 66, 67 \ -} - -/* Register that holds an address into the text segment that can be - used by pic code. */ -#define TILEGX_PIC_TEXT_LABEL_REGNUM (flag_pic ? 50 : INVALID_REGNUM) -#define PIC_OFFSET_TABLE_REGNUM (flag_pic ? 51 : INVALID_REGNUM) -#define HARD_FRAME_POINTER_REGNUM 52 -#define THREAD_POINTER_REGNUM 53 -#define STACK_POINTER_REGNUM 54 -#define TILEGX_LINK_REGNUM 55 -#define FRAME_POINTER_REGNUM 64 -#define ARG_POINTER_REGNUM 65 -/* SPR storing the comparison value for compare and exchange. */ -#define TILEGX_CMPEXCH_REGNUM 66 -/* Pseudo registers used to enforce order between instructions that - touch the networks. */ -#define TILEGX_NETORDER_REGNUM 67 -#define STATIC_CHAIN_REGNUM 10 - - -enum reg_class -{ - NO_REGS, - R0_REGS, - R1_REGS, - R2_REGS, - R3_REGS, - R4_REGS, - R5_REGS, - R6_REGS, - R7_REGS, - R8_REGS, - R9_REGS, - R10_REGS, - ALL_REGS, - LIM_REG_CLASSES -}; - -#define N_REG_CLASSES (int) LIM_REG_CLASSES - -/* Since GENERAL_REGS is the same class as ALL_REGS, don't give it a - different class number; just make it an alias. */ -#define GENERAL_REGS ALL_REGS - -#define REG_CLASS_NAMES \ - { \ - "NO_REGS", \ - "R0_REGS", \ - "R1_REGS", \ - "R2_REGS", \ - "R3_REGS", \ - "R4_REGS", \ - "R5_REGS", \ - "R6_REGS", \ - "R7_REGS", \ - "R8_REGS", \ - "R9_REGS", \ - "R10_REGS", \ - "ALL_REGS" \ - } - -#define REG_CLASS_CONTENTS \ - { \ - { 0 }, \ - { 1 << 0 }, \ - { 1 << 1 }, \ - { 1 << 2 }, \ - { 1 << 3 }, \ - { 1 << 4 }, \ - { 1 << 5 }, \ - { 1 << 6 }, \ - { 1 << 7 }, \ - { 1 << 8 }, \ - { 1 << 9 }, \ - { 1 << 10 }, \ - { 0xffffffff, 0xffffffff } \ - } - -#define REGNO_REG_CLASS(REGNO) \ - ((unsigned)(REGNO) <= 10 ? \ - (enum reg_class)(R0_REGS + (REGNO)) : ALL_REGS) - -#define INDEX_REG_CLASS NO_REGS -#define BASE_REG_CLASS ALL_REGS - -#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS) - -#define CLASS_MAX_NREGS(CLASS, MODE) \ - ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) - - -/* Stack layout; function entry, exit and calling. */ - -#define STACK_GROWS_DOWNWARD 1 -#define FRAME_GROWS_DOWNWARD 1 - -#define DYNAMIC_CHAIN_ADDRESS(FRAME) \ - plus_constant (Pmode, (FRAME), UNITS_PER_WORD) - -#define FIRST_PARM_OFFSET(FNDECL) 0 - -#define ACCUMULATE_OUTGOING_ARGS 1 - -#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 - -#define INCOMING_FRAME_SP_OFFSET 0 - -#define STACK_POINTER_OFFSET (2 * UNITS_PER_WORD) - -#define ARG_POINTER_CFA_OFFSET(FNDECL) (-STACK_POINTER_OFFSET) - -#define DEFAULT_PCC_STRUCT_RETURN 0 - -/* The first 10 registers may hold return value. */ -#define TILEGX_NUM_RETURN_REGS 10 - -/* The first 10 registers hold function arguments. */ -#define TILEGX_NUM_ARG_REGS 10 - -#define FUNCTION_ARG_REGNO_P(N) ((N) < TILEGX_NUM_ARG_REGS) - -/* The type used to store the number of words of arguments scanned so - far during argument scanning. This includes any space that is - skipped. */ -#define CUMULATIVE_ARGS int - -#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ - ((CUM) = 0) - - -#define ELIMINABLE_REGS \ - {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ - {ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \ - {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ - {FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}} - -#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ - ((OFFSET) = tilegx_initial_elimination_offset((FROM),(TO))) - -#define PROFILE_BEFORE_PROLOGUE 1 - -#define FUNCTION_PROFILER(FILE, LABELNO) \ - tilegx_function_profiler (FILE, LABELNO) - -#define TRAMPOLINE_SIZE (TARGET_32BIT ? 48 : 56) -#define TRAMPOLINE_ALIGNMENT 64 -#define TRAMPOLINE_SECTION text_section - - -/* Call frame debugging information. */ - -#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, TILEGX_LINK_REGNUM) - -#define RETURN_ADDR_RTX tilegx_return_addr - -#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (TILEGX_LINK_REGNUM) - -#define DWARF_ZERO_REG 63 - -#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N + 12) : INVALID_REGNUM) -#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, 11) -#define EH_RETURN_HANDLER_RTX tilegx_eh_return_handler_rtx () - -#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ - tilegx_asm_preferred_eh_data_format ((CODE), (GLOBAL)) - - -/* Addressing modes, and classification of registers for them. */ - -#define HAVE_POST_INCREMENT 1 -#define HAVE_POST_DECREMENT 1 -#define HAVE_POST_MODIFY_DISP 1 - -#define REGNO_OK_FOR_INDEX_P(regno) 0 -#define REGNO_OK_FOR_BASE_P(regno) \ - ((regno) < FIRST_PSEUDO_REGISTER || reg_renumber[regno] >= 0) - -#define MAX_REGS_PER_ADDRESS 1 - -#define CONSTANT_ADDRESS_P(X) 0 - -#define LEGITIMATE_PIC_OPERAND_P(X) tilegx_legitimate_pic_operand_p (X) - - -#define CASE_VECTOR_MODE Pmode -#define CASE_VECTOR_PC_RELATIVE 0 -#define JUMP_TABLES_IN_TEXT_SECTION 0 - -#define DEFAULT_SIGNED_CHAR 1 - -#define MOVE_MAX UNITS_PER_WORD - -/* Use a value of 11 for MOVE_RATIO and friends, because TILEPro - returns structs as large as 10 words in registers. Because of some - some code generation inefficiency, we never get smaller code for - turning that into a memcpy, so pick a value that guarantees this - doesn't happen. */ -#define TILEGX_CALL_RATIO 11 -#define MOVE_RATIO(speed) ((speed) ? 15 : TILEGX_CALL_RATIO) -#define CLEAR_RATIO(speed) ((speed) ? 15 : TILEGX_CALL_RATIO) -#define SET_RATIO(speed) ((speed) ? 15 : TILEGX_CALL_RATIO) - -#define WORD_REGISTER_OPERATIONS 1 - -#define LOAD_EXTEND_OP(MODE) ((MODE) == SImode ? SIGN_EXTEND : ZERO_EXTEND) - -#define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ - if (GET_MODE_CLASS (MODE) == MODE_INT \ - && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ - { \ - if ((MODE) == SImode) \ - (UNSIGNEDP) = 0; \ - (MODE) = DImode; \ - } - -/* Define SLOW_BYTE_ACCESS to avoid making a QI or HI mode - register. */ -#define SLOW_BYTE_ACCESS 1 - -#define SHIFT_COUNT_TRUNCATED 0 - -#define SHORT_IMMEDIATES_SIGN_EXTEND 1 - -#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 64, 1) -#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 64, 1) - -#define Pmode (TARGET_32BIT ? SImode : DImode) - -#define STACK_SIZE_MODE Pmode - -#define STORE_FLAG_VALUE 1 - -#define FUNCTION_MODE DImode - -#define NO_FUNCTION_CSE 1 - -#define ADJUST_INSN_LENGTH(INSN, LENGTH) \ - ((LENGTH) = tilegx_adjust_insn_length ((INSN), (LENGTH))) - -#define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT - -#define BRANCH_COST(speed_p, predictable_p) ((predictable_p) ? 2 : 6) - - -/* Control the assembler format that we output. */ - -#undef NO_DOLLAR_IN_LABEL - -#define ASM_COMMENT_START "##" - -#define TEXT_SECTION_ASM_OP "\t.text" - -#define DATA_SECTION_ASM_OP "\t.data" - -#undef READONLY_DATA_SECTION_ASM_OP -#define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata, \"a\"" - -#undef BSS_SECTION_ASM_OP -#define BSS_SECTION_ASM_OP "\t.section\t.bss, \"wa\"" - -#undef INIT_SECTION_ASM_OP -#define INIT_SECTION_ASM_OP "\t.section\t.init, \"ax\"" - -#undef FINI_SECTION_ASM_OP -#define FINI_SECTION_ASM_OP "\t.section\t.fini, \"ax\"" - -#define GLOBAL_ASM_OP ".global " - -#define SUPPORTS_WEAK 1 - -#define USER_LABEL_PREFIX "" - -#define REGISTER_PREFIX "" -#define REGISTER_NAMES \ - { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \ - "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \ - "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \ - "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31", \ - "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39", \ - "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47", \ - "r48", "r49", "r50", "r51", "r52", "tp", "sp", "lr", \ - "?r56?","idn0", "idn1", "udn0", "udn1", "udn2", "udn3", "zero", \ - "?FRAME?", "?ARG?", "?CMPEXCH?", "?NET?" } - -#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \ - tilegx_final_prescan_insn (insn) - -#define ASM_OUTPUT_OPCODE(STREAM, PTR) \ - (PTR = tilegx_asm_output_opcode (STREAM, PTR)) - -#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ - do \ - { \ - char label[256]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE)); \ - fprintf (FILE, "%s ", \ - integer_asm_op (GET_MODE_SIZE (Pmode), TRUE)); \ - assemble_name (FILE, label); \ - fprintf (FILE, "\n"); \ - } \ - while (0) - -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ - do \ - { \ - char label[256]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE)); \ - fprintf (FILE, "%s ", \ - integer_asm_op (GET_MODE_SIZE (Pmode), TRUE)); \ - assemble_name (FILE, label); \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (REL)); \ - fprintf (FILE, "-"); \ - assemble_name (FILE, label); \ - fprintf (FILE, "\n"); \ - } \ - while (0) - -#define ASM_OUTPUT_ALIGN(FILE,LOG) \ - do { if ((LOG) != 0) fprintf (FILE, "\t.align %d\n", 1 << (LOG)); } while (0) - -#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ - ( fputs (".comm ", (FILE)), \ - assemble_name ((FILE), (NAME)), \ - fprintf ((FILE), ",%u\n", (unsigned int)(ROUNDED))) - -#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ - ( fputs (".lcomm ", (FILE)), \ - assemble_name ((FILE), (NAME)), \ - fprintf ((FILE), ",%u\n", (unsigned int)(ROUNDED))) - -#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ -static void __attribute__((__used__)) \ -call_ ## FUNC (void) \ -{ \ - asm (SECTION_OP); \ - asm ("{ moveli r0, hw2_last(" #FUNC " - . - 8); lnk r1 }\n"); \ - asm ("shl16insli r0, r0, hw1(" #FUNC " - .)\n"); \ - asm ("shl16insli r0, r0, hw0(" #FUNC " - . + 8)\n"); \ - asm ("add r0, r1, r0\n"); \ - asm ("jalr r0\n"); \ - asm (TEXT_SECTION_ASM_OP); \ -} - - - -#define INIT_EXPANDERS tilegx_init_expanders () - -/* A C structure for machine-specific, per-function data. This is - added to the cfun structure. */ -typedef struct GTY(()) machine_function -{ - /* Symbol for the text label used for pic. */ - rtx text_label_symbol; - - /* Register for the text label. */ - rtx text_label_rtx; - - /* Register for the pic offset table. */ - rtx got_rtx; - - /* The function calls tls_get_addr. */ - int calls_tls_get_addr; -} machine_function; - -#ifndef HAVE_AS_TLS -#define HAVE_AS_TLS 0 -#endif - -#ifndef ENDIAN_SPEC -#if TARGET_BIG_ENDIAN_DEFAULT -#define ENDIAN_SPEC \ - "%{!mlittle-endian:-EB} \ - %{mlittle-endian:%{mbig-endian: \ - %e-mbig-endian and -mlittle-endian may not be used together}-EL}" -#else -#define ENDIAN_SPEC \ - "%{!mbig-endian:-EL} \ - %{mbig-endian:%{mlittle-endian: \ - %e-mbig-endian and -mlittle-endian may not be used together}-EB}" -#endif -#endif - -#define EXTRA_SPECS \ - { "endian_spec", ENDIAN_SPEC } diff --git a/gcc/config/tilegx/tilegx.md b/gcc/config/tilegx/tilegx.md deleted file mode 100644 index 7f89ae5..0000000 --- a/gcc/config/tilegx/tilegx.md +++ /dev/null @@ -1,5664 +0,0 @@ -;; Machine description for Tilera TILE-Gx chip for GCC. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_constants [ - ;; - ;; The following represent intrinsic insns, organized by latency. - ;; - - ;; single cycle - (UNSPEC_INSN_ADDR_SHL16INSLI 1) - (UNSPEC_INSN_BFEXTS 2) - (UNSPEC_INSN_BFEXTU 3) - (UNSPEC_INSN_BFINS 4) - (UNSPEC_INSN_CRC32_32 5) - (UNSPEC_INSN_CRC32_8 6) - (UNSPEC_INSN_DBLALIGN 7) - (UNSPEC_INSN_DBLALIGN2 8) - (UNSPEC_INSN_DBLALIGN4 9) - (UNSPEC_INSN_DBLALIGN6 10) - (UNSPEC_INSN_DRAIN 11) - (UNSPEC_INSN_DTLBPR 12) - (UNSPEC_INSN_FINV 13) - (UNSPEC_INSN_FLUSH 14) - (UNSPEC_INSN_FLUSHWB 15) - (UNSPEC_INSN_FNOP 16) - (UNSPEC_INSN_ICOH 17) - (UNSPEC_INSN_ILL 18) - (UNSPEC_INSN_INFO 19) - (UNSPEC_INSN_INFOL 20) - (UNSPEC_INSN_INV 21) - (UNSPEC_INSN_LNK 22) - (UNSPEC_INSN_MFSPR 23) - (UNSPEC_INSN_MM 24) - (UNSPEC_INSN_MTSPR 25) - (UNSPEC_INSN_NAP 26) - (UNSPEC_INSN_PREFETCH_L1_FAULT 27) - (UNSPEC_INSN_PREFETCH_L2_FAULT 28) - (UNSPEC_INSN_PREFETCH_L3_FAULT 29) - (UNSPEC_INSN_REVBITS 30) - (UNSPEC_INSN_SHUFFLEBYTES 31) - (UNSPEC_INSN_TBLIDXB0 32) - (UNSPEC_INSN_TBLIDXB1 33) - (UNSPEC_INSN_TBLIDXB2 34) - (UNSPEC_INSN_TBLIDXB3 35) - (UNSPEC_INSN_V1AVGU 36) - (UNSPEC_INSN_V2AVGS 37) - (UNSPEC_INSN_WH64 38) - - ;; 2 cycles - (UNSPEC_INSN_CMUL 100) - (UNSPEC_INSN_CMULA 101) - (UNSPEC_INSN_CMULAF 102) - (UNSPEC_INSN_CMULFR 103) - (UNSPEC_INSN_CMULHR 104) - (UNSPEC_INSN_CMULF 105) - (UNSPEC_INSN_CMULH 106) - (UNSPEC_INSN_EXCH 107) - (UNSPEC_INSN_FDOUBLE_ADDSUB 108) - (UNSPEC_INSN_FDOUBLE_ADD_FLAGS 109) - (UNSPEC_INSN_FDOUBLE_MUL_FLAGS 110) - (UNSPEC_INSN_FDOUBLE_PACK1 111) - (UNSPEC_INSN_FDOUBLE_PACK2 112) - (UNSPEC_INSN_FDOUBLE_SUB_FLAGS 113) - (UNSPEC_INSN_FDOUBLE_UNPACK_MAX 114) - (UNSPEC_INSN_FDOUBLE_UNPACK_MIN 115) - (UNSPEC_INSN_FETCHADDGEZ 116) - (UNSPEC_INSN_FSINGLE_ADD1 117) - (UNSPEC_INSN_FSINGLE_ADDSUB2 118) - (UNSPEC_INSN_FSINGLE_MUL1 119) - (UNSPEC_INSN_FSINGLE_MUL2 120) - (UNSPEC_INSN_FSINGLE_PACK1 121) - (UNSPEC_INSN_FSINGLE_PACK2 122) - (UNSPEC_INSN_FSINGLE_SUB1 123) - (UNSPEC_INSN_MULAX 124) - (UNSPEC_INSN_MULA_HS_HS 125) - (UNSPEC_INSN_MULA_HS_HU 126) - (UNSPEC_INSN_MULA_HS_LS 127) - (UNSPEC_INSN_MULA_HS_LU 128) - (UNSPEC_INSN_MULA_HU_HU 129) - (UNSPEC_INSN_MULA_HU_LS 130) - (UNSPEC_INSN_MULA_HU_LU 131) - (UNSPEC_INSN_MULA_LS_LS 132) - (UNSPEC_INSN_MULA_LS_LU 133) - (UNSPEC_INSN_MULA_LU_LU 134) - (UNSPEC_INSN_MUL_HS_HS 135) - (UNSPEC_INSN_MUL_HS_HU 136) - (UNSPEC_INSN_MUL_HS_LS 137) - (UNSPEC_INSN_MUL_HS_LU 138) - (UNSPEC_INSN_MUL_HU_HU 139) - (UNSPEC_INSN_MUL_HU_LS 140) - (UNSPEC_INSN_MUL_HU_LU 141) - (UNSPEC_INSN_MUL_LS_LS 142) - (UNSPEC_INSN_MUL_LS_LU 143) - (UNSPEC_INSN_MUL_LU_LU 144) - (UNSPEC_INSN_V1ADIFFU 145) - (UNSPEC_INSN_V1DDOTPU 146) - (UNSPEC_INSN_V1DDOTPUA 147) - (UNSPEC_INSN_V1DDOTPUS 148) - (UNSPEC_INSN_V1DDOTPUSA 149) - (UNSPEC_INSN_V1DOTP 150) - (UNSPEC_INSN_V1DOTPA 151) - (UNSPEC_INSN_V1DOTPU 152) - (UNSPEC_INSN_V1DOTPUA 153) - (UNSPEC_INSN_V1DOTPUS 154) - (UNSPEC_INSN_V1DOTPUSA 155) - (UNSPEC_INSN_V1SADAU 156) - (UNSPEC_INSN_V1SADU 157) - (UNSPEC_INSN_V2ADIFFS 158) - (UNSPEC_INSN_V2DOTP 159) - (UNSPEC_INSN_V2DOTPA 160) - (UNSPEC_INSN_V2MULFSC 161) - (UNSPEC_INSN_V2SADAS 162) - (UNSPEC_INSN_V2SADAU 163) - (UNSPEC_INSN_V2SADS 164) - (UNSPEC_INSN_V2SADU 165) - - ;; 11 cycles - (UNSPEC_INSN_CMPEXCH 200) - - ;; - ;; The following are special insns. - ;; - - ;; Blockage - (UNSPEC_BLOCKAGE 201) - - ;; Lnk and its label - (UNSPEC_LNK_AND_LABEL 202) - - ;; Memory fence - (UNSPEC_MF 203) - - ;; Insns generating difference of two labels - (UNSPEC_MOV_PCREL_STEP3 204) - (UNSPEC_MOV_LARGE_PCREL_STEP4 205) - - ;; Latency specifying loads. - (UNSPEC_LATENCY_L2 206) - (UNSPEC_LATENCY_MISS 207) - - ;; A pseudo-op that prevents network operations from being ordered. - (UNSPEC_NETWORK_BARRIER 208) - - ;; Operations that access network registers. - (UNSPEC_NETWORK_RECEIVE 209) - (UNSPEC_NETWORK_SEND 210) - - ;; Stack protector operations - (UNSPEC_SP_SET 211) - (UNSPEC_SP_TEST 212) - - ;; This is used to move a value to a SPR. - (UNSPEC_SPR_MOVE 213) - - ;; A call to __tls_get_addr - (UNSPEC_TLS_GD_CALL 214) - - ;; An opaque TLS "add" operation for TLS general dynamic model - ;; access. - (UNSPEC_TLS_GD_ADD 215) - - ;; An opaque TLS "load" operation for TLS initial exec model access. - (UNSPEC_TLS_IE_LOAD 216) - - ;; An opaque TLS "add" operation for TLS access. - (UNSPEC_TLS_ADD 217) - - ;; Atomics - (UNSPEC_ATOMIC 218) - (UNSPEC_CMPXCHG 219) - (UNSPEC_XCHG 220) - - ;; - ;; The following are operands. - ;; - (UNSPEC_HW0 300) - (UNSPEC_HW1 301) - (UNSPEC_HW2 302) - (UNSPEC_HW3 303) - (UNSPEC_HW0_LAST 304) - (UNSPEC_HW1_LAST 305) - (UNSPEC_HW2_LAST 306) - - (UNSPEC_HW0_PCREL 307) - (UNSPEC_HW1_PCREL 308) - (UNSPEC_HW1_LAST_PCREL 309) - (UNSPEC_HW2_LAST_PCREL 310) - - (UNSPEC_HW0_GOT 311) - (UNSPEC_HW0_LAST_GOT 312) - (UNSPEC_HW1_LAST_GOT 313) - - (UNSPEC_HW0_TLS_GD 314) - (UNSPEC_HW1_LAST_TLS_GD 315) - - (UNSPEC_HW0_TLS_IE 316) - (UNSPEC_HW1_LAST_TLS_IE 317) - - (UNSPEC_HW0_TLS_LE 318) - (UNSPEC_HW1_LAST_TLS_LE 319) - - (UNSPEC_HW0_PLT_PCREL 320) - (UNSPEC_HW1_PLT_PCREL 321) - - (UNSPEC_HW1_LAST_PLT_PCREL 322) - (UNSPEC_HW2_LAST_PLT_PCREL 323) - - ;; This is used to wrap around the addresses of non-temporal load/store - ;; intrinsics. - (UNSPEC_NON_TEMPORAL 324) -]) - -;; Mark the last instruction of various latencies, used to -;; determine the rtx costs of unspec insns. -(define_constants [ - (TILEGX_LAST_LATENCY_1_INSN 99) - (TILEGX_LAST_LATENCY_2_INSN 199) - (TILEGX_LAST_LATENCY_INSN 299) -]) - -(define_constants [ - (TILEGX_NETREG_IDN0 0) - (TILEGX_NETREG_IDN1 1) - (TILEGX_NETREG_UDN0 2) - (TILEGX_NETREG_UDN1 3) - (TILEGX_NETREG_UDN2 4) - (TILEGX_NETREG_UDN3 5) -]) - -(define_constants [ - (TILEGX_CMPEXCH_REG 66) - (TILEGX_NETORDER_REG 67) -]) - - -;; Operand and operator predicates and constraints - -(include "predicates.md") -(include "constraints.md") -(include "tilegx-generic.md") - -;; Define an insn type attribute. This defines what pipes things can go in. -(define_attr "type" - "X0,X0_2cycle,X1,X1_branch,X1_2cycle,X1_L2,X1_remote,X1_miss,X01,Y0,Y0_2cycle,Y1,Y2,Y2_2cycle,Y2_L2,Y2_miss,Y01,cannot_bundle,cannot_bundle_3cycle,cannot_bundle_4cycle,nothing" - (const_string "Y01")) - -(define_attr "length" "" - (cond [(eq_attr "type" "X1_branch") - (if_then_else - (and (le (minus (match_dup 0) (pc)) (const_int 524280)) - (le (minus (pc) (match_dup 0)) (const_int 524288))) - (const_int 8) - (const_int 16)) - ] - (const_int 8))) - - -;; Define some iterators. -(define_mode_iterator IVMODE [SI DI V8QI V4HI V2SI]) -(define_mode_iterator IVNMODE [SI V8QI V4HI V2SI]) -(define_mode_iterator I48MODE [SI DI]) -(define_mode_iterator I48MODE2 [SI DI]) -(define_mode_iterator I124MODE [QI HI SI]) -(define_mode_iterator FI48MODE [SF DF SI DI]) -(define_mode_iterator VEC48MODE [V8QI V4HI]) -(define_mode_iterator VEC248MODE [V8QI V4HI V2SI]) - -(define_mode_attr n [(QI "1") (HI "2") (SI "4") (DI "") - (V8QI "1") (V4HI "2") (V2SI "4")]) -(define_mode_attr x [(SI "x") (DI "")]) -(define_mode_attr bitsuffix [(SI "_32bit") (DI "")]) -(define_mode_attr four_if_si [(SI "4") (DI "")]) -(define_mode_attr four_s_if_si [(SI "4s") (DI "")]) -(define_mode_attr nbits [(SI "5") (DI "6")]) -(define_mode_attr shift_pipe [(SI "X01") (DI "*")]) - -;; Code iterator for either extend. -(define_code_iterator any_extend [sign_extend zero_extend]) - -;; Code iterator for all three shifts. -(define_code_iterator any_shift [ashift ashiftrt lshiftrt]) - -;; Code iterator for all byte ops without immediate variants. -(define_code_iterator v1op [us_minus us_plus minus ne le leu mult]) - -;; Code iterator for all 2-byte vector ops without immediate variants. -(define_code_iterator v2op [ss_minus ss_plus minus ne le leu]) - -;; Code iterator for all 4-byte vector ops without immediate variants. -(define_code_iterator v4op [ss_minus ss_plus minus plus]) - -;; Code iterator for all byte vector ops with immediate variants. -(define_code_iterator v1op_immed [plus umax umin eq lt ltu]) - -;; Code iterator for all 2-byte vector ops with immediate variants. -(define_code_iterator v2op_immed [plus smax smin eq lt ltu]) - -;; Code iterator for all 2-byte vector shifts without immediate variants. -(define_code_iterator v2shift [ss_ashift]) - -;; Code iterator for all 4-byte vector shifts without immediate variants. -(define_code_iterator v4shift [ashift ashiftrt lshiftrt ss_ashift]) - -;; expands to the name of the optab for a particular code. -(define_code_attr optab [(ashift "ashl") - (ashiftrt "ashr") - (lshiftrt "lshr") - (ss_ashift "ssashl") - (eq "seq") - (ne "sne") - (lt "slt") - (ltu "sltu") - (le "sle") - (leu "sleu") - (minus "sub") - (plus "add") - (mult "mul") - (smax "smax") - (smin "smin") - (ss_minus "sssub") - (ss_plus "ssadd") - (umax "umax") - (umin "umin") - (us_minus "ussub") - (us_plus "usadd") - ]) - -;; expands to the name of the insn that implements a particular -;; code. -(define_code_attr insn [(ashift "shl") - (ashiftrt "shrs") - (lshiftrt "shru") - (ss_ashift "shlsc") - (eq "cmpeq") - (ne "cmpne") - (lt "cmplts") - (ltu "cmpltu") - (le "cmples") - (leu "cmpleu") - (minus "sub") - (plus "add") - (mult "multu") - (smax "maxs") - (smin "mins") - (umax "maxu") - (umin "minu") - (ss_minus "subsc") - (ss_plus "addsc") - (us_minus "subuc") - (us_plus "adduc") - ]) - -;; expands to the pipeline resource that contains the -;; particular code. -(define_code_attr pipe [(ashift "X01") - (ashiftrt "X01") - (lshiftrt "X01") - (ss_ashift "X01") - (eq "X01") - (ne "X01") - (lt "X01") - (ltu "X01") - (le "X01") - (leu "X01") - (minus "X01") - (plus "X01") - (mult "X0_2cycle") - (smax "X01") - (smin "X01") - (umax "X01") - (umin "X01") - (ss_minus "X01") - (ss_plus "X01") - (us_minus "X01") - (us_plus "X01") - ]) - -;; indicates whether a particular code is commutative, using -;; the "%" commutative opterator constraint. -(define_code_attr comm [(ashift "") - (ashiftrt "") - (lshiftrt "") - (ss_ashift "") - (eq "%") - (ne "%") - (lt "") - (ltu "") - (le "") - (leu "") - (minus "") - (plus "%") - (mult "%") - (smin "%") - (umin "%") - (smax "%") - (umax "%") - (ss_plus "%") - (us_plus "%") - (ss_minus "") - (us_minus "") - ]) - -;; is the load/store extension suffix. -(define_code_attr s [(zero_extend "u") - (sign_extend "s")]) - -;; Code for packing two 2-byte vectors. -(define_code_iterator v2pack [truncate us_truncate]) - -;; expands to the part of the optab name describing how -;; two vectors are packed. -(define_code_attr pack_optab [(truncate "trunc") - (us_truncate "usat") - (ss_truncate "ssat")]) - -;; expands to the insn that implements a particular vector -;; packing code. -(define_code_attr pack_insn [(truncate "packl") - (us_truncate "packuc") - (ss_truncate "packsc")]) - -;; -;; The basic data move insns. -;; - -(define_expand "movqi" - [(set (match_operand:QI 0 "nonimmediate_operand" "") - (match_operand:QI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilegx_expand_mov (QImode, operands)) - DONE; -}) - -(define_insn "*movqi_insn" - [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,r,U,m") - (match_operand:QI 1 "move_operand" "r,I,U,m,rO,rO"))] - "(register_operand (operands[0], QImode) - || reg_or_0_operand (operands[1], QImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - ld1u\t%0, %1 - ld1u_add\t%0, %I1, %i1 - st1\t%0, %r1 - st1_add\t%I0, %r1, %i0" - [(set_attr "type" "*,*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movhi" - [(set (match_operand:HI 0 "nonimmediate_operand" "") - (match_operand:HI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilegx_expand_mov (HImode, operands)) - DONE; -}) - -(define_insn "*movhi_insn" - [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,r,r,U,m") - (match_operand:HI 1 "move_operand" "r,I,JT,U,m,rO,rO"))] - "(register_operand (operands[0], HImode) - || reg_or_0_operand (operands[1], HImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - moveli\t%0, %H1 - ld2u\t%0, %1 - ld2u_add\t%0, %I1, %i1 - st2\t%0, %r1 - st2_add\t%I0, %r1, %i0" - [(set_attr "type" "*,*,X01,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movsi" - [(set (match_operand:SI 0 "nonimmediate_operand" "") - (match_operand:SI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilegx_expand_mov (SImode, operands)) - DONE; -}) - -(define_insn "*movsi_insn" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,r,U,m") - (match_operand:SI 1 "move_operand" "r,I,JT,K,U,m,rO,rO"))] - "(register_operand (operands[0], SImode) - || reg_or_0_operand (operands[1], SImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - moveli\t%0, %H1 - shl16insli\t%0, zero, %h1 - ld4s\t%0, %1 - ld4s_add\t%0, %I1, %i1 - st4\t%0, %r1 - st4_add\t%I0, %r1, %i0" - [(set_attr "type" "*,*,X01,X01,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movdi" - [(set (match_operand:DI 0 "nonimmediate_operand" "") - (match_operand:DI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilegx_expand_mov (DImode, operands)) - DONE; -}) - -(define_insn "*movdi_insn" - [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,r,r,r,r,r,r,U,m") - (match_operand:DI 1 "move_operand" "r,I,JT,K,N,P,U,m,rO,rO"))] - "(register_operand (operands[0], DImode) - || reg_or_0_operand (operands[1], DImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - moveli\t%0, %H1 - shl16insli\t%0, zero, %h1 - v1addi\t%0, zero, %j1 - v2addi\t%0, zero, %h1 - ld\t%0, %1 - ld_add\t%0, %I1, %i1 - st\t%0, %r1 - st_add\t%I0, %r1, %i0" - [(set_attr "type" "*,*,X01,X01,X01,X01,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movmisalign" - [(set (match_operand:VEC248MODE 0 "nonautoincmem_nonimmediate_operand" "") - (match_operand:VEC248MODE 1 "nonautoincmem_general_operand" ""))] - "" -{ - tilegx_expand_movmisalign (mode, operands); - DONE; -}) - -(define_expand "movsf" - [(set (match_operand:SF 0 "nonimmediate_operand" "") - (match_operand:SF 1 "general_operand" ""))] - "" -{ - /* Materialize immediates using clever SImode code, but don't - do this after reload starts, since gen_lowpart will choke - during reload if given an illegitimate address. */ - if (immediate_operand (operands[1], SFmode) - && operands[1] != const0_rtx - && (register_operand (operands[0], SFmode) - || (!reload_in_progress && !reload_completed))) - { - emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), - gen_lowpart (SImode, operands[1]))); - DONE; - } -}) - -(define_insn "*movsf" - [(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,U,m") - (match_operand:SF 1 "general_operand" "rO,U,m,rO,rO"))] - "" - "@ - move\t%0, %r1 - ld4s\t%0, %1 - ld4s_add\t%0, %I1, %i1 - st4\t%0, %r1 - st4_add\t%I0, %r1, %i0" - [(set_attr "type" "*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movdf" - [(set (match_operand:DF 0 "nonimmediate_operand" "") - (match_operand:DF 1 "general_operand" ""))] - "" -{ - /* Materialize immediates using clever DImode code, but don't - do this after reload starts, since gen_lowpart will choke - during reload if given an illegitimate address. */ - if (immediate_operand (operands[1], DFmode) - && operands[1] != const0_rtx - && (register_operand (operands[0], DFmode) - || (!reload_in_progress && !reload_completed))) - { - emit_insn (gen_movdi (gen_lowpart (DImode, operands[0]), - gen_lowpart (DImode, operands[1]))); - DONE; - } -}) - -(define_insn "*movdf" - [(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,r,U,m") - (match_operand:DF 1 "general_operand" "rO,U,m,rO,rO"))] - "" - "@ - move\t%0, %r1 - ld\t%0, %1 - ld_add\t%0, %I1, %i1 - st\t%0, %r1 - st_add\t%I0, %r1, %i0" - [(set_attr "type" "*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "mov" - [(set (match_operand:VEC248MODE 0 "nonimmediate_operand" "") - (match_operand:VEC248MODE 1 "general_operand" ""))] - "" -{ - /* Materialize immediates using clever DImode code, but don't - do this after reload starts, since gen_lowpart will choke - during reload if given an illegitimate address. */ - if (immediate_operand (operands[1], mode) - && operands[1] != const0_rtx - && (register_operand (operands[0], mode) - || (!reload_in_progress && !reload_completed))) - { - emit_insn (gen_movdi (gen_lowpart (DImode, operands[0]), - gen_lowpart (DImode, operands[1]))); - DONE; - } -}) - -(define_insn "*mov" - [(set (match_operand:VEC248MODE 0 "nonimmediate_operand" "=r,r,r,U,m") - (match_operand:VEC248MODE 1 "general_operand" "rO,U,m,rO,rO"))] - "" - "@ - move\t%0, %r1 - ld\t%0, %1 - ld_add\t%0, %I1, %i1 - st\t%0, %r1 - st_add\t%I0, %r1, %i0" - [(set_attr "type" "*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_insn "movstrictqi" - [(set (strict_low_part (match_operand:QI 0 "register_operand" "+r")) - (match_operand:QI 1 "reg_or_0_operand" "rO"))] - "" - "bfins\t%0, %r1, 0, 7" - [(set_attr "type" "X0")]) - -(define_insn "movstricthi" - [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r")) - (match_operand:HI 1 "reg_or_0_operand" "rO"))] - "" - "bfins\t%0, %r1, 0, 15" - [(set_attr "type" "X0")]) - -(define_insn "movstrictsi" - [(set (strict_low_part (match_operand:SI 0 "register_operand" "+r")) - (match_operand:SI 1 "reg_or_0_operand" "rO"))] - "" - "bfins\t%0, %r1, 0, 31" - [(set_attr "type" "X0")]) - - -;; -;; Bit-field extracts/inserts -;; - -(define_expand "insv" - [(set (zero_extract:DI (match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "u6bit_cint_operand" "") - (match_operand:DI 2 "u6bit_cint_operand" "")) - (match_operand:DI 3 "reg_or_cint_operand" ""))] - "" -{ - rtx first_rtx = operands[2]; - HOST_WIDE_INT first = INTVAL (first_rtx); - HOST_WIDE_INT width = INTVAL (operands[1]); - rtx v = operands[3]; - - if (CONST_INT_P (v)) - { - /* Which bits are we affecting? */ - HOST_WIDE_INT mask = ((((HOST_WIDE_INT) 1) << width) - 1) << first; - - /* Extract just the bits we need, sign extending them to make the - constant easier to materialize in a register. */ - int shift = sizeof(HOST_WIDE_INT) * 8 - width; - HOST_WIDE_INT n = (INTVAL (v) << shift) >> shift; - - if (n == 0) - { - /* We are setting every bit in the bitfield to zero. Try to use - andi instead, since that is more efficient. */ - rtx mask_rtx = GEN_INT (~mask); - if (satisfies_constraint_I (mask_rtx)) - { - emit_insn (gen_anddi3 (operands[0], operands[0], mask_rtx)); - DONE; - } - - operands[3] = const0_rtx; - } - else - { - if (n == -1) - { - /* We are setting every bit in the bitfield to one. Try to use - ori instead, since that is more efficient. */ - rtx mask_rtx = GEN_INT (mask); - if (satisfies_constraint_I (mask_rtx)) - { - emit_insn (gen_iordi3 (operands[0], operands[0], mask_rtx)); - DONE; - } - } - - if (!can_create_pseudo_p ()) - FAIL; - - operands[3] = force_reg (DImode, GEN_INT (n)); - } - } -}) - -(define_insn "*insv_tblidxb0" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (match_operand:DI 1 "register_operand" "rO"))] - "" - "tblidxb0\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb1" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:DI - (const_int 8) - (const_int 8) - (match_operand:DI 1 "register_operand" "rO")))] - "" - "tblidxb1\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb2" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:DI - (const_int 8) - (const_int 16) - (match_operand:DI 1 "register_operand" "rO")))] - "" - "tblidxb2\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb3" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:DI - (const_int 8) - (const_int 24) - (match_operand:DI 1 "register_operand" "rO")))] - "" - "tblidxb3\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_bfins" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (match_operand:DI 1 "u6bit_cint_operand" "n") - (match_operand:DI 2 "u6bit_cint_operand" "n")) - (match_operand:DI 3 "reg_or_cint_operand" "rO"))] - "" - "bfins\t%0, %r3, %2, %2+%1-1" - [(set_attr "type" "X0")]) - -(define_insn "*insv_mm" - [(set (zero_extract:DI - (match_operand:DI 0 "register_operand" "+r") - (match_operand:DI 1 "u6bit_cint_operand" "n") - (match_operand:DI 2 "u6bit_cint_operand" "n")) - (zero_extract:DI - (match_operand:DI 3 "register_operand" "rO") - (match_dup 1) - (match_dup 2)))] - "" -{ - int n; - - operands[1] = GEN_INT (INTVAL (operands[1]) + INTVAL (operands[2])); - - n = INTVAL (operands[2]); - n = (n == 0) ? 63 : n - 1; - operands[2] = GEN_INT (n); - - return "mm\t%0, %r3, %1, %2"; -} - [(set_attr "type" "X0")]) - -(define_expand "extv" - [(set (match_operand:DI 0 "register_operand" "") - (sign_extract:DI (match_operand 1 "nonautoincmem_general_operand" "") - (match_operand:DI 2 "immediate_operand" "") - (match_operand:DI 3 "immediate_operand" "")))] - "" -{ - if (MEM_P (operands[1])) - { - HOST_WIDE_INT bit_offset, bit_width; - HOST_WIDE_INT first_byte_offset, last_byte_offset; - - if (GET_MODE (operands[1]) != QImode) - FAIL; - - bit_width = INTVAL (operands[2]); - bit_offset = INTVAL (operands[3]); - - /* NOTE: bit_offset is relative to the mode of operand - 1 (QImode). It will be negative in big-endian mode - here. Convert that back to the real offset. */ - if (BYTES_BIG_ENDIAN) - bit_offset = GET_MODE_BITSIZE (QImode) - bit_width - bit_offset; - - /* Reject bitfields that can be done with a normal load. */ - if (MEM_ALIGN (operands[1]) >= bit_offset + bit_width) - FAIL; - - /* The value in memory cannot span more than 8 bytes. */ - first_byte_offset = bit_offset / BITS_PER_UNIT; - last_byte_offset = (bit_offset + bit_width - 1) / BITS_PER_UNIT; - if (last_byte_offset - first_byte_offset > 7) - FAIL; - - tilegx_expand_unaligned_load (operands[0], operands[1], - bit_width, bit_offset, 1); - - DONE; - } - - operands[1] = force_reg (DImode, operands[1]); -}) - -(define_expand "extzv" - [(set (match_operand:DI 0 "register_operand" "") - (zero_extract:DI (match_operand 1 "nonautoincmem_general_operand" "") - (match_operand:DI 2 "immediate_operand" "") - (match_operand:DI 3 "immediate_operand" "")))] - "" -{ - HOST_WIDE_INT bit_width = INTVAL (operands[2]); - HOST_WIDE_INT bit_offset = INTVAL (operands[3]); - - if (MEM_P (operands[1])) - { - HOST_WIDE_INT first_byte_offset, last_byte_offset; - - if (GET_MODE (operands[1]) != QImode) - FAIL; - - /* NOTE: bit_offset is relative to the mode of operand - 1 (QImode). It will be negative in big-endian mode - here. */ - if (BYTES_BIG_ENDIAN) - bit_offset = GET_MODE_BITSIZE (QImode) - bit_width - bit_offset; - - /* Reject bitfields that can be done with a normal load. */ - if (MEM_ALIGN (operands[1]) >= bit_offset + bit_width) - FAIL; - - /* The value in memory cannot span more than 8 bytes. */ - first_byte_offset = bit_offset / BITS_PER_UNIT; - last_byte_offset = (bit_offset + bit_width - 1) / BITS_PER_UNIT; - if (last_byte_offset - first_byte_offset > 7) - FAIL; - - tilegx_expand_unaligned_load (operands[0], operands[1], - bit_width, bit_offset, 0); - - DONE; - } - - operands[1] = force_reg (DImode, operands[1]); - - if (bit_offset == 0) - { - /* Extracting the low bits is just a bitwise AND. */ - HOST_WIDE_INT mask = ((HOST_WIDE_INT)1 << bit_width) - 1; - emit_insn (gen_anddi3 (operands[0], operands[1], GEN_INT (mask))); - DONE; - } -}) - - -;; -;; Addresses -;; - -;; The next three patterns are used to materialize a position -;; independent address by adding the difference of two labels to a base -;; label in the text segment, assuming that the difference fits in 32 -;; signed bits. -(define_expand "mov_address_step1" - [(set (match_operand:DI 0 "register_operand" "") - (const:DI (unspec:DI [(match_operand:DI 1 "symbolic_operand" "")] - UNSPEC_HW2_LAST)))]) - -(define_expand "mov_address_step2" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI (unspec:DI [(match_operand:DI 2 "symbolic_operand" "")] - UNSPEC_HW1))] - UNSPEC_INSN_ADDR_SHL16INSLI))]) - -(define_expand "mov_address_step3" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI (unspec:DI [(match_operand:DI 2 "symbolic_operand" "")] - UNSPEC_HW0))] - UNSPEC_INSN_ADDR_SHL16INSLI))]) - -;; First step of the 2-insn sequence to materialize a 32-bit symbolic -;; address. -(define_expand "mov_address_32bit_step1" - [(set (match_operand:SI 0 "register_operand" "") - (const:SI (unspec:SI [(match_operand:SI 1 "symbolic_operand" "")] - UNSPEC_HW1_LAST)))]) - -;; Second step of the 2-insn sequence to materialize a 32-bit symbolic -;; address. -(define_expand "mov_address_32bit_step2" - [(set (match_operand:SI 0 "register_operand" "") - (unspec:SI - [(match_operand:SI 1 "reg_or_0_operand" "") - (const:SI (unspec:SI [(match_operand:SI 2 "symbolic_operand" "")] - UNSPEC_HW0))] - UNSPEC_INSN_ADDR_SHL16INSLI))]) - - -;; -;; pic related instructions -;; - -;; NOTE: We compute the label in this unusual way because if we place -;; the label after the lnk, whether it is at the same address as the -;; lnk will vary depending on whether the optimization level chooses -;; to insert bundling braces. -(define_insn "insn_lnk_and_label" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec_volatile:I48MODE - [(match_operand:I48MODE 1 "symbolic_operand" "")] - UNSPEC_LNK_AND_LABEL))] - "" - "%1 = . + 8\n\tlnk\t%0" - [(set_attr "type" "Y1")]) - -;; The next three patterns are used to materialize a position -;; independent address by adding the difference of two labels to a -;; base label in the text segment, assuming that the difference fits -;; in 32 signed bits. -(define_expand "mov_pcrel_step1" - [(set (match_operand:I48MODE 0 "register_operand" "") - (const:I48MODE (unspec:I48MODE - [(match_operand:I48MODE 1 "symbolic_operand" "") - (match_operand:I48MODE 2 "symbolic_operand" "")] - UNSPEC_HW1_LAST_PCREL)))] - "flag_pic") - -(define_expand "mov_pcrel_step2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "symbolic_operand" "") - (match_operand:I48MODE 3 "symbolic_operand" "")] - UNSPEC_HW0_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -(define_insn "mov_pcrel_step3" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec:I48MODE [(match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (match_operand:I48MODE 2 "reg_or_0_operand" "rO") - (match_operand:I48MODE 3 "symbolic_operand" "in") - (match_operand:I48MODE 4 "symbolic_operand" "in")] - UNSPEC_MOV_PCREL_STEP3))] - "flag_pic" - "add\t%0, %r1, %r2") - -;; The next three patterns are used to materialize a position -;; independent 64-bit address by adding the difference of two labels to -;; a base label in the text segment, without any limitation on the size -;; of the difference. -(define_expand "mov_large_pcrel_step1" - [(set (match_operand:DI 0 "register_operand" "") - (const:DI (unspec:DI - [(match_operand:DI 1 "symbolic_operand" "") - (match_operand:DI 2 "symbolic_operand" "")] - UNSPEC_HW2_LAST_PCREL)))] - "flag_pic") - -(define_expand "mov_large_pcrel_step2" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI - (unspec:DI [(match_operand:DI 2 "symbolic_operand" "") - (match_operand:DI 3 "symbolic_operand" "")] - UNSPEC_HW1_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -;; Note: step 3 is same as move_pcrel_step2. -(define_expand "mov_large_pcrel_step3" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI - (unspec:DI [(match_operand:DI 2 "symbolic_operand" "") - (match_operand:DI 3 "symbolic_operand" "")] - UNSPEC_HW0_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -(define_insn "mov_large_pcrel_step4" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "symbolic_operand" "in") - (match_operand:DI 4 "symbolic_operand" "in")] - UNSPEC_MOV_LARGE_PCREL_STEP4))] - "flag_pic" - "add\t%0, %r1, %r2") - -;; The next three patterns are used to materialize a position -;; independent 64-bit plt address by adding the difference of two -;; labels to a base label in the text segment. -(define_expand "mov_plt_pcrel_step1" - [(set (match_operand:DI 0 "register_operand" "") - (const:DI (unspec:DI - [(match_operand:DI 1 "symbolic_operand" "") - (match_operand:DI 2 "symbolic_operand" "")] - UNSPEC_HW2_LAST_PLT_PCREL)))] - "flag_pic") - -(define_expand "mov_plt_pcrel_step2" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI - (unspec:DI [(match_operand:DI 2 "symbolic_operand" "") - (match_operand:DI 3 "symbolic_operand" "")] - UNSPEC_HW1_PLT_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -(define_expand "mov_plt_pcrel_step3" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI - [(match_operand:DI 1 "reg_or_0_operand" "") - (const:DI - (unspec:DI [(match_operand:DI 2 "symbolic_operand" "") - (match_operand:DI 3 "symbolic_operand" "")] - UNSPEC_HW0_PLT_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -;; The next two patterns are used to materialize a position independent -;; 32-bit plt address by adding the difference of two labels to a base -;; label in the text segment. -(define_expand "mov_plt_pcrel_step1_32bit" - [(set (match_operand:SI 0 "register_operand" "") - (const:SI (unspec:SI - [(match_operand:SI 1 "symbolic_operand" "") - (match_operand:SI 2 "symbolic_operand" "")] - UNSPEC_HW1_LAST_PLT_PCREL)))] - "flag_pic") - -(define_expand "mov_plt_pcrel_step2_32bit" - [(set (match_operand:SI 0 "register_operand" "") - (unspec:SI - [(match_operand:SI 1 "reg_or_0_operand" "") - (const:SI - (unspec:SI [(match_operand:SI 2 "symbolic_operand" "") - (match_operand:SI 3 "symbolic_operand" "")] - UNSPEC_HW0_PLT_PCREL))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic") - -(define_expand "add_got16" - [(set (match_operand:I48MODE 0 "register_operand" "") - (plus:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "symbolic_operand" "")] - UNSPEC_HW0_LAST_GOT))))] - "flag_pic == 1") - -(define_expand "mov_got32_step1" - [(set (match_operand:I48MODE 0 "register_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 1 "symbolic_operand" "")] - UNSPEC_HW1_LAST_GOT)))] - "flag_pic == 2") - -(define_expand "mov_got32_step2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "symbolic_operand" "")] - UNSPEC_HW0_GOT))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "flag_pic == 2") - - -;; -;; TLS -;; - -(define_expand "mov_tls_gd_step1" - [(set (match_operand:I48MODE 0 "register_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 1 "tls_symbolic_operand" "")] - UNSPEC_HW1_LAST_TLS_GD)))] - "HAVE_AS_TLS") - -(define_expand "mov_tls_gd_step2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "tls_symbolic_operand" "")] - UNSPEC_HW0_TLS_GD))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "HAVE_AS_TLS") - -(define_expand "mov_tls_ie_step1" - [(set (match_operand:I48MODE 0 "register_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 1 "tls_symbolic_operand" "")] - UNSPEC_HW1_LAST_TLS_IE)))] - "HAVE_AS_TLS") - -(define_expand "mov_tls_ie_step2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "tls_symbolic_operand" "")] - UNSPEC_HW0_TLS_IE))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "HAVE_AS_TLS") - -(define_expand "mov_tls_le_step1" - [(set (match_operand:I48MODE 0 "register_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 1 "tls_symbolic_operand" "")] - UNSPEC_HW1_LAST_TLS_LE)))] - "HAVE_AS_TLS") - -(define_expand "mov_tls_le_step2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "") - (const:I48MODE - (unspec:I48MODE [(match_operand:I48MODE 2 "tls_symbolic_operand" "")] - UNSPEC_HW0_TLS_LE))] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "HAVE_AS_TLS") - -(define_expand "tls_gd_call" - [(parallel - [(set (reg:I48MODE 0) - (unspec:I48MODE [(match_operand:I48MODE 0 "tls_symbolic_operand" "") - (reg:I48MODE 0)] - UNSPEC_TLS_GD_CALL)) - (clobber (reg:I48MODE 25)) - (clobber (reg:I48MODE 26)) - (clobber (reg:I48MODE 27)) - (clobber (reg:I48MODE 28)) - (clobber (reg:I48MODE 29)) - (clobber (reg:I48MODE 55))])] - "" -{ - cfun->machine->calls_tls_get_addr = true; -}) - -(define_insn "*tls_gd_call" - [(set (reg:I48MODE 0) - (unspec:I48MODE [(match_operand:I48MODE 0 "tls_symbolic_operand" "") - (reg:I48MODE 0)] - UNSPEC_TLS_GD_CALL)) - (clobber (reg:I48MODE 25)) - (clobber (reg:I48MODE 26)) - (clobber (reg:I48MODE 27)) - (clobber (reg:I48MODE 28)) - (clobber (reg:I48MODE 29)) - (clobber (reg:I48MODE 55))] - "" - "jal\ttls_gd_call(%0)" - [(set_attr "type" "X1")]) - -(define_insn "tls_gd_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec:I48MODE [(match_operand:I48MODE 1 "register_operand" "r") - (match_operand:I48MODE 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_GD_ADD))] - "HAVE_AS_TLS" - "addi\t%0, %1, tls_gd_add(%2)") - -(define_insn "tls_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec:I48MODE [(match_operand:I48MODE 1 "register_operand" "r") - (match_operand:I48MODE 2 "register_operand" "0") - (match_operand:I48MODE 3 "tls_symbolic_operand" "")] - UNSPEC_TLS_ADD))] - "HAVE_AS_TLS" - "addi\t%0, %1, tls_add(%3)") - -(define_insn "tls_ie_load" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec:I48MODE [(match_operand:I48MODE 1 "register_operand" "r") - (match_operand:I48MODE 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_IE_LOAD))] - "HAVE_AS_TLS" - "ld_tls\t%0, %1, tls_ie_load(%2)" - [(set_attr "type" "X1_2cycle")]) - -(define_insn_and_split "*zero_extract" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (zero_extract:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "r") - (match_operand:I48MODE 2 "u6bit_cint_operand" "n") - (match_operand:I48MODE 3 "u6bit_cint_operand" "n")))] - "" - "bfextu\t%0, %r1, %3, %3+%2-1" - "&& reload_completed" - [(set (match_dup 0) (zero_extract:I48MODE - (match_dup 1) - (match_dup 2) - (match_dup 3)))] -{ - HOST_WIDE_INT bit_width = INTVAL (operands[2]); - HOST_WIDE_INT bit_offset = INTVAL (operands[3]); - - if (bit_offset + bit_width > 64) - operands[2] = GEN_INT (64 - bit_offset); -} - [(set_attr "type" "X0")]) - -(define_insn "*sign_extract_low32" - [(set (match_operand:DI 0 "register_operand" "=r") - (sign_extract:DI - (match_operand:DI 1 "reg_or_0_operand" "r") - (match_operand:DI 2 "u6bit_cint_operand" "n") - (match_operand:DI 3 "u6bit_cint_operand" "n")))] - "INTVAL (operands[3]) == 0 && INTVAL (operands[2]) == 32" - "addxi\t%0, %r1, 0") - -(define_insn_and_split "*sign_extract" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (sign_extract:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "r") - (match_operand:I48MODE 2 "u6bit_cint_operand" "n") - (match_operand:I48MODE 3 "u6bit_cint_operand" "n")))] - "" - "bfexts\t%0, %r1, %3, %3+%2-1" - "&& reload_completed" - [(set (match_dup 0) (sign_extract:I48MODE - (match_dup 1) - (match_dup 2) - (match_dup 3)))] -{ - HOST_WIDE_INT bit_width = INTVAL (operands[2]); - HOST_WIDE_INT bit_offset = INTVAL (operands[3]); - - if (bit_offset + bit_width > 64) - operands[2] = GEN_INT (64 - bit_offset); -} - [(set_attr "type" "X0")]) - - -;; -;; Arithmetic ops -;; - -(define_insn "add3" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r") - (plus:I48MODE (match_operand:I48MODE 1 "reg_or_0_operand" "%rO,rO,rO") - (match_operand:I48MODE 2 "add_operand" "r,I,JT")))] - "" - "@ - add\t%0, %r1, %r2 - addi\t%0, %r1, %2 - addli\t%0, %r1, %H2" - [(set_attr "type" "*,*,X01")]) - -(define_insn "*addsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r,r") - (sign_extend:DI - (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO,rO") - (match_operand:SI 2 "add_operand" "r,I,JT"))))] - "" - "@ - addx\t%0, %r1, %r2 - addxi\t%0, %r1, %2 - addxli\t%0, %r1, %H2" - [(set_attr "type" "*,*,X01")]) - -(define_insn "sub3" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (minus:I48MODE (match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")))] - "" - "sub\t%0, %r1, %r2") - -(define_insn "*subsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r") - (sign_extend:DI - (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "subx\t%0, %r1, %r2") - -(define_insn "neg2" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (neg:I48MODE (match_operand:I48MODE 1 "reg_or_0_operand" "rO")))] - "" - "sub\t%0, zero, %r1") - -(define_insn "*negsi2_sext" - [(set (match_operand:DI 0 "register_operand" "=r") - (sign_extend:DI - (neg:SI (match_operand:SI 1 "reg_or_0_operand" "rO"))))] - "" - "subx\t%0, zero, %r1") - -(define_insn "ssaddsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (ss_plus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "addxsc\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "*ssaddsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r") - (sign_extend:DI - (ss_plus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "addxsc\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "sssubsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (ss_minus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "subxsc\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "*sssubsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r") - (sign_extend:DI - (ss_minus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "subxsc\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "addsf3" - [(set (match_operand:SF 0 "register_operand" "") - (plus:SF (match_operand:SF 1 "register_operand" "") - (match_operand:SF 2 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx tmp = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - emit_insn (gen_insn_fsingle_add1 (tmp, a, b)); - emit_insn (gen_insn_fsingle_addsub2 (tmp, tmp, a, b)); - emit_insn (gen_insn_fsingle_pack1 (flags, tmp)); - emit_insn (gen_insn_fsingle_pack2 (result, tmp, flags)); - - DONE; -}) - -(define_expand "subsf3" - [(set (match_operand:SF 0 "register_operand" "") - (minus:SF (match_operand:SF 1 "register_operand" "") - (match_operand:SF 2 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx tmp = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - emit_insn (gen_insn_fsingle_sub1 (tmp, a, b)); - emit_insn (gen_insn_fsingle_addsub2 (tmp, tmp, a, b)); - emit_insn (gen_insn_fsingle_pack1 (flags, tmp)); - emit_insn (gen_insn_fsingle_pack2 (result, tmp, flags)); - - DONE; -}) - -(define_expand "mulsf3" - [(set (match_operand:SF 0 "register_operand" "") - (mult:SF (match_operand:SF 1 "register_operand" "") - (match_operand:SF 2 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - emit_insn (gen_insn_fsingle_mul1 (tmp1, a, b)); - emit_insn (gen_insn_fsingle_mul2 (tmp2, tmp1, b)); - emit_insn (gen_insn_fsingle_pack1 (flags, tmp2)); - emit_insn (gen_insn_fsingle_pack2 (result, tmp2, flags)); - - DONE; -}) - -(define_expand "adddf3" - [(set (match_operand:DF 0 "register_operand" "") - (plus:DF (match_operand:DF 1 "register_operand" "") - (match_operand:DF 2 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx min = gen_reg_rtx (DImode); - rtx max = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - emit_insn (gen_insn_fdouble_unpack_min (min, a, b)); - emit_insn (gen_insn_fdouble_unpack_max (max, a, b)); - emit_insn (gen_insn_fdouble_add_flags (flags, a, b)); - emit_insn (gen_insn_fdouble_addsub (max, max, min, flags)); - emit_insn (gen_insn_fdouble_pack1 (result, max, flags)); - emit_insn (gen_insn_fdouble_pack2 (result, result, max, const0_rtx)); - - DONE; -}) - -(define_expand "subdf3" - [(set (match_operand:DF 0 "register_operand" "") - (minus:DF (match_operand:DF 1 "register_operand" "") - (match_operand:DF 2 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx min = gen_reg_rtx (DImode); - rtx max = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - emit_insn (gen_insn_fdouble_unpack_min (min, a, b)); - emit_insn (gen_insn_fdouble_unpack_max (max, a, b)); - emit_insn (gen_insn_fdouble_sub_flags (flags, a, b)); - emit_insn (gen_insn_fdouble_addsub (max, max, min, flags)); - emit_insn (gen_insn_fdouble_pack1 (result, max, flags)); - emit_insn (gen_insn_fdouble_pack2 (result, result, max, const0_rtx)); - - DONE; -}) - -(define_expand "muldf3" - [(set (match_operand:DF 0 "register_operand" "") - (mult:DF (match_operand:DF 1 "register_operand" "") - (match_operand:DF 2 "register_operand" "")))] - "" - ;; TODO: Decide if we should not inline this with -Os. - ;; "optimize_function_for_speed_p (cfun)" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - rtx b = gen_lowpart (DImode, operands[2]); - - rtx a_unpacked = gen_reg_rtx (DImode); - rtx b_unpacked = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - - rtx low1 = gen_reg_rtx (DImode); - rtx low = gen_reg_rtx (DImode); - rtx low_carry = gen_reg_rtx (DImode); - - rtx mid = gen_reg_rtx (DImode); - rtx mid_l32 = gen_reg_rtx (DImode); - rtx mid_r32 = gen_reg_rtx (DImode); - - rtx high1 = gen_reg_rtx (DImode); - rtx high = gen_reg_rtx (DImode); - rtx high1_plus_mid_r32 = gen_reg_rtx (DImode); - - /* NOTE: We compute using max(a, 0) and max(b, 0) rather than - min(a, b) and max(a, b) because for multiply we just need to unpack, - we don't actually care which is min and which is max. And this - formulation gives the scheduler more freedom in case one of a or b - would stall at the start of this code sequence. */ - emit_insn (gen_insn_fdouble_unpack_max (a_unpacked, a, const0_rtx)); - emit_insn (gen_insn_fdouble_unpack_max (b_unpacked, b, const0_rtx)); - emit_insn (gen_insn_fdouble_mul_flags (flags, a, b)); - - /* This depends on the fact that the high few bits of the unpacked - mantissa are zero, so we can't have a carry out from the mid sum. */ - emit_insn (gen_insn_mul_lu_lu (low1, a_unpacked, b_unpacked)); - emit_insn (gen_insn_mul_hu_lu (mid, a_unpacked, b_unpacked)); - emit_insn (gen_insn_mula_hu_lu (mid, mid, b_unpacked, a_unpacked)); - emit_insn (gen_insn_mul_hu_hu (high1, a_unpacked, b_unpacked)); - - emit_insn (gen_ashldi3 (mid_l32, mid, GEN_INT (32))); - emit_insn (gen_lshrdi3 (mid_r32, mid, GEN_INT (32))); - - emit_insn (gen_adddi3 (high1_plus_mid_r32, high1, mid_r32)); - - emit_insn (gen_adddi3 (low, low1, mid_l32)); - emit_insn (gen_insn_cmpltu_didi (low_carry, low, mid_l32)); - - emit_insn (gen_adddi3 (high, high1_plus_mid_r32, low_carry)); - - emit_insn (gen_insn_fdouble_pack1 (result, high, flags)); - emit_insn (gen_insn_fdouble_pack2 (result, result, high, low)); - - DONE; -}) - - -;; -;; Shifts -;; - -(define_insn "ashl3" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r") - (ashift:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_ubit_operand" "I,rO")))] - "" - "@ - shli\t%0, %r1, %2 - shl\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_insn "*ashlsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (sign_extend:DI - (ashift:SI - (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO"))))] - "" - "@ - shlxi\t%0, %r1, %2 - shlx\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_insn "ashr3" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r") - (ashiftrt:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_ubit_operand" "I,rO")))] - "" - "@ - shrsi\t%0, %r1, %2 - shrs\t%0, %r1, %r2") - -(define_insn "*ashrsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (sign_extend:DI - (ashiftrt:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO"))))] - "" - "@ - shrsi\t%0, %r1, %2 - shrs\t%0, %r1, %r2") - -(define_insn "lshr3" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r") - (lshiftrt:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_ubit_operand" "I,rO")))] - "" - "@ - shrui\t%0, %r1, %2 - shru\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_insn "*lshrsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (sign_extend:DI - (lshiftrt:SI - (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO"))))] - "" - "@ - shruxi\t%0, %r1, %2 - shrux\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_insn "rotldi3" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (rotate:DI (match_operand:DI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u6bit_operand" "I,rO")))] - "" - "@ - rotli\t%0, %r1, %2 - rotl\t%0, %r1, %r2") - -(define_insn "insn_shl16insli" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (ior:DI - (ashift:DI - (match_operand:DI 1 "reg_or_0_operand" "rO,rO") - (const_int 16)) - (match_operand:DI 2 "u16bit_or_const_symbolic_operand" "O,KT")))] - "" - "@ - shli\t%0, %r1, 16 - shl16insli\t%0, %r1, %H2" - [(set_attr "type" "*,X01")]) - -(define_insn "insn_addr_shl16insli" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec:I48MODE - [(match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (match_operand:I48MODE 2 "const_symbolic_operand" "T")] - UNSPEC_INSN_ADDR_SHL16INSLI))] - "" - "shl16insli\t%0, %r1, %H2" - [(set_attr "type" "X01")]) - - -;; -;; Compares -;; - -(define_expand "cstore4" - [(set (match_operand:DI 0 "register_operand" "") - (match_operator:DI 1 "ordered_comparison_operator" - [(match_operand:FI48MODE 2 "reg_or_cint_operand" "") - (match_operand:FI48MODE 3 "reg_or_cint_operand" "")]))] - "" -{ - if (!tilegx_emit_setcc (operands, GET_MODE (operands[2]))) - FAIL; - else - DONE; -}) - - -(define_insn "insn_cmpne_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r") - (ne:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "rO")))] - "" - "cmpne\t%0, %r1, %r2") - -(define_insn "insn_cmpeq_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r,r") - (eq:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "%rO,rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - cmpeqi\t%0, %r1, %2 - cmpeq\t%0, %r1, %r2") - -(define_insn "insn_cmplts_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r,r") - (lt:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - cmpltsi\t%0, %r1, %2 - cmplts\t%0, %r1, %r2") - -(define_insn "insn_cmpltu_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r,r") - (ltu:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - cmpltui\t%0, %r1, %2 - cmpltu\t%0, %r1, %r2" - [(set_attr "type" "X01,*")]) - -(define_insn "insn_cmples_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r,r") - (le:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "L,rO")))] - "" - "@ - cmpltsi\t%0, %r1, %P2 - cmples\t%0, %r1, %r2") - -(define_insn "insn_cmpleu_" - [(set (match_operand:I48MODE2 0 "register_operand" "=r,r") - (leu:I48MODE2 (match_operand:I48MODE 1 "reg_or_0_operand" "rO,rO") - (match_operand:I48MODE 2 "reg_or_cint_operand" "Q,rO")))] - "" - "@ - cmpltui\t%0, %r1, %P2 - cmpleu\t%0, %r1, %r2" - [(set_attr "type" "X01,*")]) - - -;; -;; Logical ops -;; - -(define_insn "and3" - [(set (match_operand:IVNMODE 0 "register_operand" "=r,r,r,r") - (and:IVNMODE (match_operand:IVNMODE 1 "reg_or_0_operand" "%rO,rO,0,rO") - (match_operand:IVNMODE 2 "and_operand" "I,S,M,rO")))] - "" - "@ - andi\t%0, %r1, %2 - bfextu\t%0, %r1, %M2 - bfins\t%0, zero, %m2 - and\t%0, %r1, %r2" - [(set_attr "type" "*,X0,X0,*")]) - -(define_insn "*andsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r,r,r") - (sign_extend:DI - (and:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO,0,rO") - (match_operand:SI 2 "and_operand" "I,S,M,rO"))))] - "" - "@ - andi\t%0, %r1, %2 - bfextu\t%0, %r1, %M2 - bfins\t%0, zero, %m2 - and\t%0, %r1, %r2" - [(set_attr "type" "*,X0,X0,*")]) - -(define_insn "anddi3" - [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r,r") - (and:DI (match_operand:DI 1 "reg_or_0_operand" "%rO,rO,rO,rO,0,rO") - (match_operand:DI 2 "and_operand" "I,Z0,Z1,S,M,rO")))] - "" - "@ - andi\t%0, %r1, %2 - v4int_l\t%0, zero, %r1 - v4int_h\t%0, %r1, zero - bfextu\t%0, %r1, %M2 - bfins\t%0, zero, %m2 - and\t%0, %r1, %r2" - [(set_attr "type" "*,X01,X01,X0,X0,*")]) - -(define_insn "ior3" - [(set (match_operand:IVMODE 0 "register_operand" "=r,r") - (ior:IVMODE (match_operand:IVMODE 1 "reg_or_0_operand" "%rO,rO") - (match_operand:IVMODE 2 "reg_or_s8bit_operand" "rO,I")))] - "" - "@ - or\t%0, %r1, %r2 - ori\t%0, %r1, %2" - [(set_attr "type" "*,X01")]) - -(define_insn "*iorsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (sign_extend:DI - (ior:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO") - (match_operand:SI 2 "reg_or_s8bit_operand" "rO,I"))))] - "" - "@ - or\t%0, %r1, %r2 - ori\t%0, %r1, %2" - [(set_attr "type" "*,X01")]) - -(define_insn "xor3" - [(set (match_operand:IVMODE 0 "register_operand" "=r,r") - (xor:IVMODE (match_operand:IVMODE 1 "reg_or_0_operand" "%rO,rO") - (match_operand:IVMODE 2 "reg_or_s8bit_operand" "rO,I")))] - "" - "@ - xor\t%0, %r1, %r2 - xori\t%0, %r1, %2" - [(set_attr "type" "*,X01")]) - -(define_insn "*xorsi3_sext" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (sign_extend:DI - (xor:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO") - (match_operand:SI 2 "reg_or_s8bit_operand" "rO,I"))))] - "" - "@ - xor\t%0, %r1, %r2 - xori\t%0, %r1, %2" - [(set_attr "type" "*,X01")]) - -(define_insn "clzdi2" - [(set (match_operand:DI 0 "register_operand" "=r") - (clz:DI (match_operand:DI 1 "reg_or_0_operand" "rO")))] - "" - "clz\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_expand "clzsi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (clz:SI (match_operand:SI 1 "reg_or_0_operand" "rO")))] - "" - { - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - rtx tmp3 = gen_reg_rtx (DImode); - - emit_insn (gen_zero_extendsidi2 (tmp1, operands[1])); - emit_insn (gen_ashldi3 (tmp2, tmp1, (GEN_INT (32)))); - emit_insn (gen_clzdi2 (tmp3, tmp2)); - emit_move_insn (operands[0], gen_lowpart (SImode, tmp3)); - DONE; - }) - -(define_insn "ctz2" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (ctz:I48MODE (match_operand:DI 1 "reg_or_0_operand" "rO")))] - "" - "ctz\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "popcount2" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (popcount:I48MODE (match_operand:DI 1 "reg_or_0_operand" "rO")))] - "" - "pcnt\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_expand "parity2" - [(set (match_operand:I48MODE 0 "register_operand" "") - (parity:I48MODE (match_operand:DI 1 "reg_or_0_operand" "")))] - "" - { - rtx tmp = gen_reg_rtx (mode); - emit_insn (gen_popcount2 (tmp, operands[1])); - emit_insn (gen_and3 (operands[0], tmp, const1_rtx)); - DONE; - }) - -(define_insn "bswapdi2" - [(set (match_operand:DI 0 "register_operand" "=r") - (bswap:DI (match_operand:DI 1 "reg_or_0_operand" "rO")))] - "" - "revbytes\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_expand "bswapsi2" - [(set (match_operand:SI 0 "register_operand" "") - (bswap:SI (match_operand:SI 1 "reg_or_0_operand" "")))] - "" - { - rtx tmp = gen_reg_rtx (DImode); - emit_insn (gen_bswapdi2 (tmp, gen_lowpart (DImode, operands[1]))); - emit_insn (gen_ashrdi3 (gen_lowpart (DImode, operands[0]), - tmp, GEN_INT (32))); - DONE; - }) - -(define_insn "one_cmpl2" - [(set (match_operand:IVMODE 0 "register_operand" "=r") - (not:IVMODE (match_operand:IVMODE 1 "reg_or_0_operand" "rO")))] - "" - "nor\t%0, %r1, zero") - - -;; -;; Conditional moves -;; - -(define_expand "movcc" - [(set (match_operand:I48MODE 0 "register_operand" "") - (if_then_else:I48MODE - (match_operand 1 "comparison_operator" "") - (match_operand:I48MODE 2 "reg_or_0_operand" "") - (match_operand:I48MODE 3 "reg_or_0_operand" "")))] - "" - { operands[1] = tilegx_emit_conditional_move (operands[1]); }) - -(define_insn "movcc_insn_" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r,r") - (if_then_else:I48MODE - (match_operator 4 "eqne_operator" - [(match_operand:I48MODE2 1 "reg_or_0_operand" "rO,rO,rO,rO") - (const_int 0)]) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO,O,rO,0") - (match_operand:I48MODE 3 "reg_or_0_operand" "O,rO,0,rO")))] - "" - "@ - m%c4\t%0, %r1, %r2 - m%C4\t%0, %r1, %r3 - cmov%d4z\t%0, %r1, %r2 - cmov%D4z\t%0, %r1, %r3" - [(set_attr "type" "*,*,Y0,Y0")]) - -(define_expand "insn_mz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:DI - (eq (match_operand:DI 1 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:DI 2 "reg_or_0_operand" "") - (const_int 0)))]) - -(define_expand "insn_mnz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:DI - (ne (match_operand:DI 1 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:DI 2 "reg_or_0_operand" "") - (const_int 0)))]) - -(define_expand "insn_cmoveqz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:DI - (eq (match_operand:DI 2 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:DI 3 "reg_or_0_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "")))]) - -(define_expand "insn_cmovnez" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:DI - (ne (match_operand:DI 2 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:DI 3 "reg_or_0_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "")))]) - - -;; -;; Conversions -;; - -(define_insn "zero_extendqi2" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r") - (zero_extend:I48MODE (match_operand:QI 1 "move_operand" "rO,U,m")))] - "" - "@ - bfextu\t%0, %r1, 0, 7 - ld1u\t%0, %1 - ld1u_add\t%0, %I1, %i1" - [(set_attr "type" "X0,Y2_2cycle,X1_2cycle")]) - -(define_insn "zero_extendhi2" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r") - (zero_extend:I48MODE (match_operand:HI 1 "move_operand" "rO,U,m")))] - "" - "@ - bfextu\t%0, %r1, 0, 15 - ld2u\t%0, %1 - ld2u_add\t%0, %I1, %i1" - [(set_attr "type" "X0,Y2_2cycle,X1_2cycle")]) - -(define_insn "zero_extendsidi2" - [(set (match_operand:DI 0 "register_operand" "=r,r,r") - (zero_extend:DI (match_operand:SI 1 "move_operand" "rO,U,m")))] - "" - "@ - v4int_l\t%0, zero, %r1 - ld4u\t%0, %1 - ld4u_add\t%0, %I1, %i1" - [(set_attr "type" "X01,Y2_2cycle,X1_2cycle")]) - -(define_insn "extendqi2" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r") - (sign_extend:I48MODE (match_operand:QI 1 "move_operand" "rO,U,m")))] - "" - "@ - bfexts\t%0, %r1, 0, 7 - ld1s\t%0, %1 - ld1s_add\t%0, %I1, %i1" - [(set_attr "type" "X0,Y2_2cycle,X1_2cycle")]) - -(define_insn "extendhi2" - [(set (match_operand:I48MODE 0 "register_operand" "=r,r,r") - (sign_extend:I48MODE (match_operand:HI 1 "move_operand" "rO,U,m")))] - "" - "@ - bfexts\t%0, %r1, 0, 15 - ld2s\t%0, %1 - ld2s_add\t%0, %I1, %i1" - [(set_attr "type" "X0,Y2_2cycle,X1_2cycle")]) - -;; All SImode integer registers should already be in sign-extended form -;; (see TARGET_TRULY_NOOP_TRUNCATION and truncdisi2). We can therefore -;; get rid of register->register instructions if we constrain the -;; source to be in the same register as the destination. -(define_insn_and_split "extendsidi2" - [(set (match_operand:DI 0 "register_operand" "=r,r,r") - (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "0,U,m")))] - "" - "@ - # - ld4s\t%0, %1 - ld4s_add\t%0, %I1, %i1" - "&& reload_completed && register_operand (operands[1], VOIDmode)" - [(const_int 0)] -{ - emit_note (NOTE_INSN_DELETED); - DONE; -} - [(set_attr "type" "*,Y2_2cycle,X1_2cycle")]) - -;; Integer truncation patterns. Truncating SImode values to smaller -;; modes is a no-op, as it is for most other GCC ports. Truncating -;; DImode values to SImode is not a no-op since we -;; need to make sure that the lower 32 bits are properly sign-extended -;; (see TARGET_TRULY_NOOP_TRUNCATION). Truncating DImode values into modes -;; smaller than SImode is equivalent to two separate truncations: -;; -;; A B -;; DI ---> HI == DI ---> SI ---> HI -;; DI ---> QI == DI ---> SI ---> QI -;; -;; Step A needs a real instruction but step B does not. - -(define_insn "truncdisi2" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,U,m") - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO,rO,rO")))] - "" - "@ - addxi\t%0, %r1, 0 - st4\t%0, %r1 - st4_add\t%I0, %r1, %i0" - [(set_attr "type" "Y01,Y2,X1")]) - -(define_insn "truncdihi2" - [(set (match_operand:HI 0 "nonimmediate_operand" "=r,U,m") - (truncate:HI (match_operand:DI 1 "reg_or_0_operand" "rO,rO,rO")))] - "" - "@ - addxi\t%0, %r1, 0 - st2\t%0, %r1 - st2_add\t%I0, %r1, %i0" - [(set_attr "type" "Y01,Y2,X1")]) - -(define_insn "truncdiqi2" - [(set (match_operand:QI 0 "nonimmediate_operand" "=r,U,m") - (truncate:QI (match_operand:DI 1 "reg_or_0_operand" "rO,rO,rO")))] - "" - "@ - addxi\t%0, %r1, 0 - st1\t%0, %r1 - st1_add\t%I0, %r1, %i0" - [(set_attr "type" "Y01,Y2,X1")]) - -;; Combiner patterns to optimize away unnecessary truncates. - -(define_insn "*zero_extendsidi_truncdisi" - [(set (match_operand:DI 0 "register_operand" "=r") - (zero_extend:DI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO"))))] - "" - "v4int_l\t%0, zero, %r1" - [(set_attr "type" "X01")]) - -(define_insn "*addsi_truncdisi" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (plus:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "%rO,rO,rO")) - (match_operand:SI 2 "add_operand" "r,I,JT")))] - "" - "@ - addx\t%0, %r1, %r2 - addxi\t%0, %r1, %2 - addxli\t%0, %r1, %H2" - [(set_attr "type" "*,*,X01")]) - -(define_insn "*addsi_truncdisi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO")) - (truncate:SI (match_operand:DI 2 "reg_or_0_operand" "rO"))))] - "" - "addx\t%0, %r1, %r2") - -(define_insn "*ashldi_truncdisi" - [(set (match_operand:DI 0 "register_operand" "=r") - (ashift:DI - (match_operand:DI 1 "reg_or_0_operand" "rO") - (truncate:SI (match_operand:DI 2 "reg_or_u6bit_operand" "rO"))))] - "" - "shl\t%0, %r1, %r2") - -(define_insn "*ashlsi_truncdisi" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (ashift:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO,rO")) - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - shlxi\t%0, %r1, %2 - shlx\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_insn "*ashlsi_truncdisi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (ashift:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO")) - (truncate:SI (match_operand:DI 2 "reg_or_0_operand" "rO"))))] - "" - "shlx\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "*ashrdi3_truncdisi" - [(set (match_operand:DI 0 "register_operand" "=r") - (ashiftrt:DI - (match_operand:DI 1 "reg_or_0_operand" "rO") - (truncate:SI (match_operand:DI 2 "reg_or_u6bit_operand" "rO"))))] - "" - "shrs\t%0, %r1, %r2") - -(define_insn "*lshrsi_truncdisi" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (lshiftrt:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO,rO")) - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - shruxi\t%0, %r1, %2 - shrux\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_insn "*lshrsi_truncdisi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (lshiftrt:SI - (truncate:SI (match_operand:DI 1 "reg_or_0_operand" "rO")) - (truncate:SI (match_operand:DI 2 "reg_or_0_operand" "rO"))))] - "" - "shrux\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "*lshrdi_truncdisi" - [(set (match_operand:DI 0 "register_operand" "=r") - (lshiftrt:DI - (match_operand:DI 1 "reg_or_0_operand" "rO") - (truncate:SI (match_operand:DI 2 "reg_or_u6bit_operand" "rO"))))] - "" - "shru\t%0, %r1, %r2") - -(define_insn "*rotldi_truncdisi" - [(set (match_operand:DI 0 "register_operand" "=r") - (rotate:DI - (match_operand:DI 1 "reg_or_0_operand" "rO") - (truncate:SI (match_operand:DI 2 "reg_or_u6bit_operand" "rO"))))] - "" - "rotl\t%0, %r1, %r2") - -;; Integer to floating point conversions - -(define_expand "floatsisf2" - [(set (match_operand:SF 0 "register_operand" "") - (float:SI (match_operand:SI 1 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = operands[1]; - - rtx nega = gen_reg_rtx (SImode); - rtx exp = gen_reg_rtx (DImode); - rtx sign = gen_reg_rtx (DImode); - rtx abs = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - - emit_move_insn (exp, GEN_INT (0x9e)); - - emit_insn (gen_negsi2 (nega, a)); - - emit_insn (gen_insn_cmplts_sisi (gen_lowpart (SImode, sign), a, const0_rtx)); - emit_insn (gen_insn_cmoveqz (abs, gen_lowpart (DImode, nega), sign, - gen_lowpart (DImode, a))); - - emit_insn (gen_insn_bfins (tmp1, exp, sign, GEN_INT (10), GEN_INT (10))); - emit_insn (gen_insn_bfins (tmp2, tmp1, abs, GEN_INT (32), GEN_INT (63))); - emit_insn (gen_insn_fsingle_pack1 (flags, tmp2)); - emit_insn (gen_insn_fsingle_pack2 (result, tmp2, flags)); - DONE; -}) - -(define_expand "floatunssisf2" - [(set (match_operand:SF 0 "register_operand" "") - (float:SI (match_operand:SI 1 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = operands[1]; - - rtx exp = gen_reg_rtx (DImode); - rtx flags = gen_reg_rtx (DImode); - rtx tmp = gen_reg_rtx (DImode); - - emit_move_insn (exp, GEN_INT (0x9e)); - emit_insn (gen_insn_bfins (tmp, exp, gen_lowpart (DImode, a), - GEN_INT (32), GEN_INT (63))); - emit_insn (gen_insn_fsingle_pack1 (flags, tmp)); - emit_insn (gen_insn_fsingle_pack2 (result, tmp, flags)); - DONE; -}) - -(define_expand "floatsidf2" - [(set (match_operand:DF 0 "register_operand" "") - (float:SI (match_operand:SI 1 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - - rtx nega = gen_reg_rtx (DImode); - rtx exp = gen_reg_rtx (DImode); - rtx sign = gen_reg_rtx (DImode); - rtx abs = gen_reg_rtx (DImode); - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - rtx tmp3 = gen_reg_rtx (DImode); - - emit_move_insn (exp, GEN_INT (0x21b00)); - - emit_insn (gen_negdi2 (nega, a)); - - emit_insn (gen_insn_cmplts_didi (sign, a, const0_rtx)); - emit_insn (gen_insn_cmovnez (abs, a, sign, nega)); - - emit_insn (gen_ashldi3 (tmp1, abs, GEN_INT (4))); - emit_insn (gen_insn_bfins (tmp2, exp, sign, GEN_INT (20), GEN_INT (20))); - emit_insn (gen_insn_fdouble_pack1 (tmp3, tmp1, tmp2)); - emit_insn (gen_insn_fdouble_pack2 (result, tmp3, tmp1, const0_rtx)); - DONE; -}) - -(define_expand "floatunssidf2" - [(set (match_operand:DF 0 "register_operand" "") - (float:SI (match_operand:SI 1 "register_operand" "")))] - "" -{ - rtx result = gen_lowpart (DImode, operands[0]); - rtx a = gen_lowpart (DImode, operands[1]); - - rtx exp = gen_reg_rtx (DImode); - rtx tmp1 = gen_reg_rtx (DImode); - rtx tmp2 = gen_reg_rtx (DImode); - - emit_move_insn (exp, GEN_INT (0x21b00)); - emit_insn (gen_insn_bfins (tmp1, const0_rtx, a, GEN_INT (4), GEN_INT (35))); - emit_insn (gen_insn_fdouble_pack1 (tmp2, tmp1, exp)); - emit_insn (gen_insn_fdouble_pack2 (result, tmp2, tmp1, const0_rtx)); - DONE; -}) - - -;; -;; Multiplies -;; - -(define_insn "mulsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (mult:SI (match_operand:SI 1 "reg_or_0_operand" "%rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "mulx\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "mulsidi3" - [(set (match_operand:DI 0 "register_operand" "=r") - (mult:DI (sign_extend:DI - (match_operand:SI 1 "reg_or_0_operand" "%rO")) - (sign_extend:DI - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "mul_ls_ls\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "umulsidi3" - [(set (match_operand:DI 0 "register_operand" "=r") - (mult:DI (zero_extend:DI - (match_operand:SI 1 "reg_or_0_operand" "%rO")) - (zero_extend:DI - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "mul_lu_lu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_expand "muldi3" - [(set (match_operand:DI 0 "register_operand" "") - (unspec:DI [(match_operand:DI 1 "nonmemory_operand" "") - (match_operand:DI 2 "nonmemory_operand" "")] - UNSPEC_INSN_MUL_HU_LU)) - (set (match_dup 0) - (unspec:DI [(match_dup 0) (match_dup 2) (match_dup 1)] - UNSPEC_INSN_MULA_HU_LU)) - (set (match_dup 0) - (ashift:DI (match_dup 0) (const_int 32))) - (set (match_dup 0) - (unspec:DI [(match_dup 0) (match_dup 2) (match_dup 1)] - UNSPEC_INSN_MULA_LU_LU))] - "" - { - operands[1] = force_reg (DImode, operands[1]); - operands[1] = make_safe_from (operands[1], operands[0]); - - if (tilegx_expand_muldi (operands[0], operands[1], operands[2])) - DONE; - else - { - operands[2] = force_reg (DImode, operands[2]); - operands[2] = make_safe_from (operands[2], operands[0]); - } - }) - -(define_insn "usmulsidi3" - [(set (match_operand:DI 0 "register_operand" "=r") - (mult:DI (zero_extend:DI - (match_operand:SI 1 "reg_or_0_operand" "rO")) - (sign_extend:DI - (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "mul_ls_lu\t%0, %r2, %r1" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "maddsidi4" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI - (mult:DI (sign_extend:DI - (match_operand:SI 1 "reg_or_0_operand" "rO")) - (sign_extend:DI - (match_operand:SI 2 "reg_or_0_operand" "rO"))) - (match_operand:DI 3 "register_operand" "0")))] - "" - "mula_ls_ls\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "umaddsidi4" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI - (mult:DI (zero_extend:DI - (match_operand:SI 1 "reg_or_0_operand" "rO")) - (zero_extend:DI - (match_operand:SI 2 "reg_or_0_operand" "rO"))) - (match_operand:DI 3 "register_operand" "0")))] - "" - "mula_lu_lu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_expand "smulsi3_highpart" - [(set (match_dup 3) - (mult:DI (sign_extend:DI (match_operand:SI 1 "reg_or_0_operand" "")) - (sign_extend:DI (match_operand:SI 2 "reg_or_0_operand" "")))) - (set (match_dup 4) - (ashiftrt:DI (match_dup 3) (const_int 32))) - (set (match_operand:SI 0 "register_operand" "") - (truncate:SI (match_dup 4)))] - "" - { - operands[3] = gen_reg_rtx (DImode); - operands[4] = gen_reg_rtx (DImode); - }) - -(define_expand "umulsi3_highpart" - [(set (match_dup 3) - (mult:DI (zero_extend:DI (match_operand:SI 1 "reg_or_0_operand" "")) - (zero_extend:DI (match_operand:SI 2 "reg_or_0_operand" "")))) - (set (match_dup 4) - (lshiftrt:DI (match_dup 3) (const_int 32))) - (set (match_operand:SI 0 "register_operand" "") - (truncate:SI (match_dup 4)))] - "" - { - operands[3] = gen_reg_rtx (DImode); - operands[4] = gen_reg_rtx (DImode); - }) - -(define_expand "smuldi3_highpart" - [(set (match_operand:DI 0 "register_operand" "") - (truncate:DI - (ashiftrt:TI - (mult:TI (sign_extend:TI (match_operand:DI 1 "reg_or_0_operand" "")) - (sign_extend:TI (match_operand:DI 2 "reg_or_0_operand" ""))) - (const_int 64))))] - "" - { - tilegx_expand_smuldi3_highpart (operands[0], operands[1], operands[2]); - DONE; - }) - -(define_expand "umuldi3_highpart" - [(set (match_operand:DI 0 "register_operand" "") - (truncate:DI - (lshiftrt:TI - (mult:TI (zero_extend:TI (match_operand:DI 1 "reg_or_0_operand" "")) - (zero_extend:TI (match_operand:DI 2 "reg_or_0_operand" ""))) - (const_int 64))))] - "" -{ - tilegx_expand_umuldi3_highpart (operands[0], operands[1], operands[2]); - DONE; -}) - - -;; -;; Divide stubs. These exist to work around a bug in expmed.cc, which -;; will not attempt to convert a divide by constant into a multiply -;; unless there is a pattern for a divide of the same mode. The end -;; result is a 32-bit divide turns into 64-bit multiply. -;; - -(define_expand "divsi3" - [(set (match_operand:SI 0 "register_operand" "") - (div:SI (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - FAIL; -}) - -(define_expand "udivsi3" - [(set (match_operand:SI 0 "register_operand" "") - (udiv:SI (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - FAIL; -}) - - -;; -;; Loops -;; - -;; Define the subtract-one-and-jump insns so loop.c knows what to -;; generate. -(define_expand "doloop_end" - [(use (match_operand 0 "" "")) ;; loop pseudo - (use (match_operand 1 "" ""))] ;; label - "" -{ - if (optimize > 0 && flag_modulo_sched) - { - rtx s0; - rtx bcomp; - rtx loc_ref; - machine_mode mode = GET_MODE (operands[0]); - - /* only deal with loop counters in SImode or DImode */ - if (mode != SImode && mode != DImode) - FAIL; - - s0 = operands [0]; - emit_move_insn (s0, gen_rtx_PLUS (mode, s0, GEN_INT (-1))); - bcomp = gen_rtx_NE(mode, s0, const0_rtx); - loc_ref = gen_rtx_LABEL_REF (VOIDmode, operands [1]); - emit_jump_insn (gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, bcomp, - loc_ref, pc_rtx))); - DONE; - } - else - FAIL; - -}) - -;; -;; Prologue/epilogue -;; -(define_expand "prologue" - [(const_int 0)] - "" -{ - tilegx_expand_prologue (); - DONE; -}) - -(define_expand "epilogue" - [(const_int 0)] - "" -{ - tilegx_expand_epilogue (false); - DONE; -}) - -(define_expand "sibcall_epilogue" - [(const_int 0)] - "" -{ - tilegx_expand_epilogue (true); - DONE; -}) - -;; -;; Stack manipulations -;; - -;; An insn to allocate new stack space for dynamic use (e.g., alloca). -(define_expand "allocate_stack" - [(set (match_operand 0 "register_operand" "") - (minus (reg 54) (match_operand 1 "nonmemory_operand" ""))) - (set (reg 54) - (minus (reg 54) (match_dup 1)))] - "" - "tilegx_allocate_stack (operands[0], operands[1]); DONE;") - -;; -;; Branches -;; - -(define_expand "call" - [(parallel [(call (match_operand:DI 0 "call_operand" "") - (match_operand 1 "" "")) - (use (reg:DI 54)) - (clobber (reg:DI 55))])] - "" -{ - rtx orig_addr = XEXP (operands[0], 0); - rtx addr; - if (GET_CODE (orig_addr) == SYMBOL_REF) - { - if (tilegx_cmodel == CM_LARGE) - { - addr = gen_reg_rtx (Pmode); - tilegx_expand_set_const64 (addr, orig_addr); - operands[0] = gen_rtx_MEM (DImode, addr); - } - else if (tilegx_cmodel == CM_LARGE_PIC) - { - crtl->uses_pic_offset_table = 1; - addr = gen_reg_rtx (Pmode); - if (SYMBOL_REF_LOCAL_P (orig_addr)) - tilegx_compute_pcrel_address (addr, orig_addr); - else - tilegx_compute_pcrel_plt_address (addr, orig_addr); - operands[0] = gen_rtx_MEM (DImode, addr); - } - } -}) - -(define_insn "*call_insn" - [(call (mem:DI (match_operand:I48MODE 0 "call_address_operand" "rO,i")) - (match_operand 1 "" "")) - (use (reg:DI 54)) - (clobber (reg:DI 55))] - "" - "@ - jalr\t%r0 - jal\t%p0" - [(set_attr "type" "Y1,X1")]) - -(define_expand "call_value" - [(parallel [(set (match_operand 0 "register_operand" "") - (call (match_operand:DI 1 "call_operand" "") - (match_operand 2 "" ""))) - (use (reg:DI 54)) - (clobber (reg:DI 55))])] - "" -{ - rtx orig_addr = XEXP (operands[1], 0); - rtx addr; - if (GET_CODE (orig_addr) == SYMBOL_REF) - { - if (tilegx_cmodel == CM_LARGE) - { - addr = gen_reg_rtx (Pmode); - tilegx_expand_set_const64 (addr, orig_addr); - operands[1] = gen_rtx_MEM (DImode, addr); - } - else if (tilegx_cmodel == CM_LARGE_PIC) - { - crtl->uses_pic_offset_table = 1; - addr = gen_reg_rtx (Pmode); - if (SYMBOL_REF_LOCAL_P (orig_addr)) - tilegx_compute_pcrel_address (addr, orig_addr); - else - tilegx_compute_pcrel_plt_address (addr, orig_addr); - operands[1] = gen_rtx_MEM (DImode, addr); - } - } -}) - -(define_insn "*call_value_insn" - [(set (match_operand 0 "register_operand" "=r,r") - (call (mem:DI (match_operand:I48MODE 1 "call_address_operand" "rO,i")) - (match_operand 2 "" ""))) - (use (reg:DI 54)) - (clobber (reg:DI 55))] - "" - "@ - jalr\t%r1 - jal\t%p1" - [(set_attr "type" "Y1,X1")]) - -(define_expand "sibcall" - [(parallel [(call (match_operand:DI 0 "call_operand" "") - (match_operand 1 "" "")) - (use (reg:DI 54))])] - "" - "") - -(define_insn "*sibcall_insn" - [(call (mem:DI (match_operand:I48MODE 0 "call_address_operand" "rO,i")) - (match_operand 1 "" "")) - (use (reg:DI 54))] - "SIBLING_CALL_P(insn)" - "@ - jr\t%r0 - j\t%p0" - [(set_attr "type" "Y1,X1")]) - -(define_expand "sibcall_value" - [(parallel [(set (match_operand 0 "" "") - (call (match_operand:DI 1 "call_operand" "") - (match_operand 2 "" ""))) - (use (reg:DI 54))])] - "" - "") - -(define_insn "*sibcall_value" - [(set (match_operand 0 "" "") - (call (mem:DI (match_operand:I48MODE 1 "call_address_operand" "rO,i")) - (match_operand 2 "" ""))) - (use (reg:DI 54))] - "SIBLING_CALL_P(insn)" - "@ - jr\t%r1 - j\t%p1" - [(set_attr "type" "Y1,X1")]) - -(define_insn "jump" - [(set (pc) (label_ref (match_operand 0 "" "")))] - "" - "j\t%l0" - [(set_attr "type" "X1")]) - -(define_insn "indirect_jump" - [(set (pc) (match_operand 0 "pointer_operand" "rO"))] - "" - "jr\t%r0" - [(set_attr "type" "Y1")]) - -(define_expand "return" - [(parallel - [(return) - (use (reg:DI 55))])] - "tilegx_can_use_return_insn_p ()" - "") - -(define_insn "_return" - [(return) - (use (reg:DI 55))] - "reload_completed" - "jrp\tlr" - [(set_attr "type" "Y1")]) - -(define_expand "tablejump" - [(set (pc) (match_operand 0 "pointer_operand" "")) - (use (label_ref (match_operand 1 "" "")))] - "" -{ - tilegx_expand_tablejump (operands[0], operands[1]); - DONE; -}) - -(define_insn "tablejump_aux" - [(set (pc) (match_operand 0 "pointer_operand" "rO")) - (use (label_ref (match_operand 1 "" "")))] - "" - "jr\t%r0" - [(set_attr "type" "Y1")]) - -;; Call subroutine returning any type. -(define_expand "untyped_call" - [(parallel [(call (match_operand 0 "" "") - (const_int 0)) - (match_operand 1 "" "") - (match_operand 2 "" "")])] - "" -{ - int i; - - emit_call_insn (gen_call (operands[0], const0_rtx)); - - for (i = 0; i < XVECLEN (operands[2], 0); i++) - { - rtx set = XVECEXP (operands[2], 0, i); - emit_move_insn (SET_DEST (set), SET_SRC (set)); - } - - /* The optimizer does not know that the call sets the function value - registers we stored in the result block. We avoid problems by - claiming that all hard registers are used and clobbered at this - point. */ - emit_insn (gen_blockage ()); - - DONE; -}) - -;; UNSPEC_VOLATILE is considered to use and clobber all hard registers -;; and all of memory. This blocks insns from being moved across this -;; point. -(define_insn "blockage" - [(unspec_volatile [(const_int 0)] UNSPEC_BLOCKAGE)] - "" - "pseudo" - [(set_attr "type" "nothing") - (set_attr "length" "0")]) - -;; Internal expanders to prevent memory ops from moving around frame -;; allocation/deallocation. -;; -;; TODO: really this clobber should just clobber the frame memory. Is -;; this possibly by clobbering memory @ the sp reg (as alpha does?) -;; or by explicitly setting the alias set to the frame? -(define_insn "sp_adjust" - [(set (match_operand:DI 0 "register_operand" "=r,r,r") - (plus:DI - (match_operand:DI 1 "register_operand" "%r,r,r") - (match_operand:DI 2 "add_operand" "r,I,JT"))) - (clobber (mem:BLK (scratch)))] - "" - "@ - add\t%0, %1, %2 - addi\t%0, %1, %2 - addli\t%0, %1, %H2" - [(set_attr "type" "*,*,X01")]) - -(define_insn "sp_adjust_32bit" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (plus:SI - (match_operand:SI 1 "register_operand" "%r,r,r") - (match_operand:SI 2 "add_operand" "r,I,JT"))) - (clobber (mem:BLK (scratch)))] - "" - "@ - addx\t%0, %1, %2 - addxi\t%0, %1, %2 - addxli\t%0, %1, %H2" - [(set_attr "type" "*,*,X01")]) - -;; Used for move sp, r52, to pop a stack frame. We need to make sure -;; that stack frame memory operations have been issued before we do -;; this. TODO: see above TODO. -(define_insn "sp_restore" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (match_operand:I48MODE 1 "register_operand" "r")) - (clobber (mem:BLK (scratch)))] - "" - "move\t%0, %1") - -(define_insn "nop" - [(const_int 0)] - "" - "nop" - [(set_attr "type" "Y01")]) - -(define_insn "trap" - [(trap_if (const_int 1) (const_int 0))] - "" - "raise; moveli zero, 6" - [(set_attr "type" "cannot_bundle")]) - - -;; -;; Conditional branches -;; - -(define_expand "cbranch4" - [(set (pc) - (if_then_else (match_operator 0 "ordered_comparison_operator" - [(match_operand:FI48MODE 1 "reg_or_cint_operand") - (match_operand:FI48MODE 2 "reg_or_cint_operand")]) - (label_ref (match_operand 3 "")) - (pc)))] - "" -{ - tilegx_emit_conditional_branch (operands, GET_MODE (operands[1])); - DONE; -}) - -(define_insn "*bcc_normal" - [(set (pc) - (if_then_else - (match_operator 1 "signed_comparison_operator" - [(match_operand:I48MODE 2 "reg_or_0_operand" "rO") - (const_int 0)]) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilegx_output_cbranch (insn, operands, false); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*bcc_reverse" - [(set (pc) - (if_then_else - (match_operator 1 "signed_comparison_operator" - [(match_operand:I48MODE 2 "reg_or_0_operand" "rO") - (const_int 0)]) - (pc) - (label_ref (match_operand 0 "" ""))))] - "" - { return tilegx_output_cbranch (insn, operands, true); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*blbs_normal" - [(set (pc) - (if_then_else - (ne (zero_extract:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilegx_output_cbranch_with_opcode (insn, operands, "blbs", "blbc", - 1); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*blbc_normal" - [(set (pc) - (if_then_else - (eq (zero_extract:I48MODE - (match_operand:I48MODE 1 "reg_or_0_operand" "rO") - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilegx_output_cbranch_with_opcode (insn, operands, "blbc", "blbs", - 1); } - [(set_attr "type" "X1_branch")]) - -;; Note that __insn_mf() expands to this. -(define_expand "memory_barrier" - [(set (match_dup 0) - (unspec_volatile:BLK [(match_dup 0)] UNSPEC_MF))] - "" -{ - operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); - MEM_VOLATILE_P (operands[0]) = 1; -}) - -(define_insn "*memory_barrier" - [(set (match_operand:BLK 0 "" "") - (unspec_volatile:BLK [(match_dup 0)] UNSPEC_MF))] - "" - "mf" - [(set_attr "type" "X1")]) - -(define_insn "prefetch" - [(prefetch (match_operand 0 "address_operand" "rO") - (match_operand 1 "const_int_operand" "") - (match_operand 2 "const_int_operand" ""))] - "" -{ - switch (INTVAL (operands[2])) - { - case 0: - case 1: return "prefetch_l3\t%r0"; - case 2: return "prefetch_l2\t%r0"; - case 3: return "prefetch_l1\t%r0"; - default: gcc_unreachable (); - } -} - [(set_attr "type" "Y2")]) - - -;; -;; "__insn" Intrinsics (some expand directly to normal patterns above). -;; - -(define_insn "insn_bfexts" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "u6bit_cint_operand" "n") - (match_operand:DI 3 "u6bit_cint_operand" "n")] - UNSPEC_INSN_BFEXTS))] - "" - "bfexts\t%0, %r1, %2, %3" - [(set_attr "type" "X0")]) - -(define_insn "insn_bfextu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "u6bit_cint_operand" "n") - (match_operand:DI 3 "u6bit_cint_operand" "n")] - UNSPEC_INSN_BFEXTU))] - "" - "bfextu\t%0, %r1, %2, %3" - [(set_attr "type" "X0")]) - -(define_insn "insn_bfins" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "u6bit_cint_operand" "n") - (match_operand:DI 4 "u6bit_cint_operand" "n")] - UNSPEC_INSN_BFINS))] - "" - "bfins\t%0, %r2, %3, %4" - [(set_attr "type" "X0")]) - -(define_insn "insn_cmpexch" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (mem:I48MODE (match_operand 1 "pointer_operand" "rO"))) - (set (mem:I48MODE (match_dup 1)) - (unspec_volatile:I48MODE - [(mem:I48MODE (match_dup 1)) - (reg:I48MODE TILEGX_CMPEXCH_REG) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMPEXCH))] - "" - "cmpexch\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_cmul" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMUL))] - "" - "cmul\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmula" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULA))] - "" - "cmula\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmulaf" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULAF))] - "" - "cmulaf\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmulf" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULF))] - "" - "cmulf\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmulfr" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULFR))] - "" - "cmulfr\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmulh" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULH))] - "" - "cmulh\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_cmulhr" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CMULHR))] - "" - "cmulhr\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_crc32_32" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CRC32_32))] - "" - "crc32_32\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_crc32_8" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CRC32_8))] - "" - "crc32_8\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_dblalign" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand 3 "pointer_operand" "rO")] - UNSPEC_INSN_DBLALIGN))] - "" - "dblalign\t%0, %r2, %r3" - [(set_attr "type" "X0")]) - -(define_insn "insn_dblalign2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DBLALIGN2))] - "" - "dblalign2\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_dblalign4" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DBLALIGN4))] - "" - "dblalign4\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_dblalign6" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DBLALIGN6))] - "" - "dblalign6\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_dtlbpr" - [(unspec_volatile:VOID [(match_operand:DI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DTLBPR)] - "" - "dtlbpr\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_exch" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (mem:I48MODE (match_operand 1 "pointer_operand" "rO"))) - (set (mem:I48MODE (match_dup 1)) - (unspec_volatile:I48MODE - [(match_operand:I48MODE 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_EXCH))] - "" - "exch\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_fdouble_add_flags" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_ADD_FLAGS))] - "" - "fdouble_add_flags\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_addsub" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_ADDSUB))] - "" - "fdouble_addsub\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_mul_flags" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_MUL_FLAGS))] - "" - "fdouble_mul_flags\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_pack1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_PACK1))] - "" - "fdouble_pack1\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_pack2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_PACK2))] - "" - "fdouble_pack2\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_sub_flags" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_SUB_FLAGS))] - "" - "fdouble_sub_flags\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_unpack_max" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_UNPACK_MAX))] - "" - "fdouble_unpack_max\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fdouble_unpack_min" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FDOUBLE_UNPACK_MIN))] - "" - "fdouble_unpack_min\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fetchadd" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec_volatile:I48MODE - [(mem:I48MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_ATOMIC)) - (set (mem:I48MODE (match_dup 1)) - (plus:I48MODE (mem:I48MODE (match_dup 1)) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")))] - "" - "fetchadd\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_fetchaddgez" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec_volatile:I48MODE - [(mem:I48MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_ATOMIC)) - (set (mem:I48MODE (match_dup 1)) - (unspec:I48MODE [(match_operand:I48MODE 2 "reg_or_0_operand" "rO") - (mem:I48MODE (match_dup 1))] - UNSPEC_INSN_FETCHADDGEZ))] - "" - "fetchaddgez\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_fetchand" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec_volatile:I48MODE - [(mem:I48MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_ATOMIC)) - (set (mem:I48MODE (match_dup 1)) - (and:I48MODE (mem:I48MODE (match_dup 1)) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")))] - "" - "fetchand\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_fetchor" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (unspec_volatile:I48MODE - [(mem:I48MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_ATOMIC)) - (set (mem:I48MODE (match_dup 1)) - (ior:I48MODE (mem:I48MODE (match_dup 1)) - (match_operand:I48MODE 2 "reg_or_0_operand" "rO")))] - "" - "fetchor\t%0, %r1, %r2" - [(set_attr "type" "X1_remote")]) - -(define_insn "insn_finv" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_FINV)] - "" - "finv\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_flush" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_FLUSH)] - "" - "flush\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_flushwb" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_FLUSHWB)] - "" - "flushwb" - [(set_attr "type" "X1")]) - -(define_insn "insn_fnop" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_FNOP)] - "" - "fnop") - -(define_insn "insn_fsingle_add1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_ADD1))] - "" - "fsingle_add1\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_fsingle_addsub2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_ADDSUB2))] - "" - "fsingle_addsub2\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fsingle_mul1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_MUL1))] - "" - "fsingle_mul1\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_fsingle_mul2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_MUL2))] - "" - "fsingle_mul2\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fsingle_pack1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_PACK1))] - "" - "fsingle_pack1\t%0, %r1" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_fsingle_pack2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_PACK2))] - "" - "fsingle_pack2\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_fsingle_sub1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FSINGLE_SUB1))] - "" - "fsingle_sub1\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_drain" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_DRAIN)] - "" - "drain" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_icoh" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_ICOH)] - "" - "icoh\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_ill" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_ILL)] - "" - "ill" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_info" - [(unspec_volatile:VOID [(match_operand:DI 0 "s8bit_cint_operand" "i")] - UNSPEC_INSN_INFO)] - "" - "info\t%0") - -(define_insn "insn_infol" - [(unspec_volatile:VOID [(match_operand:DI 0 "s16bit_cint_operand" "i")] - UNSPEC_INSN_INFOL)] - "" - "infol\t%0" - [(set_attr "type" "X01")]) - -(define_insn "insn_inv" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_INV)] - "" - "inv\t%r0" - [(set_attr "type" "X1")]) - -;; loads - -(define_expand "insn_ld" - [(set (match_operand:DI 0 "register_operand" "") - (mem:DI (match_operand 1 "pointer_operand" "")))] - "") - -(define_insn "insn_ld_add" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (mem:DI (match_dup 3)))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_ldna" - [(set (match_operand:DI 0 "register_operand" "=r") - (mem:DI (and:DI (match_operand 1 "pointer_operand" "rO") - (const_int -8))))] - "" - "ldna\t%0, %r1" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_ldna_add" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (mem:DI (and:DI (match_dup 3) (const_int -8))))] - "" - "ldna_add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_expand "insn_ld" - [(set (match_operand:DI 0 "register_operand" "") - (any_extend:DI - (mem:I124MODE (match_operand 1 "pointer_operand" ""))))] - "") - -(define_insn "insn_ld_add" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI (mem:I124MODE (match_dup 3))))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -;; non temporal loads - -(define_insn "insn_ldnt" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_ldnt_add" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_dup 3))] - UNSPEC_NON_TEMPORAL))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_ldnt" - [(set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE - [(mem:I124MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL)))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_ldnt_add" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI (unspec:I124MODE [(mem:I124MODE (match_dup 3))] - UNSPEC_NON_TEMPORAL)))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -;; L2 hits - -(define_insn "insn_ld_L2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_LATENCY_L2))] - "" - "ld\t%0, %r1" - [(set_attr "type" "Y2_L2")]) - -(define_insn "insn_ld_add_L2" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_dup 3))] - UNSPEC_LATENCY_L2))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ldna_L2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (and:DI (match_operand 1 "pointer_operand" "rO") - (const_int -8)))] - UNSPEC_LATENCY_L2))] - "" - "ldna\t%0, %r1" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ldna_add_L2" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (and:DI (match_dup 3) (const_int -8)))] - UNSPEC_LATENCY_L2))] - "" - "ldna_add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ld_L2" - [(set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE - [(mem:I124MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_LATENCY_L2)))] - "" - "ld\t%0, %r1" - [(set_attr "type" "Y2_L2")]) - -(define_insn "insn_ld_add_L2" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI (unspec:I124MODE [(mem:I124MODE (match_dup 3))] - UNSPEC_LATENCY_L2)))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -;; L2 hits, non temporal loads - -(define_insn "insn_ldnt_L2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(unspec:DI - [(mem:DI (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_L2))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ldnt_add_L2" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(unspec:DI - [(mem:DI (match_dup 3))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_L2))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ldnt_L2" - [(set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE - [(unspec:I124MODE - [(mem:I124MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_L2)))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_ldnt_add_L2" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE [(unspec:I124MODE - [(mem:I124MODE (match_dup 3))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_L2)))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -;; L2 miss - -(define_insn "insn_ld_miss" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_LATENCY_MISS))] - "" - "ld\t%0, %r1" - [(set_attr "type" "Y2_miss")]) - -(define_insn "insn_ld_add_miss" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (match_dup 3))] - UNSPEC_LATENCY_MISS))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ldna_miss" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (and:DI (match_operand 1 "pointer_operand" "rO") - (const_int -8)))] - UNSPEC_LATENCY_MISS))] - "" - "ldna\t%0, %r1" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ldna_add_miss" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(mem:DI (and:DI (match_dup 3) (const_int -8)))] - UNSPEC_LATENCY_MISS))] - "" - "ldna_add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ld_miss" - [(set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE - [(mem:I124MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_LATENCY_MISS)))] - "" - "ld\t%0, %r1" - [(set_attr "type" "Y2_miss")]) - -(define_insn "insn_ld_add_miss" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI (unspec:I124MODE [(mem:I124MODE (match_dup 3))] - UNSPEC_LATENCY_MISS)))] - "" - "ld_add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -;; L2 miss, non temporal loads - -(define_insn "insn_ldnt_miss" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(unspec:DI - [(mem:DI (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_MISS))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ldnt_add_miss" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(unspec:DI - [(mem:DI (match_dup 3))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_MISS))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ldnt_miss" - [(set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE - [(unspec:I124MODE - [(mem:I124MODE (match_operand 1 "pointer_operand" "rO"))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_MISS)))] - "" - "ldnt\t%0, %r1" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_ldnt_add_miss" - [(set (match_operand:I48MODE 1 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "1") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (match_operand:DI 0 "register_operand" "=r") - (any_extend:DI - (unspec:I124MODE [(unspec:I124MODE - [(mem:I124MODE (match_dup 3))] - UNSPEC_NON_TEMPORAL)] - UNSPEC_LATENCY_MISS)))] - "" - "ldnt_add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -;; end loads - -(define_insn "insn_lnk" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(const_int 0)] UNSPEC_INSN_LNK))] - "" - "lnk\t%0" - [(set_attr "type" "Y1")]) - -(define_insn "insn_mfspr" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec_volatile:DI [(match_operand:DI 1 "u14bit_cint_operand" "i")] - UNSPEC_INSN_MFSPR)) - (clobber (mem:BLK (const_int 0)))] - "" - "mfspr\t%0, %1" - [(set_attr "type" "X1")]) - -(define_insn "insn_mtspr" - [(unspec_volatile:DI [(match_operand:DI 0 "u14bit_cint_operand" "i") - (match_operand:DI 1 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MTSPR) - (clobber (mem:BLK (const_int 0)))] - "" - "mtspr\t%0, %r1" - [(set_attr "type" "X1")]) - -(define_insn "insn_mm" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "u6bit_cint_operand" "i") - (match_operand:DI 4 "u6bit_cint_operand" "i")] - UNSPEC_INSN_MM))] - "" - "mm\t%0, %r2, %3, %4" - [(set_attr "type" "X0")]) - -(define_insn "insn_mul_hs_hs" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HS_HS))] - "" - "mul_hs_hs\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mul_hs_hu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HS_HU))] - "" - "mul_hs_hu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_hs_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HS_LS))] - "" - "mul_hs_ls\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_hs_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HS_LU))] - "" - "mul_hs_lu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_hu_hu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HU_HU))] - "" - "mul_hu_hu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mul_hu_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HU_LS))] - "" - "mul_hu_ls\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_hu_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_HU_LU))] - "" - "mul_hu_lu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_ls_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_LS_LS))] - "" - "mul_ls_ls\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mul_ls_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_LS_LU))] - "" - "mul_ls_lu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mul_lu_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MUL_LU_LU))] - "" - "mul_lu_lu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mula_hs_hs" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HS_HS))] - "" - "mula_hs_hs\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mula_hs_hu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HS_HU))] - "" - "mula_hs_hu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_hs_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HS_LS))] - "" - "mula_hs_ls\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_hs_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HS_LU))] - "" - "mula_hs_lu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_hu_hu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HU_HU))] - "" - "mula_hu_hu\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mula_hu_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HU_LS))] - "" - "mula_hu_ls\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_hu_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_HU_LU))] - "" - "mula_hu_lu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_ls_ls" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_LS_LS))] - "" - "mula_ls_ls\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mula_ls_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_LS_LU))] - "" - "mula_ls_lu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mula_lu_lu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULA_LU_LU))] - "" - "mula_lu_lu\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulax" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULAX))] - "" - "mulax\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_nap" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_NAP)] - "" - "nap" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_nor_" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (and:I48MODE - (not:I48MODE (match_operand:I48MODE 1 "reg_or_0_operand" "rO")) - (not:I48MODE (match_operand:I48MODE 2 "reg_or_0_operand" "rO"))))] - "" - "nor\t%0, %r1, %r2") - -(define_expand "insn_prefetch_l1" - [(prefetch (match_operand 0 "pointer_operand" "") - (const_int 0) - (const_int 3))] - "") - -(define_expand "insn_prefetch_l2" - [(prefetch (match_operand 0 "pointer_operand" "") - (const_int 0) - (const_int 2))] - "") - -(define_expand "insn_prefetch_l3" - [(prefetch (match_operand 0 "pointer_operand" "") - (const_int 0) - (const_int 1))] - "") - -(define_insn "insn_prefetch_l1_fault" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_PREFETCH_L1_FAULT)] - "" - "prefetch_l1_fault\t%r0" - [(set_attr "type" "Y2")]) - -(define_insn "insn_prefetch_l2_fault" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_PREFETCH_L2_FAULT)] - "" - "prefetch_l2_fault\t%r0" - [(set_attr "type" "Y2")]) - -(define_insn "insn_prefetch_l3_fault" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_PREFETCH_L3_FAULT)] - "" - "prefetch_l3_fault\t%r0" - [(set_attr "type" "Y2")]) - -(define_insn "insn_revbits" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO")] - UNSPEC_INSN_REVBITS))] - "" - "revbits\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "insn_shl1add" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI (mult:DI (match_operand:DI 1 "reg_or_0_operand" "rO") - (const_int 2)) - (match_operand:DI 2 "reg_or_0_operand" "rO")))] - "" - "shl1add\t%0, %r1, %r2") - -(define_insn "insn_shl1addx" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (const_int 2)) - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "shl1addx\t%0, %r1, %r2") - -(define_insn "insn_shl2add" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI (mult:DI (match_operand:DI 1 "reg_or_0_operand" "rO") - (const_int 4)) - (match_operand:DI 2 "reg_or_0_operand" "rO")))] - "" - "shl2add\t%0, %r1, %r2") - -(define_insn "insn_shl2addx" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (const_int 4)) - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "shl2addx\t%0, %r1, %r2") - -(define_insn "insn_shl3add" - [(set (match_operand:DI 0 "register_operand" "=r") - (plus:DI (mult:DI (match_operand:DI 1 "reg_or_0_operand" "rO") - (const_int 8)) - (match_operand:DI 2 "reg_or_0_operand" "rO")))] - "" - "shl3add\t%0, %r1, %r2") - -(define_insn "insn_shl3addx" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (const_int 8)) - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "shl3addx\t%0, %r1, %r2") - -(define_insn "insn_shufflebytes" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SHUFFLEBYTES))] - "" - "shufflebytes\t%0, %r2, %r3" - [(set_attr "type" "X0")]) - -(define_insn "insn_shufflebytes1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SHUFFLEBYTES))] - "" - "shufflebytes\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -;; stores - -(define_expand "insn_st" - [(set (mem:DI (match_operand 0 "pointer_operand" "")) - (match_operand:DI 1 "reg_or_0_operand" ""))] - "") - -(define_insn "insn_st_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "0") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (mem:DI (match_dup 3)) - (match_operand:DI 1 "reg_or_0_operand" "rO"))] - "" - "st_add\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -(define_expand "insn_st" - [(set (mem:I124MODE (match_operand 0 "pointer_operand" "")) - (match_operand:DI 1 "reg_or_0_operand" ""))] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], DImode, - BYTES_BIG_ENDIAN - ? UNITS_PER_WORD - : 0); -}) - -(define_expand "insn_st_add" - [(parallel - [(set (match_operand:I48MODE 0 "register_operand" "") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "") - (match_operand:I48MODE 2 "s8bit_cint_operand" ""))) - (set (mem:I124MODE (match_dup 3)) - (match_operand:DI 1 "reg_or_0_operand" ""))])] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], - DImode, - BYTES_BIG_ENDIAN - ? UNITS_PER_WORD - : 0); -}) - -(define_insn "*insn_st_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "0") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (mem:I124MODE (match_dup 3)) - (match_operand:I124MODE 1 "reg_or_0_operand" "rO"))] - "" - "st_add\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -;; non-temporal stores - -(define_insn "insn_stnt" - [(set (mem:DI (unspec [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_NON_TEMPORAL)) - (match_operand:DI 1 "reg_or_0_operand" "rO"))] - "" - "stnt\t%0, %r1" - [(set_attr "type" "X1")]) - -(define_insn "insn_stnt_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "0") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (mem:DI (unspec:I48MODE [(match_dup 3)] UNSPEC_NON_TEMPORAL)) - (match_operand:DI 1 "reg_or_0_operand" "rO"))] - "" - "stnt_add\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -(define_expand "insn_stnt" - [(set (mem:I124MODE (unspec [(match_operand 0 "pointer_operand" "")] - UNSPEC_NON_TEMPORAL)) - (match_operand:DI 1 "reg_or_0_operand" ""))] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], DImode, - BYTES_BIG_ENDIAN - ? UNITS_PER_WORD - : 0); -}) - -(define_insn "*insn_stnt" - [(set (mem:I124MODE (unspec [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_NON_TEMPORAL)) - (match_operand:I124MODE 1 "reg_or_0_operand" "rO"))] - "" - "stnt\t%0, %r1" - [(set_attr "type" "X1")]) - -(define_expand "insn_stnt_add" - [(parallel - [(set (match_operand:I48MODE 0 "register_operand" "") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "") - (match_operand:I48MODE 2 "s8bit_cint_operand" ""))) - (set (mem:I124MODE (unspec:I48MODE [(match_dup 3)] UNSPEC_NON_TEMPORAL)) - (match_operand:DI 1 "reg_or_0_operand" "rO"))])] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], - DImode, - BYTES_BIG_ENDIAN - ? UNITS_PER_WORD - : 0); -}) - -(define_insn "*insn_stnt_add" - [(set (match_operand:I48MODE 0 "register_operand" "=r") - (plus:I48MODE (match_operand:I48MODE 3 "register_operand" "0") - (match_operand:I48MODE 2 "s8bit_cint_operand" "i"))) - (set (mem:I124MODE (unspec:I48MODE [(match_dup 3)] UNSPEC_NON_TEMPORAL)) - (match_operand:I124MODE 1 "reg_or_0_operand" "rO"))] - "" - "stnt_add\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -;; end stores - -(define_insn "insn_tblidxb0" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB0))] - "" - "tblidxb0\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb1" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB1))] - "" - "tblidxb1\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb2" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB2))] - "" - "tblidxb2\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb3" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB3))] - "" - "tblidxb3\t%0, %r2" - [(set_attr "type" "Y0")]) - -;; insn_v1add -;; insn_v1addi -;; insn_v1cmpeq -;; insn_v1cmpeqi -;; insn_v1cmplts -;; insn_v1cmpltsi -;; insn_v1cmpltu -;; insn_v1cmpltui -;; insn_v1maxu -;; insn_v1maxui -;; insn_v1minu -;; insn_v1minui -(define_insn "v8qi3" - [(set (match_operand:V8QI 0 "register_operand" "=r,r") - (v1op_immed:V8QI - (match_operand:V8QI 1 "reg_or_0_operand" "rO,rO") - (match_operand:V8QI 2 "reg_or_v8s8bit_operand" "W,rO")))] - "" - "@ - v1i\t%0, %r1, %j2 - v1\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_expand "insn_v1" - [(set (match_operand:DI 0 "register_operand" "") - (v1op_immed:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v8qi3, V8QImode, operands[0], - V8QImode, operands[1], operands[2], true); - DONE; -}) - -(define_expand "insn_v1i" - [(set (match_operand:DI 0 "register_operand" "") - (v1op_immed:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "s8bit_cint_operand" "")))] - "" -{ - /* Tile out immediate and expand to general case. */ - rtx n = tilegx_simd_int (operands[2], QImode); - tilegx_expand_builtin_vector_binop (gen_v8qi3, V8QImode, operands[0], - V8QImode, operands[1], n, true); - DONE; -}) - -;; insn_v1shl -;; insn_v1shli -;; insn_v1shrs -;; insn_v1shrsi -;; insn_v1shru -;; insn_v1shrui -(define_insn "v8qi3" - [(set (match_operand:V8QI 0 "register_operand" "=r,r") - (any_shift:V8QI - (match_operand:V8QI 1 "reg_or_0_operand" "rO,rO") - (match_operand:DI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - v1i\t%0, %r1, %2 - v1\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_expand "insn_v1" - [(set (match_operand:DI 0 "register_operand" "") - (any_shift:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_u5bit_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v8qi3, V8QImode, operands[0], - V8QImode, operands[1], operands[2], false); - DONE; -}) - -;; insn_v2add -;; insn_v2addi -;; insn_v2maxs -;; insn_v2maxsi -;; insn_v2mins -;; insn_v2minsi -;; insn_v2cmpeq -;; insn_v2cmpeqi -;; insn_v2cmplts -;; insn_v2cmpltsi -;; insn_v2cmpltu -;; insn_v2cmpltui -(define_insn "v4hi3" - [(set (match_operand:V4HI 0 "register_operand" "=r,r") - (v2op_immed:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO,rO") - (match_operand:V4HI 2 "reg_or_v4s8bit_operand" "Y,rO")))] - "" - "@ - v2i\t%0, %r1, %j2 - v2\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_expand "insn_v2" - [(set (match_operand:DI 0 "register_operand" "") - (v2op_immed:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v4hi3, V4HImode, operands[0], - V4HImode, operands[1], operands[2], true); - DONE; -}) - -(define_expand "insn_v2i" - [(set (match_operand:DI 0 "register_operand" "") - (v2op_immed:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "s8bit_cint_operand" "")))] - "" -{ - /* Tile out immediate and expand to general case. */ - rtx n = tilegx_simd_int (operands[2], HImode); - tilegx_expand_builtin_vector_binop (gen_v4hi3, V4HImode, operands[0], - V4HImode, operands[1], n, true); - DONE; -}) - -;; insn_v2shl -;; insn_v2shli -;; insn_v2shrs -;; insn_v2shrsi -;; insn_v2shru -;; insn_v2shrui -(define_insn "v4hi3" - [(set (match_operand:V4HI 0 "register_operand" "=r,r") - (any_shift:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO,rO") - (match_operand:DI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - v2i\t%0, %r1, %2 - v2\t%0, %r1, %r2" - [(set_attr "type" ",")]) - -(define_expand "insn_v2" - [(set (match_operand:DI 0 "register_operand" "") - (any_shift:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_u5bit_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v4hi3, V4HImode, operands[0], - V4HImode, operands[1], operands[2], false); - DONE; -}) - -;; insn_v1adduc -;; insn_v1subuc -;; insn_v1sub -;; insn_v1cmpne -;; insn_v1cmples -;; insn_v1cmpleu -;; insn_v1multu -(define_insn "v8qi3" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (v1op:V8QI - (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (match_operand:V8QI 2 "reg_or_0_operand" "rO")))] - "" - "v1\t%0, %r1, %r2" - [(set_attr "type" "")]) - -(define_expand "insn_v1" - [(set (match_operand:DI 0 "register_operand" "") - (v1op:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v8qi3, V8QImode, operands[0], - V8QImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_v2addsc -;; insn_v2subsc -;; insn_v2sub -;; insn_v2cmpne -;; insn_v2cmples -;; insn_v2cmpleu -(define_insn "v4hi3" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (v2op:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")))] - "" - "v2\t%0, %r1, %r2" - [(set_attr "type" "")]) - -(define_expand "insn_v2" - [(set (match_operand:DI 0 "register_operand" "") - (v2op:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v4hi3, V4HImode, operands[0], - V4HImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_v2mults -(define_insn "mulv4hi3" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (mult:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "%rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")))] - "" - "v2mults\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_expand "insn_v2mults" - [(set (match_operand:DI 0 "register_operand" "") - (mult:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_mulv4hi3, V4HImode, operands[0], - V4HImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_v2shlsc -(define_insn "v4hi3" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (v2shift:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")))] - "" - "v2\t%0, %r1, %r2" - [(set_attr "type" "")]) - -(define_expand "insn_v2" - [(set (match_operand:DI 0 "register_operand" "") - (v2shift:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v4hi3, V4HImode, operands[0], - V4HImode, operands[1], operands[2], false); - DONE; -}) - -;; insn_v4addsc -;; insn_v4subsc -;; insn_v4add -;; insn_v4sub -(define_insn "v2si3" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (v4op:V2SI - (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:V2SI 2 "reg_or_0_operand" "rO")))] - "" - "v4\t%0, %r1, %r2" - [(set_attr "type" "")]) - -(define_expand "insn_v4" - [(set (match_operand:DI 0 "register_operand" "") - (v4op:V2SI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v2si3, V2SImode, operands[0], - V2SImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_v4shl -;; insn_v4shrs -;; insn_v4shru -;; insn_v4shlsc -(define_insn "v2si3" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (v4shift:V2SI - (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")))] - "" - "v4\t%0, %r1, %r2" - [(set_attr "type" "")]) - -(define_expand "insn_v4" - [(set (match_operand:DI 0 "register_operand" "") - (v4shift:V2SI - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_v2si3, V2SImode, operands[0], - V2SImode, operands[1], operands[2], false); - DONE; -}) - -;; Byte ordering of these vectors is endian dependent. gcc concats -;; right-to-left for little endian, and left-to-right for big endian. -;; So we need different patterns that depend on endianness. Our -;; instructions concat and interleave the way a big-endian target would -;; work in gcc, so for little endian, we need to reverse the source -;; operands. - -;; insn_v1int_h -;; {B7,B6,B5,B4,B3,B2,B1,B0} {A7,A6,A5,A4,A3,A2,A1,A0} -;; => {A7,A6,A5,A4,A3,A2,A1,A0,B7,B6,B5,B4,B3,B2,B1,B0} -;; => {A7,B7,A6,B6,A5,B5,A4,B4} -(define_expand "vec_interleave_highv8qi" - [(match_operand:V8QI 0 "register_operand" "") - (match_operand:V8QI 1 "reg_or_0_operand" "") - (match_operand:V8QI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_highv8qi_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_highv8qi_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_highv8qi_be" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_select:V8QI - (vec_concat:V16QI (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (match_operand:V8QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 8) - (const_int 1) (const_int 9) - (const_int 2) (const_int 10) - (const_int 3) (const_int 11)])))] - "BYTES_BIG_ENDIAN" - "v1int_h\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_highv8qi_le" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_select:V8QI - (vec_concat:V16QI (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (match_operand:V8QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 4) (const_int 12) - (const_int 5) (const_int 13) - (const_int 6) (const_int 14) - (const_int 7) (const_int 15)])))] - "!BYTES_BIG_ENDIAN" - "v1int_h\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v1int_h" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_highv8qi, V8QImode, - operands[0], V8QImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v1int_l -;; {B7,B6,B5,B4,B3,B2,B1,B0} {A7,A6,A5,A4,A3,A2,A1,A0} -;; => {A7,A6,A5,A4,A3,A2,A1,A0,B7,B6,B5,B4,B3,B2,B1,B0} -;; => {A3,B3,A2,B2,A1,B1,A0,B0} -(define_expand "vec_interleave_lowv8qi" - [(match_operand:V8QI 0 "register_operand" "") - (match_operand:V8QI 1 "reg_or_0_operand" "") - (match_operand:V8QI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_lowv8qi_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_lowv8qi_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_lowv8qi_be" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_select:V8QI - (vec_concat:V16QI (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (match_operand:V8QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 4) (const_int 12) - (const_int 5) (const_int 13) - (const_int 6) (const_int 14) - (const_int 7) (const_int 15)])))] - "BYTES_BIG_ENDIAN" - "v1int_l\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_lowv8qi_le" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_select:V8QI - (vec_concat:V16QI (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (match_operand:V8QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 8) - (const_int 1) (const_int 9) - (const_int 2) (const_int 10) - (const_int 3) (const_int 11)])))] - "!BYTES_BIG_ENDIAN" - "v1int_l\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v1int_l" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_lowv8qi, V8QImode, - operands[0], V8QImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v2int_h -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3,A2,A1,A0,B3,B2,B1,B0} -;; => {A3,B3,A2,B2} -(define_expand "vec_interleave_highv4hi" - [(match_operand:V4HI 0 "register_operand" "") - (match_operand:V4HI 1 "reg_or_0_operand" "") - (match_operand:V4HI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_highv4hi_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_highv4hi_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_highv4hi_be" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (vec_select:V4HI - (vec_concat:V8HI (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 4) - (const_int 1) (const_int 5)])))] - "BYTES_BIG_ENDIAN" - "v2int_h\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_highv4hi_le" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (vec_select:V4HI - (vec_concat:V8HI (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 2) (const_int 6) - (const_int 3) (const_int 7)])))] - "!BYTES_BIG_ENDIAN" - "v2int_h\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2int_h" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_highv4hi, V4HImode, - operands[0], V4HImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v2int_l -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3,A2,A1,A0,B3,B2,B1,B0} -;; => {A1,B1,A0,B0} -(define_expand "vec_interleave_lowv4hi" - [(match_operand:V4HI 0 "register_operand" "") - (match_operand:V4HI 1 "reg_or_0_operand" "") - (match_operand:V4HI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_lowv4hi_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_lowv4hi_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_lowv4hi_be" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (vec_select:V4HI - (vec_concat:V8HI (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 2) (const_int 6) - (const_int 3) (const_int 7)])))] - "BYTES_BIG_ENDIAN" - "v2int_l\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_lowv4hi_le" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (vec_select:V4HI - (vec_concat:V8HI (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (match_operand:V4HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 4) - (const_int 1) (const_int 5)])))] - "!BYTES_BIG_ENDIAN" - "v2int_l\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2int_l" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_lowv4hi, V4HImode, - operands[0], V4HImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v4int_h -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -;; => {A1,B1} -(define_expand "vec_interleave_highv2si" - [(match_operand:V2SI 0 "register_operand" "") - (match_operand:V2SI 1 "reg_or_0_operand" "") - (match_operand:V2SI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_highv2si_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_highv2si_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_highv2si_be" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (vec_select:V2SI - (vec_concat:V4SI (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:V2SI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 2)])))] - "BYTES_BIG_ENDIAN" - "v4int_h\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_highv2si_le" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (vec_select:V2SI - (vec_concat:V4SI (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:V2SI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 1) (const_int 3)])))] - "!BYTES_BIG_ENDIAN" - "v4int_h\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v4int_h" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_highv2si, V2SImode, - operands[0], V2SImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v4int_l -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -;; => {A0,B0} -(define_expand "vec_interleave_lowv2si" - [(match_operand:V2SI 0 "register_operand" "") - (match_operand:V2SI 1 "reg_or_0_operand" "") - (match_operand:V2SI 2 "reg_or_0_operand" "")] - "" -{ - if (BYTES_BIG_ENDIAN) - emit_insn (gen_vec_interleave_lowv2si_be (operands[0], operands[1], - operands[2])); - else - emit_insn (gen_vec_interleave_lowv2si_le (operands[0], operands[1], - operands[2])); - DONE; -}) - -(define_insn "vec_interleave_lowv2si_be" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (vec_select:V2SI - (vec_concat:V4SI (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:V2SI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 1) (const_int 3)])))] - "BYTES_BIG_ENDIAN" - "v4int_l\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "vec_interleave_lowv2si_le" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (vec_select:V2SI - (vec_concat:V4SI (match_operand:V2SI 1 "reg_or_0_operand" "rO") - (match_operand:V2SI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 2)])))] - "!BYTES_BIG_ENDIAN" - "v4int_l\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v4int_l" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "reg_or_0_operand" "") - (match_operand:DI 2 "reg_or_0_operand" "")] - "" -{ - /* For little endian, our instruction interleaves opposite of the - way vec_interleave works, so we need to reverse the source - operands. */ - rtx opnd1 = BYTES_BIG_ENDIAN ? operands[1] : operands[2]; - rtx opnd2 = BYTES_BIG_ENDIAN ? operands[2] : operands[1]; - tilegx_expand_builtin_vector_binop (gen_vec_interleave_lowv2si, V2SImode, - operands[0], V2SImode, opnd1, opnd2, - true); - DONE; -}) - -;; insn_v1mnz -;; insn_v1mz -;; insn_v2mnz -;; insn_v2mz -(define_insn "insn_mnz_v8qi" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (if_then_else:V8QI - (ne:V8QI - (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (match_operand:V8QI 2 "reg_or_0_operand" "rO") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)])))] - "" - "v1mnz\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_v1mnz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:V8QI - (ne:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)]) - ) - (match_operand:DI 2 "reg_or_0_operand" "") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)])))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_insn_mnz_v8qi, V8QImode, - operands[0], V8QImode, operands[1], - operands[2], true); - DONE; -}) - -(define_insn "insn_mz_v8qi" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (if_then_else:V8QI - (ne:V8QI - (match_operand:V8QI 1 "reg_or_0_operand" "rO") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)]) - (match_operand:V8QI 2 "reg_or_0_operand" "rO")))] - "" - "v1mz\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_v1mz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:V8QI - (ne:V8QI - (match_operand:DI 1 "reg_or_0_operand" "") - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (const_vector:V8QI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0) - (const_int 0) (const_int 0)]) - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_insn_mz_v8qi, V8QImode, - operands[0], V8QImode, operands[1], - operands[2], true); - DONE; -}) - -(define_insn "insn_mnz_v4hi" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (if_then_else:V4HI - (ne:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (match_operand:V4HI 2 "reg_or_0_operand" "rO") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])))] - "" - "v2mnz\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2mnz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:V4HI - (ne:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (match_operand:DI 2 "reg_or_0_operand" "") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_insn_mnz_v4hi, V4HImode, - operands[0], V4HImode, operands[1], - operands[2], true); - DONE; -}) - -(define_insn "insn_mz_v4hi" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (if_then_else:V4HI - (ne:V4HI - (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)]) - (match_operand:V4HI 2 "reg_or_0_operand" "rO")))] - "" - "v2mz\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2mz" - [(set (match_operand:DI 0 "register_operand" "") - (if_then_else:V4HI - (ne:V4HI - (match_operand:DI 1 "reg_or_0_operand" "") - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)])) - (const_vector:V4HI [(const_int 0) (const_int 0) - (const_int 0) (const_int 0)]) - (match_operand:DI 2 "reg_or_0_operand" "")))] - "" -{ - tilegx_expand_builtin_vector_binop (gen_insn_mz_v4hi, V4HImode, - operands[0], V4HImode, operands[1], - operands[2], true); - DONE; -}) - -;; insn_v1mulu -(define_insn "vec_widen_umult_lo_v8qi" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (mult:V4HI - (zero_extend:V4HI - (vec_select:V4QI - (match_operand:V8QI 1 "register_operand" "r") - (parallel [(const_int 0) (const_int 1) - (const_int 2) (const_int 3)]))) - (zero_extend:V4HI - (vec_select:V4QI - (match_operand:V8QI 2 "register_operand" "r") - (parallel [(const_int 0) (const_int 1) - (const_int 2) (const_int 3)])))))] - "" - "v1mulu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_expand "insn_v1mulu" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "register_operand" "") - (match_operand:DI 2 "register_operand" "")] - "" -{ - tilegx_expand_builtin_vector_binop (gen_vec_widen_umult_lo_v8qi, V4HImode, - operands[0], V8QImode, operands[1], - operands[2], true); - DONE; -}) - -;; insn_v1mulus -(define_insn "vec_widen_usmult_lo_v8qi" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (mult:V4HI - (zero_extend:V4HI - (vec_select:V4QI - (match_operand:V8QI 1 "register_operand" "r") - (parallel [(const_int 0) (const_int 1) - (const_int 2) (const_int 3)]))) - (sign_extend:V4HI - (vec_select:V4QI - (match_operand:V8QI 2 "register_operand" "r") - (parallel [(const_int 0) (const_int 1) - (const_int 2) (const_int 3)])))))] - "" - "v1mulus\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_expand "insn_v1mulus" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "register_operand" "") - (match_operand:DI 2 "register_operand" "")] - "" -{ - tilegx_expand_builtin_vector_binop (gen_vec_widen_usmult_lo_v8qi, V4HImode, - operands[0], V8QImode, operands[1], - operands[2], true); - DONE; -}) - -;; insn_v2muls -(define_insn "vec_widen_smult_lo_v4qi" - [(set (match_operand:V2SI 0 "register_operand" "=r") - (mult:V2SI - (sign_extend:V2SI - (vec_select:V2HI - (match_operand:V4HI 1 "register_operand" "r") - (parallel [(const_int 0) (const_int 1)]))) - (sign_extend:V2SI - (vec_select:V2HI - (match_operand:V4HI 2 "register_operand" "r") - (parallel [(const_int 0) (const_int 1)])))))] - "" - "v2muls\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_expand "insn_v2muls" - [(match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "register_operand" "") - (match_operand:DI 2 "register_operand" "")] - "" -{ - tilegx_expand_builtin_vector_binop (gen_vec_widen_smult_lo_v4qi, V2SImode, - operands[0], V4HImode, operands[1], - operands[2], true); - DONE; -}) - -;; v2packl -;; v2packuc -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3,A2,A1,A0,B3,B2,B1,B0} -(define_insn "vec_pack__v4hi" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_concat:V8QI - (v2pack:V4QI (match_operand:V4HI 1 "reg_or_0_operand" "rO")) - (v2pack:V4QI (match_operand:V4HI 2 "reg_or_0_operand" "rO"))))] - "" - "v2\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2" - [(set (match_operand:DI 0 "register_operand" "") - (vec_concat:V8QI - (v2pack:V4QI (match_operand:DI 2 "reg_or_0_operand" "")) - (v2pack:V4QI (match_operand:DI 1 "reg_or_0_operand" ""))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilegx_expand_builtin_vector_binop (gen_vec_pack__v4hi, - V8QImode, operands[0], V4HImode, - operands[2], operands[1], true); - DONE; -}) - -;; v2packh -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3_hi,A2_hi,A1_hi,A0_hi,B3_hi,B2_hi,B1_hi,B0_hi} -(define_insn "vec_pack_hipart_v4hi" - [(set (match_operand:V8QI 0 "register_operand" "=r") - (vec_concat:V8QI - (truncate:V4QI - (ashiftrt:V4HI (match_operand:V4HI 1 "reg_or_0_operand" "rO") - (const_int 8))) - (truncate:V4QI - (ashiftrt:V4HI (match_operand:V4HI 2 "reg_or_0_operand" "rO") - (const_int 8)))))] - "" - "v2packh\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v2packh" - [(set (match_operand:DI 0 "register_operand" "") - (vec_concat:V8QI - (truncate:V4QI - (ashiftrt:V4HI (match_operand:DI 2 "reg_or_0_operand" "") - (const_int 8))) - (truncate:V4QI - (ashiftrt:V4HI (match_operand:DI 1 "reg_or_0_operand" "") - (const_int 8)))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilegx_expand_builtin_vector_binop (gen_vec_pack_hipart_v4hi, V8QImode, - operands[0], V4HImode, operands[2], - operands[1], true); - DONE; -}) - -;; v4packsc -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -(define_insn "vec_pack_ssat_v2si" - [(set (match_operand:V4HI 0 "register_operand" "=r") - (vec_concat:V4HI - (us_truncate:V2HI (match_operand:V2SI 1 "reg_or_0_operand" "rO")) - (us_truncate:V2HI (match_operand:V2SI 2 "reg_or_0_operand" "rO"))))] - "" - "v4packsc\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_v4packsc" - [(set (match_operand:DI 0 "register_operand" "") - (vec_concat:V4HI - (us_truncate:V2HI (match_operand:DI 2 "reg_or_0_operand" "")) - (us_truncate:V2HI (match_operand:DI 1 "reg_or_0_operand" ""))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilegx_expand_builtin_vector_binop (gen_vec_pack_ssat_v2si, V4HImode, - operands[0], V2SImode, operands[2], - operands[1], true); - DONE; -}) - -;; Rest of the vector intrinsics -(define_insn "insn_v1adiffu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1ADIFFU))] - "" - "v1adiffu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1avgu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1AVGU))] - "" - "v1avgu\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_v1ddotpu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DDOTPU))] - "" - "v1ddotpu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1ddotpua" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DDOTPUA))] - "" - "v1ddotpua\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1ddotpus" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DDOTPUS))] - "" - "v1ddotpus\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1ddotpusa" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DDOTPUSA))] - "" - "v1ddotpusa\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotp" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTP))] - "" - "v1dotp\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotpa" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTPA))] - "" - "v1dotpa\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotpu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTPU))] - "" - "v1dotpu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotpua" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTPUA))] - "" - "v1dotpua\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotpus" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTPUS))] - "" - "v1dotpus\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1dotpusa" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1DOTPUSA))] - "" - "v1dotpusa\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1sadau" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1SADAU))] - "" - "v1sadau\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v1sadu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1SADU))] - "" - "v1sadu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*insn_v1sadu" - [(set (match_operand:SI 0 "register_operand" "=r") - (truncate:SI - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V1SADU)))] - "" - "v1sadu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2adiffs" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2ADIFFS))] - "" - "v2adiffs\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2avgs" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2AVGS))] - "" - "v2avgs\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_v2dotp" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2DOTP))] - "" - "v2dotp\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2dotpa" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2DOTPA))] - "" - "v2dotpa\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2mulfsc" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2MULFSC))] - "" - "v2mulfsc\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2sadas" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADAS))] - "" - "v2sadas\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2sadau" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "0") - (match_operand:DI 2 "reg_or_0_operand" "rO") - (match_operand:DI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADAU))] - "" - "v2sadau\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2sads" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADS))] - "" - "v2sads\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*insn_v2sads" - [(set (match_operand:SI 0 "register_operand" "=r") - (truncate:SI - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADS)))] - "" - "v2sads\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_v2sadu" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADU))] - "" - "v2sadu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*insn_v2sadu" - [(set (match_operand:SI 0 "register_operand" "=r") - (truncate:SI - (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") - (match_operand:DI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_V2SADU)))] - "" - "v2sadu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_wh64" - [(unspec_volatile:VOID [(match_operand 0 "pointer_operand" "rO")] - UNSPEC_INSN_WH64) - (clobber (mem:BLK (const_int 0)))] - "" - "wh64\t%r0" - [(set_attr "type" "X1")]) - - -;; Network intrinsics - -;; Note the this barrier is of type "nothing," which is deleted after -;; the final scheduling pass so that nothing is emitted for it. -(define_insn "tilegx_network_barrier" - [(unspec_volatile:SI [(const_int 0)] UNSPEC_NETWORK_BARRIER)] - "" - "pseudo" - [(set_attr "type" "nothing") - (set_attr "length" "0")]) - -(define_insn "*netreg_receive" - [(set (match_operand:DI 0 "nonimmediate_operand" "=r,U,m") - (unspec_volatile:DI [(match_operand:DI 1 "netreg_operand" "i,i,i") - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))] - - "" - "@ - move\t%0, %N1 - st\t%0, %N1 - st_add\t%I0, %N1, %i0" - [(set_attr "type" "*,Y2,X1")]) - -(define_insn "*netreg_send" - [(unspec_volatile:DI - [(match_operand:DI 0 "netreg_operand" "i,i,i,i,i,i") - (match_operand:DI 1 "reg_or_cint_operand" "r,I,J,K,N,P") - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:DI TILEGX_NETORDER_REG))] - "" - "@ - move\t%N0, %r1 - movei\t%N0, %1 - moveli\t%N0, %1 - shl16insli\t%N0, zero, %h1 - v1addi\t%N0, zero, %j1 - v2addi\t%N0, zero, %h1" - [(set_attr "type" "*,*,X01,X01,X01,X01")]) - -(define_expand "tilegx_idn0_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_IDN0) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_idn1_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_IDN1) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_idn_send" - [(parallel - [(unspec_volatile:DI [(const_int TILEGX_NETREG_IDN0) - (match_operand:DI 0 "reg_or_cint_operand" "") - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_udn0_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_UDN0) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_udn1_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_UDN1) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_udn2_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_UDN2) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_udn3_receive" - [(parallel - [(set (match_operand:DI 0 "register_operand" "") - (unspec_volatile:DI [(const_int TILEGX_NETREG_UDN3) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_expand "tilegx_udn_send" - [(parallel - [(unspec_volatile:DI [(const_int TILEGX_NETREG_UDN0) - (match_operand:DI 0 "reg_or_cint_operand" "") - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:DI TILEGX_NETORDER_REG))])] - "") - -(define_insn "*netreg_adddi_to_network" - [(unspec_volatile:DI - [(match_operand:DI 0 "netreg_operand" "i,i,i") - (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rO,rO,rO") - (match_operand:DI 2 "add_operand" "r,I,JT")) - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:DI TILEGX_NETORDER_REG))] - "" - "@ - add\t%N0, %r1, %2 - addi\t%N0, %r1, %2 - addli\t%N0, %r1, %H2" - [(set_attr "type" "*,*,X01")]) - -(define_insn "*netreg_adddi_from_network" - [(set (match_operand:DI 0 "register_operand" "=r,r,r") - (plus:DI (unspec_volatile:DI - [(match_operand:DI 1 "netreg_operand" "%i,i,i") - (reg:DI TILEGX_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:DI 2 "add_operand" "rO,I,JT"))) - (clobber (reg:DI TILEGX_NETORDER_REG))] - "" - "@ - add\t%0, %N1, %r2 - addi\t%0, %N1, %2 - addli\t%0, %N1, %H2" - [(set_attr "type" "*,*,X01")]) - - -;; -;; Stack protector instructions. -;; - -(define_expand "stack_protect_set" - [(set (match_operand 0 "nonautoincmem_operand" "") - (match_operand 1 "nonautoincmem_operand" ""))] - "" -{ -#ifdef TARGET_THREAD_SSP_OFFSET - rtx tp = gen_rtx_REG (Pmode, THREAD_POINTER_REGNUM); - rtx ssp_addr = gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET)); - rtx ssp = gen_reg_rtx (Pmode); - - emit_insn (gen_rtx_SET (ssp, ssp_addr)); - - operands[1] = gen_rtx_MEM (Pmode, ssp); -#endif - - if (TARGET_32BIT) - emit_insn (gen_stack_protect_setsi (operands[0], operands[1])); - else - emit_insn (gen_stack_protect_setdi (operands[0], operands[1])); - - DONE; -}) - -(define_insn "stack_protect_setsi" - [(set (match_operand:SI 0 "nonautoincmem_operand" "=U") - (unspec:SI [(match_operand:SI 1 "nonautoincmem_operand" "U")] - UNSPEC_SP_SET)) - (set (match_scratch:SI 2 "=&r") (const_int 0))] - "" - "ld4s\t%2, %1; { st4\t%0, %2; move\t%2, zero }" - [(set_attr "length" "16") - (set_attr "type" "cannot_bundle_3cycle")]) - -(define_insn "stack_protect_setdi" - [(set (match_operand:DI 0 "nonautoincmem_operand" "=U") - (unspec:DI [(match_operand:DI 1 "nonautoincmem_operand" "U")] - UNSPEC_SP_SET)) - (set (match_scratch:DI 2 "=&r") (const_int 0))] - "" - "ld\t%2, %1; { st\t%0, %2; move\t%2, zero }" - [(set_attr "length" "16") - (set_attr "type" "cannot_bundle_3cycle")]) - -(define_expand "stack_protect_test" - [(match_operand 0 "nonautoincmem_operand" "") - (match_operand 1 "nonautoincmem_operand" "") - (match_operand 2 "" "")] - "" -{ - rtx compare_result; - rtx bcomp, loc_ref; - -#ifdef TARGET_THREAD_SSP_OFFSET - rtx tp = gen_rtx_REG (Pmode, THREAD_POINTER_REGNUM); - rtx ssp_addr = gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET)); - rtx ssp = gen_reg_rtx (Pmode); - - emit_insn (gen_rtx_SET (ssp, ssp_addr)); - - operands[1] = gen_rtx_MEM (Pmode, ssp); -#endif - - compare_result = gen_reg_rtx (Pmode); - - if (TARGET_32BIT) - emit_insn (gen_stack_protect_testsi (compare_result, operands[0], - operands[1])); - else - emit_insn (gen_stack_protect_testdi (compare_result, operands[0], - operands[1])); - - bcomp = gen_rtx_NE (SImode, compare_result, const0_rtx); - - loc_ref = gen_rtx_LABEL_REF (VOIDmode, operands[2]); - - emit_jump_insn (gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, bcomp, - loc_ref, pc_rtx))); - - DONE; -}) - -(define_insn "stack_protect_testsi" - [(set (match_operand:SI 0 "register_operand" "=&r") - (unspec:SI [(match_operand:SI 1 "nonautoincmem_operand" "U") - (match_operand:SI 2 "nonautoincmem_operand" "U")] - UNSPEC_SP_TEST)) - (set (match_scratch:SI 3 "=&r") (const_int 0))] - "" - "ld4s\t%0, %1; ld4s\t%3, %2; { cmpeq\t%0, %0, %3; move\t%3, zero }" - [(set_attr "length" "24") - (set_attr "type" "cannot_bundle_4cycle")]) - -(define_insn "stack_protect_testdi" - [(set (match_operand:DI 0 "register_operand" "=&r") - (unspec:DI [(match_operand:DI 1 "nonautoincmem_operand" "U") - (match_operand:DI 2 "nonautoincmem_operand" "U")] - UNSPEC_SP_TEST)) - (set (match_scratch:DI 3 "=&r") (const_int 0))] - "" - "ld\t%0, %1; ld\t%3, %2; { cmpeq\t%0, %0, %3; move\t%3, zero }" - [(set_attr "length" "24") - (set_attr "type" "cannot_bundle_4cycle")]) - -(include "sync.md") diff --git a/gcc/config/tilegx/tilegx.opt b/gcc/config/tilegx/tilegx.opt deleted file mode 100644 index 6a01aea..0000000 --- a/gcc/config/tilegx/tilegx.opt +++ /dev/null @@ -1,63 +0,0 @@ -; Options for the TILE-Gx port of the compiler. -; Copyright (C) 2011-2022 Free Software Foundation, Inc. -; Contributed by Walter Lee (walt@tilera.com) -; -; This file is part of GCC. -; -; GCC 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 3, or (at your option) any later -; version. -; -; GCC 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 GCC; see the file COPYING3. If not see -; . - -HeaderInclude -config/tilegx/tilegx-opts.h - -mcpu= -Target RejectNegative Joined Enum(tilegx_cpu) Var(tilegx_cpu) Init(0) --mcpu=CPU Use features of and schedule code for given CPU. - -Enum -Name(tilegx_cpu) Type(int) -Known TILE-Gx CPUs (for use with the -mcpu= option): - -EnumValue -Enum(tilegx_cpu) String(tilegx) Value(0) - -m32 -Target RejectNegative Negative(m64) Mask(32BIT) -Compile with 32 bit longs and pointers. - -m64 -Target RejectNegative Negative(m32) InverseMask(32BIT, 64BIT) -Compile with 64 bit longs and pointers. - -mbig-endian -Target RejectNegative Mask(BIG_ENDIAN) -Use big-endian byte order. - -mlittle-endian -Target RejectNegative InverseMask(BIG_ENDIAN) -Use little-endian byte order. - -mcmodel= -Target RejectNegative Joined Enum(cmodel) Var(tilegx_cmodel) Init(CM_SMALL) -Use given TILE-Gx code model. - -Enum -Name(cmodel) Type(enum cmodel) -Known code models (for use with the -mcmodel= option): - -EnumValue -Enum(cmodel) String(small) Value(CM_SMALL) - -EnumValue -Enum(cmodel) String(large) Value(CM_LARGE) diff --git a/gcc/config/tilepro/constraints.md b/gcc/config/tilepro/constraints.md deleted file mode 100644 index 6976aed..0000000 --- a/gcc/config/tilepro/constraints.md +++ /dev/null @@ -1,99 +0,0 @@ -;; Constraint definitions for Tilera TILEPro chip. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_register_constraint "R00" "R0_REGS" "r0") -(define_register_constraint "R01" "R1_REGS" "r1") -(define_register_constraint "R02" "R2_REGS" "r2") -(define_register_constraint "R03" "R3_REGS" "r3") -(define_register_constraint "R04" "R4_REGS" "r4") -(define_register_constraint "R05" "R5_REGS" "r5") -(define_register_constraint "R06" "R6_REGS" "r6") -(define_register_constraint "R07" "R7_REGS" "r7") -(define_register_constraint "R08" "R8_REGS" "r8") -(define_register_constraint "R09" "R9_REGS" "r9") -(define_register_constraint "R10" "R10_REGS" "r10") - -(define_constraint "I" - "A signed 8 bit constant" - (and (match_code "const_int") - (match_test "ival >= -128 && ival <= 127"))) - -(define_constraint "J" - "Signed 16-bit integer constant" - (and (match_code "const_int") - (match_test "ival >= -32768 && ival <= 32767"))) - -(define_constraint "K" - "Nonzero integer constant with low 16 bits zero" - (and (match_code "const_int") - (match_test "ival && (ival & 0xFFFF) == 0"))) - -(define_constraint "L" - "Integer constant that fits in one signed byte when incremented" - (and (match_code "const_int") - (match_test "ival >= -129 && ival <= 126"))) - -(define_constraint "M" - "A bit mask suitable for 'mm'" - (and (match_code "const_int") - (match_test "tilepro_bitfield_operand_p (ival, NULL, NULL)"))) - -(define_constraint "N" - "Integer constant that is a byte tiled out four times" - (and (match_code "const_int") - (match_test "(ival & 0xFFFFFFFF) == (ival & 0xFF) * 0x01010101"))) - -(define_constraint "O" - "The integer zero constant" - (and (match_code "const_int") - (match_test "ival == 0"))) - -(define_constraint "P" - "Integer constant that is a sign-extended byte tiled out as two shorts" - (and (match_code "const_int") - (match_test "((ival & 0xFFFFFFFF) - == ((trunc_int_for_mode (ival, QImode) & 0xFFFF) - * 0x00010001))"))) - -(define_constraint "Q" - "Integer constant that fits in one signed byte when incremented, but not -1" - (and (match_code "const_int") - (match_test "ival >= -129 && ival <= 126 && ival != -1"))) - -(define_constraint "T" - "A const symbolc operand" - (match_operand 0 "const_symbolic_operand")) - -(define_memory_constraint "U" - "Non-auto-incrementing memory" - (and (match_code "mem") - (match_test "GET_RTX_CLASS (GET_CODE (XEXP (op, 0))) != RTX_AUTOINC"))) - -(define_constraint "W" - "A 4-element vector constant with identical elements" - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 4") - (match_test "const_vec_duplicate_p (op)"))) - -(define_constraint "Y" - "A 2-element vector constant with identical elements" - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 2") - (match_test "const_vec_duplicate_p (op)"))) diff --git a/gcc/config/tilepro/feedback.h b/gcc/config/tilepro/feedback.h deleted file mode 100644 index 34e48ed..0000000 --- a/gcc/config/tilepro/feedback.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _FEEDBACK_H -#define _FEEDBACK_H 1 - -#ifdef __ASSEMBLER__ - -/* Stub defines for feedback instrumentation. */ -#define FEEDBACK_ENTER_EXPLICIT(FUNCNAME, SECNAME, SIZE) -#define FEEDBACK_ENTER(FUNCNAME) -#define FEEDBACK_REENTER(FUNCNAME) -#define FEEDBACK_ENTRY(FUNCNAME, SECNAME, SIZE) - -#endif /* __ASSEMBLER__ */ - -#endif /* _FEEDBACK_H */ diff --git a/gcc/config/tilepro/gen-mul-tables.cc b/gcc/config/tilepro/gen-mul-tables.cc deleted file mode 100644 index c125748..0000000 --- a/gcc/config/tilepro/gen-mul-tables.cc +++ /dev/null @@ -1,1369 +0,0 @@ -/* Multiply table generator for tile. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* This program creates a table used to compile multiply by constant - efficiently. - - This program should be compiled by a c++ compiler. If it's - compiled with -DTILEPRO, it generates the multiply table for - TILEPro; otherwise it generates the multiply table for TILE-Gx. - Running the program produces the table in stdout. - - The program works by generating every possible combination of up to - MAX_INSTRUCTIONS linear operators (such as add, sub, s2a, left - shift) and computing the multiplier computed by those instructions. - For example, - - s2a r2,r1,r1 - s2a r3,r2,r2 - - multiplies r1 by 25. - - There are usually multiple instruction sequences to multiply by a - given constant. This program keeps only the cheapest one. - "Cheapest" is defined first by the minimum theoretical schedule - length, and if those are equal then by the number of instructions, - and if those are equal then by which instructions we "prefer" - (e.g. because we think one might take infinitesimally less power - than another, or simply because we arbitrarily pick one to be more - canonical). - - Once this program has determined the best instruction sequence for - each multiplier, it emits them in a table sorted by the multiplier - so the user can binary-search it to look for a match. The table is - pruned based on various criteria to keep its sizes reasonable. */ - -#include -#include -#include -#include -#define __STDC_LIMIT_MACROS -#include - -#include - -#ifdef TILEPRO - -/* The string representing the architecture. */ -#define ARCH "tilepro" - -/* The type for the multiplication. */ -typedef int MUL_TYPE; - -#else - -/* The string representing the architecture. */ -#define ARCH "tilegx" - -/* The type for the multiplication. */ -typedef long long MUL_TYPE; - -#endif - -/* Longest instruction sequence this will produce. With the current - stupid algorithm runtime grows very quickly with this number. */ -#define MAX_INSTRUCTIONS 4 - -/* Maximum number of subexpressions in the expression DAG being - generated. This is the same as the number of instructions, except - that zero and the original register we'd like to multiply by a - constant are also thrown into the mix. */ -#define MAX_SUBEXPRS (2 + MAX_INSTRUCTIONS) - -#define MIN(x, y) ((x) <= (y) ? (x) : (y)) -#define MAX(x, y) ((x) >= (y) ? (x) : (y)) - -#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) - -/* For this program a unary op is one which has only one nonconstant - operand. So shift left by 5 is considered unary. */ -typedef MUL_TYPE (*unary_op_func) (MUL_TYPE); -typedef MUL_TYPE (*binary_op_func) (MUL_TYPE, MUL_TYPE); - -/* This describes an operation like 'add two registers' or 'left-shift - by 7'. - - We call something a 'unary' operator if it only takes in one - register as input, even though it might have an implicit second - constant operand. Currently this is used for left-shift by - constant. */ -class Operator -{ -public: - /* Construct for a binary operator. */ - Operator (const char *pattern, const char *name, binary_op_func func, - int cost) - : m_pattern (pattern), m_name (name), m_top_index (-1), - m_unary_func (0), m_binary_func (func), m_cost (cost), - m_rhs_if_unary (0) - { - } - - /* Construct for a unary operator. */ - Operator (const char *pattern, const char *name, unary_op_func func, - int rhs_if_unary, int cost) - : m_pattern (pattern), m_name (name), m_top_index (-1), - m_unary_func (func), m_binary_func (0), m_cost (cost), - m_rhs_if_unary (rhs_if_unary) - { - } - - bool is_unary () const - { - return m_binary_func == NULL; - } - - /* Name of the pattern for this operation, e.g. CODE_FOR_addsi3. */ - const char *m_pattern; - - /* Name of the opcode for this operation, e.g. add. */ - const char *m_name; - - /* We don't have enough bits in our output representation to store - the original insn_code value, so we store a compressed form - instead. These values are decoded back into insn_code via the - machine-generated multiply_insn_seq_decode_opcode lookup - table. */ - int m_top_index; - - /* Unary operator to apply, or NULL if this is a binary operator. */ - unary_op_func m_unary_func; - - /* Binary operator to apply, or NULL if this is a unary operator. */ - binary_op_func m_binary_func; - - /* Function of how expensive we consider this operator. Higher is - worse. */ - int m_cost; - - /* the RHS value to write into the C file if unary; used for shift - count. */ - int m_rhs_if_unary; -}; - - -/* An entry in an expression DAG. */ -class Expr -{ -public: - Expr () : m_op (NULL), m_lhs (0), m_rhs (0), m_produced_val (0), - m_critical_path_length (0) - { - } - - /* The operator being applied to the operands. */ - const Operator *m_op; - - /* The index of the left-hand operand in the array of subexpressions - already computed. */ - int m_lhs; - - /* For binary ops ,this is the index of the left-hand operand in the - array of subexpressions already computed. For unary ops, it is - specific to the op (e.g. it might hold a constant shift - count). */ - int m_rhs; - - /* The multiplier produced by this expression tree. For example, for - the tree ((x << 5) + x), the value would be 33. */ - MUL_TYPE m_produced_val; - - /* How far is this expression from the root, i.e. how many cycles - minimum will it take to compute this? */ - int m_critical_path_length; -}; - - -/* Make function pointers for the various linear operators we can - apply to compute a multiplicative value. */ - -static MUL_TYPE -add (MUL_TYPE n1, MUL_TYPE n2) -{ - return n1 + n2; -} - -static MUL_TYPE -sub (MUL_TYPE n1, MUL_TYPE n2) -{ - return n1 - n2; -} - -static MUL_TYPE -s1a (MUL_TYPE n1, MUL_TYPE n2) -{ - return n1 * 2 + n2; -} - -static MUL_TYPE -s2a (MUL_TYPE n1, MUL_TYPE n2) -{ - return n1 * 4 + n2; -} - -static MUL_TYPE -s3a (MUL_TYPE n1, MUL_TYPE n2) -{ - return n1 * 8 + n2; -} - -#define SHIFT(count) \ -static MUL_TYPE \ -shift##count(MUL_TYPE n) \ -{ \ - return n << (count); \ -} - -SHIFT (1); -SHIFT (2); -SHIFT (3); -SHIFT (4); -SHIFT (5); -SHIFT (6); -SHIFT (7); -SHIFT (8); -SHIFT (9); -SHIFT (10); -SHIFT (11); -SHIFT (12); -SHIFT (13); -SHIFT (14); -SHIFT (15); -SHIFT (16); -SHIFT (17); -SHIFT (18); -SHIFT (19); -SHIFT (20); -SHIFT (21); -SHIFT (22); -SHIFT (23); -SHIFT (24); -SHIFT (25); -SHIFT (26); -SHIFT (27); -SHIFT (28); -SHIFT (29); -SHIFT (30); -SHIFT (31); -#ifndef TILEPRO -SHIFT (32); -SHIFT (33); -SHIFT (34); -SHIFT (35); -SHIFT (36); -SHIFT (37); -SHIFT (38); -SHIFT (39); -SHIFT (40); -SHIFT (41); -SHIFT (42); -SHIFT (43); -SHIFT (44); -SHIFT (45); -SHIFT (46); -SHIFT (47); -SHIFT (48); -SHIFT (49); -SHIFT (50); -SHIFT (51); -SHIFT (52); -SHIFT (53); -SHIFT (54); -SHIFT (55); -SHIFT (56); -SHIFT (57); -SHIFT (58); -SHIFT (59); -SHIFT (60); -SHIFT (61); -SHIFT (62); -SHIFT (63); -#endif - -#ifdef TILEPRO -static Operator ops[] = { - Operator ("CODE_FOR_addsi3", "add", add, 1040), - Operator ("CODE_FOR_subsi3", "sub", sub, 1041), - Operator ("CODE_FOR_insn_s1a", "s1a", s1a, 1042), - Operator ("CODE_FOR_insn_s2a", "s2a", s2a, 1043), - Operator ("CODE_FOR_insn_s3a", "s3a", s3a, 1044), - /* Note: shl by 1 is not necessary, since adding a value to itself - produces the same result. But the architecture team thinks - left-shift may use slightly less power, so we might as well - prefer it. */ - Operator ("CODE_FOR_ashlsi3", "shli", shift1, 1, 1001), - Operator ("CODE_FOR_ashlsi3", "shli", shift2, 2, 1002), - Operator ("CODE_FOR_ashlsi3", "shli", shift3, 3, 1003), - Operator ("CODE_FOR_ashlsi3", "shli", shift4, 4, 1004), - Operator ("CODE_FOR_ashlsi3", "shli", shift5, 5, 1005), - Operator ("CODE_FOR_ashlsi3", "shli", shift6, 6, 1006), - Operator ("CODE_FOR_ashlsi3", "shli", shift7, 7, 1007), - Operator ("CODE_FOR_ashlsi3", "shli", shift8, 8, 1008), - Operator ("CODE_FOR_ashlsi3", "shli", shift9, 9, 1009), - Operator ("CODE_FOR_ashlsi3", "shli", shift10, 10, 1010), - Operator ("CODE_FOR_ashlsi3", "shli", shift11, 11, 1011), - Operator ("CODE_FOR_ashlsi3", "shli", shift12, 12, 1012), - Operator ("CODE_FOR_ashlsi3", "shli", shift13, 13, 1013), - Operator ("CODE_FOR_ashlsi3", "shli", shift14, 14, 1014), - Operator ("CODE_FOR_ashlsi3", "shli", shift15, 15, 1015), - Operator ("CODE_FOR_ashlsi3", "shli", shift16, 16, 1016), - Operator ("CODE_FOR_ashlsi3", "shli", shift17, 17, 1017), - Operator ("CODE_FOR_ashlsi3", "shli", shift18, 18, 1018), - Operator ("CODE_FOR_ashlsi3", "shli", shift19, 19, 1019), - Operator ("CODE_FOR_ashlsi3", "shli", shift20, 20, 1020), - Operator ("CODE_FOR_ashlsi3", "shli", shift21, 21, 1021), - Operator ("CODE_FOR_ashlsi3", "shli", shift22, 22, 1022), - Operator ("CODE_FOR_ashlsi3", "shli", shift23, 23, 1023), - Operator ("CODE_FOR_ashlsi3", "shli", shift24, 24, 1024), - Operator ("CODE_FOR_ashlsi3", "shli", shift25, 25, 1025), - Operator ("CODE_FOR_ashlsi3", "shli", shift26, 26, 1026), - Operator ("CODE_FOR_ashlsi3", "shli", shift27, 27, 1027), - Operator ("CODE_FOR_ashlsi3", "shli", shift28, 28, 1028), - Operator ("CODE_FOR_ashlsi3", "shli", shift29, 29, 1029), - Operator ("CODE_FOR_ashlsi3", "shli", shift30, 30, 1030), - Operator ("CODE_FOR_ashlsi3", "shli", shift31, 31, 1031) -}; -#else -static Operator ops[] = { - Operator ("CODE_FOR_adddi3", "add", add, 1070), - Operator ("CODE_FOR_subdi3", "sub", sub, 1071), - Operator ("CODE_FOR_insn_shl1add", "shl1add", s1a, 1072), - Operator ("CODE_FOR_insn_shl2add", "shl2add", s2a, 1073), - Operator ("CODE_FOR_insn_shl3add", "shl3add", s3a, 1074), - // Note: shl by 1 is not necessary, since adding a value to itself - // produces the same result. But the architecture team thinks left-shift - // may use slightly less power, so we might as well prefer it. - Operator ("CODE_FOR_ashldi3", "shli", shift1, 1, 1001), - Operator ("CODE_FOR_ashldi3", "shli", shift2, 2, 1002), - Operator ("CODE_FOR_ashldi3", "shli", shift3, 3, 1003), - Operator ("CODE_FOR_ashldi3", "shli", shift4, 4, 1004), - Operator ("CODE_FOR_ashldi3", "shli", shift5, 5, 1005), - Operator ("CODE_FOR_ashldi3", "shli", shift6, 6, 1006), - Operator ("CODE_FOR_ashldi3", "shli", shift7, 7, 1007), - Operator ("CODE_FOR_ashldi3", "shli", shift8, 8, 1008), - Operator ("CODE_FOR_ashldi3", "shli", shift9, 9, 1009), - Operator ("CODE_FOR_ashldi3", "shli", shift10, 10, 1010), - Operator ("CODE_FOR_ashldi3", "shli", shift11, 11, 1011), - Operator ("CODE_FOR_ashldi3", "shli", shift12, 12, 1012), - Operator ("CODE_FOR_ashldi3", "shli", shift13, 13, 1013), - Operator ("CODE_FOR_ashldi3", "shli", shift14, 14, 1014), - Operator ("CODE_FOR_ashldi3", "shli", shift15, 15, 1015), - Operator ("CODE_FOR_ashldi3", "shli", shift16, 16, 1016), - Operator ("CODE_FOR_ashldi3", "shli", shift17, 17, 1017), - Operator ("CODE_FOR_ashldi3", "shli", shift18, 18, 1018), - Operator ("CODE_FOR_ashldi3", "shli", shift19, 19, 1019), - Operator ("CODE_FOR_ashldi3", "shli", shift20, 20, 1020), - Operator ("CODE_FOR_ashldi3", "shli", shift21, 21, 1021), - Operator ("CODE_FOR_ashldi3", "shli", shift22, 22, 1022), - Operator ("CODE_FOR_ashldi3", "shli", shift23, 23, 1023), - Operator ("CODE_FOR_ashldi3", "shli", shift24, 24, 1024), - Operator ("CODE_FOR_ashldi3", "shli", shift25, 25, 1025), - Operator ("CODE_FOR_ashldi3", "shli", shift26, 26, 1026), - Operator ("CODE_FOR_ashldi3", "shli", shift27, 27, 1027), - Operator ("CODE_FOR_ashldi3", "shli", shift28, 28, 1028), - Operator ("CODE_FOR_ashldi3", "shli", shift29, 29, 1029), - Operator ("CODE_FOR_ashldi3", "shli", shift30, 30, 1030), - Operator ("CODE_FOR_ashldi3", "shli", shift31, 31, 1031), - Operator ("CODE_FOR_ashldi3", "shli", shift32, 32, 1032), - Operator ("CODE_FOR_ashldi3", "shli", shift33, 33, 1033), - Operator ("CODE_FOR_ashldi3", "shli", shift34, 34, 1034), - Operator ("CODE_FOR_ashldi3", "shli", shift35, 35, 1035), - Operator ("CODE_FOR_ashldi3", "shli", shift36, 36, 1036), - Operator ("CODE_FOR_ashldi3", "shli", shift37, 37, 1037), - Operator ("CODE_FOR_ashldi3", "shli", shift38, 38, 1038), - Operator ("CODE_FOR_ashldi3", "shli", shift39, 39, 1039), - Operator ("CODE_FOR_ashldi3", "shli", shift40, 40, 1040), - Operator ("CODE_FOR_ashldi3", "shli", shift41, 41, 1041), - Operator ("CODE_FOR_ashldi3", "shli", shift42, 42, 1042), - Operator ("CODE_FOR_ashldi3", "shli", shift43, 43, 1043), - Operator ("CODE_FOR_ashldi3", "shli", shift44, 44, 1044), - Operator ("CODE_FOR_ashldi3", "shli", shift45, 45, 1045), - Operator ("CODE_FOR_ashldi3", "shli", shift46, 46, 1046), - Operator ("CODE_FOR_ashldi3", "shli", shift47, 47, 1047), - Operator ("CODE_FOR_ashldi3", "shli", shift48, 48, 1048), - Operator ("CODE_FOR_ashldi3", "shli", shift49, 49, 1049), - Operator ("CODE_FOR_ashldi3", "shli", shift50, 50, 1050), - Operator ("CODE_FOR_ashldi3", "shli", shift51, 51, 1051), - Operator ("CODE_FOR_ashldi3", "shli", shift52, 52, 1052), - Operator ("CODE_FOR_ashldi3", "shli", shift53, 53, 1053), - Operator ("CODE_FOR_ashldi3", "shli", shift54, 54, 1054), - Operator ("CODE_FOR_ashldi3", "shli", shift55, 55, 1055), - Operator ("CODE_FOR_ashldi3", "shli", shift56, 56, 1056), - Operator ("CODE_FOR_ashldi3", "shli", shift57, 57, 1057), - Operator ("CODE_FOR_ashldi3", "shli", shift58, 58, 1058), - Operator ("CODE_FOR_ashldi3", "shli", shift59, 59, 1059), - Operator ("CODE_FOR_ashldi3", "shli", shift60, 60, 1060), - Operator ("CODE_FOR_ashldi3", "shli", shift61, 61, 1061), - Operator ("CODE_FOR_ashldi3", "shli", shift62, 62, 1062), - Operator ("CODE_FOR_ashldi3", "shli", shift63, 63, 1063) -}; -#endif - -/* An ExpressionTree is an expression DAG. */ -class ExpressionTree -{ -public: - ExpressionTree () : m_num_vals (2) - { - m_exprs[0].m_produced_val = 0; - m_exprs[1].m_produced_val = 1; - } - - void copy_technique_from (ExpressionTree * other) - { - /* TODO: write this; other can compute the same products with less - cost. We update this ExpressionTree object because some int is - already mapped to it. */ - } - - int m_num_vals; - Expr m_exprs[MAX_SUBEXPRS]; - - int cost () const - { - int cost = 0; - for (int j = 2; j < m_num_vals; j++) - cost += m_exprs[j].m_op->m_cost; - return cost + m_exprs[m_num_vals - 1].m_critical_path_length * 1000000; - } -}; - - -typedef std::map ExpressionTreeMap; - - -static void -find_sequences (ExpressionTree &s, ExpressionTreeMap &best_solution) -{ - /* Don't look more if we can't add any new values to the expression - tree. */ - const int num_vals = s.m_num_vals; - if (num_vals == MAX_SUBEXPRS) - return; - - /* Grow array to make room for new values added as we loop. */ - s.m_num_vals = num_vals + 1; - - const Operator *const prev_op = s.m_exprs[num_vals - 1].m_op; - const int prev_top_index = (prev_op != NULL) ? prev_op->m_top_index : -1; - - for (size_t f = 0; f < ARRAY_SIZE (ops); f++) - { - const Operator *const op = &ops[f]; - - for (int i = 0; i < num_vals; i++) - { - /* Only allow zero as the first operand to sub, otherwise - it is useless. */ - if (i == 0 && op->m_binary_func != sub) - continue; - - /* Unary ops don't actually use the second operand, so as a - big hack we trick it into only looping once in the inner - loop. */ - const int j_end = op->is_unary () ? 2 : num_vals; - - /* We never allow zero as the second operand, as it is - always useless. */ - for (int j = 1; j < j_end; j++) - { - /* Does this expression use the immediately previous - expression? */ - const bool uses_prev_value = - (i == num_vals - 1 - || (!op->is_unary () && j == num_vals - 1)); - - if (!uses_prev_value) - { - /* For search efficiency, prune redundant - instruction orderings. - - This op does not take the immediately preceding - value as input, which means we could have done it - in the previous slot. If its opcode is less than - the previous instruction's, we'll declare this - instruction order non-canonical and not pursue - this branch of the search. */ - if (op->m_top_index < prev_top_index) - continue; - } - - MUL_TYPE n; - if (op->is_unary ()) - { - n = op->m_unary_func (s.m_exprs[i].m_produced_val); - } - else - { - n = op->m_binary_func (s.m_exprs[i].m_produced_val, - s.m_exprs[j].m_produced_val); - } - - bool duplicate = false; - for (int k = 0; k < num_vals; k++) - if (n == s.m_exprs[j].m_produced_val) - { - duplicate = true; - break; - } - - if (duplicate) - continue; - - /* See if we found the best solution for n. */ - Expr *e = &s.m_exprs[num_vals]; - e->m_op = op; - e->m_lhs = i; - e->m_rhs = op->is_unary () ? op->m_rhs_if_unary : j; - e->m_produced_val = n; - e->m_critical_path_length = - 1 + MAX (s.m_exprs[i].m_critical_path_length, - s.m_exprs[j].m_critical_path_length); - - ExpressionTreeMap::iterator best (best_solution.find (n)); - if (best == best_solution.end () - || (*best).second->cost () > s.cost ()) - best_solution[n] = new ExpressionTree (s); - - /* Recurse and find more. */ - find_sequences (s, best_solution); - } - } - } - - /* Restore old size. */ - s.m_num_vals = num_vals; -} - - -/* For each insn_code used by an operator, choose a compact number so - it takes less space in the output data structure. This prints out a - lookup table used to map the compactified number back to an - insn_code. */ -static void -create_insn_code_compression_table () -{ - int next_index = 1; - - /* Entry 0 must hold CODE_FOR_nothing to mean "end of array". */ - printf ("const enum insn_code %s_multiply_insn_seq_decode_opcode[] = {\n" - " CODE_FOR_nothing /* must be first */ ", ARCH); - - for (size_t i = 0; i < ARRAY_SIZE (ops); i++) - { - Operator *op = &ops[i]; - int index = -1; - - /* See if some previous Operator was using the same insn_code. - If so, reuse its table entry. */ - for (size_t j = 0; j < i; j++) - { - Operator *old = &ops[j]; - if (strcmp (old->m_pattern, op->m_pattern) == 0) - { - index = old->m_top_index; - break; - } - } - - if (index == -1) - { - /* We need to make a new entry in the table. */ - printf (",\n %s", op->m_pattern); - index = next_index++; - } - - op->m_top_index = index; - } - - printf ("\n};\n\n"); -} - - -/* These are constants we've seen in code, that we want to keep table - entries for. */ -static int multiply_constants_used[] = { - -11796480, - -27439, - -25148, - -22820, - -21709, - -20995, - -20284, - -20239, - -19595, - -19447, - -19183, - -19165, - -18730, - -17828, - -17799, - -17237, - -17036, - -16549, - -16423, - -16294, - -16244, - -16069, - -15137, - -15083, - -15038, - -14924, - -14905, - -14752, - -14731, - -14529, - -14273, - -14090, - -14084, - -14043, - -13850, - -13802, - -13631, - -13455, - -13275, - -12879, - -12700, - -12534, - -12399, - -12131, - -12112, - -12054, - -12019, - -11759, - -11585, - -11467, - -11395, - -11295, - -11248, - -11148, - -11116, - -11086, - -11059, - -11018, - -10811, - -10538, - -10258, - -10217, - -10033, - -9766, - -9754, - -9534, - -9527, - -9467, - -9262, - -9232, - -9222, - -9198, - -9191, - -9113, - -8825, - -8756, - -8697, - -8693, - -8565, - -8342, - -8208, - -8200, - -8170, - -8102, - -7770, - -7678, - -7562, - -7376, - -7373, - -7221, - -7121, - -6835, - -6810, - -6626, - -6581, - -6461, - -6278, - -6263, - -6163, - -6029, - -5816, - -5540, - -5461, - -5384, - -5329, - -4985, - -4926, - -4815, - -4788, - -4758, - -4433, - -4229, - -4209, - -4176, - -4104, - -4095, - -4078, - -3941, - -3818, - -3600, - -3474, - -3314, - -3264, - -3196, - -3072, - -2912, - -2836, - -2773, - -2269, - -2184, - -2100, - -1730, - -1512, - -1500, - -1396, - -1344, - -1312, - -1297, - -1059, - -1058, - 1027, - 1049, - 1059, - 1100, - 1104, - 1108, - 1136, - 1200, - 1204, - 1242, - 1292, - 1304, - 1312, - 1320, - 1336, - 1344, - 1348, - 1360, - 1364, - 1395, - 1448, - 1460, - 1461, - 1472, - 1488, - 1500, - 1512, - 1568, - 1576, - 1649, - 1664, - 1684, - 1696, - 1744, - 1812, - 1822, - 1884, - 1963, - 1978, - 2000, - 2012, - 2014, - 2037, - 2039, - 2100, - 2139, - 2144, - 2184, - 2237, - 2260, - 2320, - 2408, - 2446, - 2447, - 2499, - 2531, - 2578, - 2592, - 2611, - 2633, - 2704, - 2730, - 2773, - 2880, - 2896, - 2998, - 3000, - 3001, - 3021, - 3079, - 3112, - 3150, - 3179, - 3192, - 3240, - 3264, - 3271, - 3283, - 3328, - 3363, - 3367, - 3453, - 3529, - 3570, - 3580, - 3600, - 3624, - 3707, - 3783, - 3826, - 3897, - 3941, - 3962, - 3989, - 4000, - 4025, - 4073, - 4093, - 4099, - 4108, - 4184, - 4209, - 4369, - 4376, - 4416, - 4433, - 4434, - 4482, - 4582, - 4712, - 4717, - 4813, - 4815, - 4864, - 5000, - 5027, - 5040, - 5091, - 5195, - 5243, - 5260, - 5285, - 5329, - 5331, - 5350, - 5361, - 5387, - 5461, - 5492, - 5529, - 5573, - 5793, - 5819, - 5915, - 5946, - 5992, - 6000, - 6164, - 6205, - 6262, - 6263, - 6269, - 6270, - 6387, - 6400, - 6406, - 6476, - 6541, - 6565, - 6568, - 6626, - 6656, - 6732, - 6810, - 6817, - 6859, - 7040, - 7053, - 7141, - 7169, - 7221, - 7223, - 7274, - 7282, - 7350, - 7369, - 7373, - 7442, - 7447, - 7471, - 7518, - 7542, - 7566, - 7587, - 7663, - 7678, - 7682, - 7748, - 7752, - 7791, - 8000, - 8026, - 8048, - 8170, - 8203, - 8204, - 8290, - 8368, - 8520, - 8640, - 8666, - 8672, - 8697, - 8716, - 8728, - 8756, - 8820, - 8875, - 8918, - 8956, - 9058, - 9154, - 9175, - 9191, - 9217, - 9262, - 9321, - 9373, - 9434, - 9465, - 9514, - 9534, - 9633, - 9746, - 9810, - 9850, - 9947, - 9973, - 10000, - 10009, - 10033, - 10055, - 10217, - 10248, - 10298, - 10310, - 10323, - 10368, - 10438, - 10456, - 10486, - 10538, - 10664, - 10695, - 10700, - 10703, - 10832, - 10887, - 10935, - 10958, - 11018, - 11059, - 11061, - 11086, - 11116, - 11148, - 11190, - 11249, - 11314, - 11332, - 11363, - 11409, - 11415, - 11443, - 11467, - 11512, - 11522, - 11529, - 11585, - 11759, - 11768, - 11795, - 11893, - 11997, - 12131, - 12299, - 12536, - 12543, - 12893, - 12945, - 12998, - 13109, - 13213, - 13685, - 13930, - 14023, - 14024, - 14271, - 14564, - 14647, - 15326, - 15850, - 15855, - 15929, - 16000, - 16154, - 16496, - 16807, - 16819, - 16984, - 17203, - 17223, - 17333, - 17760, - 17799, - 17837, - 18029, - 18068, - 18336, - 18515, - 19595, - 20017, - 20131, - 20862, - 20995, - 21709, - 22554, - 25000, - 25172, - 25600, - 25733, - 27439, - 38470, - 46802, - 50000, - 11796480, - 16843009, - 23592960, -}; - - -const int num_mult_constants_used = - (int)(sizeof multiply_constants_used - / sizeof multiply_constants_used[0]); - - -#define XSIZE (sizeof multiply_constants_used / \ - sizeof multiply_constants_used[0] + 32) / 32 -unsigned multiply_constants_avail[XSIZE]; -#undef XSIZE - - -/* bsearch helper function. */ -static int -compare_constants (const void *key, const void *t) -{ - return (*(int*)key) - *((int*)t); -} - - -static int * -find_mult_constants_used (int multiplier) -{ - return (int *) bsearch (&multiplier, multiply_constants_used, - num_mult_constants_used, - sizeof multiply_constants_used[0], - compare_constants); -} - - -int num_ops (ExpressionTree *s) -{ - int n = 0; - for (int i = 0; i < s->m_num_vals; i++) - { - Expr *e = &s->m_exprs[i]; - if (e->m_op != NULL) - n++; - } - return n; -} - - -#ifdef TILEPRO -bool -tilepro_emit (int multiplier, int num_ops) -{ - int abs_multiplier = (multiplier >= 0) ? multiplier : -multiplier; - - /* Keep constants in range [-1024, 1024]. */ - if (abs_multiplier <= 1024) - return true; - - /* Keep constants near powers of two. */ - int prev_pow2 = 1 << (31 - __builtin_clz (abs_multiplier)); - int next_pow2 = prev_pow2 << 1; - - if ((abs_multiplier - prev_pow2 <= 10) - || (next_pow2 - abs_multiplier <= 10)) - return true; - - /* Keep constants near powers of ten. */ - { - long long j = 1; - long long prev_pow10; - long long next_pow10; - - while (((j * 10) < abs_multiplier) - && (j < (j * 10))) - j = j * 10; - - prev_pow10 = j; - next_pow10 = j * 10; - - if ((abs_multiplier - prev_pow10 <= 10) - || (next_pow10 - abs_multiplier <= 10)) - return true; - } - - /* Keep short sequences that have two or fewer ops. */ - if (num_ops <= 2) - return true; - - /* Keep constants that are mostly 0's or mostly 1's. */ - if (__builtin_popcount (multiplier) <= 2 || - __builtin_popcount (multiplier) >= 30) - return true; - - /* Keep constants seen in actual code. */ - if ((find_mult_constants_used (multiplier))) - return true; - - return false; -} -#else -bool -tilegx_emit (long long multiplier, int num_ops) -{ - long long abs_multiplier = (multiplier >= 0) ? multiplier : - multiplier; - - /* Keep constants in range [-1024, 1024]. */ - if (abs_multiplier <= 1024) - return true; - - /* Otherwise exclude sequences with four ops. */ - if (num_ops > 3) - return false; - - /* Keep constants near powers of two. */ - { - unsigned long long prev_pow2 = - 1LL << (63 - __builtin_clzll (abs_multiplier)); - unsigned long long next_pow2 = prev_pow2 << 1; - - /* handle overflow case. */ - if (next_pow2 == 0) - { - if (prev_pow2 - abs_multiplier <= 10) - return true; - } - else if ((abs_multiplier - prev_pow2 <= 10) - || (next_pow2 - abs_multiplier <= 10)) - return true; - } - - /* Keep constants near powers of ten. */ - { - long long j = 1; - long long prev_pow10; - long long next_pow10; - - while (((j * 10) < abs_multiplier) - && (j < (j * 10))) - j = j * 10; - - prev_pow10 = j; - next_pow10 = j * 10; - - if ((abs_multiplier - prev_pow10 <= 100) - || (next_pow10 - && (next_pow10 - abs_multiplier <= 100))) - return true; - } - - if (num_ops <= 2) - return true; - - /* Keep constants that are mostly 0's or mostly 1's. */ - if (__builtin_popcountll (multiplier) <= 2 || - __builtin_popcountll (multiplier) >= 62) - return true; - - /* Keep constants seen in actual code. */ - if (find_mult_constants_used (multiplier)) - return true; - - return false; -} -#endif - - -int -main () -{ - ExpressionTreeMap best_solution; - ExpressionTree s; - -#ifdef TILEPRO - printf ("/* Constant multiply table for TILEPro.\n"); -#else - printf ("/* Constant multiply table for TILE-Gx.\n"); -#endif - printf (" Copyright (C) 2011-2022 Free Software Foundation, Inc.\n"); - printf (" Contributed by Walter Lee (walt@tilera.com)\n"); - printf ("\n"); - printf (" This file is part of GCC.\n"); - printf ("\n"); - printf (" GCC is free software; you can redistribute it and/or modify it\n"); - printf (" under the terms of the GNU General Public License as published\n"); - printf (" by the Free Software Foundation; either version 3, or (at your\n"); - printf (" option) any later version.\n"); - printf ("\n"); - printf (" GCC is distributed in the hope that it will be useful, but WITHOUT\n"); - printf (" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"); - printf (" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n"); - printf (" License for more details.\n"); - printf ("\n"); - printf (" You should have received a copy of the GNU General Public License\n"); - printf (" along with GCC; see the file COPYING3. If not see\n"); - printf (" . */\n"); - printf ("\n"); - printf ("/* Note this file is auto-generated from gen-mul-tables.cc.\n"); - printf (" Make any required changes there. */\n"); - printf ("\n"); - printf ("#define IN_TARGET_CODE 1\n"); - printf ("\n"); - printf ("#include \"config.h\"\n"); - printf ("#include \"system.h\"\n"); - printf ("#include \"coretypes.h\"\n"); - printf ("#include \"backend.h\"\n"); - printf ("#include \"rtl.h\"\n"); - printf ("#include \"expmed.h\"\n"); - printf ("#include \"%s-multiply.h\"\n\n", ARCH); - create_insn_code_compression_table (); - - /* Try all combinations of operators and see what constants we - produce. For each possible constant, record the most efficient - way to generate it. */ - find_sequences (s, best_solution); - - printf ("const struct %s_multiply_insn_seq " - "%s_multiply_insn_seq_table[] = {\n", - ARCH, ARCH); - - const char *comma_separator = ""; - - ExpressionTreeMap::iterator i (best_solution.begin ()); - for (; i != best_solution.end (); ++i) - { - ExpressionTree *s = (*i).second; - const MUL_TYPE n = (*i).first; - - if (n == 0 || n == 1) - { - /* Both of these require zero operations, so these entries - are bogus and should never be used. */ - continue; - } - - /* Prune the list of entries to keep the table to a reasonable - size. */ -#ifdef TILEPRO - if (!tilepro_emit (n, num_ops (s))) - continue; -#else - if (!tilegx_emit (n, num_ops (s))) - continue; -#endif - - printf ("%s", comma_separator); - -#ifdef TILEPRO - const MUL_TYPE int_min = INT32_MIN; -#else - const MUL_TYPE int_min = INT64_MIN; -#endif - if (n == int_min) - { - /* Handle C's woeful lack of unary negation. Without this, - printing out INT_MIN in decimal will yield an unsigned - int which could generate a compiler warning. */ -#ifdef TILEPRO - printf (" {%d - 1 /* 0x%x */ ,\n {", n + 1, - (unsigned) n); -#else - printf (" {%lldll - 1 /* 0x%llx */ ,\n {", n + 1, - (unsigned MUL_TYPE) n); -#endif - } - else - { -#ifdef TILEPRO - printf (" {%d /* 0x%x */ ,\n {", n, (unsigned) n); -#else - printf (" {%lldll /* 0x%llx */ ,\n {", n, (unsigned MUL_TYPE) n); -#endif - } - - bool first = true; - for (int j = 0; j < s->m_num_vals; j++) - { - Expr *e = &s->m_exprs[j]; - - const Operator *op = e->m_op; - if (op == NULL) - continue; - - char buf[1024]; - snprintf (buf, sizeof buf, "%s{%d, %d, %d}%s", - first ? "" : " ", - op->m_top_index, - e->m_lhs, e->m_rhs, (j + 1) == s->m_num_vals ? "}" : ","); - - char opnd0[10]; - if (e->m_lhs) - snprintf (opnd0, sizeof opnd0, "r%d", e->m_lhs); - else - snprintf (opnd0, sizeof opnd0, "zero"); - - printf ("%s\t\t\t/* %s r%d, %s, %s%d */\n", - buf, op->m_name, j, opnd0, - op->is_unary () ? "" : "r", e->m_rhs); - - first = false; - } - printf (" }"); - comma_separator = ",\n"; - } - - printf ("\n};\n\n"); - printf ("const int %s_multiply_insn_seq_table_size =\n" - " (int) (sizeof %s_multiply_insn_seq_table\n" - " / sizeof %s_multiply_insn_seq_table[0]);\n", - ARCH, ARCH, ARCH); - - return EXIT_SUCCESS; -} diff --git a/gcc/config/tilepro/linux.h b/gcc/config/tilepro/linux.h deleted file mode 100644 index 65a411e..0000000 --- a/gcc/config/tilepro/linux.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Definitions for TILEPro running Linux-based GNU systems with ELF. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#undef CPP_SPEC -#define CPP_SPEC "%{pthread:-D_REENTRANT}" - -#undef LINK_SPEC -#define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker /lib/ld.so.1} \ - %{static:-static}}" - -#define NO_PROFILE_COUNTERS 1 - -#undef MCOUNT_NAME -#define MCOUNT_NAME "__mcount" - -#undef NEED_INDICATE_EXEC_STACK -#define NEED_INDICATE_EXEC_STACK 1 - -#ifdef TARGET_LIBC_PROVIDES_SSP -/* TILEPro glibc provides __stack_chk_guard two pointer-size words before - tp. */ -#define TARGET_THREAD_SSP_OFFSET (-2 * GET_MODE_SIZE (ptr_mode)) -#endif - -/* For __clear_cache in libgcc2.c. */ -#ifdef IN_LIBGCC2 - -/* Use the minimum page size of 4K. Alternatively we can call - getpagesize() but it introduces a libc dependence. - See Linux arch/tile/include/uapi/arch/icache.h for more commentary. */ -#undef CLEAR_INSN_CACHE -#define CLEAR_INSN_CACHE(BEG, END) \ -{ \ - long size = (long) (END) - (long) (BEG); \ - if (size) \ - { \ - const char *start = (const char *) ((unsigned long) (BEG) & -64L);\ - const char *end = start + (size < 16384 ? size : 16384) - 1; \ - long num_passes = 4; \ - __insn_mf (); \ - do \ - { \ - const char *p; \ - for (p = start; p <= end; p += 64) \ - __insn_icoh (p); \ - start += 4096; \ - end += 4096; \ - } \ - while (--num_passes > 0); \ - __insn_drain (); \ - } \ -} - -#else - -/* define CLEAR_INSN_CACHE so that gcc knows to expand __builtin__clear_cache - to the libraray call. */ -#undef CLEAR_INSN_CACHE -#define CLEAR_INSN_CACHE 1 - -#endif diff --git a/gcc/config/tilepro/mul-tables.cc b/gcc/config/tilepro/mul-tables.cc deleted file mode 100644 index 35867b3..0000000 --- a/gcc/config/tilepro/mul-tables.cc +++ /dev/null @@ -1,17837 +0,0 @@ -/* Constant multiply table for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* Note this file is auto-generated from gen-mul-tables.cc. - Make any required changes there. */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "backend.h" -#include "rtl.h" -#include "expmed.h" -#include "tilepro-multiply.h" - -const enum insn_code tilepro_multiply_insn_seq_decode_opcode[] = { - CODE_FOR_nothing /* must be first */ , - CODE_FOR_addsi3, - CODE_FOR_subsi3, - CODE_FOR_insn_s1a, - CODE_FOR_insn_s2a, - CODE_FOR_insn_s3a, - CODE_FOR_ashlsi3 -}; - -const struct tilepro_multiply_insn_seq tilepro_multiply_insn_seq_table[] = { - {-2147483647 - 1 /* 0x80000000 */ , - {{6, 1, 31}} /* shli r2, r1, 31 */ - }, - {-2147483647 /* 0x80000001 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {-2147483646 /* 0x80000002 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {-2147483645 /* 0x80000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483644 /* 0x80000004 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {-2147483643 /* 0x80000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483642 /* 0x80000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-2147483641 /* 0x80000007 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {-2147483640 /* 0x80000008 */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {-2147483639 /* 0x80000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483638 /* 0x8000000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-2147483632 /* 0x80000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483616 /* 0x80000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483584 /* 0x80000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483520 /* 0x80000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483392 /* 0x80000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147483136 /* 0x80000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147482624 /* 0x80000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147481600 /* 0x80000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147479552 /* 0x80001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147475456 /* 0x80002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147467264 /* 0x80004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147450880 /* 0x80008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147418112 /* 0x80010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147352576 /* 0x80020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2147221504 /* 0x80040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2146959360 /* 0x80080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2146435072 /* 0x80100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2145386496 /* 0x80200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2143289344 /* 0x80400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2139095040 /* 0x80800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2130706432 /* 0x81000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2113929216 /* 0x82000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2080374784 /* 0x84000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-2013265920 /* 0x88000000 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {-1879048192 /* 0x90000000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {-1610612737 /* 0x9fffffff */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {-1610612736 /* 0xa0000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {-1342177281 /* 0xafffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 28}, /* shli r4, r3, 28 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1207959553 /* 0xb7ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 27}, /* shli r4, r3, 27 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1140850689 /* 0xbbffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1073741889 /* 0xbfffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1073741857 /* 0xbfffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1073741841 /* 0xbfffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1073741834 /* 0xbffffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 30}, /* shli r4, r2, 30 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-1073741833 /* 0xbffffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1073741832 /* 0xbffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-1073741831 /* 0xbffffff9 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1073741830 /* 0xbffffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 30}, /* shli r4, r2, 30 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {-1073741829 /* 0xbffffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-1073741828 /* 0xbffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-1073741827 /* 0xbffffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {-1073741826 /* 0xbffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-1073741825 /* 0xbfffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741824 /* 0xc0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 30}} /* shli r3, r2, 30 */ - }, - {-1073741823 /* 0xc0000001 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1073741822 /* 0xc0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741821 /* 0xc0000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741820 /* 0xc0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741819 /* 0xc0000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741818 /* 0xc0000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 30}, /* shli r3, r2, 30 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-1073741817 /* 0xc0000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 27}, /* shli r4, r2, 27 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1073741816 /* 0xc0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741815 /* 0xc0000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1073741814 /* 0xc000000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-805306369 /* 0xcfffffff */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-671088641 /* 0xd7ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 27}, /* shli r4, r3, 27 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-603979777 /* 0xdbffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 26}, /* shli r4, r3, 26 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-570425345 /* 0xddffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-536870977 /* 0xdfffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-536870945 /* 0xdfffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-536870929 /* 0xdfffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-536870922 /* 0xdffffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 29}, /* shli r4, r2, 29 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-536870921 /* 0xdffffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-536870920 /* 0xdffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-536870919 /* 0xdffffff9 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-536870918 /* 0xdffffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-536870917 /* 0xdffffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-536870916 /* 0xdffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-536870915 /* 0xdffffffd */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-536870914 /* 0xdffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-536870913 /* 0xdfffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870912 /* 0xe0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {-536870911 /* 0xe0000001 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-536870910 /* 0xe0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870909 /* 0xe0000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870908 /* 0xe0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870907 /* 0xe0000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870906 /* 0xe0000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-536870905 /* 0xe0000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 26}, /* shli r4, r2, 26 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-536870904 /* 0xe0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870903 /* 0xe0000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-536870902 /* 0xe000000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-402653185 /* 0xe7ffffff */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-335544321 /* 0xebffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 26}, /* shli r4, r3, 26 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-301989889 /* 0xedffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 25}, /* shli r4, r3, 25 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-285212673 /* 0xeeffffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-268435521 /* 0xefffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-268435489 /* 0xefffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-268435473 /* 0xefffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-268435466 /* 0xeffffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 28}, /* shli r4, r2, 28 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-268435465 /* 0xeffffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-268435464 /* 0xeffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-268435463 /* 0xeffffff9 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-268435462 /* 0xeffffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-268435461 /* 0xeffffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-268435460 /* 0xeffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-268435459 /* 0xeffffffd */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-268435458 /* 0xeffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}, /* shli r3, r2, 28 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-268435457 /* 0xefffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435456 /* 0xf0000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {-268435455 /* 0xf0000001 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-268435454 /* 0xf0000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435453 /* 0xf0000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435452 /* 0xf0000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435451 /* 0xf0000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435450 /* 0xf0000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-268435449 /* 0xf0000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 25}, /* shli r4, r2, 25 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-268435448 /* 0xf0000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435447 /* 0xf0000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-268435446 /* 0xf000000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-201326593 /* 0xf3ffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-167772161 /* 0xf5ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 25}, /* shli r4, r3, 25 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-150994945 /* 0xf6ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 24}, /* shli r4, r3, 24 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-142606337 /* 0xf77fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-134217793 /* 0xf7ffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-134217761 /* 0xf7ffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-134217745 /* 0xf7ffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-134217738 /* 0xf7fffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 27}, /* shli r4, r2, 27 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-134217737 /* 0xf7fffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-134217736 /* 0xf7fffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-134217735 /* 0xf7fffff9 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-134217734 /* 0xf7fffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-134217733 /* 0xf7fffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-134217732 /* 0xf7fffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-134217731 /* 0xf7fffffd */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-134217730 /* 0xf7fffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}, /* shli r3, r2, 27 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-134217729 /* 0xf7ffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217728 /* 0xf8000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {-134217727 /* 0xf8000001 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-134217726 /* 0xf8000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217725 /* 0xf8000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217724 /* 0xf8000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217723 /* 0xf8000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217722 /* 0xf8000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-134217721 /* 0xf8000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 24}, /* shli r4, r2, 24 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-134217720 /* 0xf8000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217719 /* 0xf8000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134217718 /* 0xf800000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-100663297 /* 0xf9ffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-83886081 /* 0xfaffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 24}, /* shli r4, r3, 24 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-75497473 /* 0xfb7fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 23}, /* shli r4, r3, 23 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-71303169 /* 0xfbbfffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-67108929 /* 0xfbffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-67108897 /* 0xfbffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-67108881 /* 0xfbffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-67108874 /* 0xfbfffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 26}, /* shli r4, r2, 26 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-67108873 /* 0xfbfffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-67108872 /* 0xfbfffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-67108871 /* 0xfbfffff9 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-67108870 /* 0xfbfffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-67108869 /* 0xfbfffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-67108868 /* 0xfbfffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-67108867 /* 0xfbfffffd */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-67108866 /* 0xfbfffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}, /* shli r3, r2, 26 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-67108865 /* 0xfbffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108864 /* 0xfc000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {-67108863 /* 0xfc000001 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-67108862 /* 0xfc000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108861 /* 0xfc000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108860 /* 0xfc000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108859 /* 0xfc000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108858 /* 0xfc000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-67108857 /* 0xfc000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 23}, /* shli r4, r2, 23 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-67108856 /* 0xfc000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108855 /* 0xfc000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-67108854 /* 0xfc00000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-50331649 /* 0xfcffffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-41943041 /* 0xfd7fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 23}, /* shli r4, r3, 23 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-37748737 /* 0xfdbfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 22}, /* shli r4, r3, 22 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-35651585 /* 0xfddfffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-33554497 /* 0xfdffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-33554465 /* 0xfdffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-33554449 /* 0xfdffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-33554442 /* 0xfdfffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 25}, /* shli r4, r2, 25 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-33554441 /* 0xfdfffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-33554440 /* 0xfdfffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-33554439 /* 0xfdfffff9 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-33554438 /* 0xfdfffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-33554437 /* 0xfdfffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-33554436 /* 0xfdfffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-33554435 /* 0xfdfffffd */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-33554434 /* 0xfdfffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}, /* shli r3, r2, 25 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-33554433 /* 0xfdffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554432 /* 0xfe000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {-33554431 /* 0xfe000001 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-33554430 /* 0xfe000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554429 /* 0xfe000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554428 /* 0xfe000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554427 /* 0xfe000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554426 /* 0xfe000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-33554425 /* 0xfe000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 22}, /* shli r4, r2, 22 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-33554424 /* 0xfe000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554423 /* 0xfe000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-33554422 /* 0xfe00000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-25165825 /* 0xfe7fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-20971521 /* 0xfebfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 22}, /* shli r4, r3, 22 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-18874369 /* 0xfedfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 21}, /* shli r4, r3, 21 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-17825793 /* 0xfeefffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-16777281 /* 0xfeffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16777249 /* 0xfeffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16777233 /* 0xfeffffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-16777226 /* 0xfefffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 24}, /* shli r4, r2, 24 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-16777225 /* 0xfefffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16777224 /* 0xfefffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-16777223 /* 0xfefffff9 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16777222 /* 0xfefffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-16777221 /* 0xfefffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-16777220 /* 0xfefffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-16777219 /* 0xfefffffd */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16777218 /* 0xfefffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}, /* shli r3, r2, 24 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-16777217 /* 0xfeffffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777216 /* 0xff000000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {-16777215 /* 0xff000001 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-16777214 /* 0xff000002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777213 /* 0xff000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777212 /* 0xff000004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777211 /* 0xff000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777210 /* 0xff000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-16777209 /* 0xff000007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 21}, /* shli r4, r2, 21 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-16777208 /* 0xff000008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777207 /* 0xff000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16777206 /* 0xff00000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-12582913 /* 0xff3fffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-11796480 /* 0xff4c0000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {6, 2, 22}, /* shli r4, r2, 22 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-10485761 /* 0xff5fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 21}, /* shli r4, r3, 21 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-9437185 /* 0xff6fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 20}, /* shli r4, r3, 20 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-8912897 /* 0xff77ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-8388673 /* 0xff7fffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8388641 /* 0xff7fffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8388625 /* 0xff7fffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-8388618 /* 0xff7ffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 23}, /* shli r4, r2, 23 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-8388617 /* 0xff7ffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8388616 /* 0xff7ffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-8388615 /* 0xff7ffff9 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8388614 /* 0xff7ffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-8388613 /* 0xff7ffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-8388612 /* 0xff7ffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-8388611 /* 0xff7ffffd */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8388610 /* 0xff7ffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}, /* shli r3, r2, 23 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-8388609 /* 0xff7fffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388608 /* 0xff800000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {-8388607 /* 0xff800001 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8388606 /* 0xff800002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388605 /* 0xff800003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388604 /* 0xff800004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388603 /* 0xff800005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388602 /* 0xff800006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-8388601 /* 0xff800007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 20}, /* shli r4, r2, 20 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-8388600 /* 0xff800008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388599 /* 0xff800009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8388598 /* 0xff80000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-6291457 /* 0xff9fffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-5242881 /* 0xffafffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 20}, /* shli r4, r3, 20 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4718593 /* 0xffb7ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 19}, /* shli r4, r3, 19 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4456449 /* 0xffbbffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-4194369 /* 0xffbfffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4194337 /* 0xffbfffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4194321 /* 0xffbfffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-4194314 /* 0xffbffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 22}, /* shli r4, r2, 22 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-4194313 /* 0xffbffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4194312 /* 0xffbffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-4194311 /* 0xffbffff9 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4194310 /* 0xffbffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4194309 /* 0xffbffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-4194308 /* 0xffbffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-4194307 /* 0xffbffffd */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4194306 /* 0xffbffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}, /* shli r3, r2, 22 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-4194305 /* 0xffbfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194304 /* 0xffc00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {-4194303 /* 0xffc00001 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4194302 /* 0xffc00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194301 /* 0xffc00003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194300 /* 0xffc00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194299 /* 0xffc00005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194298 /* 0xffc00006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-4194297 /* 0xffc00007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 19}, /* shli r4, r2, 19 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-4194296 /* 0xffc00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194295 /* 0xffc00009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4194294 /* 0xffc0000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-3145729 /* 0xffcfffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2621441 /* 0xffd7ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 19}, /* shli r4, r3, 19 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2359297 /* 0xffdbffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 18}, /* shli r4, r3, 18 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2228225 /* 0xffddffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-2097217 /* 0xffdfffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2097185 /* 0xffdfffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2097169 /* 0xffdfffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-2097162 /* 0xffdffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 21}, /* shli r4, r2, 21 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-2097161 /* 0xffdffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2097160 /* 0xffdffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-2097159 /* 0xffdffff9 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2097158 /* 0xffdffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2097157 /* 0xffdffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-2097156 /* 0xffdffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-2097155 /* 0xffdffffd */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2097154 /* 0xffdffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}, /* shli r3, r2, 21 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-2097153 /* 0xffdfffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097152 /* 0xffe00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {-2097151 /* 0xffe00001 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2097150 /* 0xffe00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097149 /* 0xffe00003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097148 /* 0xffe00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097147 /* 0xffe00005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097146 /* 0xffe00006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-2097145 /* 0xffe00007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 18}, /* shli r4, r2, 18 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-2097144 /* 0xffe00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097143 /* 0xffe00009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2097142 /* 0xffe0000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1572865 /* 0xffe7ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1310721 /* 0xffebffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 18}, /* shli r4, r3, 18 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1179649 /* 0xffedffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 17}, /* shli r4, r3, 17 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1114113 /* 0xffeeffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1048641 /* 0xffefffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1048609 /* 0xffefffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1048593 /* 0xffefffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1048586 /* 0xffeffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 20}, /* shli r4, r2, 20 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-1048585 /* 0xffeffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1048584 /* 0xffeffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-1048583 /* 0xffeffff9 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1048582 /* 0xffeffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1048581 /* 0xffeffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-1048580 /* 0xffeffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-1048579 /* 0xffeffffd */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1048578 /* 0xffeffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}, /* shli r3, r2, 20 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-1048577 /* 0xffefffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048576 /* 0xfff00000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {-1048575 /* 0xfff00001 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1048574 /* 0xfff00002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048573 /* 0xfff00003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048572 /* 0xfff00004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048571 /* 0xfff00005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048570 /* 0xfff00006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-1048569 /* 0xfff00007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 17}, /* shli r4, r2, 17 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1048568 /* 0xfff00008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048567 /* 0xfff00009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1048566 /* 0xfff0000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-786433 /* 0xfff3ffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-655361 /* 0xfff5ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 17}, /* shli r4, r3, 17 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-589825 /* 0xfff6ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 16}, /* shli r4, r3, 16 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-557057 /* 0xfff77fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-524353 /* 0xfff7ffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-524321 /* 0xfff7ffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-524305 /* 0xfff7ffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-524298 /* 0xfff7fff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 19}, /* shli r4, r2, 19 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-524297 /* 0xfff7fff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-524296 /* 0xfff7fff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-524295 /* 0xfff7fff9 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-524294 /* 0xfff7fffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-524293 /* 0xfff7fffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-524292 /* 0xfff7fffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-524291 /* 0xfff7fffd */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-524290 /* 0xfff7fffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}, /* shli r3, r2, 19 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-524289 /* 0xfff7ffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524288 /* 0xfff80000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {-524287 /* 0xfff80001 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-524286 /* 0xfff80002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524285 /* 0xfff80003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524284 /* 0xfff80004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524283 /* 0xfff80005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524282 /* 0xfff80006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-524281 /* 0xfff80007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 16}, /* shli r4, r2, 16 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-524280 /* 0xfff80008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524279 /* 0xfff80009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-524278 /* 0xfff8000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-393217 /* 0xfff9ffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-327681 /* 0xfffaffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 16}, /* shli r4, r3, 16 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-294913 /* 0xfffb7fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 15}, /* shli r4, r3, 15 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-278529 /* 0xfffbbfff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-262209 /* 0xfffbffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-262177 /* 0xfffbffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-262161 /* 0xfffbffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-262154 /* 0xfffbfff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 18}, /* shli r4, r2, 18 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-262153 /* 0xfffbfff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-262152 /* 0xfffbfff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-262151 /* 0xfffbfff9 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262150 /* 0xfffbfffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-262149 /* 0xfffbfffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-262148 /* 0xfffbfffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-262147 /* 0xfffbfffd */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262146 /* 0xfffbfffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}, /* shli r3, r2, 18 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-262145 /* 0xfffbffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262144 /* 0xfffc0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {-262143 /* 0xfffc0001 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-262142 /* 0xfffc0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262141 /* 0xfffc0003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262140 /* 0xfffc0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262139 /* 0xfffc0005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262138 /* 0xfffc0006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-262137 /* 0xfffc0007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 15}, /* shli r4, r2, 15 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-262136 /* 0xfffc0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262135 /* 0xfffc0009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-262134 /* 0xfffc000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-196609 /* 0xfffcffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-163841 /* 0xfffd7fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 15}, /* shli r4, r3, 15 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-147457 /* 0xfffdbfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 14}, /* shli r4, r3, 14 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-139265 /* 0xfffddfff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-131137 /* 0xfffdffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-131105 /* 0xfffdffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-131089 /* 0xfffdffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-131082 /* 0xfffdfff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 17}, /* shli r4, r2, 17 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-131081 /* 0xfffdfff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-131080 /* 0xfffdfff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-131079 /* 0xfffdfff9 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-131078 /* 0xfffdfffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-131077 /* 0xfffdfffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-131076 /* 0xfffdfffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-131075 /* 0xfffdfffd */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-131074 /* 0xfffdfffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}, /* shli r3, r2, 17 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-131073 /* 0xfffdffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131072 /* 0xfffe0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {-131071 /* 0xfffe0001 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-131070 /* 0xfffe0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131069 /* 0xfffe0003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131068 /* 0xfffe0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131067 /* 0xfffe0005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131066 /* 0xfffe0006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-131065 /* 0xfffe0007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 14}, /* shli r4, r2, 14 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-131064 /* 0xfffe0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131063 /* 0xfffe0009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-131062 /* 0xfffe000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-98305 /* 0xfffe7fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-81921 /* 0xfffebfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 14}, /* shli r4, r3, 14 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-73729 /* 0xfffedfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 13}, /* shli r4, r3, 13 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-69633 /* 0xfffeefff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-65601 /* 0xfffeffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-65569 /* 0xfffeffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-65553 /* 0xfffeffef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-65546 /* 0xfffefff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 16}, /* shli r4, r2, 16 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-65545 /* 0xfffefff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-65544 /* 0xfffefff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-65543 /* 0xfffefff9 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-65542 /* 0xfffefffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-65541 /* 0xfffefffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-65540 /* 0xfffefffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-65539 /* 0xfffefffd */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-65538 /* 0xfffefffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}, /* shli r3, r2, 16 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-65537 /* 0xfffeffff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65536 /* 0xffff0000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {-65535 /* 0xffff0001 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-65534 /* 0xffff0002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65533 /* 0xffff0003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65532 /* 0xffff0004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65531 /* 0xffff0005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65530 /* 0xffff0006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-65529 /* 0xffff0007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 13}, /* shli r4, r2, 13 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-65528 /* 0xffff0008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65527 /* 0xffff0009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-65526 /* 0xffff000a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-49153 /* 0xffff3fff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-40961 /* 0xffff5fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 13}, /* shli r4, r3, 13 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-36865 /* 0xffff6fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 12}, /* shli r4, r3, 12 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-34817 /* 0xffff77ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-32833 /* 0xffff7fbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-32801 /* 0xffff7fdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-32785 /* 0xffff7fef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-32778 /* 0xffff7ff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 15}, /* shli r4, r2, 15 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-32777 /* 0xffff7ff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-32776 /* 0xffff7ff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-32775 /* 0xffff7ff9 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-32774 /* 0xffff7ffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-32773 /* 0xffff7ffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-32772 /* 0xffff7ffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-32771 /* 0xffff7ffd */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-32770 /* 0xffff7ffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}, /* shli r3, r2, 15 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-32769 /* 0xffff7fff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32768 /* 0xffff8000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {-32767 /* 0xffff8001 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-32766 /* 0xffff8002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32765 /* 0xffff8003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32764 /* 0xffff8004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32763 /* 0xffff8005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32762 /* 0xffff8006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-32761 /* 0xffff8007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 12}, /* shli r4, r2, 12 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-32760 /* 0xffff8008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32759 /* 0xffff8009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32758 /* 0xffff800a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-24577 /* 0xffff9fff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-20481 /* 0xffffafff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 12}, /* shli r4, r3, 12 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-19447 /* 0xffffb409 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 10}, /* shli r4, r3, 10 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-18433 /* 0xffffb7ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 11}, /* shli r4, r3, 11 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-17409 /* 0xffffbbff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-16449 /* 0xffffbfbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16423 /* 0xffffbfd9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-16417 /* 0xffffbfdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16401 /* 0xffffbfef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-16394 /* 0xffffbff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 14}, /* shli r4, r2, 14 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-16393 /* 0xffffbff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-16392 /* 0xffffbff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-16391 /* 0xffffbff9 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16390 /* 0xffffbffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-16389 /* 0xffffbffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-16388 /* 0xffffbffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-16387 /* 0xffffbffd */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-16386 /* 0xffffbffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}, /* shli r3, r2, 14 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-16385 /* 0xffffbfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16384 /* 0xffffc000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {-16383 /* 0xffffc001 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-16382 /* 0xffffc002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16381 /* 0xffffc003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16380 /* 0xffffc004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16379 /* 0xffffc005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16378 /* 0xffffc006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-16377 /* 0xffffc007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 11}, /* shli r4, r2, 11 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-16376 /* 0xffffc008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16375 /* 0xffffc009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16374 /* 0xffffc00a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-12289 /* 0xffffcfff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-11248 /* 0xffffd410 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-10241 /* 0xffffd7ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 11}, /* shli r4, r3, 11 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-9232 /* 0xffffdbf0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-9217 /* 0xffffdbff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 10}, /* shli r4, r3, 10 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-9198 /* 0xffffdc12 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-9191 /* 0xffffdc19 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-8705 /* 0xffffddff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-8257 /* 0xffffdfbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8225 /* 0xffffdfdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8209 /* 0xffffdfef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-8208 /* 0xffffdff0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-8202 /* 0xffffdff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 13}, /* shli r4, r2, 13 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-8201 /* 0xffffdff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-8200 /* 0xffffdff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-8199 /* 0xffffdff9 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8198 /* 0xffffdffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-8197 /* 0xffffdffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-8196 /* 0xffffdffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-8195 /* 0xffffdffd */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-8194 /* 0xffffdffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}, /* shli r3, r2, 13 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-8193 /* 0xffffdfff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8192 /* 0xffffe000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {-8191 /* 0xffffe001 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-8190 /* 0xffffe002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8189 /* 0xffffe003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8188 /* 0xffffe004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8187 /* 0xffffe005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8186 /* 0xffffe006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-8185 /* 0xffffe007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-8184 /* 0xffffe008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8183 /* 0xffffe009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-8182 /* 0xffffe00a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-7678 /* 0xffffe202 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-6145 /* 0xffffe7ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-5121 /* 0xffffebff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 10}, /* shli r4, r3, 10 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4609 /* 0xffffedff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 9}, /* shli r4, r3, 9 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4353 /* 0xffffeeff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-4161 /* 0xffffefbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4129 /* 0xffffefdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4113 /* 0xffffefef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-4106 /* 0xffffeff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 12}, /* shli r4, r2, 12 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-4105 /* 0xffffeff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4104 /* 0xffffeff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-4103 /* 0xffffeff9 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4102 /* 0xffffeffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-4101 /* 0xffffeffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-4100 /* 0xffffeffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-4099 /* 0xffffeffd */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-4098 /* 0xffffeffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}, /* shli r3, r2, 12 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-4097 /* 0xffffefff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4096 /* 0xfffff000 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {-4095 /* 0xfffff001 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-4094 /* 0xfffff002 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4093 /* 0xfffff003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4092 /* 0xfffff004 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4091 /* 0xfffff005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4090 /* 0xfffff006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-4089 /* 0xfffff007 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-4088 /* 0xfffff008 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4087 /* 0xfffff009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-4086 /* 0xfffff00a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-4078 /* 0xfffff012 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-3600 /* 0xfffff1f0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-3073 /* 0xfffff3ff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-3072 /* 0xfffff400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2912 /* 0xfffff4a0 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2561 /* 0xfffff5ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 9}, /* shli r4, r3, 9 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2305 /* 0xfffff6ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2184 /* 0xfffff778 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-2177 /* 0xfffff77f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-2113 /* 0xfffff7bf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2081 /* 0xfffff7df */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2065 /* 0xfffff7ef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-2058 /* 0xfffff7f6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 11}, /* shli r4, r2, 11 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-2057 /* 0xfffff7f7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-2056 /* 0xfffff7f8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-2055 /* 0xfffff7f9 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2054 /* 0xfffff7fa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-2053 /* 0xfffff7fb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-2052 /* 0xfffff7fc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-2051 /* 0xfffff7fd */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-2050 /* 0xfffff7fe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}, /* shli r3, r2, 11 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-2049 /* 0xfffff7ff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2048 /* 0xfffff800 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {-2047 /* 0xfffff801 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2046 /* 0xfffff802 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2045 /* 0xfffff803 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2044 /* 0xfffff804 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2043 /* 0xfffff805 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2042 /* 0xfffff806 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-2041 /* 0xfffff807 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-2040 /* 0xfffff808 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2039 /* 0xfffff809 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-2038 /* 0xfffff80a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1537 /* 0xfffff9ff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1512 /* 0xfffffa18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1500 /* 0xfffffa24 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-1396 /* 0xfffffa8c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-1344 /* 0xfffffac0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1312 /* 0xfffffae0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-1281 /* 0xfffffaff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1153 /* 0xfffffb7f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1089 /* 0xfffffbbf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1059 /* 0xfffffbdd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1057 /* 0xfffffbdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1041 /* 0xfffffbef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-1034 /* 0xfffffbf6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-1033 /* 0xfffffbf7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1032 /* 0xfffffbf8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-1031 /* 0xfffffbf9 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1030 /* 0xfffffbfa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1029 /* 0xfffffbfb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-1028 /* 0xfffffbfc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-1027 /* 0xfffffbfd */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-1026 /* 0xfffffbfe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-1025 /* 0xfffffbff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1024 /* 0xfffffc00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {-1023 /* 0xfffffc01 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-1022 /* 0xfffffc02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1021 /* 0xfffffc03 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1020 /* 0xfffffc04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1019 /* 0xfffffc05 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1018 /* 0xfffffc06 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-1017 /* 0xfffffc07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1016 /* 0xfffffc08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1015 /* 0xfffffc09 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1014 /* 0xfffffc0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1013 /* 0xfffffc0b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1012 /* 0xfffffc0c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-1011 /* 0xfffffc0d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-1010 /* 0xfffffc0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1009 /* 0xfffffc0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1008 /* 0xfffffc10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-1007 /* 0xfffffc11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-1006 /* 0xfffffc12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-1005 /* 0xfffffc13 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* s1a r5, r4, r1 */ - }, - {-1004 /* 0xfffffc14 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-1003 /* 0xfffffc15 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-1001 /* 0xfffffc17 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-1000 /* 0xfffffc18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-999 /* 0xfffffc19 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-997 /* 0xfffffc1b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-996 /* 0xfffffc1c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 1, 3}, /* s2a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-994 /* 0xfffffc1e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-993 /* 0xfffffc1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-992 /* 0xfffffc20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-991 /* 0xfffffc21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-990 /* 0xfffffc22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-988 /* 0xfffffc24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-987 /* 0xfffffc25 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-984 /* 0xfffffc28 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-983 /* 0xfffffc29 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-979 /* 0xfffffc2d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-976 /* 0xfffffc30 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-975 /* 0xfffffc31 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-969 /* 0xfffffc37 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-968 /* 0xfffffc38 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {5, 1, 3}, /* s3a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-967 /* 0xfffffc39 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-965 /* 0xfffffc3b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-964 /* 0xfffffc3c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {4, 1, 3}, /* s2a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-963 /* 0xfffffc3d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 1}, /* s1a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-962 /* 0xfffffc3e */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-961 /* 0xfffffc3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-960 /* 0xfffffc40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-959 /* 0xfffffc41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-958 /* 0xfffffc42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-957 /* 0xfffffc43 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-956 /* 0xfffffc44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-955 /* 0xfffffc45 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-953 /* 0xfffffc47 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-952 /* 0xfffffc48 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-951 /* 0xfffffc49 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-945 /* 0xfffffc4f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {-944 /* 0xfffffc50 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-943 /* 0xfffffc51 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-942 /* 0xfffffc52 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {-940 /* 0xfffffc54 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-936 /* 0xfffffc58 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-935 /* 0xfffffc59 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-929 /* 0xfffffc5f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-928 /* 0xfffffc60 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-925 /* 0xfffffc63 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-924 /* 0xfffffc64 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-920 /* 0xfffffc68 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-919 /* 0xfffffc69 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-916 /* 0xfffffc6c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-913 /* 0xfffffc6f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-912 /* 0xfffffc70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-911 /* 0xfffffc71 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-910 /* 0xfffffc72 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-905 /* 0xfffffc77 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-904 /* 0xfffffc78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-903 /* 0xfffffc79 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-902 /* 0xfffffc7a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-901 /* 0xfffffc7b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-900 /* 0xfffffc7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-899 /* 0xfffffc7d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-898 /* 0xfffffc7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-897 /* 0xfffffc7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-896 /* 0xfffffc80 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-895 /* 0xfffffc81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-894 /* 0xfffffc82 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-893 /* 0xfffffc83 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-892 /* 0xfffffc84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-891 /* 0xfffffc85 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-890 /* 0xfffffc86 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-889 /* 0xfffffc87 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-888 /* 0xfffffc88 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-887 /* 0xfffffc89 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-886 /* 0xfffffc8a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-884 /* 0xfffffc8c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-881 /* 0xfffffc8f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-880 /* 0xfffffc90 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-879 /* 0xfffffc91 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 1}} /* s1a r5, r4, r1 */ - }, - {-873 /* 0xfffffc97 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-872 /* 0xfffffc98 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-868 /* 0xfffffc9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-865 /* 0xfffffc9f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-864 /* 0xfffffca0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-863 /* 0xfffffca1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-861 /* 0xfffffca3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-860 /* 0xfffffca4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-856 /* 0xfffffca8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-855 /* 0xfffffca9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-847 /* 0xfffffcb1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-837 /* 0xfffffcbb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-835 /* 0xfffffcbd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-834 /* 0xfffffcbe */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {-832 /* 0xfffffcc0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {-831 /* 0xfffffcc1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-829 /* 0xfffffcc3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-828 /* 0xfffffcc4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-827 /* 0xfffffcc5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-824 /* 0xfffffcc8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-823 /* 0xfffffcc9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-819 /* 0xfffffccd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-816 /* 0xfffffcd0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-815 /* 0xfffffcd1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-803 /* 0xfffffcdd */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-801 /* 0xfffffcdf */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-800 /* 0xfffffce0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-799 /* 0xfffffce1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-797 /* 0xfffffce3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-796 /* 0xfffffce4 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-795 /* 0xfffffce5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-793 /* 0xfffffce7 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-792 /* 0xfffffce8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-791 /* 0xfffffce9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-789 /* 0xfffffceb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-788 /* 0xfffffcec */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-785 /* 0xfffffcef */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-784 /* 0xfffffcf0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-783 /* 0xfffffcf1 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-781 /* 0xfffffcf3 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-780 /* 0xfffffcf4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-779 /* 0xfffffcf5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-777 /* 0xfffffcf7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-776 /* 0xfffffcf8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-775 /* 0xfffffcf9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-774 /* 0xfffffcfa */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-773 /* 0xfffffcfb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-772 /* 0xfffffcfc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-771 /* 0xfffffcfd */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* s1a r5, r4, r4 */ - }, - {-770 /* 0xfffffcfe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-769 /* 0xfffffcff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-768 /* 0xfffffd00 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-767 /* 0xfffffd01 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-766 /* 0xfffffd02 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-765 /* 0xfffffd03 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-764 /* 0xfffffd04 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-763 /* 0xfffffd05 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-762 /* 0xfffffd06 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-761 /* 0xfffffd07 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-760 /* 0xfffffd08 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-759 /* 0xfffffd09 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-757 /* 0xfffffd0b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-756 /* 0xfffffd0c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-755 /* 0xfffffd0d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-753 /* 0xfffffd0f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-752 /* 0xfffffd10 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-751 /* 0xfffffd11 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-749 /* 0xfffffd13 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 1, 3}, /* s3a r4, r1, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-748 /* 0xfffffd14 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-744 /* 0xfffffd18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-743 /* 0xfffffd19 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-741 /* 0xfffffd1b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-739 /* 0xfffffd1d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-737 /* 0xfffffd1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-736 /* 0xfffffd20 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-735 /* 0xfffffd21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-732 /* 0xfffffd24 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-729 /* 0xfffffd27 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-728 /* 0xfffffd28 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-720 /* 0xfffffd30 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-719 /* 0xfffffd31 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-715 /* 0xfffffd35 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-712 /* 0xfffffd38 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-711 /* 0xfffffd39 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-708 /* 0xfffffd3c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-707 /* 0xfffffd3d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-705 /* 0xfffffd3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-704 /* 0xfffffd40 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {-703 /* 0xfffffd41 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-701 /* 0xfffffd43 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-700 /* 0xfffffd44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-699 /* 0xfffffd45 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-695 /* 0xfffffd49 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-693 /* 0xfffffd4b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-692 /* 0xfffffd4c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-688 /* 0xfffffd50 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-680 /* 0xfffffd58 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-679 /* 0xfffffd59 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-675 /* 0xfffffd5d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-673 /* 0xfffffd5f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-672 /* 0xfffffd60 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-671 /* 0xfffffd61 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-667 /* 0xfffffd65 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-664 /* 0xfffffd68 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-660 /* 0xfffffd6c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-659 /* 0xfffffd6d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-657 /* 0xfffffd6f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-656 /* 0xfffffd70 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-655 /* 0xfffffd71 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-651 /* 0xfffffd75 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-650 /* 0xfffffd76 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-649 /* 0xfffffd77 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-648 /* 0xfffffd78 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-647 /* 0xfffffd79 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-645 /* 0xfffffd7b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-644 /* 0xfffffd7c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-643 /* 0xfffffd7d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-642 /* 0xfffffd7e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-641 /* 0xfffffd7f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-640 /* 0xfffffd80 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {-639 /* 0xfffffd81 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-638 /* 0xfffffd82 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-637 /* 0xfffffd83 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-636 /* 0xfffffd84 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-635 /* 0xfffffd85 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-634 /* 0xfffffd86 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-633 /* 0xfffffd87 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-632 /* 0xfffffd88 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-631 /* 0xfffffd89 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-630 /* 0xfffffd8a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-629 /* 0xfffffd8b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-627 /* 0xfffffd8d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-625 /* 0xfffffd8f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-624 /* 0xfffffd90 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-620 /* 0xfffffd94 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-619 /* 0xfffffd95 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-616 /* 0xfffffd98 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-615 /* 0xfffffd99 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-613 /* 0xfffffd9b */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-612 /* 0xfffffd9c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-611 /* 0xfffffd9d */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-609 /* 0xfffffd9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-608 /* 0xfffffda0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-607 /* 0xfffffda1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-604 /* 0xfffffda4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-603 /* 0xfffffda5 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-600 /* 0xfffffda8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-599 /* 0xfffffda9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-595 /* 0xfffffdad */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-594 /* 0xfffffdae */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-593 /* 0xfffffdaf */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-592 /* 0xfffffdb0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-591 /* 0xfffffdb1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-589 /* 0xfffffdb3 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-588 /* 0xfffffdb4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-585 /* 0xfffffdb7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-584 /* 0xfffffdb8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-583 /* 0xfffffdb9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-581 /* 0xfffffdbb */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-580 /* 0xfffffdbc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-579 /* 0xfffffdbd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-578 /* 0xfffffdbe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-577 /* 0xfffffdbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-576 /* 0xfffffdc0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {-575 /* 0xfffffdc1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-574 /* 0xfffffdc2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-573 /* 0xfffffdc3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-572 /* 0xfffffdc4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-571 /* 0xfffffdc5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-569 /* 0xfffffdc7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-568 /* 0xfffffdc8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-567 /* 0xfffffdc9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-566 /* 0xfffffdca */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-565 /* 0xfffffdcb */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-564 /* 0xfffffdcc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-563 /* 0xfffffdcd */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-561 /* 0xfffffdcf */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-560 /* 0xfffffdd0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-559 /* 0xfffffdd1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-558 /* 0xfffffdd2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-557 /* 0xfffffdd3 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-556 /* 0xfffffdd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-555 /* 0xfffffdd5 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-553 /* 0xfffffdd7 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-552 /* 0xfffffdd8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-551 /* 0xfffffdd9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-549 /* 0xfffffddb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-548 /* 0xfffffddc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-547 /* 0xfffffddd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-546 /* 0xfffffdde */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-545 /* 0xfffffddf */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-544 /* 0xfffffde0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-543 /* 0xfffffde1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-542 /* 0xfffffde2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-540 /* 0xfffffde4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-539 /* 0xfffffde5 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-536 /* 0xfffffde8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-535 /* 0xfffffde9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-533 /* 0xfffffdeb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-532 /* 0xfffffdec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-531 /* 0xfffffded */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-530 /* 0xfffffdee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-529 /* 0xfffffdef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-528 /* 0xfffffdf0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-527 /* 0xfffffdf1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-526 /* 0xfffffdf2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-525 /* 0xfffffdf3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-524 /* 0xfffffdf4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-523 /* 0xfffffdf5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-522 /* 0xfffffdf6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-521 /* 0xfffffdf7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-520 /* 0xfffffdf8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-519 /* 0xfffffdf9 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-518 /* 0xfffffdfa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-517 /* 0xfffffdfb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-516 /* 0xfffffdfc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-515 /* 0xfffffdfd */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-514 /* 0xfffffdfe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}, /* shli r3, r2, 9 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-513 /* 0xfffffdff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-512 /* 0xfffffe00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {-511 /* 0xfffffe01 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-510 /* 0xfffffe02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-509 /* 0xfffffe03 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-508 /* 0xfffffe04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-507 /* 0xfffffe05 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-506 /* 0xfffffe06 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-505 /* 0xfffffe07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-504 /* 0xfffffe08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-503 /* 0xfffffe09 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-502 /* 0xfffffe0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-501 /* 0xfffffe0b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-500 /* 0xfffffe0c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-499 /* 0xfffffe0d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-498 /* 0xfffffe0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-497 /* 0xfffffe0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-496 /* 0xfffffe10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-495 /* 0xfffffe11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-494 /* 0xfffffe12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-493 /* 0xfffffe13 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* s1a r5, r4, r1 */ - }, - {-492 /* 0xfffffe14 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-491 /* 0xfffffe15 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-489 /* 0xfffffe17 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-488 /* 0xfffffe18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-487 /* 0xfffffe19 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-485 /* 0xfffffe1b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-484 /* 0xfffffe1c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 1, 3}, /* s2a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-483 /* 0xfffffe1d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 1}, /* s1a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-482 /* 0xfffffe1e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-481 /* 0xfffffe1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-480 /* 0xfffffe20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-479 /* 0xfffffe21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-478 /* 0xfffffe22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-477 /* 0xfffffe23 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-476 /* 0xfffffe24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-475 /* 0xfffffe25 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-472 /* 0xfffffe28 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-471 /* 0xfffffe29 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-468 /* 0xfffffe2c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-467 /* 0xfffffe2d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-465 /* 0xfffffe2f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {-464 /* 0xfffffe30 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-463 /* 0xfffffe31 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-462 /* 0xfffffe32 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-460 /* 0xfffffe34 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-457 /* 0xfffffe37 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-456 /* 0xfffffe38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-455 /* 0xfffffe39 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {-454 /* 0xfffffe3a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-453 /* 0xfffffe3b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-452 /* 0xfffffe3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-451 /* 0xfffffe3d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-450 /* 0xfffffe3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-449 /* 0xfffffe3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-448 /* 0xfffffe40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-447 /* 0xfffffe41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-446 /* 0xfffffe42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-445 /* 0xfffffe43 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-444 /* 0xfffffe44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-443 /* 0xfffffe45 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-442 /* 0xfffffe46 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-441 /* 0xfffffe47 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-440 /* 0xfffffe48 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-439 /* 0xfffffe49 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-438 /* 0xfffffe4a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-436 /* 0xfffffe4c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-433 /* 0xfffffe4f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-432 /* 0xfffffe50 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-431 /* 0xfffffe51 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-429 /* 0xfffffe53 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-428 /* 0xfffffe54 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-424 /* 0xfffffe58 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-423 /* 0xfffffe59 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-419 /* 0xfffffe5d */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-418 /* 0xfffffe5e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {-417 /* 0xfffffe5f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-416 /* 0xfffffe60 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-415 /* 0xfffffe61 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-413 /* 0xfffffe63 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-412 /* 0xfffffe64 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-411 /* 0xfffffe65 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-409 /* 0xfffffe67 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-408 /* 0xfffffe68 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-407 /* 0xfffffe69 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-405 /* 0xfffffe6b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-404 /* 0xfffffe6c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-403 /* 0xfffffe6d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-401 /* 0xfffffe6f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-400 /* 0xfffffe70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-399 /* 0xfffffe71 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-397 /* 0xfffffe73 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-396 /* 0xfffffe74 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-395 /* 0xfffffe75 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-393 /* 0xfffffe77 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-392 /* 0xfffffe78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-391 /* 0xfffffe79 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-390 /* 0xfffffe7a */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-389 /* 0xfffffe7b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-388 /* 0xfffffe7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-387 /* 0xfffffe7d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* s1a r5, r4, r4 */ - }, - {-386 /* 0xfffffe7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-385 /* 0xfffffe7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-384 /* 0xfffffe80 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-383 /* 0xfffffe81 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-382 /* 0xfffffe82 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-381 /* 0xfffffe83 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-380 /* 0xfffffe84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-379 /* 0xfffffe85 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-378 /* 0xfffffe86 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-377 /* 0xfffffe87 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-376 /* 0xfffffe88 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-375 /* 0xfffffe89 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-373 /* 0xfffffe8b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-372 /* 0xfffffe8c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-371 /* 0xfffffe8d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-369 /* 0xfffffe8f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-368 /* 0xfffffe90 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-367 /* 0xfffffe91 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-365 /* 0xfffffe93 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 1, 3}, /* s3a r4, r1, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-364 /* 0xfffffe94 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-361 /* 0xfffffe97 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-360 /* 0xfffffe98 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-359 /* 0xfffffe99 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-357 /* 0xfffffe9b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-356 /* 0xfffffe9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-355 /* 0xfffffe9d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-353 /* 0xfffffe9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-352 /* 0xfffffea0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {-351 /* 0xfffffea1 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-349 /* 0xfffffea3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-348 /* 0xfffffea4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-347 /* 0xfffffea5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-344 /* 0xfffffea8 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-343 /* 0xfffffea9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-341 /* 0xfffffeab */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-340 /* 0xfffffeac */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-339 /* 0xfffffead */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-337 /* 0xfffffeaf */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-336 /* 0xfffffeb0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-335 /* 0xfffffeb1 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-333 /* 0xfffffeb3 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-332 /* 0xfffffeb4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-331 /* 0xfffffeb5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-330 /* 0xfffffeb6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-329 /* 0xfffffeb7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-328 /* 0xfffffeb8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-327 /* 0xfffffeb9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-325 /* 0xfffffebb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-324 /* 0xfffffebc */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-323 /* 0xfffffebd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-322 /* 0xfffffebe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-321 /* 0xfffffebf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-320 /* 0xfffffec0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {-319 /* 0xfffffec1 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-318 /* 0xfffffec2 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-317 /* 0xfffffec3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-316 /* 0xfffffec4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-315 /* 0xfffffec5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-314 /* 0xfffffec6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-313 /* 0xfffffec7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-312 /* 0xfffffec8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-311 /* 0xfffffec9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-310 /* 0xfffffeca */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-309 /* 0xfffffecb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-307 /* 0xfffffecd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-306 /* 0xfffffece */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-305 /* 0xfffffecf */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-304 /* 0xfffffed0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-303 /* 0xfffffed1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-301 /* 0xfffffed3 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-300 /* 0xfffffed4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-299 /* 0xfffffed5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-297 /* 0xfffffed7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-296 /* 0xfffffed8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-295 /* 0xfffffed9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-293 /* 0xfffffedb */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-292 /* 0xfffffedc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-291 /* 0xfffffedd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-290 /* 0xfffffede */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {-289 /* 0xfffffedf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-288 /* 0xfffffee0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {-287 /* 0xfffffee1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-286 /* 0xfffffee2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-285 /* 0xfffffee3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-284 /* 0xfffffee4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-283 /* 0xfffffee5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-281 /* 0xfffffee7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-280 /* 0xfffffee8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-279 /* 0xfffffee9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-278 /* 0xfffffeea */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-277 /* 0xfffffeeb */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-276 /* 0xfffffeec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-275 /* 0xfffffeed */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-274 /* 0xfffffeee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-273 /* 0xfffffeef */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-272 /* 0xfffffef0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-271 /* 0xfffffef1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-270 /* 0xfffffef2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-269 /* 0xfffffef3 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-268 /* 0xfffffef4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-267 /* 0xfffffef5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-266 /* 0xfffffef6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-265 /* 0xfffffef7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-264 /* 0xfffffef8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-263 /* 0xfffffef9 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-262 /* 0xfffffefa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-261 /* 0xfffffefb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-260 /* 0xfffffefc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-259 /* 0xfffffefd */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-258 /* 0xfffffefe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-257 /* 0xfffffeff */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-256 /* 0xffffff00 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {-255 /* 0xffffff01 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-254 /* 0xffffff02 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-253 /* 0xffffff03 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-252 /* 0xffffff04 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-251 /* 0xffffff05 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-250 /* 0xffffff06 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-249 /* 0xffffff07 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-248 /* 0xffffff08 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-247 /* 0xffffff09 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-246 /* 0xffffff0a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-245 /* 0xffffff0b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-244 /* 0xffffff0c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-243 /* 0xffffff0d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-242 /* 0xffffff0e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-241 /* 0xffffff0f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-240 /* 0xffffff10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-239 /* 0xffffff11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-238 /* 0xffffff12 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-237 /* 0xffffff13 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 1}} /* s1a r5, r4, r1 */ - }, - {-236 /* 0xffffff14 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-235 /* 0xffffff15 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-234 /* 0xffffff16 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-233 /* 0xffffff17 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-232 /* 0xffffff18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {-231 /* 0xffffff19 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {-230 /* 0xffffff1a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-229 /* 0xffffff1b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-228 /* 0xffffff1c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-227 /* 0xffffff1d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-226 /* 0xffffff1e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-225 /* 0xffffff1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-224 /* 0xffffff20 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-223 /* 0xffffff21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-222 /* 0xffffff22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-221 /* 0xffffff23 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-220 /* 0xffffff24 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-219 /* 0xffffff25 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-218 /* 0xffffff26 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-217 /* 0xffffff27 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-216 /* 0xffffff28 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-215 /* 0xffffff29 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-214 /* 0xffffff2a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-213 /* 0xffffff2b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}, /* shli r4, r3, 3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-212 /* 0xffffff2c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-211 /* 0xffffff2d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-210 /* 0xffffff2e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {-209 /* 0xffffff2f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-208 /* 0xffffff30 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-207 /* 0xffffff31 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-205 /* 0xffffff33 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-204 /* 0xffffff34 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-203 /* 0xffffff35 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-202 /* 0xffffff36 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-201 /* 0xffffff37 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-200 /* 0xffffff38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-199 /* 0xffffff39 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-198 /* 0xffffff3a */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-197 /* 0xffffff3b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-196 /* 0xffffff3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-195 /* 0xffffff3d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* s1a r5, r4, r4 */ - }, - {-194 /* 0xffffff3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-193 /* 0xffffff3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-192 /* 0xffffff40 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-191 /* 0xffffff41 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-190 /* 0xffffff42 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-189 /* 0xffffff43 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-188 /* 0xffffff44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-187 /* 0xffffff45 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-186 /* 0xffffff46 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-185 /* 0xffffff47 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-184 /* 0xffffff48 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-183 /* 0xffffff49 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-181 /* 0xffffff4b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-180 /* 0xffffff4c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-179 /* 0xffffff4d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-178 /* 0xffffff4e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-177 /* 0xffffff4f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-176 /* 0xffffff50 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {-175 /* 0xffffff51 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-173 /* 0xffffff53 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-172 /* 0xffffff54 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-171 /* 0xffffff55 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-170 /* 0xffffff56 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-169 /* 0xffffff57 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-168 /* 0xffffff58 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-167 /* 0xffffff59 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-165 /* 0xffffff5b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-164 /* 0xffffff5c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-163 /* 0xffffff5d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-162 /* 0xffffff5e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-161 /* 0xffffff5f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-160 /* 0xffffff60 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {-159 /* 0xffffff61 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-158 /* 0xffffff62 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-157 /* 0xffffff63 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-156 /* 0xffffff64 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-155 /* 0xffffff65 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-154 /* 0xffffff66 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-153 /* 0xffffff67 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {-152 /* 0xffffff68 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-151 /* 0xffffff69 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-150 /* 0xffffff6a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-149 /* 0xffffff6b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-148 /* 0xffffff6c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {-147 /* 0xffffff6d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-146 /* 0xffffff6e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-145 /* 0xffffff6f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-144 /* 0xffffff70 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {-143 /* 0xffffff71 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-142 /* 0xffffff72 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-141 /* 0xffffff73 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-140 /* 0xffffff74 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-139 /* 0xffffff75 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-138 /* 0xffffff76 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-137 /* 0xffffff77 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-136 /* 0xffffff78 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {-135 /* 0xffffff79 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-134 /* 0xffffff7a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-133 /* 0xffffff7b */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-132 /* 0xffffff7c */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-131 /* 0xffffff7d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-130 /* 0xffffff7e */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-129 /* 0xffffff7f */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-128 /* 0xffffff80 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {-127 /* 0xffffff81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-126 /* 0xffffff82 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-125 /* 0xffffff83 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-124 /* 0xffffff84 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-123 /* 0xffffff85 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-122 /* 0xffffff86 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-121 /* 0xffffff87 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-120 /* 0xffffff88 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-119 /* 0xffffff89 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-118 /* 0xffffff8a */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-117 /* 0xffffff8b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-116 /* 0xffffff8c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-115 /* 0xffffff8d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-114 /* 0xffffff8e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-113 /* 0xffffff8f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-112 /* 0xffffff90 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-111 /* 0xffffff91 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-110 /* 0xffffff92 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-109 /* 0xffffff93 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-108 /* 0xffffff94 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-107 /* 0xffffff95 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {-106 /* 0xffffff96 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {-105 /* 0xffffff97 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-104 /* 0xffffff98 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-103 /* 0xffffff99 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {-102 /* 0xffffff9a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {-101 /* 0xffffff9b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-100 /* 0xffffff9c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-99 /* 0xffffff9d */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* s1a r5, r4, r4 */ - }, - {-98 /* 0xffffff9e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-97 /* 0xffffff9f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-96 /* 0xffffffa0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-95 /* 0xffffffa1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-94 /* 0xffffffa2 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-93 /* 0xffffffa3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-92 /* 0xffffffa4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-91 /* 0xffffffa5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-90 /* 0xffffffa6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-89 /* 0xffffffa7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-88 /* 0xffffffa8 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-87 /* 0xffffffa9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-86 /* 0xffffffaa */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {2, 1, 4}} /* sub r5, r1, r4 */ - }, - {-85 /* 0xffffffab */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {-84 /* 0xffffffac */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-83 /* 0xffffffad */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-82 /* 0xffffffae */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {-81 /* 0xffffffaf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {-80 /* 0xffffffb0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {-79 /* 0xffffffb1 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-78 /* 0xffffffb2 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-77 /* 0xffffffb3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 2, 4}} /* sub r5, r2, r4 */ - }, - {-76 /* 0xffffffb4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-75 /* 0xffffffb5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-74 /* 0xffffffb6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-73 /* 0xffffffb7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-72 /* 0xffffffb8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {-71 /* 0xffffffb9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-70 /* 0xffffffba */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-69 /* 0xffffffbb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {-68 /* 0xffffffbc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {-67 /* 0xffffffbd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-66 /* 0xffffffbe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-65 /* 0xffffffbf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-64 /* 0xffffffc0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {-63 /* 0xffffffc1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-62 /* 0xffffffc2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-61 /* 0xffffffc3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-60 /* 0xffffffc4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-59 /* 0xffffffc5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-58 /* 0xffffffc6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {-57 /* 0xffffffc7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-56 /* 0xffffffc8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-55 /* 0xffffffc9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-54 /* 0xffffffca */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-53 /* 0xffffffcb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {-52 /* 0xffffffcc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {-51 /* 0xffffffcd */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {3, 4, 4}} /* s1a r5, r4, r4 */ - }, - {-50 /* 0xffffffce */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-49 /* 0xffffffcf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-48 /* 0xffffffd0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-47 /* 0xffffffd1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-46 /* 0xffffffd2 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-45 /* 0xffffffd3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-44 /* 0xffffffd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-43 /* 0xffffffd5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {-42 /* 0xffffffd6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-41 /* 0xffffffd7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {-40 /* 0xffffffd8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {-39 /* 0xffffffd9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-38 /* 0xffffffda */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {-37 /* 0xffffffdb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {-36 /* 0xffffffdc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {-35 /* 0xffffffdd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-34 /* 0xffffffde */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {-33 /* 0xffffffdf */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-32 /* 0xffffffe0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {-31 /* 0xffffffe1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-30 /* 0xffffffe2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-29 /* 0xffffffe3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-28 /* 0xffffffe4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-27 /* 0xffffffe5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-26 /* 0xffffffe6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-25 /* 0xffffffe7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-24 /* 0xffffffe8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-23 /* 0xffffffe9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-22 /* 0xffffffea */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-21 /* 0xffffffeb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-20 /* 0xffffffec */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {-19 /* 0xffffffed */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {2, 1, 3}} /* sub r4, r1, r3 */ - }, - {-18 /* 0xffffffee */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {-17 /* 0xffffffef */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-16 /* 0xfffffff0 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {-15 /* 0xfffffff1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-14 /* 0xfffffff2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-13 /* 0xfffffff3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-12 /* 0xfffffff4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-11 /* 0xfffffff5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-10 /* 0xfffffff6 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-9 /* 0xfffffff7 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 2, 2}} /* s3a r3, r2, r2 */ - }, - {-8 /* 0xfffffff8 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {-7 /* 0xfffffff9 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-6 /* 0xfffffffa */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 3}, /* shli r3, r1, 3 */ - {2, 2, 3}} /* sub r4, r2, r3 */ - }, - {-5 /* 0xfffffffb */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 2, 2}} /* s2a r3, r2, r2 */ - }, - {-4 /* 0xfffffffc */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {-3 /* 0xfffffffd */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}} /* sub r3, r1, r2 */ - }, - {-2 /* 0xfffffffe */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {-1 /* 0xffffffff */ , - {{2, 0, 1}} /* sub r2, zero, r1 */ - }, - {2 /* 0x2 */ , - {{6, 1, 1}} /* shli r2, r1, 1 */ - }, - {3 /* 0x3 */ , - {{3, 1, 1}} /* s1a r2, r1, r1 */ - }, - {4 /* 0x4 */ , - {{6, 1, 2}} /* shli r2, r1, 2 */ - }, - {5 /* 0x5 */ , - {{4, 1, 1}} /* s2a r2, r1, r1 */ - }, - {6 /* 0x6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {7 /* 0x7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8 /* 0x8 */ , - {{6, 1, 3}} /* shli r2, r1, 3 */ - }, - {9 /* 0x9 */ , - {{5, 1, 1}} /* s3a r2, r1, r1 */ - }, - {10 /* 0xa */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {11 /* 0xb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}} /* s1a r3, r2, r1 */ - }, - {12 /* 0xc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {13 /* 0xd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}} /* s2a r3, r2, r1 */ - }, - {14 /* 0xe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {15 /* 0xf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16 /* 0x10 */ , - {{6, 1, 4}} /* shli r2, r1, 4 */ - }, - {17 /* 0x11 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {18 /* 0x12 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}} /* shli r3, r2, 1 */ - }, - {19 /* 0x13 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}} /* s1a r3, r2, r1 */ - }, - {20 /* 0x14 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {21 /* 0x15 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}} /* s2a r3, r2, r1 */ - }, - {22 /* 0x16 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {23 /* 0x17 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {24 /* 0x18 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {25 /* 0x19 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}} /* s3a r3, r2, r1 */ - }, - {26 /* 0x1a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {27 /* 0x1b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}} /* s3a r3, r2, r2 */ - }, - {28 /* 0x1c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {29 /* 0x1d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {30 /* 0x1e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {31 /* 0x1f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {32 /* 0x20 */ , - {{6, 1, 5}} /* shli r2, r1, 5 */ - }, - {33 /* 0x21 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {34 /* 0x22 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {35 /* 0x23 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36 /* 0x24 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 2}} /* shli r3, r2, 2 */ - }, - {37 /* 0x25 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}} /* s2a r3, r2, r1 */ - }, - {38 /* 0x26 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {39 /* 0x27 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {40 /* 0x28 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {41 /* 0x29 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}} /* s3a r3, r2, r1 */ - }, - {42 /* 0x2a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {43 /* 0x2b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {44 /* 0x2c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {45 /* 0x2d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}} /* s3a r3, r2, r2 */ - }, - {46 /* 0x2e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {47 /* 0x2f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {48 /* 0x30 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {49 /* 0x31 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {50 /* 0x32 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {51 /* 0x33 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {52 /* 0x34 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {53 /* 0x35 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {54 /* 0x36 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {55 /* 0x37 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {56 /* 0x38 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {57 /* 0x39 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {58 /* 0x3a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {59 /* 0x3b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {60 /* 0x3c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {61 /* 0x3d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {62 /* 0x3e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {63 /* 0x3f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {64 /* 0x40 */ , - {{6, 1, 6}} /* shli r2, r1, 6 */ - }, - {65 /* 0x41 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {66 /* 0x42 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {67 /* 0x43 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68 /* 0x44 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {69 /* 0x45 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {70 /* 0x46 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {71 /* 0x47 */ , - {{2, 0, 1}, /* sub r2, zero, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {72 /* 0x48 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 3}} /* shli r3, r2, 3 */ - }, - {73 /* 0x49 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}} /* s3a r3, r2, r1 */ - }, - {74 /* 0x4a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {75 /* 0x4b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {76 /* 0x4c */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {77 /* 0x4d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {78 /* 0x4e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {79 /* 0x4f */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {80 /* 0x50 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {81 /* 0x51 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}} /* s3a r3, r2, r2 */ - }, - {82 /* 0x52 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {83 /* 0x53 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 1}} /* s1a r4, r3, r1 */ - }, - {84 /* 0x54 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {85 /* 0x55 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {86 /* 0x56 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {87 /* 0x57 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {88 /* 0x58 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {89 /* 0x59 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {90 /* 0x5a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {91 /* 0x5b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {3, 3, 1}} /* s1a r4, r3, r1 */ - }, - {92 /* 0x5c */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {93 /* 0x5d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {94 /* 0x5e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {95 /* 0x5f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {96 /* 0x60 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {97 /* 0x61 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {98 /* 0x62 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {99 /* 0x63 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {100 /* 0x64 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {101 /* 0x65 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 1}} /* s2a r4, r3, r1 */ - }, - {102 /* 0x66 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {103 /* 0x67 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {104 /* 0x68 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {105 /* 0x69 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {106 /* 0x6a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {107 /* 0x6b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {108 /* 0x6c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {109 /* 0x6d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}} /* s2a r4, r3, r1 */ - }, - {110 /* 0x6e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {111 /* 0x6f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {112 /* 0x70 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {113 /* 0x71 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {114 /* 0x72 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {115 /* 0x73 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {116 /* 0x74 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {117 /* 0x75 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {118 /* 0x76 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {119 /* 0x77 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {120 /* 0x78 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {121 /* 0x79 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {122 /* 0x7a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {123 /* 0x7b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {124 /* 0x7c */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {125 /* 0x7d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {126 /* 0x7e */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {127 /* 0x7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {128 /* 0x80 */ , - {{6, 1, 7}} /* shli r2, r1, 7 */ - }, - {129 /* 0x81 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {130 /* 0x82 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {131 /* 0x83 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {132 /* 0x84 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {133 /* 0x85 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134 /* 0x86 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {135 /* 0x87 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {136 /* 0x88 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {137 /* 0x89 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {138 /* 0x8a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {139 /* 0x8b */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {140 /* 0x8c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {141 /* 0x8d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {142 /* 0x8e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {143 /* 0x8f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {144 /* 0x90 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}} /* shli r3, r2, 4 */ - }, - {145 /* 0x91 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {146 /* 0x92 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {147 /* 0x93 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 1}} /* s1a r4, r3, r1 */ - }, - {148 /* 0x94 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {149 /* 0x95 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 1}} /* s2a r4, r3, r1 */ - }, - {150 /* 0x96 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {151 /* 0x97 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {152 /* 0x98 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {153 /* 0x99 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {154 /* 0x9a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {155 /* 0x9b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {156 /* 0x9c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {157 /* 0x9d */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {158 /* 0x9e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {159 /* 0x9f */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {160 /* 0xa0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {161 /* 0xa1 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {162 /* 0xa2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 1}} /* shli r4, r3, 1 */ - }, - {163 /* 0xa3 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {3, 3, 1}} /* s1a r4, r3, r1 */ - }, - {164 /* 0xa4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {165 /* 0xa5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {166 /* 0xa6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {167 /* 0xa7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {168 /* 0xa8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {169 /* 0xa9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {170 /* 0xaa */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {171 /* 0xab */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {172 /* 0xac */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {173 /* 0xad */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {174 /* 0xae */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {175 /* 0xaf */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {176 /* 0xb0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {177 /* 0xb1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {178 /* 0xb2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {179 /* 0xb3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {180 /* 0xb4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 2}} /* shli r4, r3, 2 */ - }, - {181 /* 0xb5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}} /* s2a r4, r3, r1 */ - }, - {182 /* 0xb6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {183 /* 0xb7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {184 /* 0xb8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {185 /* 0xb9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {186 /* 0xba */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {187 /* 0xbb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {188 /* 0xbc */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {189 /* 0xbd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {190 /* 0xbe */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {191 /* 0xbf */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {192 /* 0xc0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {193 /* 0xc1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {194 /* 0xc2 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {195 /* 0xc3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {196 /* 0xc4 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {197 /* 0xc5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {198 /* 0xc6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {199 /* 0xc7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {200 /* 0xc8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {201 /* 0xc9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {202 /* 0xca */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {203 /* 0xcb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {204 /* 0xcc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {205 /* 0xcd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {206 /* 0xce */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {207 /* 0xcf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {208 /* 0xd0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {209 /* 0xd1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {210 /* 0xd2 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {211 /* 0xd3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {212 /* 0xd4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {213 /* 0xd5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {214 /* 0xd6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {215 /* 0xd7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {216 /* 0xd8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {217 /* 0xd9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {218 /* 0xda */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {219 /* 0xdb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {220 /* 0xdc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {221 /* 0xdd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {222 /* 0xde */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {223 /* 0xdf */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {224 /* 0xe0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {225 /* 0xe1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {226 /* 0xe2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {227 /* 0xe3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {228 /* 0xe4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {229 /* 0xe5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {230 /* 0xe6 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {231 /* 0xe7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 8}, /* shli r4, r1, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {232 /* 0xe8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {233 /* 0xe9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {234 /* 0xea */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {235 /* 0xeb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {236 /* 0xec */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {237 /* 0xed */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {238 /* 0xee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {239 /* 0xef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {240 /* 0xf0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {241 /* 0xf1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {242 /* 0xf2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {243 /* 0xf3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {244 /* 0xf4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {245 /* 0xf5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {246 /* 0xf6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {247 /* 0xf7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {248 /* 0xf8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {249 /* 0xf9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {250 /* 0xfa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {251 /* 0xfb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {252 /* 0xfc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {253 /* 0xfd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {254 /* 0xfe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {255 /* 0xff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {256 /* 0x100 */ , - {{6, 1, 8}} /* shli r2, r1, 8 */ - }, - {257 /* 0x101 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {258 /* 0x102 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {259 /* 0x103 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {260 /* 0x104 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {261 /* 0x105 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262 /* 0x106 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {263 /* 0x107 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {264 /* 0x108 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {265 /* 0x109 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {266 /* 0x10a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {267 /* 0x10b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {268 /* 0x10c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {269 /* 0x10d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {270 /* 0x10e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {271 /* 0x10f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {272 /* 0x110 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {273 /* 0x111 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {274 /* 0x112 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {275 /* 0x113 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {276 /* 0x114 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {277 /* 0x115 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {278 /* 0x116 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {279 /* 0x117 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {280 /* 0x118 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {281 /* 0x119 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {282 /* 0x11a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {283 /* 0x11b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {284 /* 0x11c */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {285 /* 0x11d */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {286 /* 0x11e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {287 /* 0x11f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {288 /* 0x120 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}} /* shli r3, r2, 5 */ - }, - {289 /* 0x121 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {290 /* 0x122 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {291 /* 0x123 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {292 /* 0x124 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {293 /* 0x125 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 1}} /* s2a r4, r3, r1 */ - }, - {294 /* 0x126 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {295 /* 0x127 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {296 /* 0x128 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {297 /* 0x129 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {298 /* 0x12a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {299 /* 0x12b */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {300 /* 0x12c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {301 /* 0x12d */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {302 /* 0x12e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {303 /* 0x12f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {304 /* 0x130 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {305 /* 0x131 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {306 /* 0x132 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {307 /* 0x133 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {308 /* 0x134 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {309 /* 0x135 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {310 /* 0x136 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {311 /* 0x137 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {312 /* 0x138 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {313 /* 0x139 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {314 /* 0x13a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {315 /* 0x13b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {316 /* 0x13c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {317 /* 0x13d */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {318 /* 0x13e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {319 /* 0x13f */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {320 /* 0x140 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {321 /* 0x141 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {322 /* 0x142 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {323 /* 0x143 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {324 /* 0x144 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {325 /* 0x145 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {326 /* 0x146 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {327 /* 0x147 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {328 /* 0x148 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {329 /* 0x149 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {330 /* 0x14a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {331 /* 0x14b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {332 /* 0x14c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {333 /* 0x14d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {334 /* 0x14e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {335 /* 0x14f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {336 /* 0x150 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {337 /* 0x151 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {338 /* 0x152 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {339 /* 0x153 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {340 /* 0x154 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {341 /* 0x155 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {342 /* 0x156 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {343 /* 0x157 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {344 /* 0x158 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {345 /* 0x159 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {346 /* 0x15a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {347 /* 0x15b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {348 /* 0x15c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 2}, /* shli r4, r2, 2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {349 /* 0x15d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {350 /* 0x15e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {351 /* 0x15f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {352 /* 0x160 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {353 /* 0x161 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {354 /* 0x162 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {355 /* 0x163 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {356 /* 0x164 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {357 /* 0x165 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {358 /* 0x166 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {359 /* 0x167 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {360 /* 0x168 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {361 /* 0x169 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {362 /* 0x16a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 1}, /* shli r4, r1, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {363 /* 0x16b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {364 /* 0x16c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 2}, /* shli r4, r1, 2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {365 /* 0x16d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {366 /* 0x16e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {367 /* 0x16f */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {368 /* 0x170 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {369 /* 0x171 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {370 /* 0x172 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {371 /* 0x173 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {372 /* 0x174 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {373 /* 0x175 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {374 /* 0x176 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {375 /* 0x177 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {376 /* 0x178 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {377 /* 0x179 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {378 /* 0x17a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {379 /* 0x17b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {380 /* 0x17c */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {381 /* 0x17d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {382 /* 0x17e */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {383 /* 0x17f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {384 /* 0x180 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {385 /* 0x181 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {386 /* 0x182 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {387 /* 0x183 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {388 /* 0x184 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {389 /* 0x185 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {390 /* 0x186 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {391 /* 0x187 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {392 /* 0x188 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {393 /* 0x189 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {394 /* 0x18a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {395 /* 0x18b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {396 /* 0x18c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {397 /* 0x18d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {398 /* 0x18e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {399 /* 0x18f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {400 /* 0x190 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {401 /* 0x191 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {402 /* 0x192 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {403 /* 0x193 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {404 /* 0x194 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {405 /* 0x195 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {406 /* 0x196 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {407 /* 0x197 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {408 /* 0x198 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {409 /* 0x199 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {410 /* 0x19a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {411 /* 0x19b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {412 /* 0x19c */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {413 /* 0x19d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {414 /* 0x19e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {415 /* 0x19f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {416 /* 0x1a0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {417 /* 0x1a1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {418 /* 0x1a2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {419 /* 0x1a3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {420 /* 0x1a4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {421 /* 0x1a5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {422 /* 0x1a6 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {423 /* 0x1a7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {424 /* 0x1a8 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {425 /* 0x1a9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {426 /* 0x1aa */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {427 /* 0x1ab */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {428 /* 0x1ac */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {429 /* 0x1ad */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {430 /* 0x1ae */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {431 /* 0x1af */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {432 /* 0x1b0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {433 /* 0x1b1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {434 /* 0x1b2 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {435 /* 0x1b3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {436 /* 0x1b4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {437 /* 0x1b5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {438 /* 0x1b6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {439 /* 0x1b7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {440 /* 0x1b8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {441 /* 0x1b9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {442 /* 0x1ba */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {443 /* 0x1bb */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {444 /* 0x1bc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {445 /* 0x1bd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {446 /* 0x1be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {447 /* 0x1bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {448 /* 0x1c0 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {449 /* 0x1c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {450 /* 0x1c2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {451 /* 0x1c3 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {452 /* 0x1c4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {453 /* 0x1c5 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {454 /* 0x1c6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {455 /* 0x1c7 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {456 /* 0x1c8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {457 /* 0x1c9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {458 /* 0x1ca */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {459 /* 0x1cb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {460 /* 0x1cc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {461 /* 0x1cd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {462 /* 0x1ce */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {463 /* 0x1cf */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {464 /* 0x1d0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {465 /* 0x1d1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {467 /* 0x1d3 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {468 /* 0x1d4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {469 /* 0x1d5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {470 /* 0x1d6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {471 /* 0x1d7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {472 /* 0x1d8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {473 /* 0x1d9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {475 /* 0x1db */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {476 /* 0x1dc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {477 /* 0x1dd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {478 /* 0x1de */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {479 /* 0x1df */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {480 /* 0x1e0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {481 /* 0x1e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {482 /* 0x1e2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {483 /* 0x1e3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {484 /* 0x1e4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {485 /* 0x1e5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {486 /* 0x1e6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {487 /* 0x1e7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {488 /* 0x1e8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {489 /* 0x1e9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {490 /* 0x1ea */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {491 /* 0x1eb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {492 /* 0x1ec */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {493 /* 0x1ed */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {494 /* 0x1ee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {495 /* 0x1ef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {496 /* 0x1f0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {497 /* 0x1f1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {498 /* 0x1f2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {499 /* 0x1f3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 9}, /* shli r4, r1, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {500 /* 0x1f4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {501 /* 0x1f5 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {502 /* 0x1f6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {503 /* 0x1f7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {504 /* 0x1f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {505 /* 0x1f9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {506 /* 0x1fa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {507 /* 0x1fb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {508 /* 0x1fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {509 /* 0x1fd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {510 /* 0x1fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {511 /* 0x1ff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {512 /* 0x200 */ , - {{6, 1, 9}} /* shli r2, r1, 9 */ - }, - {513 /* 0x201 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {514 /* 0x202 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {515 /* 0x203 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {516 /* 0x204 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {517 /* 0x205 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {518 /* 0x206 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {519 /* 0x207 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {520 /* 0x208 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {521 /* 0x209 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {522 /* 0x20a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {523 /* 0x20b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {524 /* 0x20c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {525 /* 0x20d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {526 /* 0x20e */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {527 /* 0x20f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {528 /* 0x210 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {529 /* 0x211 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {530 /* 0x212 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {531 /* 0x213 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {532 /* 0x214 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {533 /* 0x215 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {534 /* 0x216 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {535 /* 0x217 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {536 /* 0x218 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {537 /* 0x219 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {538 /* 0x21a */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {539 /* 0x21b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {540 /* 0x21c */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {541 /* 0x21d */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {542 /* 0x21e */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {543 /* 0x21f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {544 /* 0x220 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {545 /* 0x221 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {546 /* 0x222 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {547 /* 0x223 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {548 /* 0x224 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {549 /* 0x225 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {550 /* 0x226 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {551 /* 0x227 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {552 /* 0x228 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {553 /* 0x229 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {554 /* 0x22a */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {555 /* 0x22b */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {556 /* 0x22c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {557 /* 0x22d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {558 /* 0x22e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {559 /* 0x22f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {560 /* 0x230 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {561 /* 0x231 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {562 /* 0x232 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {563 /* 0x233 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {564 /* 0x234 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {565 /* 0x235 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {566 /* 0x236 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {567 /* 0x237 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {568 /* 0x238 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {569 /* 0x239 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {570 /* 0x23a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {571 /* 0x23b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {572 /* 0x23c */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {573 /* 0x23d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {574 /* 0x23e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {575 /* 0x23f */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {576 /* 0x240 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}} /* shli r3, r2, 6 */ - }, - {577 /* 0x241 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {578 /* 0x242 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {579 /* 0x243 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {580 /* 0x244 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {581 /* 0x245 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {582 /* 0x246 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {583 /* 0x247 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {584 /* 0x248 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {585 /* 0x249 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {586 /* 0x24a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {587 /* 0x24b */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {588 /* 0x24c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {589 /* 0x24d */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {590 /* 0x24e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {591 /* 0x24f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {592 /* 0x250 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {593 /* 0x251 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {594 /* 0x252 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {595 /* 0x253 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {596 /* 0x254 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {597 /* 0x255 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {598 /* 0x256 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {599 /* 0x257 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {600 /* 0x258 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {601 /* 0x259 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {602 /* 0x25a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {603 /* 0x25b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {604 /* 0x25c */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {605 /* 0x25d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {606 /* 0x25e */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {607 /* 0x25f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {608 /* 0x260 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {609 /* 0x261 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {610 /* 0x262 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {611 /* 0x263 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {612 /* 0x264 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {613 /* 0x265 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {614 /* 0x266 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {615 /* 0x267 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {616 /* 0x268 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {617 /* 0x269 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 2}, /* shli r3, r1, 2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {619 /* 0x26b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {620 /* 0x26c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {621 /* 0x26d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {623 /* 0x26f */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {624 /* 0x270 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {625 /* 0x271 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {626 /* 0x272 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {627 /* 0x273 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {628 /* 0x274 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {629 /* 0x275 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {630 /* 0x276 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {631 /* 0x277 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {632 /* 0x278 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {633 /* 0x279 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {634 /* 0x27a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {635 /* 0x27b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {636 /* 0x27c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {637 /* 0x27d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {638 /* 0x27e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 1}, /* shli r3, r1, 1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {639 /* 0x27f */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {640 /* 0x280 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {641 /* 0x281 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {642 /* 0x282 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {643 /* 0x283 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {644 /* 0x284 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {645 /* 0x285 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {646 /* 0x286 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {647 /* 0x287 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {648 /* 0x288 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 3}} /* shli r4, r3, 3 */ - }, - {649 /* 0x289 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {650 /* 0x28a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {651 /* 0x28b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {652 /* 0x28c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {653 /* 0x28d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {654 /* 0x28e */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {655 /* 0x28f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {656 /* 0x290 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {657 /* 0x291 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {658 /* 0x292 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {659 /* 0x293 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {660 /* 0x294 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {661 /* 0x295 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {662 /* 0x296 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {663 /* 0x297 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {664 /* 0x298 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {665 /* 0x299 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {666 /* 0x29a */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 1}, /* shli r4, r2, 1 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {667 /* 0x29b */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {668 /* 0x29c */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {669 /* 0x29d */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 1}, /* s1a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {670 /* 0x29e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {671 /* 0x29f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {672 /* 0x2a0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {673 /* 0x2a1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {674 /* 0x2a2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {675 /* 0x2a3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {676 /* 0x2a4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {677 /* 0x2a5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {679 /* 0x2a7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 2, 4}} /* s3a r5, r2, r4 */ - }, - {680 /* 0x2a8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {681 /* 0x2a9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {682 /* 0x2aa */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {684 /* 0x2ac */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 2}, /* shli r4, r2, 2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {685 /* 0x2ad */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {688 /* 0x2b0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 1, 1}, /* s2a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {689 /* 0x2b1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {690 /* 0x2b2 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {692 /* 0x2b4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {693 /* 0x2b5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 1}, /* s3a r3, r1, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {694 /* 0x2b6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {695 /* 0x2b7 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {696 /* 0x2b8 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {697 /* 0x2b9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {699 /* 0x2bb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {700 /* 0x2bc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {701 /* 0x2bd */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {702 /* 0x2be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {703 /* 0x2bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {704 /* 0x2c0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {705 /* 0x2c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {706 /* 0x2c2 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {707 /* 0x2c3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {708 /* 0x2c4 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {709 /* 0x2c5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {710 /* 0x2c6 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {711 /* 0x2c7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {712 /* 0x2c8 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {713 /* 0x2c9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 4}, /* shli r3, r1, 4 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {714 /* 0x2ca */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {715 /* 0x2cb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {716 /* 0x2cc */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {717 /* 0x2cd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {719 /* 0x2cf */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {2, 4, 1}} /* sub r5, r4, r1 */ - }, - {720 /* 0x2d0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}} /* shli r4, r3, 4 */ - }, - {721 /* 0x2d1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {722 /* 0x2d2 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {723 /* 0x2d3 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {724 /* 0x2d4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {725 /* 0x2d5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 4}, /* shli r4, r3, 4 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {726 /* 0x2d6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {727 /* 0x2d7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {728 /* 0x2d8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {729 /* 0x2d9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}} /* s3a r4, r3, r3 */ - }, - {730 /* 0x2da */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {731 /* 0x2db */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 1}} /* s1a r5, r4, r1 */ - }, - {733 /* 0x2dd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {735 /* 0x2df */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {736 /* 0x2e0 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {737 /* 0x2e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {738 /* 0x2e2 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {739 /* 0x2e3 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {740 /* 0x2e4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {741 /* 0x2e5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {743 /* 0x2e7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {744 /* 0x2e8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {745 /* 0x2e9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {747 /* 0x2eb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {748 /* 0x2ec */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {749 /* 0x2ed */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {750 /* 0x2ee */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {752 /* 0x2f0 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {753 /* 0x2f1 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {755 /* 0x2f3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {756 /* 0x2f4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 2}, /* shli r3, r2, 2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {757 /* 0x2f5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {758 /* 0x2f6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {759 /* 0x2f7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {760 /* 0x2f8 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {761 /* 0x2f9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {762 /* 0x2fa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 1}, /* shli r3, r2, 1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {763 /* 0x2fb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {764 /* 0x2fc */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {765 /* 0x2fd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {766 /* 0x2fe */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {767 /* 0x2ff */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {768 /* 0x300 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {769 /* 0x301 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {770 /* 0x302 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {771 /* 0x303 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {772 /* 0x304 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {773 /* 0x305 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {774 /* 0x306 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {775 /* 0x307 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {776 /* 0x308 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {777 /* 0x309 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {778 /* 0x30a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {779 /* 0x30b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {780 /* 0x30c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {781 /* 0x30d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {782 /* 0x30e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {783 /* 0x30f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {784 /* 0x310 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {3, 3, 2}} /* s1a r4, r3, r2 */ - }, - {785 /* 0x311 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 1, 2}, /* s3a r4, r1, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {786 /* 0x312 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {787 /* 0x313 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {3, 1, 3}, /* s1a r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {788 /* 0x314 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {789 /* 0x315 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 2, 4}} /* s3a r5, r2, r4 */ - }, - {790 /* 0x316 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {791 /* 0x317 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {792 /* 0x318 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {793 /* 0x319 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {794 /* 0x31a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {795 /* 0x31b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {796 /* 0x31c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {797 /* 0x31d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {798 /* 0x31e */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {799 /* 0x31f */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {800 /* 0x320 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {801 /* 0x321 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {802 /* 0x322 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {803 /* 0x323 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {804 /* 0x324 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {805 /* 0x325 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {806 /* 0x326 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {807 /* 0x327 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {808 /* 0x328 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {809 /* 0x329 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {810 /* 0x32a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {811 /* 0x32b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {812 /* 0x32c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {813 /* 0x32d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {815 /* 0x32f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {816 /* 0x330 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {817 /* 0x331 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {818 /* 0x332 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {819 /* 0x333 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {820 /* 0x334 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {821 /* 0x335 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {822 /* 0x336 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {823 /* 0x337 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {824 /* 0x338 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {825 /* 0x339 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {827 /* 0x33b */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {828 /* 0x33c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {829 /* 0x33d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {831 /* 0x33f */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {832 /* 0x340 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {833 /* 0x341 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {834 /* 0x342 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 2}, /* s1a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {835 /* 0x343 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {836 /* 0x344 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 2}, /* s3a r4, r2, r2 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {837 /* 0x345 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {838 /* 0x346 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {840 /* 0x348 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {841 /* 0x349 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {842 /* 0x34a */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {843 /* 0x34b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {844 /* 0x34c */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {845 /* 0x34d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {846 /* 0x34e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {848 /* 0x350 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {849 /* 0x351 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {850 /* 0x352 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {852 /* 0x354 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {853 /* 0x355 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {855 /* 0x357 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {856 /* 0x358 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {857 /* 0x359 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {858 /* 0x35a */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {859 /* 0x35b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {861 /* 0x35d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {862 /* 0x35e */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {863 /* 0x35f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 1}} /* sub r5, r4, r1 */ - }, - {864 /* 0x360 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {865 /* 0x361 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 1, 4}} /* add r5, r1, r4 */ - }, - {866 /* 0x362 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {867 /* 0x363 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 2, 4}} /* add r5, r2, r4 */ - }, - {868 /* 0x364 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {869 /* 0x365 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {870 /* 0x366 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {871 /* 0x367 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {872 /* 0x368 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {873 /* 0x369 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {875 /* 0x36b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {876 /* 0x36c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {877 /* 0x36d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {879 /* 0x36f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {880 /* 0x370 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {881 /* 0x371 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 2}, /* s1a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {882 /* 0x372 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {884 /* 0x374 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {885 /* 0x375 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {888 /* 0x378 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {889 /* 0x379 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {2, 2, 1}, /* sub r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {890 /* 0x37a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {891 /* 0x37b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {892 /* 0x37c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {893 /* 0x37d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {894 /* 0x37e */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {895 /* 0x37f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {896 /* 0x380 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {897 /* 0x381 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {898 /* 0x382 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {899 /* 0x383 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {900 /* 0x384 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {901 /* 0x385 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {902 /* 0x386 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {903 /* 0x387 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {904 /* 0x388 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {905 /* 0x389 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {2, 1, 2}, /* sub r4, r1, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {906 /* 0x38a */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {908 /* 0x38c */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {909 /* 0x38d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {910 /* 0x38e */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {911 /* 0x38f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {912 /* 0x390 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {913 /* 0x391 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 1, 2}, /* s1a r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {915 /* 0x393 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {916 /* 0x394 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {917 /* 0x395 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {918 /* 0x396 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {919 /* 0x397 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {920 /* 0x398 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {924 /* 0x39c */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {925 /* 0x39d */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {2, 1, 3}, /* sub r4, r1, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {927 /* 0x39f */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {928 /* 0x3a0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {929 /* 0x3a1 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 1, 2}, /* s2a r4, r1, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {932 /* 0x3a4 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {935 /* 0x3a7 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {936 /* 0x3a8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {937 /* 0x3a9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {939 /* 0x3ab */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {941 /* 0x3ad */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {943 /* 0x3af */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {944 /* 0x3b0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {945 /* 0x3b1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 3, 4}} /* sub r5, r3, r4 */ - }, - {948 /* 0x3b4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {949 /* 0x3b5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {950 /* 0x3b6 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {951 /* 0x3b7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {952 /* 0x3b8 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {953 /* 0x3b9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {955 /* 0x3bb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {4, 4, 4}} /* s2a r5, r4, r4 */ - }, - {956 /* 0x3bc */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {957 /* 0x3bd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {958 /* 0x3be */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {959 /* 0x3bf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {960 /* 0x3c0 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {961 /* 0x3c1 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {962 /* 0x3c2 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {963 /* 0x3c3 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {964 /* 0x3c4 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {965 /* 0x3c5 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {966 /* 0x3c6 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {967 /* 0x3c7 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {968 /* 0x3c8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {969 /* 0x3c9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {3, 2, 1}, /* s1a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {970 /* 0x3ca */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {971 /* 0x3cb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {972 /* 0x3cc */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {973 /* 0x3cd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {975 /* 0x3cf */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {6, 3, 6}, /* shli r4, r3, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {976 /* 0x3d0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {979 /* 0x3d3 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {980 /* 0x3d4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {981 /* 0x3d5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {983 /* 0x3d7 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {984 /* 0x3d8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {985 /* 0x3d9 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {987 /* 0x3db */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {988 /* 0x3dc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {989 /* 0x3dd */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {990 /* 0x3de */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {991 /* 0x3df */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {992 /* 0x3e0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {993 /* 0x3e1 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {994 /* 0x3e2 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {996 /* 0x3e4 */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {997 /* 0x3e5 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {999 /* 0x3e7 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1000 /* 0x3e8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {1001 /* 0x3e9 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {4, 2, 1}, /* s2a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {1003 /* 0x3eb */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {1004 /* 0x3ec */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {1005 /* 0x3ed */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {1006 /* 0x3ee */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1007 /* 0x3ef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1008 /* 0x3f0 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1009 /* 0x3f1 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {1010 /* 0x3f2 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {1011 /* 0x3f3 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 10}, /* shli r4, r1, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1012 /* 0x3f4 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 2}} /* shli r5, r4, 2 */ - }, - {1013 /* 0x3f5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {1014 /* 0x3f6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1015 /* 0x3f7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1016 /* 0x3f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1017 /* 0x3f9 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {1018 /* 0x3fa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {1019 /* 0x3fb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1020 /* 0x3fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1021 /* 0x3fd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1022 /* 0x3fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1023 /* 0x3ff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1024 /* 0x400 */ , - {{6, 1, 10}} /* shli r2, r1, 10 */ - }, - {1025 /* 0x401 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1026 /* 0x402 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {1027 /* 0x403 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1028 /* 0x404 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {1029 /* 0x405 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1030 /* 0x406 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1031 /* 0x407 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {1032 /* 0x408 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {1033 /* 0x409 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1034 /* 0x40a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1040 /* 0x410 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1049 /* 0x419 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {1056 /* 0x420 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1059 /* 0x423 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 2, 1}, /* s3a r4, r2, r1 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1088 /* 0x440 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1100 /* 0x44c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1104 /* 0x450 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {1108 /* 0x454 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1136 /* 0x470 */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {1152 /* 0x480 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 7}} /* shli r3, r2, 7 */ - }, - {1200 /* 0x4b0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1204 /* 0x4b4 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {1242 /* 0x4da */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {1280 /* 0x500 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {1292 /* 0x50c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1304 /* 0x518 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {1312 /* 0x520 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {1320 /* 0x528 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {1336 /* 0x538 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {1344 /* 0x540 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {1348 /* 0x544 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1360 /* 0x550 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {1364 /* 0x554 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {1395 /* 0x573 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}, /* shli r4, r3, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1448 /* 0x5a8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {1460 /* 0x5b4 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {1461 /* 0x5b5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {1472 /* 0x5c0 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 5}, /* shli r3, r1, 5 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {1488 /* 0x5d0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1512 /* 0x5e8 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 3}, /* shli r3, r2, 3 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1536 /* 0x600 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {1568 /* 0x620 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {1576 /* 0x628 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {1649 /* 0x671 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {1664 /* 0x680 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {1684 /* 0x694 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 2, 3}, /* s1a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {1696 /* 0x6a0 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 2, 2}, /* s2a r4, r2, r2 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {1744 /* 0x6d0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {1812 /* 0x714 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {2000 /* 0x7d0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {2012 /* 0x7dc */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2014 /* 0x7de */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2037 /* 0x7f5 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {4, 4, 1}} /* s2a r5, r4, r1 */ - }, - {2038 /* 0x7f6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2039 /* 0x7f7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2040 /* 0x7f8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2041 /* 0x7f9 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {2042 /* 0x7fa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {2043 /* 0x7fb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2044 /* 0x7fc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2045 /* 0x7fd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2046 /* 0x7fe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2047 /* 0x7ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2048 /* 0x800 */ , - {{6, 1, 11}} /* shli r2, r1, 11 */ - }, - {2049 /* 0x801 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2050 /* 0x802 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {2051 /* 0x803 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2052 /* 0x804 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {2053 /* 0x805 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2054 /* 0x806 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {2055 /* 0x807 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {2056 /* 0x808 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {2057 /* 0x809 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2058 /* 0x80a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {2064 /* 0x810 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2080 /* 0x820 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2100 /* 0x834 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 1, 11}, /* shli r4, r1, 11 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {2112 /* 0x840 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2144 /* 0x860 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {2176 /* 0x880 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2184 /* 0x888 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {2304 /* 0x900 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 8}} /* shli r3, r2, 8 */ - }, - {2320 /* 0x910 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {5, 3, 2}} /* s3a r4, r3, r2 */ - }, - {2408 /* 0x968 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {2560 /* 0xa00 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {2578 /* 0xa12 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {2592 /* 0xa20 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 5}} /* shli r4, r3, 5 */ - }, - {2633 /* 0xa49 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {2704 /* 0xa90 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {2730 /* 0xaaa */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 5}, /* shli r3, r2, 5 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {2880 /* 0xb40 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 6}} /* shli r4, r3, 6 */ - }, - {2896 /* 0xb50 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {3072 /* 0xc00 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {3079 /* 0xc07 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {3112 /* 0xc28 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {3192 /* 0xc78 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 2}, /* s2a r3, r2, r2 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {3240 /* 0xca8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {6, 4, 3}} /* shli r5, r4, 3 */ - }, - {3264 /* 0xcc0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {3328 /* 0xd00 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {3453 /* 0xd7d */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {3529 /* 0xdc9 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}, /* s3a r4, r2, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {3580 /* 0xdfc */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {3600 /* 0xe10 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 2, 3}, /* sub r4, r2, r3 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {3624 /* 0xe28 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {4000 /* 0xfa0 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 5}} /* shli r5, r4, 5 */ - }, - {4025 /* 0xfb9 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {4073 /* 0xfe9 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 4, 1}} /* s3a r5, r4, r1 */ - }, - {4086 /* 0xff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {4087 /* 0xff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4088 /* 0xff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4089 /* 0xff9 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {4090 /* 0xffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 11}, /* shli r3, r1, 11 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {4091 /* 0xffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4092 /* 0xffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4093 /* 0xffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4094 /* 0xffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4095 /* 0xfff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4096 /* 0x1000 */ , - {{6, 1, 12}} /* shli r2, r1, 12 */ - }, - {4097 /* 0x1001 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4098 /* 0x1002 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {4099 /* 0x1003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4100 /* 0x1004 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {4101 /* 0x1005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4102 /* 0x1006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {4103 /* 0x1007 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {4104 /* 0x1008 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {4105 /* 0x1009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4106 /* 0x100a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {4108 /* 0x100c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {4112 /* 0x1010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4128 /* 0x1020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4160 /* 0x1040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4184 /* 0x1058 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {4224 /* 0x1080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4352 /* 0x1100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4369 /* 0x1111 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {4376 /* 0x1118 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {4416 /* 0x1140 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {1, 2, 3}, /* add r4, r2, r3 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {4433 /* 0x1151 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {4482 /* 0x1182 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {5, 3, 1}, /* s3a r4, r3, r1 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {4608 /* 0x1200 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 9}} /* shli r3, r2, 9 */ - }, - {4712 /* 0x1268 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {5, 3, 4}} /* s3a r5, r3, r4 */ - }, - {4864 /* 0x1300 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {3, 2, 1}, /* s1a r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {5000 /* 0x1388 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {5040 /* 0x13b0 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 4}, /* shli r3, r2, 4 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {5120 /* 0x1400 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {5243 /* 0x147b */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 7}, /* shli r4, r3, 7 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {5285 /* 0x14a5 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 7}, /* shli r3, r2, 7 */ - {4, 2, 3}, /* s2a r4, r2, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {5329 /* 0x14d1 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {6144 /* 0x1800 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {6164 /* 0x1814 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 11}, /* shli r4, r2, 11 */ - {4, 3, 4}} /* s2a r5, r3, r4 */ - }, - {6400 /* 0x1900 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 8}} /* shli r4, r3, 8 */ - }, - {6406 /* 0x1906 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {3, 3, 3}, /* s1a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {6656 /* 0x1a00 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {4, 2, 1}, /* s2a r3, r2, r1 */ - {6, 3, 9}} /* shli r4, r3, 9 */ - }, - {7040 /* 0x1b80 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 6}, /* shli r3, r1, 6 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 7}} /* shli r5, r4, 7 */ - }, - {7169 /* 0x1c01 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {5, 2, 3}} /* s3a r4, r2, r3 */ - }, - {7678 /* 0x1dfe */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {7682 /* 0x1e02 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 1, 2}, /* sub r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {3, 3, 4}} /* s1a r5, r3, r4 */ - }, - {8000 /* 0x1f40 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 6}} /* shli r5, r4, 6 */ - }, - {8048 /* 0x1f70 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 4}} /* shli r5, r4, 4 */ - }, - {8182 /* 0x1ff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {8183 /* 0x1ff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8184 /* 0x1ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8185 /* 0x1ff9 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {8186 /* 0x1ffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 12}, /* shli r3, r1, 12 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {8187 /* 0x1ffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8188 /* 0x1ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8189 /* 0x1ffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8190 /* 0x1ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8191 /* 0x1fff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8192 /* 0x2000 */ , - {{6, 1, 13}} /* shli r2, r1, 13 */ - }, - {8193 /* 0x2001 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8194 /* 0x2002 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {8195 /* 0x2003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8196 /* 0x2004 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {8197 /* 0x2005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8198 /* 0x2006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {8199 /* 0x2007 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {8200 /* 0x2008 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {8201 /* 0x2009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8202 /* 0x200a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {8203 /* 0x200b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 10}, /* shli r3, r1, 10 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {8204 /* 0x200c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {4, 2, 3}} /* s2a r4, r2, r3 */ - }, - {8208 /* 0x2010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8224 /* 0x2020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8256 /* 0x2040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8320 /* 0x2080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8448 /* 0x2100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8520 /* 0x2148 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 8}, /* shli r3, r1, 8 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {8640 /* 0x21c0 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {8672 /* 0x21e0 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 3, 8}, /* shli r4, r3, 8 */ - {2, 4, 2}} /* sub r5, r4, r2 */ - }, - {8704 /* 0x2200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8716 /* 0x220c */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {4, 3, 2}, /* s2a r4, r3, r2 */ - {4, 4, 3}} /* s2a r5, r4, r3 */ - }, - {8728 /* 0x2218 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 9}, /* shli r3, r1, 9 */ - {3, 3, 2}, /* s1a r4, r3, r2 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {9216 /* 0x2400 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 10}} /* shli r3, r2, 10 */ - }, - {9217 /* 0x2401 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 10}, /* shli r3, r2, 10 */ - {1, 1, 3}} /* add r4, r1, r3 */ - }, - {9746 /* 0x2612 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {5, 3, 3}, /* s3a r4, r3, r3 */ - {3, 4, 2}} /* s1a r5, r4, r2 */ - }, - {9810 /* 0x2652 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 6}, /* shli r3, r2, 6 */ - {5, 3, 2}, /* s3a r4, r3, r2 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {10240 /* 0x2800 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {10248 /* 0x2808 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {4, 3, 2}} /* s2a r4, r3, r2 */ - }, - {10368 /* 0x2880 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 7}} /* shli r4, r3, 7 */ - }, - {10456 /* 0x28d8 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {5, 4, 2}} /* s3a r5, r4, r2 */ - }, - {10832 /* 0x2a50 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {4, 1, 2}, /* s2a r3, r1, r2 */ - {4, 3, 3}, /* s2a r4, r3, r3 */ - {4, 4, 2}} /* s2a r5, r4, r2 */ - }, - {11512 /* 0x2cf8 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {2, 3, 1}, /* sub r4, r3, r1 */ - {5, 4, 3}} /* s3a r5, r4, r3 */ - }, - {11522 /* 0x2d02 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {4, 3, 1}, /* s2a r4, r3, r1 */ - {3, 4, 3}} /* s1a r5, r4, r3 */ - }, - {11529 /* 0x2d09 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 8}, /* shli r3, r2, 8 */ - {1, 1, 3}, /* add r4, r1, r3 */ - {5, 4, 4}} /* s3a r5, r4, r4 */ - }, - {12288 /* 0x3000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {12299 /* 0x300b */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 1, 2}, /* s3a r3, r1, r2 */ - {6, 2, 12}, /* shli r4, r2, 12 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {16000 /* 0x3e80 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 7}, /* shli r3, r1, 7 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 7}} /* shli r5, r4, 7 */ - }, - {16374 /* 0x3ff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 11}, /* shli r4, r2, 11 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {16375 /* 0x3ff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16376 /* 0x3ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16377 /* 0x3ff9 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {16378 /* 0x3ffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 13}, /* shli r3, r1, 13 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {16379 /* 0x3ffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16380 /* 0x3ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16381 /* 0x3ffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16382 /* 0x3ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16383 /* 0x3fff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16384 /* 0x4000 */ , - {{6, 1, 14}} /* shli r2, r1, 14 */ - }, - {16385 /* 0x4001 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {16386 /* 0x4002 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {16387 /* 0x4003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16388 /* 0x4004 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {16389 /* 0x4005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16390 /* 0x4006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {16391 /* 0x4007 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {16392 /* 0x4008 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {16393 /* 0x4009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16394 /* 0x400a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {16400 /* 0x4010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16416 /* 0x4020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16448 /* 0x4040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16496 /* 0x4070 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {5, 2, 4}} /* s3a r5, r2, r4 */ - }, - {16512 /* 0x4080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16640 /* 0x4100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16896 /* 0x4200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17408 /* 0x4400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18432 /* 0x4800 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 11}} /* shli r3, r2, 11 */ - }, - {20480 /* 0x5000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {24576 /* 0x6000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {25600 /* 0x6400 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {5, 2, 1}, /* s3a r3, r2, r1 */ - {6, 3, 10}} /* shli r4, r3, 10 */ - }, - {32758 /* 0x7ff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 12}, /* shli r4, r2, 12 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {32759 /* 0x7ff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32760 /* 0x7ff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32761 /* 0x7ff9 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {32762 /* 0x7ffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 14}, /* shli r3, r1, 14 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {32763 /* 0x7ffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32764 /* 0x7ffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32765 /* 0x7ffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32766 /* 0x7ffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {32767 /* 0x7fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {32768 /* 0x8000 */ , - {{6, 1, 15}} /* shli r2, r1, 15 */ - }, - {32769 /* 0x8001 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {32770 /* 0x8002 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {32771 /* 0x8003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32772 /* 0x8004 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {32773 /* 0x8005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32774 /* 0x8006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {32775 /* 0x8007 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {32776 /* 0x8008 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {32777 /* 0x8009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32778 /* 0x800a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {32784 /* 0x8010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32800 /* 0x8020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32832 /* 0x8040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {32896 /* 0x8080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33024 /* 0x8100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33280 /* 0x8200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33792 /* 0x8400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34816 /* 0x8800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {36864 /* 0x9000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 12}} /* shli r3, r2, 12 */ - }, - {40960 /* 0xa000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {49152 /* 0xc000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {65526 /* 0xfff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 13}, /* shli r4, r2, 13 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {65527 /* 0xfff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65528 /* 0xfff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65529 /* 0xfff9 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {65530 /* 0xfffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 15}, /* shli r3, r1, 15 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {65531 /* 0xfffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65532 /* 0xfffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65533 /* 0xfffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65534 /* 0xfffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {65535 /* 0xffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {65536 /* 0x10000 */ , - {{6, 1, 16}} /* shli r2, r1, 16 */ - }, - {65537 /* 0x10001 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {65538 /* 0x10002 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {65539 /* 0x10003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65540 /* 0x10004 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {65541 /* 0x10005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65542 /* 0x10006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {65543 /* 0x10007 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {65544 /* 0x10008 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {65545 /* 0x10009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65546 /* 0x1000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {65552 /* 0x10010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65568 /* 0x10020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65600 /* 0x10040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65664 /* 0x10080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {65792 /* 0x10100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {66048 /* 0x10200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {66560 /* 0x10400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67584 /* 0x10800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69632 /* 0x11000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {73728 /* 0x12000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 13}} /* shli r3, r2, 13 */ - }, - {81920 /* 0x14000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {98304 /* 0x18000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {131062 /* 0x1fff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 14}, /* shli r4, r2, 14 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {131063 /* 0x1fff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131064 /* 0x1fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131065 /* 0x1fff9 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {131066 /* 0x1fffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 16}, /* shli r3, r1, 16 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {131067 /* 0x1fffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131068 /* 0x1fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131069 /* 0x1fffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131070 /* 0x1fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {131071 /* 0x1ffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {131072 /* 0x20000 */ , - {{6, 1, 17}} /* shli r2, r1, 17 */ - }, - {131073 /* 0x20001 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {131074 /* 0x20002 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {131075 /* 0x20003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131076 /* 0x20004 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {131077 /* 0x20005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131078 /* 0x20006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {131079 /* 0x20007 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {131080 /* 0x20008 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {131081 /* 0x20009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131082 /* 0x2000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {131088 /* 0x20010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131104 /* 0x20020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131136 /* 0x20040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131200 /* 0x20080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131328 /* 0x20100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {131584 /* 0x20200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {132096 /* 0x20400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {133120 /* 0x20800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {135168 /* 0x21000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {139264 /* 0x22000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {147456 /* 0x24000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 14}} /* shli r3, r2, 14 */ - }, - {163840 /* 0x28000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {196608 /* 0x30000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {262134 /* 0x3fff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 15}, /* shli r4, r2, 15 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {262135 /* 0x3fff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262136 /* 0x3fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262137 /* 0x3fff9 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {262138 /* 0x3fffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 17}, /* shli r3, r1, 17 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {262139 /* 0x3fffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262140 /* 0x3fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262141 /* 0x3fffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262142 /* 0x3fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {262143 /* 0x3ffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {262144 /* 0x40000 */ , - {{6, 1, 18}} /* shli r2, r1, 18 */ - }, - {262145 /* 0x40001 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {262146 /* 0x40002 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {262147 /* 0x40003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262148 /* 0x40004 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {262149 /* 0x40005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262150 /* 0x40006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {262151 /* 0x40007 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {262152 /* 0x40008 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {262153 /* 0x40009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262154 /* 0x4000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {262160 /* 0x40010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262176 /* 0x40020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262208 /* 0x40040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262272 /* 0x40080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262400 /* 0x40100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {262656 /* 0x40200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {263168 /* 0x40400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {264192 /* 0x40800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {266240 /* 0x41000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {270336 /* 0x42000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {278528 /* 0x44000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {294912 /* 0x48000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 15}} /* shli r3, r2, 15 */ - }, - {327680 /* 0x50000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {393216 /* 0x60000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {524278 /* 0x7fff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 16}, /* shli r4, r2, 16 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {524279 /* 0x7fff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524280 /* 0x7fff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524281 /* 0x7fff9 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {524282 /* 0x7fffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 18}, /* shli r3, r1, 18 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {524283 /* 0x7fffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524284 /* 0x7fffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524285 /* 0x7fffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524286 /* 0x7fffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {524287 /* 0x7ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {524288 /* 0x80000 */ , - {{6, 1, 19}} /* shli r2, r1, 19 */ - }, - {524289 /* 0x80001 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {524290 /* 0x80002 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {524291 /* 0x80003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524292 /* 0x80004 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {524293 /* 0x80005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524294 /* 0x80006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {524295 /* 0x80007 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {524296 /* 0x80008 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {524297 /* 0x80009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524298 /* 0x8000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {524304 /* 0x80010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524320 /* 0x80020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524352 /* 0x80040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524416 /* 0x80080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524544 /* 0x80100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {524800 /* 0x80200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {525312 /* 0x80400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {526336 /* 0x80800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {528384 /* 0x81000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {532480 /* 0x82000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {540672 /* 0x84000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {557056 /* 0x88000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {589824 /* 0x90000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 16}} /* shli r3, r2, 16 */ - }, - {655360 /* 0xa0000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {786432 /* 0xc0000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {1048566 /* 0xffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 17}, /* shli r4, r2, 17 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1048567 /* 0xffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048568 /* 0xffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048569 /* 0xffff9 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {1048570 /* 0xffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 19}, /* shli r3, r1, 19 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {1048571 /* 0xffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048572 /* 0xffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048573 /* 0xffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048574 /* 0xffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1048575 /* 0xfffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1048576 /* 0x100000 */ , - {{6, 1, 20}} /* shli r2, r1, 20 */ - }, - {1048577 /* 0x100001 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1048578 /* 0x100002 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {1048579 /* 0x100003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048580 /* 0x100004 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {1048581 /* 0x100005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048582 /* 0x100006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1048583 /* 0x100007 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {1048584 /* 0x100008 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {1048585 /* 0x100009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048586 /* 0x10000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1048592 /* 0x100010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048608 /* 0x100020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048640 /* 0x100040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048704 /* 0x100080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1048832 /* 0x100100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1049088 /* 0x100200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1049600 /* 0x100400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1050624 /* 0x100800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1052672 /* 0x101000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1056768 /* 0x102000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1064960 /* 0x104000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1081344 /* 0x108000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1114112 /* 0x110000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1179648 /* 0x120000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 17}} /* shli r3, r2, 17 */ - }, - {1310720 /* 0x140000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {1572864 /* 0x180000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {2097142 /* 0x1ffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 18}, /* shli r4, r2, 18 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2097143 /* 0x1ffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097144 /* 0x1ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097145 /* 0x1ffff9 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {2097146 /* 0x1ffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 20}, /* shli r3, r1, 20 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {2097147 /* 0x1ffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097148 /* 0x1ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097149 /* 0x1ffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097150 /* 0x1ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2097151 /* 0x1fffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {2097152 /* 0x200000 */ , - {{6, 1, 21}} /* shli r2, r1, 21 */ - }, - {2097153 /* 0x200001 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {2097154 /* 0x200002 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {2097155 /* 0x200003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097156 /* 0x200004 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {2097157 /* 0x200005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097158 /* 0x200006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {2097159 /* 0x200007 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {2097160 /* 0x200008 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {2097161 /* 0x200009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097162 /* 0x20000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {2097168 /* 0x200010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097184 /* 0x200020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097216 /* 0x200040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097280 /* 0x200080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097408 /* 0x200100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2097664 /* 0x200200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2098176 /* 0x200400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2099200 /* 0x200800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2101248 /* 0x201000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2105344 /* 0x202000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2113536 /* 0x204000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2129920 /* 0x208000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2162688 /* 0x210000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2228224 /* 0x220000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {2359296 /* 0x240000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 18}} /* shli r3, r2, 18 */ - }, - {2621440 /* 0x280000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {3145728 /* 0x300000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {4194294 /* 0x3ffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 19}, /* shli r4, r2, 19 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {4194295 /* 0x3ffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194296 /* 0x3ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194297 /* 0x3ffff9 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {4194298 /* 0x3ffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 21}, /* shli r3, r1, 21 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {4194299 /* 0x3ffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194300 /* 0x3ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194301 /* 0x3ffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194302 /* 0x3ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {4194303 /* 0x3fffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {4194304 /* 0x400000 */ , - {{6, 1, 22}} /* shli r2, r1, 22 */ - }, - {4194305 /* 0x400001 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {4194306 /* 0x400002 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {4194307 /* 0x400003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194308 /* 0x400004 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {4194309 /* 0x400005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194310 /* 0x400006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {4194311 /* 0x400007 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {4194312 /* 0x400008 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {4194313 /* 0x400009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194314 /* 0x40000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {4194320 /* 0x400010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194336 /* 0x400020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194368 /* 0x400040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194432 /* 0x400080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194560 /* 0x400100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4194816 /* 0x400200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4195328 /* 0x400400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4196352 /* 0x400800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4198400 /* 0x401000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4202496 /* 0x402000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4210688 /* 0x404000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4227072 /* 0x408000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4259840 /* 0x410000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4325376 /* 0x420000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4456448 /* 0x440000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {4718592 /* 0x480000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 19}} /* shli r3, r2, 19 */ - }, - {5242880 /* 0x500000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {6291456 /* 0x600000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {8388598 /* 0x7ffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 20}, /* shli r4, r2, 20 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {8388599 /* 0x7ffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388600 /* 0x7ffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388601 /* 0x7ffff9 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {8388602 /* 0x7ffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 22}, /* shli r3, r1, 22 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {8388603 /* 0x7ffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388604 /* 0x7ffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388605 /* 0x7ffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388606 /* 0x7ffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {8388607 /* 0x7fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {8388608 /* 0x800000 */ , - {{6, 1, 23}} /* shli r2, r1, 23 */ - }, - {8388609 /* 0x800001 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {8388610 /* 0x800002 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {8388611 /* 0x800003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388612 /* 0x800004 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {8388613 /* 0x800005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388614 /* 0x800006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {8388615 /* 0x800007 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {8388616 /* 0x800008 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {8388617 /* 0x800009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388618 /* 0x80000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {8388624 /* 0x800010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388640 /* 0x800020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388672 /* 0x800040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388736 /* 0x800080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8388864 /* 0x800100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8389120 /* 0x800200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8389632 /* 0x800400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8390656 /* 0x800800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8392704 /* 0x801000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8396800 /* 0x802000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8404992 /* 0x804000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8421376 /* 0x808000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8454144 /* 0x810000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8519680 /* 0x820000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8650752 /* 0x840000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {8912896 /* 0x880000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {9437184 /* 0x900000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 20}} /* shli r3, r2, 20 */ - }, - {10485760 /* 0xa00000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {11796480 /* 0xb40000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 18}} /* shli r4, r3, 18 */ - }, - {12582912 /* 0xc00000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {16777206 /* 0xfffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 21}, /* shli r4, r2, 21 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {16777207 /* 0xfffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777208 /* 0xfffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777209 /* 0xfffff9 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {16777210 /* 0xfffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 23}, /* shli r3, r1, 23 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {16777211 /* 0xfffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777212 /* 0xfffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777213 /* 0xfffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777214 /* 0xfffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {16777215 /* 0xffffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {16777216 /* 0x1000000 */ , - {{6, 1, 24}} /* shli r2, r1, 24 */ - }, - {16777217 /* 0x1000001 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {16777218 /* 0x1000002 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {16777219 /* 0x1000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777220 /* 0x1000004 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {16777221 /* 0x1000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777222 /* 0x1000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {16777223 /* 0x1000007 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {16777224 /* 0x1000008 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {16777225 /* 0x1000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777226 /* 0x100000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {16777232 /* 0x1000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777248 /* 0x1000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777280 /* 0x1000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777344 /* 0x1000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777472 /* 0x1000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16777728 /* 0x1000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16778240 /* 0x1000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16779264 /* 0x1000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16781312 /* 0x1001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16785408 /* 0x1002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16793600 /* 0x1004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16809984 /* 0x1008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16842752 /* 0x1010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {16843009 /* 0x1010101 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 3, 16}, /* shli r4, r3, 16 */ - {1, 3, 4}} /* add r5, r3, r4 */ - }, - {16908288 /* 0x1020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17039360 /* 0x1040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17301504 /* 0x1080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {17825792 /* 0x1100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {18874368 /* 0x1200000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 21}} /* shli r3, r2, 21 */ - }, - {20971520 /* 0x1400000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {23592960 /* 0x1680000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {5, 2, 2}, /* s3a r3, r2, r2 */ - {6, 3, 19}} /* shli r4, r3, 19 */ - }, - {25165824 /* 0x1800000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {33554422 /* 0x1fffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 22}, /* shli r4, r2, 22 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {33554423 /* 0x1fffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554424 /* 0x1fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554425 /* 0x1fffff9 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {33554426 /* 0x1fffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 24}, /* shli r3, r1, 24 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {33554427 /* 0x1fffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554428 /* 0x1fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554429 /* 0x1fffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554430 /* 0x1fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {33554431 /* 0x1ffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {33554432 /* 0x2000000 */ , - {{6, 1, 25}} /* shli r2, r1, 25 */ - }, - {33554433 /* 0x2000001 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {33554434 /* 0x2000002 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {33554435 /* 0x2000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554436 /* 0x2000004 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {33554437 /* 0x2000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554438 /* 0x2000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {33554439 /* 0x2000007 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {33554440 /* 0x2000008 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {33554441 /* 0x2000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554442 /* 0x200000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {33554448 /* 0x2000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554464 /* 0x2000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554496 /* 0x2000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554560 /* 0x2000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554688 /* 0x2000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33554944 /* 0x2000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33555456 /* 0x2000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33556480 /* 0x2000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33558528 /* 0x2001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33562624 /* 0x2002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33570816 /* 0x2004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33587200 /* 0x2008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33619968 /* 0x2010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33685504 /* 0x2020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {33816576 /* 0x2040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34078720 /* 0x2080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {34603008 /* 0x2100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {35651584 /* 0x2200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {37748736 /* 0x2400000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 22}} /* shli r3, r2, 22 */ - }, - {41943040 /* 0x2800000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {50331648 /* 0x3000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {67108854 /* 0x3fffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 23}, /* shli r4, r2, 23 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {67108855 /* 0x3fffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108856 /* 0x3fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108857 /* 0x3fffff9 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {67108858 /* 0x3fffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 25}, /* shli r3, r1, 25 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {67108859 /* 0x3fffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108860 /* 0x3fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108861 /* 0x3fffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108862 /* 0x3fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {67108863 /* 0x3ffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {67108864 /* 0x4000000 */ , - {{6, 1, 26}} /* shli r2, r1, 26 */ - }, - {67108865 /* 0x4000001 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {67108866 /* 0x4000002 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {67108867 /* 0x4000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108868 /* 0x4000004 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {67108869 /* 0x4000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108870 /* 0x4000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {67108871 /* 0x4000007 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {67108872 /* 0x4000008 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {67108873 /* 0x4000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108874 /* 0x400000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {67108880 /* 0x4000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108896 /* 0x4000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108928 /* 0x4000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67108992 /* 0x4000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109120 /* 0x4000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109376 /* 0x4000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67109888 /* 0x4000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67110912 /* 0x4000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67112960 /* 0x4001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67117056 /* 0x4002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67125248 /* 0x4004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67141632 /* 0x4008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67174400 /* 0x4010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67239936 /* 0x4020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67371008 /* 0x4040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {67633152 /* 0x4080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {68157440 /* 0x4100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {69206016 /* 0x4200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {71303168 /* 0x4400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {75497472 /* 0x4800000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 23}} /* shli r3, r2, 23 */ - }, - {83886080 /* 0x5000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {100663296 /* 0x6000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {134217718 /* 0x7fffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 24}, /* shli r4, r2, 24 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {134217719 /* 0x7fffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217720 /* 0x7fffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217721 /* 0x7fffff9 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {134217722 /* 0x7fffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 26}, /* shli r3, r1, 26 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {134217723 /* 0x7fffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217724 /* 0x7fffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217725 /* 0x7fffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217726 /* 0x7fffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {134217727 /* 0x7ffffff */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {134217728 /* 0x8000000 */ , - {{6, 1, 27}} /* shli r2, r1, 27 */ - }, - {134217729 /* 0x8000001 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {134217730 /* 0x8000002 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {134217731 /* 0x8000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217732 /* 0x8000004 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {134217733 /* 0x8000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217734 /* 0x8000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {134217735 /* 0x8000007 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {134217736 /* 0x8000008 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {134217737 /* 0x8000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217738 /* 0x800000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {134217744 /* 0x8000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217760 /* 0x8000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217792 /* 0x8000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217856 /* 0x8000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134217984 /* 0x8000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134218240 /* 0x8000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134218752 /* 0x8000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134219776 /* 0x8000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134221824 /* 0x8001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134225920 /* 0x8002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134234112 /* 0x8004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134250496 /* 0x8008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134283264 /* 0x8010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134348800 /* 0x8020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134479872 /* 0x8040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {134742016 /* 0x8080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {135266304 /* 0x8100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {136314880 /* 0x8200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {138412032 /* 0x8400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {142606336 /* 0x8800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {150994944 /* 0x9000000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 24}} /* shli r3, r2, 24 */ - }, - {167772160 /* 0xa000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {201326592 /* 0xc000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {268435446 /* 0xffffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 25}, /* shli r4, r2, 25 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {268435447 /* 0xffffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435448 /* 0xffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435449 /* 0xffffff9 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {268435450 /* 0xffffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 27}, /* shli r3, r1, 27 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {268435451 /* 0xffffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435452 /* 0xffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435453 /* 0xffffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435454 /* 0xffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {268435455 /* 0xfffffff */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {268435456 /* 0x10000000 */ , - {{6, 1, 28}} /* shli r2, r1, 28 */ - }, - {268435457 /* 0x10000001 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {268435458 /* 0x10000002 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {268435459 /* 0x10000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435460 /* 0x10000004 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {268435461 /* 0x10000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435462 /* 0x10000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {268435463 /* 0x10000007 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {268435464 /* 0x10000008 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {268435465 /* 0x10000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435466 /* 0x1000000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {268435472 /* 0x10000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435488 /* 0x10000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435520 /* 0x10000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435584 /* 0x10000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435712 /* 0x10000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268435968 /* 0x10000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268436480 /* 0x10000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268437504 /* 0x10000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268439552 /* 0x10001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268443648 /* 0x10002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268451840 /* 0x10004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268468224 /* 0x10008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268500992 /* 0x10010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268566528 /* 0x10020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268697600 /* 0x10040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {268959744 /* 0x10080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {269484032 /* 0x10100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {270532608 /* 0x10200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {272629760 /* 0x10400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {276824064 /* 0x10800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {285212672 /* 0x11000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {301989888 /* 0x12000000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 25}} /* shli r3, r2, 25 */ - }, - {335544320 /* 0x14000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {402653184 /* 0x18000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {536870902 /* 0x1ffffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 26}, /* shli r4, r2, 26 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {536870903 /* 0x1ffffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870904 /* 0x1ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870905 /* 0x1ffffff9 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {536870906 /* 0x1ffffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 28}, /* shli r3, r1, 28 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {536870907 /* 0x1ffffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870908 /* 0x1ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870909 /* 0x1ffffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870910 /* 0x1ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {536870911 /* 0x1fffffff */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {536870912 /* 0x20000000 */ , - {{6, 1, 29}} /* shli r2, r1, 29 */ - }, - {536870913 /* 0x20000001 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {536870914 /* 0x20000002 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {536870915 /* 0x20000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870916 /* 0x20000004 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {536870917 /* 0x20000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870918 /* 0x20000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {536870919 /* 0x20000007 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {536870920 /* 0x20000008 */ , - {{6, 1, 29}, /* shli r2, r1, 29 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {536870921 /* 0x20000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870922 /* 0x2000000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {536870928 /* 0x20000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870944 /* 0x20000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536870976 /* 0x20000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871040 /* 0x20000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871168 /* 0x20000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871424 /* 0x20000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536871936 /* 0x20000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536872960 /* 0x20000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536875008 /* 0x20001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536879104 /* 0x20002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536887296 /* 0x20004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536903680 /* 0x20008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {536936448 /* 0x20010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537001984 /* 0x20020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537133056 /* 0x20040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537395200 /* 0x20080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {537919488 /* 0x20100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {538968064 /* 0x20200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {541065216 /* 0x20400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {545259520 /* 0x20800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {553648128 /* 0x21000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {570425344 /* 0x22000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {603979776 /* 0x24000000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 26}} /* shli r3, r2, 26 */ - }, - {671088640 /* 0x28000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {805306368 /* 0x30000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {1073741814 /* 0x3ffffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 27}, /* shli r4, r2, 27 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {1073741815 /* 0x3ffffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741816 /* 0x3ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741817 /* 0x3ffffff9 */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {1073741818 /* 0x3ffffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 29}, /* shli r3, r1, 29 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {1073741819 /* 0x3ffffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741820 /* 0x3ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741821 /* 0x3ffffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741822 /* 0x3ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {1073741823 /* 0x3fffffff */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - }, - {1073741824 /* 0x40000000 */ , - {{6, 1, 30}} /* shli r2, r1, 30 */ - }, - {1073741825 /* 0x40000001 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {1, 1, 2}} /* add r3, r1, r2 */ - }, - {1073741826 /* 0x40000002 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {3, 1, 2}} /* s1a r3, r1, r2 */ - }, - {1073741827 /* 0x40000003 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741828 /* 0x40000004 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {4, 1, 2}} /* s2a r3, r1, r2 */ - }, - {1073741829 /* 0x40000005 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741830 /* 0x40000006 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1073741831 /* 0x40000007 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 1, 3}} /* s3a r4, r1, r3 */ - }, - {1073741832 /* 0x40000008 */ , - {{6, 1, 30}, /* shli r2, r1, 30 */ - {5, 1, 2}} /* s3a r3, r1, r2 */ - }, - {1073741833 /* 0x40000009 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741834 /* 0x4000000a */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {3, 2, 3}} /* s1a r4, r2, r3 */ - }, - {1073741840 /* 0x40000010 */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741856 /* 0x40000020 */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741888 /* 0x40000040 */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073741952 /* 0x40000080 */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742080 /* 0x40000100 */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742336 /* 0x40000200 */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073742848 /* 0x40000400 */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073743872 /* 0x40000800 */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073745920 /* 0x40001000 */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073750016 /* 0x40002000 */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073758208 /* 0x40004000 */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073774592 /* 0x40008000 */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073807360 /* 0x40010000 */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1073872896 /* 0x40020000 */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074003968 /* 0x40040000 */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074266112 /* 0x40080000 */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1074790400 /* 0x40100000 */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1075838976 /* 0x40200000 */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1077936128 /* 0x40400000 */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1082130432 /* 0x40800000 */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1090519040 /* 0x41000000 */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1107296256 /* 0x42000000 */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1140850688 /* 0x44000000 */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {1, 2, 3}} /* add r4, r2, r3 */ - }, - {1207959552 /* 0x48000000 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 2, 27}} /* shli r3, r2, 27 */ - }, - {1342177280 /* 0x50000000 */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 2, 28}} /* shli r3, r2, 28 */ - }, - {1610612735 /* 0x5fffffff */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 29}, /* shli r3, r2, 29 */ - {2, 3, 1}} /* sub r4, r3, r1 */ - }, - {1610612736 /* 0x60000000 */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 2, 29}} /* shli r3, r2, 29 */ - }, - {1879048191 /* 0x6fffffff */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 3}, /* shli r4, r2, 3 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2013265919 /* 0x77ffffff */ , - {{6, 1, 27}, /* shli r2, r1, 27 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 4}, /* shli r4, r2, 4 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2080374783 /* 0x7bffffff */ , - {{6, 1, 26}, /* shli r2, r1, 26 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 5}, /* shli r4, r2, 5 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2113929215 /* 0x7dffffff */ , - {{6, 1, 25}, /* shli r2, r1, 25 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 6}, /* shli r4, r2, 6 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2130706431 /* 0x7effffff */ , - {{6, 1, 24}, /* shli r2, r1, 24 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 7}, /* shli r4, r2, 7 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2139095039 /* 0x7f7fffff */ , - {{6, 1, 23}, /* shli r2, r1, 23 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 8}, /* shli r4, r2, 8 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2143289343 /* 0x7fbfffff */ , - {{6, 1, 22}, /* shli r2, r1, 22 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 9}, /* shli r4, r2, 9 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2145386495 /* 0x7fdfffff */ , - {{6, 1, 21}, /* shli r2, r1, 21 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 10}, /* shli r4, r2, 10 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2146435071 /* 0x7fefffff */ , - {{6, 1, 20}, /* shli r2, r1, 20 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 11}, /* shli r4, r2, 11 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2146959359 /* 0x7ff7ffff */ , - {{6, 1, 19}, /* shli r2, r1, 19 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 12}, /* shli r4, r2, 12 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147221503 /* 0x7ffbffff */ , - {{6, 1, 18}, /* shli r2, r1, 18 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 13}, /* shli r4, r2, 13 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147352575 /* 0x7ffdffff */ , - {{6, 1, 17}, /* shli r2, r1, 17 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 14}, /* shli r4, r2, 14 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147418111 /* 0x7ffeffff */ , - {{6, 1, 16}, /* shli r2, r1, 16 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 15}, /* shli r4, r2, 15 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147450879 /* 0x7fff7fff */ , - {{6, 1, 15}, /* shli r2, r1, 15 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 16}, /* shli r4, r2, 16 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147467263 /* 0x7fffbfff */ , - {{6, 1, 14}, /* shli r2, r1, 14 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 17}, /* shli r4, r2, 17 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147475455 /* 0x7fffdfff */ , - {{6, 1, 13}, /* shli r2, r1, 13 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 18}, /* shli r4, r2, 18 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147479551 /* 0x7fffefff */ , - {{6, 1, 12}, /* shli r2, r1, 12 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 19}, /* shli r4, r2, 19 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147481599 /* 0x7ffff7ff */ , - {{6, 1, 11}, /* shli r2, r1, 11 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 20}, /* shli r4, r2, 20 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147482623 /* 0x7ffffbff */ , - {{6, 1, 10}, /* shli r2, r1, 10 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 21}, /* shli r4, r2, 21 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483135 /* 0x7ffffdff */ , - {{6, 1, 9}, /* shli r2, r1, 9 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 22}, /* shli r4, r2, 22 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483391 /* 0x7ffffeff */ , - {{6, 1, 8}, /* shli r2, r1, 8 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 23}, /* shli r4, r2, 23 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483519 /* 0x7fffff7f */ , - {{6, 1, 7}, /* shli r2, r1, 7 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 24}, /* shli r4, r2, 24 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483583 /* 0x7fffffbf */ , - {{6, 1, 6}, /* shli r2, r1, 6 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 25}, /* shli r4, r2, 25 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483615 /* 0x7fffffdf */ , - {{6, 1, 5}, /* shli r2, r1, 5 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 26}, /* shli r4, r2, 26 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483631 /* 0x7fffffef */ , - {{6, 1, 4}, /* shli r2, r1, 4 */ - {1, 1, 2}, /* add r3, r1, r2 */ - {6, 2, 27}, /* shli r4, r2, 27 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483638 /* 0x7ffffff6 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {3, 1, 2}, /* s1a r3, r1, r2 */ - {6, 2, 28}, /* shli r4, r2, 28 */ - {2, 4, 3}} /* sub r5, r4, r3 */ - }, - {2147483639 /* 0x7ffffff7 */ , - {{5, 1, 1}, /* s3a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483640 /* 0x7ffffff8 */ , - {{6, 1, 3}, /* shli r2, r1, 3 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483641 /* 0x7ffffff9 */ , - {{6, 1, 28}, /* shli r2, r1, 28 */ - {2, 2, 1}, /* sub r3, r2, r1 */ - {5, 3, 1}} /* s3a r4, r3, r1 */ - }, - {2147483642 /* 0x7ffffffa */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 30}, /* shli r3, r1, 30 */ - {2, 3, 2}, /* sub r4, r3, r2 */ - {6, 4, 1}} /* shli r5, r4, 1 */ - }, - {2147483643 /* 0x7ffffffb */ , - {{4, 1, 1}, /* s2a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483644 /* 0x7ffffffc */ , - {{6, 1, 2}, /* shli r2, r1, 2 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483645 /* 0x7ffffffd */ , - {{3, 1, 1}, /* s1a r2, r1, r1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483646 /* 0x7ffffffe */ , - {{6, 1, 1}, /* shli r2, r1, 1 */ - {6, 1, 31}, /* shli r3, r1, 31 */ - {2, 3, 2}} /* sub r4, r3, r2 */ - }, - {2147483647 /* 0x7fffffff */ , - {{6, 1, 31}, /* shli r2, r1, 31 */ - {2, 2, 1}} /* sub r3, r2, r1 */ - } -}; - -const int tilepro_multiply_insn_seq_table_size = - (int) (sizeof tilepro_multiply_insn_seq_table - / sizeof tilepro_multiply_insn_seq_table[0]); diff --git a/gcc/config/tilepro/predicates.md b/gcc/config/tilepro/predicates.md deleted file mode 100644 index bc368c0..0000000 --- a/gcc/config/tilepro/predicates.md +++ /dev/null @@ -1,258 +0,0 @@ -;; Predicate definitions for Tilera TILEPro chip. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -;; Return true if OP is the zero constant for MODE. -(define_predicate "const_zero_operand" - (and (match_code "const_int,const_double,const_vector") - (match_test "op == CONST0_RTX (mode)"))) - -;; Returns true if OP is either the constant zero or a register. -(define_predicate "reg_or_0_operand" - (and (ior (match_operand 0 "register_operand") - (match_operand 0 "const_zero_operand")) - (match_test "GET_MODE_SIZE (mode) <= UNITS_PER_WORD"))) - -; Return 1 if OP is a network register identifier. -(define_predicate "netreg_operand" - (and (match_code "const_int") - (match_test "IN_RANGE (INTVAL (op), 0, 6)"))) - -; Return 1 if OP is an unsigned 5-bit constant. -(define_predicate "u5bit_cint_operand" - (and (match_code "const_int") - (match_test "INTVAL (op) == (INTVAL (op) & 0x1F)"))) - -;; Return 1 if OP is an unsigned 16-bit constant. -(define_predicate "u16bit_cint_operand" - (and (match_code "const_int") - (match_test "(unsigned HOST_WIDE_INT)INTVAL (op) < (1U << 16)"))) - -;; Return 1 if OP is a signed 8-bit constant. -(define_predicate "s8bit_cint_operand" - (and (match_code "const_int") - (match_test "satisfies_constraint_I (op)"))) - -;; Return 1 if OP is a signed 16-bit constant. -(define_predicate "s16bit_cint_operand" - (and (match_code "const_int") - (match_test "satisfies_constraint_J (op)"))) - -;; Return 1 if OP is a nonzero integer constant whose low 16 bits are zero. -(define_predicate "auli_cint_operand" - (and (match_code "const_int") - (match_test "satisfies_constraint_K (op)"))) - -;; Return 1 if OP is an unsigned 15-bit constant. -(define_predicate "u15bit_cint_operand" - (and (match_code "const_int") - (match_test "(unsigned HOST_WIDE_INT)INTVAL (op) < (1U << 15)"))) - -;; Return 1 if OP is a constant or any register. -(define_predicate "reg_or_cint_operand" - (ior (match_operand 0 "register_operand") - (match_operand 0 "const_int_operand"))) - -;; Return 1 if OP is a 4-element vector constant with identical signed -;; 8-bit elements or any register. -(define_predicate "reg_or_v4s8bit_operand" - (ior (match_operand 0 "register_operand") - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 4 - && (satisfies_constraint_I - (unwrap_const_vec_duplicate (op)))")))) - -;; Return 1 if OP is a 2-element vector constant with identical signed -;; 8-bit elements or any register. -(define_predicate "reg_or_v2s8bit_operand" - (ior (match_operand 0 "register_operand") - (and (match_code "const_vector") - (match_test "CONST_VECTOR_NUNITS (op) == 2 - && (satisfies_constraint_I - (unwrap_const_vec_duplicate (op)))")))) - -;; Return 1 if the operand is a valid second operand to an add insn. -(define_predicate "add_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_J (op) || satisfies_constraint_K (op)") - (match_operand 0 "register_operand"))) - -;; Return 1 if the operand is a register or signed 8-bit immediate operand. -(define_predicate "reg_or_s8bit_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_I (op)") - (match_operand 0 "register_operand"))) - -;; Return 1 for an operand suitable for ANDing with a register. -(define_predicate "and_operand" - (if_then_else (match_code "const_int") - (match_test "satisfies_constraint_I (op) || satisfies_constraint_M (op)") - (match_operand 0 "register_operand"))) - -;; Return 1 if the operand is a register or unsigned 5-bit immediate operand. -(define_predicate "reg_or_u5bit_operand" - (if_then_else (match_code "const_int") - (match_test "INTVAL (op) == (INTVAL (op) & 0x1F)") - (match_operand 0 "register_operand"))) - -; Return 1 if the operand is 2, 4 or 8. -(define_predicate "cint_248_operand" - (and (match_code "const_int") - (match_test - "INTVAL (op) == 2 || INTVAL (op) == 4 || INTVAL (op) == 8"))) - - -;; Return true if OP is a TLS symbolic operand. -(define_predicate "tls_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) != TLS_MODEL_NONE"))) - -;; Return true if OP is a symbolic operand for the TLS Global Dynamic model. -(define_predicate "tls_gd_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_GLOBAL_DYNAMIC"))) - -;; Return true if OP is a symbolic operand for the TLS Local Dynamic model. -(define_predicate "tls_ld_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_DYNAMIC"))) - -;; Return true if OP is a symbolic operand that can be used for the -;; TLS Initial Exec model. -(define_predicate "tls_ie_symbolic_operand" - (and (match_code "symbol_ref") - (ior (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_INITIAL_EXEC") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC")))) - -;; Return true if OP is a symbolic operand for the TLS Local Exec model. -(define_predicate "tls_le_symbolic_operand" - (and (match_code "symbol_ref") - (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC"))) - -;; Returns true if OP is any general operand except for an -;; auto-incrementing address operand. -(define_predicate "nonautoinc_operand" - (and (match_operand 0 "general_operand") - (not (ior (match_code "pre_dec") (match_code "pre_inc") - (match_code "post_dec") (match_code "post_inc") - (match_code "post_modify") (match_code "pre_modify"))))) - -;; Returns true if OP is a non-auto-incrementing memory operand. -(define_predicate "nonautoincmem_operand" - (match_operand 0 "memory_operand") -{ - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); -}) - -;; Returns true if OP is a non-auto-incrementing memory, general -;; operand. -(define_predicate "nonautoincmem_general_operand" - (match_operand 0 "general_operand") -{ - if (memory_operand (op, mode)) - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); - else - return true; -}) - -;; Returns true if OP is a non-auto-incrementing memory, non-immediate -;; operand. -(define_predicate "nonautoincmem_nonimmediate_operand" - (match_operand 0 "nonimmediate_operand") -{ - if (memory_operand (op, mode)) - return nonautoinc_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0))); - else - return true; -}) - -;; Return true if OP is a valid operand for the source of a move insn. -(define_predicate "move_operand" - (match_operand 0 "general_operand") -{ - /* If both modes are non-void they must be the same. */ - if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op)) - return false; - - if (GET_MODE_SIZE (mode) > 4) - return false; - - switch (GET_CODE (op)) - { - case CONST_INT: - return (satisfies_constraint_J (op) - || satisfies_constraint_K (op) - || satisfies_constraint_N (op) - || satisfies_constraint_P (op)); - - case HIGH: - return true; - - case MEM: - return memory_address_p (mode, XEXP (op, 0)); - - default: - return register_operand (op, mode); - } -}) - -;; Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref, -;; possibly with an offset. -(define_predicate "symbolic_operand" - (ior (match_code "symbol_ref,label_ref") - (and (match_code "const") - (match_test "GET_CODE (XEXP (op,0)) == PLUS - && (GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF - || GET_CODE (XEXP (XEXP (op,0), 0)) == LABEL_REF) - && CONST_INT_P (XEXP (XEXP (op,0), 1))")))) - -;; Returns 1 if OP is a symbolic operand, or a const unspec wrapper -;; representing a got reference, a tls reference, or pc-relative -;; reference. -(define_predicate "const_symbolic_operand" - (ior (match_operand 0 "symbolic_operand") - (and (match_code "const") - (match_test "GET_CODE (XEXP (op,0)) == UNSPEC") - (ior (match_test "XINT (XEXP (op,0), 1) == UNSPEC_GOT16_SYM") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_GOT32_SYM") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_PCREL_SYM") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_TLS_GD") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_TLS_IE") - (match_test "XINT (XEXP (op,0), 1) == UNSPEC_TLS_LE"))))) - -;; Return true if OP is an address suitable for a call insn. -;; Call insn on TILE can take a PC-relative constant address -;; or any regular memory address. -(define_predicate "call_address_operand" - (ior (match_operand 0 "symbolic_operand") - (match_test "memory_address_p (Pmode, op)"))) - -;; Return true if OP is an operand suitable for a call insn. -(define_predicate "call_operand" - (and (match_code "mem") - (match_test "call_address_operand (XEXP (op, 0), mode)"))) - -;; Return 1 if OP is a signed comparison operation. -;; We can use these directly in compares against zero. -(define_predicate "signed_comparison_operator" - (match_code "eq,ne,le,lt,ge,gt")) - -;; Return 1 if OP is a equal or not-equal operation. -(define_predicate "eqne_operator" - (match_code "eq,ne")) diff --git a/gcc/config/tilepro/t-tilepro b/gcc/config/tilepro/t-tilepro deleted file mode 100644 index f64fd12..0000000 --- a/gcc/config/tilepro/t-tilepro +++ /dev/null @@ -1,15 +0,0 @@ -tilepro-c.o: $(srcdir)/config/tilepro/tilepro-c.cc \ - $(CONFIG_H) $(SYSTEM_H) coretypes.h $(MACHMODE_H) \ - $(TM_H) $(TM_P_H) $(CPPLIB_H) $(TREE_H) $(C_COMMON_H) - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< - -$(srcdir)/config/tilepro/mul-tables.cc: \ - $(srcdir)/config/tilepro/gen-mul-tables.cc - $(CXX_FOR_BUILD) $(BUILD_CPPFLAGS) -O2 -DTILEPRO \ - -o gen-mul-tables $<; - ./gen-mul-tables > $@ - -mul-tables.o: $(srcdir)/config/tilepro/mul-tables.cc \ - $(CONFIG_H) $(SYSTEM_H) coretypes.h $(EXPR_H) $(OPTABS_H) \ - $(srcdir)/config/tilepro/tilepro-multiply.h - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< diff --git a/gcc/config/tilepro/tilepro-builtins.h b/gcc/config/tilepro/tilepro-builtins.h deleted file mode 100644 index f18bdb5..0000000 --- a/gcc/config/tilepro/tilepro-builtins.h +++ /dev/null @@ -1,216 +0,0 @@ -/* Enum for builtin intrinsics for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC_TILEPRO_BUILTINS_H -#define GCC_TILEPRO_BUILTINS_H - -enum tilepro_builtin -{ - TILEPRO_INSN_ADD, - TILEPRO_INSN_ADDB, - TILEPRO_INSN_ADDBS_U, - TILEPRO_INSN_ADDH, - TILEPRO_INSN_ADDHS, - TILEPRO_INSN_ADDIB, - TILEPRO_INSN_ADDIH, - TILEPRO_INSN_ADDLIS, - TILEPRO_INSN_ADDS, - TILEPRO_INSN_ADIFFB_U, - TILEPRO_INSN_ADIFFH, - TILEPRO_INSN_AND, - TILEPRO_INSN_AULI, - TILEPRO_INSN_AVGB_U, - TILEPRO_INSN_AVGH, - TILEPRO_INSN_BITX, - TILEPRO_INSN_BYTEX, - TILEPRO_INSN_CLZ, - TILEPRO_INSN_CRC32_32, - TILEPRO_INSN_CRC32_8, - TILEPRO_INSN_CTZ, - TILEPRO_INSN_DRAIN, - TILEPRO_INSN_DTLBPR, - TILEPRO_INSN_DWORD_ALIGN, - TILEPRO_INSN_FINV, - TILEPRO_INSN_FLUSH, - TILEPRO_INSN_FNOP, - TILEPRO_INSN_ICOH, - TILEPRO_INSN_ILL, - TILEPRO_INSN_INFO, - TILEPRO_INSN_INFOL, - TILEPRO_INSN_INTHB, - TILEPRO_INSN_INTHH, - TILEPRO_INSN_INTLB, - TILEPRO_INSN_INTLH, - TILEPRO_INSN_INV, - TILEPRO_INSN_LB, - TILEPRO_INSN_LB_U, - TILEPRO_INSN_LH, - TILEPRO_INSN_LH_U, - TILEPRO_INSN_LNK, - TILEPRO_INSN_LW, - TILEPRO_INSN_LW_NA, - TILEPRO_INSN_LB_L2, - TILEPRO_INSN_LB_U_L2, - TILEPRO_INSN_LH_L2, - TILEPRO_INSN_LH_U_L2, - TILEPRO_INSN_LW_L2, - TILEPRO_INSN_LW_NA_L2, - TILEPRO_INSN_LB_MISS, - TILEPRO_INSN_LB_U_MISS, - TILEPRO_INSN_LH_MISS, - TILEPRO_INSN_LH_U_MISS, - TILEPRO_INSN_LW_MISS, - TILEPRO_INSN_LW_NA_MISS, - TILEPRO_INSN_MAXB_U, - TILEPRO_INSN_MAXH, - TILEPRO_INSN_MAXIB_U, - TILEPRO_INSN_MAXIH, - TILEPRO_INSN_MF, - TILEPRO_INSN_MFSPR, - TILEPRO_INSN_MINB_U, - TILEPRO_INSN_MINH, - TILEPRO_INSN_MINIB_U, - TILEPRO_INSN_MINIH, - TILEPRO_INSN_MM, - TILEPRO_INSN_MNZ, - TILEPRO_INSN_MNZB, - TILEPRO_INSN_MNZH, - TILEPRO_INSN_MOVE, - TILEPRO_INSN_MOVELIS, - TILEPRO_INSN_MTSPR, - TILEPRO_INSN_MULHH_SS, - TILEPRO_INSN_MULHH_SU, - TILEPRO_INSN_MULHH_UU, - TILEPRO_INSN_MULHHA_SS, - TILEPRO_INSN_MULHHA_SU, - TILEPRO_INSN_MULHHA_UU, - TILEPRO_INSN_MULHHSA_UU, - TILEPRO_INSN_MULHL_SS, - TILEPRO_INSN_MULHL_SU, - TILEPRO_INSN_MULHL_US, - TILEPRO_INSN_MULHL_UU, - TILEPRO_INSN_MULHLA_SS, - TILEPRO_INSN_MULHLA_SU, - TILEPRO_INSN_MULHLA_US, - TILEPRO_INSN_MULHLA_UU, - TILEPRO_INSN_MULHLSA_UU, - TILEPRO_INSN_MULLL_SS, - TILEPRO_INSN_MULLL_SU, - TILEPRO_INSN_MULLL_UU, - TILEPRO_INSN_MULLLA_SS, - TILEPRO_INSN_MULLLA_SU, - TILEPRO_INSN_MULLLA_UU, - TILEPRO_INSN_MULLLSA_UU, - TILEPRO_INSN_MVNZ, - TILEPRO_INSN_MVZ, - TILEPRO_INSN_MZ, - TILEPRO_INSN_MZB, - TILEPRO_INSN_MZH, - TILEPRO_INSN_NAP, - TILEPRO_INSN_NOP, - TILEPRO_INSN_NOR, - TILEPRO_INSN_OR, - TILEPRO_INSN_PACKBS_U, - TILEPRO_INSN_PACKHB, - TILEPRO_INSN_PACKHS, - TILEPRO_INSN_PACKLB, - TILEPRO_INSN_PCNT, - TILEPRO_INSN_PREFETCH, - TILEPRO_INSN_PREFETCH_L1, - TILEPRO_INSN_RL, - TILEPRO_INSN_S1A, - TILEPRO_INSN_S2A, - TILEPRO_INSN_S3A, - TILEPRO_INSN_SADAB_U, - TILEPRO_INSN_SADAH, - TILEPRO_INSN_SADAH_U, - TILEPRO_INSN_SADB_U, - TILEPRO_INSN_SADH, - TILEPRO_INSN_SADH_U, - TILEPRO_INSN_SB, - TILEPRO_INSN_SEQ, - TILEPRO_INSN_SEQB, - TILEPRO_INSN_SEQH, - TILEPRO_INSN_SEQIB, - TILEPRO_INSN_SEQIH, - TILEPRO_INSN_SH, - TILEPRO_INSN_SHL, - TILEPRO_INSN_SHLB, - TILEPRO_INSN_SHLH, - TILEPRO_INSN_SHLIB, - TILEPRO_INSN_SHLIH, - TILEPRO_INSN_SHR, - TILEPRO_INSN_SHRB, - TILEPRO_INSN_SHRH, - TILEPRO_INSN_SHRIB, - TILEPRO_INSN_SHRIH, - TILEPRO_INSN_SLT, - TILEPRO_INSN_SLT_U, - TILEPRO_INSN_SLTB, - TILEPRO_INSN_SLTB_U, - TILEPRO_INSN_SLTE, - TILEPRO_INSN_SLTE_U, - TILEPRO_INSN_SLTEB, - TILEPRO_INSN_SLTEB_U, - TILEPRO_INSN_SLTEH, - TILEPRO_INSN_SLTEH_U, - TILEPRO_INSN_SLTH, - TILEPRO_INSN_SLTH_U, - TILEPRO_INSN_SLTIB, - TILEPRO_INSN_SLTIB_U, - TILEPRO_INSN_SLTIH, - TILEPRO_INSN_SLTIH_U, - TILEPRO_INSN_SNE, - TILEPRO_INSN_SNEB, - TILEPRO_INSN_SNEH, - TILEPRO_INSN_SRA, - TILEPRO_INSN_SRAB, - TILEPRO_INSN_SRAH, - TILEPRO_INSN_SRAIB, - TILEPRO_INSN_SRAIH, - TILEPRO_INSN_SUB, - TILEPRO_INSN_SUBB, - TILEPRO_INSN_SUBBS_U, - TILEPRO_INSN_SUBH, - TILEPRO_INSN_SUBHS, - TILEPRO_INSN_SUBS, - TILEPRO_INSN_SW, - TILEPRO_INSN_TBLIDXB0, - TILEPRO_INSN_TBLIDXB1, - TILEPRO_INSN_TBLIDXB2, - TILEPRO_INSN_TBLIDXB3, - TILEPRO_INSN_TNS, - TILEPRO_INSN_WH64, - TILEPRO_INSN_XOR, - TILEPRO_NETWORK_BARRIER, - TILEPRO_IDN0_RECEIVE, - TILEPRO_IDN1_RECEIVE, - TILEPRO_IDN_SEND, - TILEPRO_SN_RECEIVE, - TILEPRO_SN_SEND, - TILEPRO_UDN0_RECEIVE, - TILEPRO_UDN1_RECEIVE, - TILEPRO_UDN2_RECEIVE, - TILEPRO_UDN3_RECEIVE, - TILEPRO_UDN_SEND, - TILEPRO_BUILTIN_max -}; - -#endif /* !GCC_TILEPRO_BUILTINS_H */ diff --git a/gcc/config/tilepro/tilepro-c.cc b/gcc/config/tilepro/tilepro-c.cc deleted file mode 100644 index ed91e71..0000000 --- a/gcc/config/tilepro/tilepro-c.cc +++ /dev/null @@ -1,54 +0,0 @@ -/* Definitions of C specific functions for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "c-family/c-common.h" - -/* copy defines in c-cppbuiltin.cc */ -# define builtin_define(TXT) cpp_define (pfile, TXT) -# define builtin_assert(TXT) cpp_assert (pfile, TXT) - - -/* Implement TARGET_CPU_CPP_BUILTINS. */ -void -tilepro_cpu_cpp_builtins (struct cpp_reader *pfile) -{ - builtin_define ("__tile__"); - builtin_define ("__tilepro__"); - builtin_assert ("cpu=tile"); - builtin_assert ("machine=tile"); - builtin_define ("__tile_chip__=1"); - builtin_define ("__tile_chip_rev__=0"); - - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); - builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); - - TILEPRO_CPU_CPP_ENDIAN_BUILTINS (); - GNU_USER_TARGET_OS_CPP_BUILTINS (); -} - - diff --git a/gcc/config/tilepro/tilepro-generic.md b/gcc/config/tilepro/tilepro-generic.md deleted file mode 100644 index 438c4d9..0000000 --- a/gcc/config/tilepro/tilepro-generic.md +++ /dev/null @@ -1,107 +0,0 @@ -;; Scheduling description for Tilera TILEPro chip. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_automaton "tile") - -; Make the scheduling automaton an ndfa. -(automata_option "ndfa") - -; Name the three pipes. -(define_cpu_unit "X0" "tile") -(define_cpu_unit "X1" "tile") -(define_cpu_unit "Y0" "tile") -(define_cpu_unit "Y1" "tile") -(define_cpu_unit "Y2" "tile") - -(define_insn_reservation "X0" 1 - (eq_attr "type" "X0") - "X0") - -(define_insn_reservation "X0_2cycle" 2 - (eq_attr "type" "X0_2cycle") - "X0,nothing") - -(define_insn_reservation "X1" 1 - (eq_attr "type" "X1,X1_branch") - "X1") - -(define_insn_reservation "X1_2cycle" 2 - (eq_attr "type" "X1_2cycle") - "X1,nothing") - -(define_insn_reservation "X1_L2" 8 - (eq_attr "type" "X1_L2") - "X1") - -(define_insn_reservation "X1_miss" 80 - (eq_attr "type" "X1_miss") - "X1") - -(define_insn_reservation "X01" 1 - (eq_attr "type" "X01") - "X0|X1") - -(define_insn_reservation "Y0" 1 - (eq_attr "type" "Y0") - "Y0|X0") - -(define_insn_reservation "Y0_2cycle" 2 - (eq_attr "type" "Y0_2cycle") - "Y0|X0,nothing") - -(define_insn_reservation "Y2" 1 - (eq_attr "type" "Y2") - "Y2|X1") - -(define_insn_reservation "Y2_2cycle" 2 - (eq_attr "type" "Y2_2cycle") - "Y2|X1,nothing") - -(define_insn_reservation "Y2_L2" 8 - (eq_attr "type" "Y2_L2") - "Y2|X1") - -(define_insn_reservation "Y2_miss" 80 - (eq_attr "type" "Y2_miss") - "Y2|X1") - -(define_insn_reservation "Y01" 1 - (eq_attr "type" "Y01") - "Y0|Y1|X0|X1") - -(define_insn_reservation "nothing" 0 - (eq_attr "type" "nothing") - "nothing") - -(define_insn_reservation "cannot_bundle" 1 - (eq_attr "type" "cannot_bundle") - "X0+X1") - -(define_insn_reservation "cannot_bundle_3cycle" 3 - (eq_attr "type" "cannot_bundle_3cycle") - "X0+X1") - -(define_insn_reservation "cannot_bundle_4cycle" 4 - (eq_attr "type" "cannot_bundle_4cycle") - "X0+X1") - - -; A bundle must be in either X format or Y format. -(exclusion_set "X0,X1" "Y0,Y1,Y2") diff --git a/gcc/config/tilepro/tilepro-modes.def b/gcc/config/tilepro/tilepro-modes.def deleted file mode 100644 index 1647895..0000000 --- a/gcc/config/tilepro/tilepro-modes.def +++ /dev/null @@ -1,34 +0,0 @@ -/* TILEPro extra machine modes. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* Extra modes for handling struct returns in up to 10 registers. */ -INT_MODE (R3I, 12); -INT_MODE (R5I, 20); -INT_MODE (R6I, 24); -INT_MODE (R7I, 28); -INT_MODE (R8I, 32); -INT_MODE (R9I, 36); -INT_MODE (R10I, 40); - -/* Vector modes. */ -VECTOR_MODES (INT, 4); /* V4QI V2HI */ -VECTOR_MODE (INT, QI, 8); /* V8QI */ -VECTOR_MODE (INT, HI, 4); /* V4HI */ -VECTOR_MODE (INT, QI, 2); /* V2QI */ diff --git a/gcc/config/tilepro/tilepro-multiply.h b/gcc/config/tilepro/tilepro-multiply.h deleted file mode 100644 index dde9048..0000000 --- a/gcc/config/tilepro/tilepro-multiply.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Header for constant multiple table for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC_TILEPRO_MULTIPLY_H -#define GCC_TILEPRO_MULTIPLY_H - -/* A node of a tilepro_multiply_insn_seq, corresponding to a single - machine instruction such as 'add', 's1a', or an shl by a - constant. */ -struct tilepro_multiply_insn_seq_entry -{ - /* Which operation this node performs (e.g. an add or sub). Don't - use this directly, call get_opcode() table to get a - insn_code. */ - unsigned char compressed_opcode; - - /* The left-hand side of this expression tree. - If equal to 0, it refers to 'zero'. - If equal to 1, it refers to the original input to the multiply - operation. - Otherwise, subtract two and it is an index into the containing - tilepro_multiply_insn_seq's 'op' array. Since it can only point - to some value that has already been computed it will always point - to an earlier entry in the array. */ - unsigned char lhs; - - /* This is like lhs, but for the right-hand side. However, for shift - opcodes this is a shift count rather than an operand index. */ - unsigned char rhs; -}; - -/* Maximum size of op array. */ -#define tilepro_multiply_insn_seq_MAX_OPERATIONS 4 - -/* This defines a DAG describing how to multiply by a constant in - terms of one or more machine instructions. */ -struct tilepro_multiply_insn_seq -{ - /* The constant factor by which this expression tree multiplies its - input. */ - int multiplier; - - /* The nodes of the parse tree. These are ordered so that - instructions can be emitted in the same order that they appear in - this array. Entry entry in this array can only refer to earlier - entries in the array. */ - struct tilepro_multiply_insn_seq_entry - op[tilepro_multiply_insn_seq_MAX_OPERATIONS]; - -}; - -/* A mapping from the compressed opcode to the corresponding enum - insn_code. */ -extern const enum insn_code tilepro_multiply_insn_seq_decode_opcode[]; - -/* Table mapping constant int multipliers to an expression tree that - efficiently performs that multiplication. This is sorted by its - 'multiplier' field so a binary search can look for matches. */ -extern const struct tilepro_multiply_insn_seq - tilepro_multiply_insn_seq_table[]; - -/* The number of elements in multiply_insn_seq_table. */ -extern const int tilepro_multiply_insn_seq_table_size; - -#endif /* !GCC_TILEPRO_MULTIPLY_H */ diff --git a/gcc/config/tilepro/tilepro-protos.h b/gcc/config/tilepro/tilepro-protos.h deleted file mode 100644 index ba09fdd..0000000 --- a/gcc/config/tilepro/tilepro-protos.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Prototypes of target machine for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#ifndef GCC__TILEPRO_PROTOS_H -#define GCC__TILEPRO_PROTOS_H - - -extern void tilepro_init_expanders (void); -extern bool tilepro_legitimate_pic_operand_p (rtx); -extern rtx tilepro_simd_int (rtx, machine_mode); - -#ifdef RTX_CODE -extern void split_di (rtx[], int, rtx[], rtx[]); -extern bool tilepro_bitfield_operand_p (HOST_WIDE_INT, int *, int *); -extern void tilepro_expand_set_const32 (rtx, rtx); -extern bool tilepro_expand_mov (machine_mode, rtx *); -extern void tilepro_expand_insv (rtx operands[4]); -extern void tilepro_expand_unaligned_load (rtx, rtx, HOST_WIDE_INT, - HOST_WIDE_INT, bool); -extern void tilepro_expand_movmisalign (machine_mode, rtx *); -extern bool tilepro_expand_addsi (rtx, rtx, rtx); -extern void tilepro_allocate_stack (rtx, rtx); -extern bool tilepro_expand_mulsi (rtx, rtx, rtx); -extern void tilepro_expand_smulsi3_highpart (rtx, rtx, rtx); -extern void tilepro_expand_umulsi3_highpart (rtx, rtx, rtx); - -extern bool tilepro_emit_setcc (rtx[], machine_mode); -extern void tilepro_emit_conditional_branch (rtx[], machine_mode); -extern rtx tilepro_emit_conditional_move (rtx); -extern const char *tilepro_output_cbranch_with_opcode (rtx_insn *, rtx *, - const char *, - const char *, int, - bool); -extern const char *tilepro_output_cbranch (rtx_insn *, rtx *, bool); -extern void tilepro_expand_tablejump (rtx, rtx); -extern void tilepro_expand_builtin_vector_binop (rtx (*)(rtx, rtx, rtx), - machine_mode, rtx, - machine_mode, rtx, rtx, - bool); -#endif /* RTX_CODE */ - -extern bool tilepro_can_use_return_insn_p (void); -extern void tilepro_expand_prologue (void); -extern void tilepro_expand_epilogue (bool); -extern int tilepro_initial_elimination_offset (int, int); -extern rtx tilepro_return_addr (int, rtx); -extern rtx tilepro_eh_return_handler_rtx (void); -extern int tilepro_adjust_insn_length (rtx_insn *, int); - -extern int tilepro_asm_preferred_eh_data_format (int, int); -extern void tilepro_final_prescan_insn (rtx_insn *); -extern const char *tilepro_asm_output_opcode (FILE *, const char *); -extern void tilepro_function_profiler (FILE *, int); - -/* Declare functions in tile-c.c */ - -extern void tilepro_cpu_cpp_builtins (struct cpp_reader *); - -#endif /* GCC_TILEPRO_PROTOS_H */ diff --git a/gcc/config/tilepro/tilepro.cc b/gcc/config/tilepro/tilepro.cc deleted file mode 100644 index 35a6b8c..0000000 --- a/gcc/config/tilepro/tilepro.cc +++ /dev/null @@ -1,5083 +0,0 @@ -/* Subroutines used for code generation on the Tilera TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "backend.h" -#include "target.h" -#include "rtl.h" -#include "tree.h" -#include "gimple.h" -#include "df.h" -#include "memmodel.h" -#include "tm_p.h" -#include "stringpool.h" -#include "attribs.h" -#include "expmed.h" -#include "optabs.h" -#include "regs.h" -#include "emit-rtl.h" -#include "recog.h" -#include "diagnostic.h" -#include "output.h" -#include "insn-attr.h" -#include "alias.h" -#include "explow.h" -#include "calls.h" -#include "varasm.h" -#include "expr.h" -#include "langhooks.h" -#include "cfgrtl.h" -#include "tm-constrs.h" -#include "dwarf2.h" -#include "fold-const.h" -#include "stor-layout.h" -#include "gimplify.h" -#include "tilepro-builtins.h" -#include "tilepro-multiply.h" -#include "builtins.h" - -/* This file should be included last. */ -#include "target-def.h" - -/* SYMBOL_REF for GOT */ -static GTY(()) rtx g_got_symbol = NULL; - -/* Report whether we're printing out the first address fragment of a - POST_INC or POST_DEC memory reference, from TARGET_PRINT_OPERAND to - TARGET_PRINT_OPERAND_ADDRESS. */ -static bool output_memory_autoinc_first; - - - -/* Option handling */ - -/* Implement TARGET_OPTION_OVERRIDE. */ -static void -tilepro_option_override (void) -{ - /* When modulo scheduling is enabled, we still rely on regular - scheduler for bundling. */ - if (flag_modulo_sched) - flag_resched_modulo_sched = 1; -} - - - -/* Implement TARGET_SCALAR_MODE_SUPPORTED_P. */ -static bool -tilepro_scalar_mode_supported_p (scalar_mode mode) -{ - switch (mode) - { - case E_QImode: - case E_HImode: - case E_SImode: - case E_DImode: - return true; - - case E_SFmode: - case E_DFmode: - return true; - - default: - return false; - } -} - - -/* Implement TARGET_VECTOR_MODE_SUPPORTED_P. */ -static bool -tile_vector_mode_supported_p (machine_mode mode) -{ - return mode == V4QImode || mode == V2HImode; -} - - -/* Implement TARGET_CANNOT_FORCE_CONST_MEM. */ -static bool -tilepro_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, - rtx x ATTRIBUTE_UNUSED) -{ - return true; -} - - -/* Implement TARGET_FUNCTION_OK_FOR_SIBCALL. */ -static bool -tilepro_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) -{ - return decl != NULL; -} - - -/* Implement TARGET_PASS_BY_REFERENCE. Variable sized types are - passed by reference. */ -static bool -tilepro_pass_by_reference (cumulative_args_t, const function_arg_info &arg) -{ - return (arg.type - && TYPE_SIZE (arg.type) - && TREE_CODE (TYPE_SIZE (arg.type)) != INTEGER_CST); -} - - -/* Implement TARGET_RETURN_IN_MEMORY. */ -static bool -tilepro_return_in_memory (const_tree type, const_tree fndecl ATTRIBUTE_UNUSED) -{ - return !IN_RANGE (int_size_in_bytes (type), - 0, TILEPRO_NUM_RETURN_REGS * UNITS_PER_WORD); -} - - -/* Implement TARGET_FUNCTION_ARG_BOUNDARY. */ -static unsigned int -tilepro_function_arg_boundary (machine_mode mode, const_tree type) -{ - unsigned int alignment; - - alignment = type ? TYPE_ALIGN (type) : GET_MODE_ALIGNMENT (mode); - if (alignment < PARM_BOUNDARY) - alignment = PARM_BOUNDARY; - if (alignment > STACK_BOUNDARY) - alignment = STACK_BOUNDARY; - return alignment; -} - - -/* Implement TARGET_FUNCTION_ARG. */ -static rtx -tilepro_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) -{ - CUMULATIVE_ARGS cum = *get_cumulative_args (cum_v); - int byte_size = arg.promoted_size_in_bytes (); - bool doubleword_aligned_p; - - if (cum >= TILEPRO_NUM_ARG_REGS) - return NULL_RTX; - - /* See whether the argument has doubleword alignment. */ - doubleword_aligned_p = - tilepro_function_arg_boundary (arg.mode, arg.type) > BITS_PER_WORD; - - if (doubleword_aligned_p) - cum += cum & 1; - - /* The ABI does not allow parameters to be passed partially in reg - and partially in stack. */ - if ((cum + (byte_size + UNITS_PER_WORD - 1) / UNITS_PER_WORD) - > TILEPRO_NUM_ARG_REGS) - return NULL_RTX; - - return gen_rtx_REG (arg.mode, cum); -} - - -/* Implement TARGET_FUNCTION_ARG_ADVANCE. */ -static void -tilepro_function_arg_advance (cumulative_args_t cum_v, - const function_arg_info &arg) -{ - CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v); - - int byte_size = arg.promoted_size_in_bytes (); - int word_size = (byte_size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; - bool doubleword_aligned_p; - - /* See whether the argument has doubleword alignment. */ - doubleword_aligned_p = - tilepro_function_arg_boundary (arg.mode, arg.type) > BITS_PER_WORD; - - if (doubleword_aligned_p) - *cum += *cum & 1; - - /* If the current argument does not fit in the pretend_args space, - skip over it. */ - if (*cum < TILEPRO_NUM_ARG_REGS - && *cum + word_size > TILEPRO_NUM_ARG_REGS) - *cum = TILEPRO_NUM_ARG_REGS; - - *cum += word_size; -} - - -/* Implement TARGET_FUNCTION_VALUE. */ -static rtx -tilepro_function_value (const_tree valtype, const_tree fn_decl_or_type, - bool outgoing ATTRIBUTE_UNUSED) -{ - machine_mode mode; - int unsigned_p; - - mode = TYPE_MODE (valtype); - unsigned_p = TYPE_UNSIGNED (valtype); - - mode = promote_function_mode (valtype, mode, &unsigned_p, - fn_decl_or_type, 1); - - return gen_rtx_REG (mode, 0); -} - - -/* Implement TARGET_LIBCALL_VALUE. */ -static rtx -tilepro_libcall_value (machine_mode mode, - const_rtx fun ATTRIBUTE_UNUSED) -{ - return gen_rtx_REG (mode, 0); -} - - -/* Implement FUNCTION_VALUE_REGNO_P. */ -static bool -tilepro_function_value_regno_p (const unsigned int regno) -{ - return regno < TILEPRO_NUM_RETURN_REGS; -} - - -/* Implement TARGET_BUILD_BUILTIN_VA_LIST. */ -static tree -tilepro_build_builtin_va_list (void) -{ - tree f_args, f_skip, record, type_decl; - bool owp; - - record = lang_hooks.types.make_type (RECORD_TYPE); - - type_decl = build_decl (BUILTINS_LOCATION, TYPE_DECL, - get_identifier ("__va_list_tag"), record); - - f_args = build_decl (BUILTINS_LOCATION, FIELD_DECL, - get_identifier ("__args"), ptr_type_node); - f_skip = build_decl (BUILTINS_LOCATION, FIELD_DECL, - get_identifier ("__skip"), ptr_type_node); - - DECL_FIELD_CONTEXT (f_args) = record; - - DECL_FIELD_CONTEXT (f_skip) = record; - - TREE_CHAIN (record) = type_decl; - TYPE_NAME (record) = type_decl; - TYPE_FIELDS (record) = f_args; - TREE_CHAIN (f_args) = f_skip; - - /* We know this is being padded and we want it too. It is an - internal type so hide the warnings from the user. */ - owp = warn_padded; - warn_padded = false; - - layout_type (record); - - warn_padded = owp; - - /* The correct type is an array type of one element. */ - return record; -} - - -/* Implement TARGET_EXPAND_BUILTIN_VA_START. */ -static void -tilepro_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) -{ - tree f_args, f_skip; - tree args, skip, t; - - f_args = TYPE_FIELDS (TREE_TYPE (valist)); - f_skip = TREE_CHAIN (f_args); - - args = - build3 (COMPONENT_REF, TREE_TYPE (f_args), valist, f_args, NULL_TREE); - skip = - build3 (COMPONENT_REF, TREE_TYPE (f_skip), valist, f_skip, NULL_TREE); - - /* Find the __args area. */ - t = make_tree (TREE_TYPE (args), virtual_incoming_args_rtx); - t = fold_build_pointer_plus_hwi (t, - UNITS_PER_WORD * - (crtl->args.info - TILEPRO_NUM_ARG_REGS)); - - if (crtl->args.pretend_args_size > 0) - t = fold_build_pointer_plus_hwi (t, -STACK_POINTER_OFFSET); - - t = build2 (MODIFY_EXPR, TREE_TYPE (args), args, t); - TREE_SIDE_EFFECTS (t) = 1; - expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); - - /* Find the __skip area. */ - t = make_tree (TREE_TYPE (skip), virtual_incoming_args_rtx); - t = fold_build_pointer_plus_hwi (t, -STACK_POINTER_OFFSET); - t = build2 (MODIFY_EXPR, TREE_TYPE (skip), skip, t); - TREE_SIDE_EFFECTS (t) = 1; - expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); -} - - -/* Implement TARGET_SETUP_INCOMING_VARARGS. */ -static void -tilepro_setup_incoming_varargs (cumulative_args_t cum, - const function_arg_info &arg, - int *pretend_args, int no_rtl) -{ - CUMULATIVE_ARGS local_cum = *get_cumulative_args (cum); - int first_reg; - - /* The caller has advanced CUM up to, but not beyond, the last named - argument. Advance a local copy of CUM past the last "real" named - argument, to find out how many registers are left over. */ - targetm.calls.function_arg_advance (pack_cumulative_args (&local_cum), arg); - first_reg = local_cum; - - if (local_cum < TILEPRO_NUM_ARG_REGS) - { - *pretend_args = UNITS_PER_WORD * (TILEPRO_NUM_ARG_REGS - first_reg); - - if (!no_rtl) - { - alias_set_type set = get_varargs_alias_set (); - rtx tmp = - gen_rtx_MEM (BLKmode, plus_constant (Pmode, \ - virtual_incoming_args_rtx, - -STACK_POINTER_OFFSET - - UNITS_PER_WORD * - (TILEPRO_NUM_ARG_REGS - - first_reg))); - MEM_NOTRAP_P (tmp) = 1; - set_mem_alias_set (tmp, set); - move_block_from_reg (first_reg, tmp, - TILEPRO_NUM_ARG_REGS - first_reg); - } - } - else - *pretend_args = 0; -} - - -/* Implement TARGET_GIMPLIFY_VA_ARG_EXPR. Gimplify va_arg by updating - the va_list structure VALIST as required to retrieve an argument of - type TYPE, and returning that argument. - - ret = va_arg(VALIST, TYPE); - - generates code equivalent to: - - paddedsize = (sizeof(TYPE) + 3) & -4; - if ((VALIST.__args + paddedsize > VALIST.__skip) - & (VALIST.__args <= VALIST.__skip)) - addr = VALIST.__skip + STACK_POINTER_OFFSET; - else - addr = VALIST.__args; - VALIST.__args = addr + paddedsize; - ret = *(TYPE *)addr; */ -static tree -tilepro_gimplify_va_arg_expr (tree valist, tree type, gimple_seq * pre_p, - gimple_seq * post_p ATTRIBUTE_UNUSED) -{ - tree f_args, f_skip; - tree args, skip; - HOST_WIDE_INT size, rsize; - tree addr, tmp; - bool pass_by_reference_p; - - f_args = TYPE_FIELDS (va_list_type_node); - f_skip = TREE_CHAIN (f_args); - - args = - build3 (COMPONENT_REF, TREE_TYPE (f_args), valist, f_args, NULL_TREE); - skip = - build3 (COMPONENT_REF, TREE_TYPE (f_skip), valist, f_skip, NULL_TREE); - - addr = create_tmp_var (ptr_type_node, "va_arg"); - - /* if an object is dynamically sized, a pointer to it is passed - instead of the object itself. */ - pass_by_reference_p = pass_va_arg_by_reference (type); - - if (pass_by_reference_p) - type = build_pointer_type (type); - - size = int_size_in_bytes (type); - rsize = ((size + UNITS_PER_WORD - 1) / UNITS_PER_WORD) * UNITS_PER_WORD; - - /* If the alignment of the type is greater than the default for a - parameter, align to STACK_BOUNDARY. */ - if (TYPE_ALIGN (type) > PARM_BOUNDARY) - { - /* Assert the only case we generate code for: when - stack boundary = 2 * parm boundary. */ - gcc_assert (STACK_BOUNDARY == PARM_BOUNDARY * 2); - - tmp = build2 (BIT_AND_EXPR, sizetype, - fold_convert (sizetype, unshare_expr (args)), - size_int (PARM_BOUNDARY / 8)); - tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node, - unshare_expr (args), tmp); - - gimplify_assign (unshare_expr (args), tmp, pre_p); - } - - /* Build conditional expression to calculate addr. The expression - will be gimplified later. */ - tmp = fold_build_pointer_plus_hwi (unshare_expr (args), rsize); - tmp = build2 (TRUTH_AND_EXPR, boolean_type_node, - build2 (GT_EXPR, boolean_type_node, tmp, unshare_expr (skip)), - build2 (LE_EXPR, boolean_type_node, unshare_expr (args), - unshare_expr (skip))); - - tmp = build3 (COND_EXPR, ptr_type_node, tmp, - build2 (POINTER_PLUS_EXPR, ptr_type_node, unshare_expr (skip), - size_int (STACK_POINTER_OFFSET)), - unshare_expr (args)); - - gimplify_assign (addr, tmp, pre_p); - - /* Update VALIST.__args. */ - tmp = fold_build_pointer_plus_hwi (addr, rsize); - gimplify_assign (unshare_expr (args), tmp, pre_p); - - addr = fold_convert (build_pointer_type (type), addr); - - if (pass_by_reference_p) - addr = build_va_arg_indirect_ref (addr); - - return build_va_arg_indirect_ref (addr); -} - - - -/* Implement TARGET_RTX_COSTS. */ -static bool -tilepro_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, - int *total, bool speed) -{ - int code = GET_CODE (x); - - switch (code) - { - case CONST_INT: - /* If this is an 8-bit constant, return zero since it can be - used nearly anywhere with no cost. If it is a valid operand - for an ADD or AND, likewise return 0 if we know it will be - used in that context. Otherwise, return 2 since it might be - used there later. All other constants take at least two - insns. */ - if (satisfies_constraint_I (x)) - { - *total = 0; - return true; - } - else if (outer_code == PLUS && add_operand (x, VOIDmode)) - { - /* Slightly penalize large constants even though we can add - them in one instruction, because it forces the use of - 2-wide bundling mode. */ - *total = 1; - return true; - } - else if (move_operand (x, SImode)) - { - /* We can materialize in one move. */ - *total = COSTS_N_INSNS (1); - return true; - } - else - { - /* We can materialize in two moves. */ - *total = COSTS_N_INSNS (2); - return true; - } - - return false; - - case CONST: - case LABEL_REF: - case SYMBOL_REF: - *total = COSTS_N_INSNS (2); - return true; - - case CONST_DOUBLE: - *total = COSTS_N_INSNS (4); - return true; - - case HIGH: - *total = 0; - return true; - - case MEM: - /* If outer-code was a sign or zero extension, a cost of - COSTS_N_INSNS (1) was already added in, so account for - that. */ - if (outer_code == ZERO_EXTEND || outer_code == SIGN_EXTEND) - *total = COSTS_N_INSNS (1); - else - *total = COSTS_N_INSNS (2); - return true; - - case PLUS: - /* Convey that s[123]a are efficient. */ - if (GET_CODE (XEXP (x, 0)) == MULT - && cint_248_operand (XEXP (XEXP (x, 0), 1), VOIDmode)) - { - *total = (rtx_cost (XEXP (XEXP (x, 0), 0), mode, - (enum rtx_code) outer_code, opno, speed) - + rtx_cost (XEXP (x, 1), mode, - (enum rtx_code) outer_code, opno, speed) - + COSTS_N_INSNS (1)); - return true; - } - return false; - - case MULT: - *total = COSTS_N_INSNS (2); - return false; - - case SIGN_EXTEND: - case ZERO_EXTEND: - if (outer_code == MULT) - *total = 0; - else - *total = COSTS_N_INSNS (1); - return false; - - case DIV: - case UDIV: - case MOD: - case UMOD: - /* These are handled by software and are very expensive. */ - *total = COSTS_N_INSNS (100); - return false; - - case UNSPEC: - case UNSPEC_VOLATILE: - { - int num = XINT (x, 1); - - if (num <= TILEPRO_LAST_LATENCY_1_INSN) - *total = COSTS_N_INSNS (1); - else if (num <= TILEPRO_LAST_LATENCY_2_INSN) - *total = COSTS_N_INSNS (2); - else if (num > TILEPRO_LAST_LATENCY_INSN) - { - if (outer_code == PLUS) - *total = 0; - else - *total = COSTS_N_INSNS (1); - } - else - { - switch (num) - { - case UNSPEC_BLOCKAGE: - case UNSPEC_NETWORK_BARRIER: - *total = 0; - break; - - case UNSPEC_LNK_AND_LABEL: - case UNSPEC_MF: - case UNSPEC_NETWORK_RECEIVE: - case UNSPEC_NETWORK_SEND: - case UNSPEC_TLS_GD_ADD: - *total = COSTS_N_INSNS (1); - break; - - case UNSPEC_TLS_IE_LOAD: - *total = COSTS_N_INSNS (2); - break; - - case UNSPEC_SP_SET: - *total = COSTS_N_INSNS (3); - break; - - case UNSPEC_SP_TEST: - *total = COSTS_N_INSNS (4); - break; - - case UNSPEC_LATENCY_L2: - *total = COSTS_N_INSNS (8); - break; - - case UNSPEC_TLS_GD_CALL: - *total = COSTS_N_INSNS (30); - break; - - case UNSPEC_LATENCY_MISS: - *total = COSTS_N_INSNS (80); - break; - - default: - *total = COSTS_N_INSNS (1); - } - } - return true; - } - - default: - return false; - } -} - - - -/* Returns an SImode integer rtx with value VAL. */ -static rtx -gen_int_si (HOST_WIDE_INT val) -{ - return gen_int_mode (val, SImode); -} - - -/* Create a temporary variable to hold a partial result, to enable - CSE. */ -static rtx -create_temp_reg_if_possible (machine_mode mode, rtx default_reg) -{ - return can_create_pseudo_p ()? gen_reg_rtx (mode) : default_reg; -} - - -/* Functions to save and restore machine-specific function data. */ -static struct machine_function * -tilepro_init_machine_status (void) -{ - return ggc_cleared_alloc (); -} - - -/* Do anything needed before RTL is emitted for each function. */ -void -tilepro_init_expanders (void) -{ - /* Arrange to initialize and mark the machine per-function - status. */ - init_machine_status = tilepro_init_machine_status; - - if (cfun && cfun->machine && flag_pic) - { - static int label_num = 0; - - char text_label_name[32]; - - struct machine_function *machine = cfun->machine; - - ASM_GENERATE_INTERNAL_LABEL (text_label_name, "L_PICLNK", label_num++); - - machine->text_label_symbol = - gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (text_label_name)); - - machine->text_label_rtx = - gen_rtx_REG (Pmode, TILEPRO_PIC_TEXT_LABEL_REGNUM); - - machine->got_rtx = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM); - - machine->calls_tls_get_addr = false; - } -} - - -/* Return true if X contains a thread-local symbol. */ -static bool -tilepro_tls_referenced_p (rtx x) -{ - if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS) - x = XEXP (XEXP (x, 0), 0); - - if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x)) - return true; - - /* That's all we handle in tilepro_legitimize_tls_address for - now. */ - return false; -} - - -/* Return true if X requires a scratch register. It is given that - flag_pic is on and that X satisfies CONSTANT_P. */ -static int -tilepro_pic_address_needs_scratch (rtx x) -{ - if (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == PLUS - && (GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF - || GET_CODE (XEXP (XEXP (x, 0), 0)) == LABEL_REF) - && CONST_INT_P (XEXP (XEXP (x, 0), 1))) - return true; - - return false; -} - - -/* Implement TARGET_LEGITIMATE_CONSTANT_P. This is all constants for - which we are willing to load the value into a register via a move - pattern. TLS cannot be treated as a constant because it can - include a function call. */ -static bool -tilepro_legitimate_constant_p (machine_mode mode ATTRIBUTE_UNUSED, rtx x) -{ - switch (GET_CODE (x)) - { - case CONST: - case SYMBOL_REF: - return !tilepro_tls_referenced_p (x); - - default: - return true; - } -} - - -/* Return true if the constant value X is a legitimate general operand - when generating PIC code. It is given that flag_pic is on and that - X satisfies CONSTANT_P. */ -bool -tilepro_legitimate_pic_operand_p (rtx x) -{ - if (tilepro_pic_address_needs_scratch (x)) - return false; - - if (tilepro_tls_referenced_p (x)) - return false; - - return true; -} - - -/* Return true if the rtx X can be used as an address operand. */ -static bool -tilepro_legitimate_address_p (machine_mode ARG_UNUSED (mode), rtx x, - bool strict) -{ - if (GET_CODE (x) == SUBREG) - x = SUBREG_REG (x); - - switch (GET_CODE (x)) - { - case POST_INC: - case POST_DEC: - if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) - return false; - - x = XEXP (x, 0); - break; - - case POST_MODIFY: - if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) - return false; - - if (GET_CODE (XEXP (x, 1)) != PLUS) - return false; - - if (!rtx_equal_p (XEXP (x, 0), XEXP (XEXP (x, 1), 0))) - return false; - - if (!satisfies_constraint_I (XEXP (XEXP (x, 1), 1))) - return false; - - x = XEXP (x, 0); - break; - - case REG: - break; - - default: - return false; - } - - /* Check if x is a valid reg. */ - if (!REG_P (x)) - return false; - - if (strict) - return REGNO_OK_FOR_BASE_P (REGNO (x)); - else - return true; -} - - -/* Return the rtx containing SYMBOL_REF to the text label. */ -static rtx -tilepro_text_label_symbol (void) -{ - return cfun->machine->text_label_symbol; -} - - -/* Return the register storing the value of the text label. */ -static rtx -tilepro_text_label_rtx (void) -{ - return cfun->machine->text_label_rtx; -} - - -/* Return the register storing the value of the global offset - table. */ -static rtx -tilepro_got_rtx (void) -{ - return cfun->machine->got_rtx; -} - - -/* Return the SYMBOL_REF for _GLOBAL_OFFSET_TABLE_. */ -static rtx -tilepro_got_symbol (void) -{ - if (g_got_symbol == NULL) - g_got_symbol = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); - - return g_got_symbol; -} - - -/* Return a reference to the got to be used by tls references. */ -static rtx -tilepro_tls_got (void) -{ - rtx temp; - if (flag_pic) - { - crtl->uses_pic_offset_table = 1; - return tilepro_got_rtx (); - } - - temp = gen_reg_rtx (Pmode); - emit_move_insn (temp, tilepro_got_symbol ()); - - return temp; -} - - -/* ADDR contains a thread-local SYMBOL_REF. Generate code to compute - this (thread-local) address. */ -static rtx -tilepro_legitimize_tls_address (rtx addr) -{ - rtx ret; - - gcc_assert (can_create_pseudo_p ()); - - if (GET_CODE (addr) == SYMBOL_REF) - switch (SYMBOL_REF_TLS_MODEL (addr)) - { - case TLS_MODEL_GLOBAL_DYNAMIC: - case TLS_MODEL_LOCAL_DYNAMIC: - { - rtx r0, temp1, temp2, temp3, got; - rtx_insn *last; - - ret = gen_reg_rtx (Pmode); - r0 = gen_rtx_REG (Pmode, 0); - temp1 = gen_reg_rtx (Pmode); - temp2 = gen_reg_rtx (Pmode); - temp3 = gen_reg_rtx (Pmode); - - got = tilepro_tls_got (); - emit_insn (gen_tls_gd_addhi (temp1, got, addr)); - emit_insn (gen_tls_gd_addlo (temp2, temp1, addr)); - emit_move_insn (r0, temp2); - emit_insn (gen_tls_gd_call (addr)); - emit_move_insn (temp3, r0); - last = emit_insn (gen_tls_gd_add (ret, temp3, addr)); - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - case TLS_MODEL_INITIAL_EXEC: - { - rtx temp1, temp2, temp3, got; - rtx_insn *last; - - ret = gen_reg_rtx (Pmode); - temp1 = gen_reg_rtx (Pmode); - temp2 = gen_reg_rtx (Pmode); - temp3 = gen_reg_rtx (Pmode); - - got = tilepro_tls_got (); - emit_insn (gen_tls_ie_addhi (temp1, got, addr)); - emit_insn (gen_tls_ie_addlo (temp2, temp1, addr)); - emit_insn (gen_tls_ie_load (temp3, temp2, addr)); - last = - emit_move_insn(ret, - gen_rtx_PLUS (Pmode, - gen_rtx_REG (Pmode, - THREAD_POINTER_REGNUM), - temp3)); - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - case TLS_MODEL_LOCAL_EXEC: - { - rtx temp1; - rtx_insn *last; - - ret = gen_reg_rtx (Pmode); - temp1 = gen_reg_rtx (Pmode); - - emit_insn (gen_tls_le_addhi (temp1, - gen_rtx_REG (Pmode, - THREAD_POINTER_REGNUM), - addr)); - last = emit_insn (gen_tls_le_addlo (ret, temp1, addr)); - set_unique_reg_note (last, REG_EQUAL, copy_rtx (addr)); - break; - } - default: - gcc_unreachable (); - } - else if (GET_CODE (addr) == CONST) - { - rtx base, offset; - - gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS); - - base = tilepro_legitimize_tls_address (XEXP (XEXP (addr, 0), 0)); - offset = XEXP (XEXP (addr, 0), 1); - - base = force_operand (base, NULL_RTX); - ret = force_reg (Pmode, gen_rtx_PLUS (Pmode, base, offset)); - } - else - gcc_unreachable (); - - return ret; -} - - -/* Legitimize PIC addresses. If the address is already - position-independent, we return ORIG. Newly generated - position-independent addresses go into a reg. This is REG if - nonzero, otherwise we allocate register(s) as necessary. */ -static rtx -tilepro_legitimize_pic_address (rtx orig, - machine_mode mode ATTRIBUTE_UNUSED, - rtx reg) -{ - if (GET_CODE (orig) == SYMBOL_REF) - { - rtx address, pic_ref; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - if (SYMBOL_REF_LOCAL_P (orig)) - { - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - rtx temp_reg = create_temp_reg_if_possible (Pmode, reg); - rtx text_label_symbol = tilepro_text_label_symbol (); - rtx text_label_rtx = tilepro_text_label_rtx (); - - emit_insn (gen_addli_pcrel (temp_reg, text_label_rtx, orig, - text_label_symbol)); - emit_insn (gen_auli_pcrel (temp_reg, temp_reg, orig, - text_label_symbol)); - - /* Note: this is conservative. We use the text_label but we - don't use the pic_offset_table. However, in some cases - we may need the pic_offset_table (see - tilepro_fixup_pcrel_references). */ - crtl->uses_pic_offset_table = 1; - - address = temp_reg; - - emit_move_insn (reg, address); - return reg; - } - else - { - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - rtx temp_reg = create_temp_reg_if_possible (Pmode, reg); - - gcc_assert (flag_pic); - if (flag_pic == 1) - { - emit_insn (gen_add_got16 (temp_reg, - tilepro_got_rtx (), orig)); - } - else - { - rtx temp_reg2 = create_temp_reg_if_possible (Pmode, reg); - emit_insn (gen_addhi_got32 (temp_reg2, - tilepro_got_rtx (), orig)); - emit_insn (gen_addlo_got32 (temp_reg, temp_reg2, orig)); - } - - address = temp_reg; - - pic_ref = gen_const_mem (Pmode, address); - crtl->uses_pic_offset_table = 1; - emit_move_insn (reg, pic_ref); - /* The following put a REG_EQUAL note on this insn, so that - it can be optimized by loop. But it causes the label to - be optimized away. */ - /* set_unique_reg_note (insn, REG_EQUAL, orig); */ - return reg; - } - } - else if (GET_CODE (orig) == CONST) - { - rtx base, offset; - - if (GET_CODE (XEXP (orig, 0)) == PLUS - && XEXP (XEXP (orig, 0), 0) == tilepro_got_rtx ()) - return orig; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS); - base = tilepro_legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, - reg); - offset = - tilepro_legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, - base == reg ? 0 : reg); - - if (CONST_INT_P (offset)) - { - if (can_create_pseudo_p ()) - offset = force_reg (Pmode, offset); - else - /* If we reach here, then something is seriously - wrong. */ - gcc_unreachable (); - } - - if (can_create_pseudo_p ()) - return force_reg (Pmode, gen_rtx_PLUS (Pmode, base, offset)); - else - gcc_unreachable (); - } - else if (GET_CODE (orig) == LABEL_REF) - { - rtx address, temp_reg; - rtx text_label_symbol; - rtx text_label_rtx; - - if (reg == 0) - { - gcc_assert (can_create_pseudo_p ()); - reg = gen_reg_rtx (Pmode); - } - - /* If not during reload, allocate another temp reg here for - loading in the address, so that these instructions can be - optimized properly. */ - temp_reg = create_temp_reg_if_possible (Pmode, reg); - text_label_symbol = tilepro_text_label_symbol (); - text_label_rtx = tilepro_text_label_rtx (); - - emit_insn (gen_addli_pcrel (temp_reg, text_label_rtx, orig, - text_label_symbol)); - emit_insn (gen_auli_pcrel (temp_reg, temp_reg, orig, - text_label_symbol)); - - /* Note: this is conservative. We use the text_label but we - don't use the pic_offset_table. */ - crtl->uses_pic_offset_table = 1; - - address = temp_reg; - - emit_move_insn (reg, address); - - return reg; - } - - return orig; -} - - -/* Implement TARGET_LEGITIMIZE_ADDRESS. */ -static rtx -tilepro_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, - machine_mode mode) -{ - if (GET_MODE_SIZE (mode) <= UNITS_PER_WORD - && symbolic_operand (x, Pmode) && tilepro_tls_referenced_p (x)) - { - return tilepro_legitimize_tls_address (x); - } - else if (flag_pic) - { - return tilepro_legitimize_pic_address (x, mode, 0); - } - else - return x; -} - - -/* Implement TARGET_DELEGITIMIZE_ADDRESS. */ -static rtx -tilepro_delegitimize_address (rtx x) -{ - x = delegitimize_mem_from_attrs (x); - - if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == UNSPEC) - { - switch (XINT (XEXP (x, 0), 1)) - { - case UNSPEC_PCREL_SYM: - case UNSPEC_GOT16_SYM: - case UNSPEC_GOT32_SYM: - case UNSPEC_TLS_GD: - case UNSPEC_TLS_IE: - x = XVECEXP (XEXP (x, 0), 0, 0); - break; - } - } - - return x; -} - - -/* Emit code to load the PIC register. */ -static void -load_pic_register (bool delay_pic_helper ATTRIBUTE_UNUSED) -{ - int orig_flag_pic = flag_pic; - - rtx got_symbol = tilepro_got_symbol (); - rtx text_label_symbol = tilepro_text_label_symbol (); - rtx text_label_rtx = tilepro_text_label_rtx (); - flag_pic = 0; - - emit_insn (gen_insn_lnk_and_label (text_label_rtx, text_label_symbol)); - - emit_insn (gen_addli_pcrel (tilepro_got_rtx (), - text_label_rtx, got_symbol, text_label_symbol)); - - emit_insn (gen_auli_pcrel (tilepro_got_rtx (), - tilepro_got_rtx (), - got_symbol, text_label_symbol)); - - flag_pic = orig_flag_pic; - - /* Need to emit this whether or not we obey regdecls, since - setjmp/longjmp can cause life info to screw up. ??? In the case - where we don't obey regdecls, this is not sufficient since we may - not fall out the bottom. */ - emit_use (tilepro_got_rtx ()); -} - - -/* Return the simd variant of the constant NUM of mode MODE, by - replicating it to fill an interger of mode SImode. NUM is first - truncated to fit in MODE. */ -rtx -tilepro_simd_int (rtx num, machine_mode mode) -{ - HOST_WIDE_INT n = 0; - - gcc_assert (CONST_INT_P (num)); - - n = INTVAL (num); - - switch (mode) - { - case E_QImode: - n = 0x01010101 * (n & 0x000000FF); - break; - case E_HImode: - n = 0x00010001 * (n & 0x0000FFFF); - break; - case E_SImode: - break; - case E_DImode: - break; - default: - gcc_unreachable (); - } - - return gen_int_si (n); -} - - -/* Split one or more DImode RTL references into pairs of SImode - references. The RTL can be REG, offsettable MEM, integer constant, - or CONST_DOUBLE. "operands" is a pointer to an array of DImode RTL - to split and "num" is its length. lo_half and hi_half are output - arrays that parallel "operands". */ -void -split_di (rtx operands[], int num, rtx lo_half[], rtx hi_half[]) -{ - while (num--) - { - rtx op = operands[num]; - - /* simplify_subreg refuse to split volatile memory addresses, - but we still have to handle it. */ - if (MEM_P (op)) - { - lo_half[num] = adjust_address (op, SImode, 0); - hi_half[num] = adjust_address (op, SImode, 4); - } - else - { - lo_half[num] = simplify_gen_subreg (SImode, op, - GET_MODE (op) == VOIDmode - ? DImode : GET_MODE (op), 0); - hi_half[num] = simplify_gen_subreg (SImode, op, - GET_MODE (op) == VOIDmode - ? DImode : GET_MODE (op), 4); - } - } -} - - -/* Returns true iff val can be moved into a register in one - instruction. And if it can, it emits the code to move the - constant. - - If three_wide_only is true, this insists on an instruction that - works in a bundle containing three instructions. */ -static bool -expand_set_cint32_one_inst (rtx dest_reg, - HOST_WIDE_INT val, bool three_wide_only) -{ - val = trunc_int_for_mode (val, SImode); - - if (val == trunc_int_for_mode (val, QImode)) - { - /* Success! */ - emit_move_insn (dest_reg, GEN_INT (val)); - return true; - } - else if (!three_wide_only) - { - rtx imm_op = GEN_INT (val); - - if (satisfies_constraint_J (imm_op) - || satisfies_constraint_K (imm_op) - || satisfies_constraint_N (imm_op) - || satisfies_constraint_P (imm_op)) - { - emit_move_insn (dest_reg, imm_op); - return true; - } - } - - return false; -} - - -/* Implement SImode rotatert. */ -static HOST_WIDE_INT -rotate_right (HOST_WIDE_INT n, int count) -{ - unsigned HOST_WIDE_INT x = n & 0xFFFFFFFF; - if (count == 0) - return x; - return ((x >> count) | (x << (32 - count))) & 0xFFFFFFFF; -} - - -/* Return true iff n contains exactly one contiguous sequence of 1 - bits, possibly wrapping around from high bits to low bits. */ -bool -tilepro_bitfield_operand_p (HOST_WIDE_INT n, int *first_bit, int *last_bit) -{ - int i; - - if (n == 0) - return false; - - for (i = 0; i < 32; i++) - { - unsigned HOST_WIDE_INT x = rotate_right (n, i); - if (!(x & 1)) - continue; - - /* See if x is a power of two minus one, i.e. only consecutive 1 - bits starting from bit 0. */ - if ((x & (x + 1)) == 0) - { - if (first_bit != NULL) - *first_bit = i; - if (last_bit != NULL) - *last_bit = (i + exact_log2 (x ^ (x >> 1))) & 31; - - return true; - } - } - - return false; -} - - -/* Create code to move the CONST_INT value in src_val to dest_reg. */ -static void -expand_set_cint32 (rtx dest_reg, rtx src_val) -{ - HOST_WIDE_INT val; - int leading_zeroes, trailing_zeroes; - int lower, upper; - int three_wide_only; - rtx temp; - - gcc_assert (CONST_INT_P (src_val)); - val = trunc_int_for_mode (INTVAL (src_val), SImode); - - /* See if we can generate the constant in one instruction. */ - if (expand_set_cint32_one_inst (dest_reg, val, false)) - return; - - /* Create a temporary variable to hold a partial result, to enable - CSE. */ - temp = create_temp_reg_if_possible (SImode, dest_reg); - - leading_zeroes = 31 - floor_log2 (val & 0xFFFFFFFF); - trailing_zeroes = exact_log2 (val & -val); - - lower = trunc_int_for_mode (val, HImode); - upper = trunc_int_for_mode ((val - lower) >> 16, HImode); - - /* First try all three-wide instructions that generate a constant - (i.e. movei) followed by various shifts and rotates. If none of - those work, try various two-wide ways of generating a constant - followed by various shifts and rotates. */ - for (three_wide_only = 1; three_wide_only >= 0; three_wide_only--) - { - int count; - - if (expand_set_cint32_one_inst (temp, val >> trailing_zeroes, - three_wide_only)) - { - /* 0xFFFFA500 becomes: - movei temp, 0xFFFFFFA5 - shli dest, temp, 8 */ - emit_move_insn (dest_reg, - gen_rtx_ASHIFT (SImode, temp, - GEN_INT (trailing_zeroes))); - return; - } - - if (expand_set_cint32_one_inst (temp, val << leading_zeroes, - three_wide_only)) - { - /* 0x7FFFFFFF becomes: - movei temp, -2 - shri dest, temp, 1 */ - emit_move_insn (dest_reg, - gen_rtx_LSHIFTRT (SImode, temp, - GEN_INT (leading_zeroes))); - return; - } - - /* Try rotating a one-instruction immediate, since rotate is - 3-wide. */ - for (count = 1; count < 32; count++) - { - HOST_WIDE_INT r = rotate_right (val, count); - if (expand_set_cint32_one_inst (temp, r, three_wide_only)) - { - /* 0xFFA5FFFF becomes: - movei temp, 0xFFFFFFA5 - rli dest, temp, 16 */ - emit_move_insn (dest_reg, - gen_rtx_ROTATE (SImode, temp, GEN_INT (count))); - return; - } - } - - if (lower == trunc_int_for_mode (lower, QImode)) - { - /* We failed to use two 3-wide instructions, but the low 16 - bits are a small number so just use a 2-wide + 3-wide - auli + addi pair rather than anything more exotic. - - 0x12340056 becomes: - auli temp, zero, 0x1234 - addi dest, temp, 0x56 */ - break; - } - } - - /* Fallback case: use a auli + addli/addi pair. */ - emit_move_insn (temp, GEN_INT (upper << 16)); - emit_move_insn (dest_reg, (gen_rtx_PLUS (SImode, temp, GEN_INT (lower)))); -} - - -/* Load OP1, a 32-bit constant, into OP0, a register. We know it - can't be done in one insn when we get here, the move expander - guarantees this. */ -void -tilepro_expand_set_const32 (rtx op0, rtx op1) -{ - machine_mode mode = GET_MODE (op0); - rtx temp; - - if (CONST_INT_P (op1)) - { - /* TODO: I don't know if we want to split large constants now, - or wait until later (with a define_split). - - Does splitting early help CSE? Does it harm other - optimizations that might fold loads? */ - expand_set_cint32 (op0, op1); - } - else - { - temp = create_temp_reg_if_possible (mode, op0); - - /* A symbol, emit in the traditional way. */ - emit_move_insn (temp, gen_rtx_HIGH (mode, op1)); - emit_move_insn (op0, gen_rtx_LO_SUM (mode, temp, op1)); - } -} - - -/* Expand a move instruction. Return true if all work is done. */ -bool -tilepro_expand_mov (machine_mode mode, rtx *operands) -{ - /* Handle sets of MEM first. */ - if (MEM_P (operands[0])) - { - if (can_create_pseudo_p ()) - operands[0] = validize_mem (operands[0]); - - if (reg_or_0_operand (operands[1], mode)) - return false; - - if (!reload_in_progress) - operands[1] = force_reg (mode, operands[1]); - } - - /* Fixup TLS cases. */ - if (CONSTANT_P (operands[1]) && tilepro_tls_referenced_p (operands[1])) - { - operands[1] = tilepro_legitimize_tls_address (operands[1]); - return false; - } - - /* Fixup PIC cases. */ - if (flag_pic && CONSTANT_P (operands[1])) - { - if (tilepro_pic_address_needs_scratch (operands[1])) - operands[1] = tilepro_legitimize_pic_address (operands[1], mode, 0); - - if (symbolic_operand (operands[1], mode)) - { - operands[1] = tilepro_legitimize_pic_address (operands[1], - mode, - (reload_in_progress ? - operands[0] : - NULL_RTX)); - return false; - } - } - - /* Fixup for UNSPEC addresses. */ - if (flag_pic - && GET_CODE (operands[1]) == HIGH - && GET_CODE (XEXP (operands[1], 0)) == CONST - && GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == UNSPEC) - { - rtx unspec = XEXP (XEXP (operands[1], 0), 0); - int unspec_num = XINT (unspec, 1); - if (unspec_num == UNSPEC_PCREL_SYM) - { - emit_insn (gen_auli_pcrel (operands[0], const0_rtx, - XVECEXP (unspec, 0, 0), - XVECEXP (unspec, 0, 1))); - return true; - } - else if (flag_pic == 2 && unspec_num == UNSPEC_GOT32_SYM) - { - emit_insn (gen_addhi_got32 (operands[0], const0_rtx, - XVECEXP (unspec, 0, 0))); - return true; - } - else if (HAVE_AS_TLS && unspec_num == UNSPEC_TLS_GD) - { - emit_insn (gen_tls_gd_addhi (operands[0], const0_rtx, - XVECEXP (unspec, 0, 0))); - return true; - } - else if (HAVE_AS_TLS && unspec_num == UNSPEC_TLS_IE) - { - emit_insn (gen_tls_ie_addhi (operands[0], const0_rtx, - XVECEXP (unspec, 0, 0))); - return true; - } - else if (HAVE_AS_TLS && unspec_num == UNSPEC_TLS_LE) - { - emit_insn (gen_tls_le_addhi (operands[0], const0_rtx, - XVECEXP (unspec, 0, 0))); - return true; - } - } - - /* Accept non-constants and valid constants unmodified. */ - if (!CONSTANT_P (operands[1]) - || GET_CODE (operands[1]) == HIGH || move_operand (operands[1], mode)) - return false; - - /* Split large integers. */ - if (GET_MODE_SIZE (mode) <= 4) - { - tilepro_expand_set_const32 (operands[0], operands[1]); - return true; - } - - return false; -} - - -/* Expand the "insv" pattern. */ -void -tilepro_expand_insv (rtx operands[4]) -{ - rtx first_rtx = operands[2]; - HOST_WIDE_INT first = INTVAL (first_rtx); - HOST_WIDE_INT width = INTVAL (operands[1]); - rtx v = operands[3]; - - /* Shift the inserted bits into position. */ - if (first != 0) - { - if (CONST_INT_P (v)) - { - /* Shift the constant into mm position. */ - v = gen_int_si (INTVAL (v) << first); - } - else - { - /* Shift over the value to be inserted. */ - rtx tmp = gen_reg_rtx (SImode); - emit_insn (gen_ashlsi3 (tmp, v, first_rtx)); - v = tmp; - } - } - - /* Insert the shifted bits using an 'mm' insn. */ - emit_insn (gen_insn_mm (operands[0], v, operands[0], first_rtx, - GEN_INT (first + width - 1))); -} - - -/* Expand unaligned loads. */ -void -tilepro_expand_unaligned_load (rtx dest_reg, rtx mem, HOST_WIDE_INT bitsize, - HOST_WIDE_INT bit_offset, bool sign) -{ - machine_mode mode; - rtx addr_lo, addr_hi; - rtx mem_lo, mem_hi, hi; - rtx mema, wide_result; - int last_byte_offset; - HOST_WIDE_INT byte_offset = bit_offset / BITS_PER_UNIT; - - mode = GET_MODE (dest_reg); - - hi = gen_reg_rtx (mode); - - if (bitsize == 2 * BITS_PER_UNIT && (bit_offset % BITS_PER_UNIT) == 0) - { - rtx lo; - - /* When just loading a two byte value, we can load the two bytes - individually and combine them efficiently. */ - - mem_lo = adjust_address (mem, QImode, byte_offset); - mem_hi = adjust_address (mem, QImode, byte_offset + 1); - - lo = gen_reg_rtx (mode); - emit_insn (gen_zero_extendqisi2 (lo, mem_lo)); - - if (sign) - { - rtx tmp = gen_reg_rtx (mode); - - /* Do a signed load of the second byte then shift and OR it - in. */ - emit_insn (gen_extendqisi2 (gen_lowpart (SImode, hi), mem_hi)); - emit_insn (gen_ashlsi3 (gen_lowpart (SImode, tmp), - gen_lowpart (SImode, hi), GEN_INT (8))); - emit_insn (gen_iorsi3 (gen_lowpart (SImode, dest_reg), - gen_lowpart (SImode, lo), - gen_lowpart (SImode, tmp))); - } - else - { - /* Do two unsigned loads and use intlb to interleave - them. */ - emit_insn (gen_zero_extendqisi2 (gen_lowpart (SImode, hi), mem_hi)); - emit_insn (gen_insn_intlb (gen_lowpart (SImode, dest_reg), - gen_lowpart (SImode, hi), - gen_lowpart (SImode, lo))); - } - - return; - } - - mema = XEXP (mem, 0); - - /* AND addresses cannot be in any alias set, since they may - implicitly alias surrounding code. Ideally we'd have some alias - set that covered all types except those with alignment 8 or - higher. */ - addr_lo = force_reg (Pmode, plus_constant (Pmode, mema, byte_offset)); - mem_lo = change_address (mem, mode, - gen_rtx_AND (Pmode, addr_lo, GEN_INT (-4))); - set_mem_alias_set (mem_lo, 0); - - /* Load the high word at an address that will not fault if the low - address is aligned and at the very end of a page. */ - last_byte_offset = (bit_offset + bitsize - 1) / BITS_PER_UNIT; - addr_hi = force_reg (Pmode, plus_constant (Pmode, mema, last_byte_offset)); - mem_hi = change_address (mem, mode, - gen_rtx_AND (Pmode, addr_hi, GEN_INT (-4))); - set_mem_alias_set (mem_hi, 0); - - if (bitsize == 32) - { - addr_lo = make_safe_from (addr_lo, dest_reg); - wide_result = dest_reg; - } - else - { - wide_result = gen_reg_rtx (mode); - } - - /* Load hi first in case dest_reg is used in mema. */ - emit_move_insn (hi, mem_hi); - emit_move_insn (wide_result, mem_lo); - - emit_insn (gen_insn_dword_align (gen_lowpart (SImode, wide_result), - gen_lowpart (SImode, wide_result), - gen_lowpart (SImode, hi), addr_lo)); - - if (bitsize != 32) - { - rtx extracted = - extract_bit_field (gen_lowpart (SImode, wide_result), - bitsize, bit_offset % BITS_PER_UNIT, - !sign, gen_lowpart (SImode, dest_reg), - SImode, SImode, false, NULL); - - if (extracted != dest_reg) - emit_move_insn (dest_reg, gen_lowpart (SImode, extracted)); - } -} - - -/* Expand unaligned stores. */ -static void -tilepro_expand_unaligned_store (rtx mem, rtx src, HOST_WIDE_INT bitsize, - HOST_WIDE_INT bit_offset) -{ - HOST_WIDE_INT byte_offset = bit_offset / BITS_PER_UNIT; - HOST_WIDE_INT bytesize = bitsize / BITS_PER_UNIT; - HOST_WIDE_INT shift_amt; - HOST_WIDE_INT i; - rtx mem_addr; - rtx store_val; - - for (i = 0, shift_amt = 0; i < bytesize; i++, shift_amt += BITS_PER_UNIT) - { - mem_addr = adjust_address (mem, QImode, byte_offset + i); - - if (shift_amt) - { - store_val = expand_simple_binop (SImode, LSHIFTRT, - gen_lowpart (SImode, src), - GEN_INT (shift_amt), NULL, 1, - OPTAB_LIB_WIDEN); - store_val = gen_lowpart (QImode, store_val); - } - else - { - store_val = gen_lowpart (QImode, src); - } - - emit_move_insn (mem_addr, store_val); - } -} - - -/* Implement the movmisalign patterns. One of the operands is a - memory that is not naturally aligned. Emit instructions to load - it. */ -void -tilepro_expand_movmisalign (machine_mode mode, rtx *operands) -{ - if (MEM_P (operands[1])) - { - rtx tmp; - - if (register_operand (operands[0], mode)) - tmp = operands[0]; - else - tmp = gen_reg_rtx (mode); - - tilepro_expand_unaligned_load (tmp, operands[1], - GET_MODE_BITSIZE (mode), 0, true); - - if (tmp != operands[0]) - emit_move_insn (operands[0], tmp); - } - else if (MEM_P (operands[0])) - { - if (!reg_or_0_operand (operands[1], mode)) - operands[1] = force_reg (mode, operands[1]); - - tilepro_expand_unaligned_store (operands[0], operands[1], - GET_MODE_BITSIZE (mode), 0); - } - else - gcc_unreachable (); -} - - -/* Implement the addsi3 pattern. */ -bool -tilepro_expand_addsi (rtx op0, rtx op1, rtx op2) -{ - rtx temp; - HOST_WIDE_INT n; - HOST_WIDE_INT high; - - /* Skip anything that only takes one instruction. */ - if (add_operand (op2, SImode)) - return false; - - /* We can only optimize ints here (it should be impossible to get - here with any other type, but it is harmless to check. */ - if (!CONST_INT_P (op2)) - return false; - - temp = create_temp_reg_if_possible (SImode, op0); - n = INTVAL (op2); - high = (n + (n & 0x8000)) & ~0xffff; - - emit_move_insn (temp, gen_rtx_PLUS (SImode, op1, gen_int_si (high))); - emit_move_insn (op0, gen_rtx_PLUS (SImode, temp, gen_int_si (n - high))); - - return true; -} - - -/* Implement the allocate_stack pattern (alloca). */ -void -tilepro_allocate_stack (rtx op0, rtx op1) -{ - /* Technically the correct way to initialize chain_loc is with - * gen_frame_mem() instead of gen_rtx_MEM(), but gen_frame_mem() - * sets the alias_set to that of a frame reference. Some of our - * tests rely on some unsafe assumption about when the chaining - * update is done, we need to be conservative about reordering the - * chaining instructions. - */ - rtx fp_addr = gen_reg_rtx (Pmode); - rtx fp_value = gen_reg_rtx (Pmode); - rtx fp_loc; - - emit_move_insn (fp_addr, gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD))); - - fp_loc = gen_frame_mem (Pmode, fp_addr); - - emit_move_insn (fp_value, fp_loc); - - op1 = force_reg (Pmode, op1); - - emit_move_insn (stack_pointer_rtx, - gen_rtx_MINUS (Pmode, stack_pointer_rtx, op1)); - - emit_move_insn (fp_addr, gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD))); - - fp_loc = gen_frame_mem (Pmode, fp_addr); - - emit_move_insn (fp_loc, fp_value); - - emit_move_insn (op0, virtual_stack_dynamic_rtx); -} - - - -/* Multiplies */ - -/* Returns the insn_code in ENTRY. */ -static enum insn_code -tilepro_multiply_get_opcode (const struct tilepro_multiply_insn_seq_entry - *entry) -{ - return tilepro_multiply_insn_seq_decode_opcode[entry->compressed_opcode]; -} - - -/* Returns the length of the 'op' array. */ -static int -tilepro_multiply_get_num_ops (const struct tilepro_multiply_insn_seq *seq) -{ - /* The array either uses all of its allocated slots or is terminated - by a bogus opcode. Either way, the array size is the index of the - last valid opcode plus one. */ - int i; - for (i = tilepro_multiply_insn_seq_MAX_OPERATIONS - 1; i >= 0; i--) - if (tilepro_multiply_get_opcode (&seq->op[i]) != CODE_FOR_nothing) - return i + 1; - - /* An empty array is not allowed. */ - gcc_unreachable (); -} - - -/* We precompute a number of expression trees for multiplying by - constants. This generates code for such an expression tree by - walking through the nodes in the tree (which are conveniently - pre-linearized) and emitting an instruction for each one. */ -static void -tilepro_expand_constant_multiply_given_sequence (rtx result, rtx src, - const struct - tilepro_multiply_insn_seq - *seq) -{ - int i; - int num_ops; - - /* Keep track of the subexpressions computed so far, so later - instructions can refer to them. We seed the array with zero and - the value being multiplied. */ - int num_subexprs = 2; - rtx subexprs[tilepro_multiply_insn_seq_MAX_OPERATIONS + 2]; - subexprs[0] = const0_rtx; - subexprs[1] = src; - - /* Determine how many instructions we are going to generate. */ - num_ops = tilepro_multiply_get_num_ops (seq); - gcc_assert (num_ops > 0 - && num_ops <= tilepro_multiply_insn_seq_MAX_OPERATIONS); - - for (i = 0; i < num_ops; i++) - { - const struct tilepro_multiply_insn_seq_entry *entry = &seq->op[i]; - - /* Figure out where to store the output of this instruction. */ - const bool is_last_op = (i + 1 == num_ops); - rtx out = is_last_op ? result : gen_reg_rtx (SImode); - - enum insn_code opcode = tilepro_multiply_get_opcode (entry); - if (opcode == CODE_FOR_ashlsi3) - { - /* Handle shift by immediate. This is a special case because - the meaning of the second operand is a constant shift - count rather than an operand index. */ - - /* Make sure the shift count is in range. Zero should not - happen. */ - const int shift_count = entry->rhs; - gcc_assert (shift_count > 0 && shift_count < 32); - - /* Emit the actual instruction. */ - emit_insn (GEN_FCN (opcode) - (out, subexprs[entry->lhs], - gen_rtx_CONST_INT (SImode, shift_count))); - } - else - { - /* Handle a normal two-operand instruction, such as add or - s1a. */ - - /* Make sure we are referring to a previously computed - subexpression. */ - gcc_assert (entry->rhs < num_subexprs); - - /* Emit the actual instruction. */ - emit_insn (GEN_FCN (opcode) - (out, subexprs[entry->lhs], subexprs[entry->rhs])); - } - - /* Record this subexpression for use by later expressions. */ - subexprs[num_subexprs++] = out; - } -} - - -/* bsearch helper function. */ -static int -tilepro_compare_multipliers (const void *key, const void *t) -{ - return *(const int *) key - - ((const struct tilepro_multiply_insn_seq *) t)->multiplier; -} - - -/* Returns the tilepro_multiply_insn_seq for multiplier, or NULL if - none exists. */ -static const struct tilepro_multiply_insn_seq * -tilepro_find_multiply_insn_seq_for_constant (int multiplier) -{ - return ((const struct tilepro_multiply_insn_seq *) - bsearch (&multiplier, tilepro_multiply_insn_seq_table, - tilepro_multiply_insn_seq_table_size, - sizeof tilepro_multiply_insn_seq_table[0], - tilepro_compare_multipliers)); -} - - -/* Try to a expand constant multiply in SImode by looking it up in a - precompiled table. OP0 is the result operand, OP1 is the source - operand, and MULTIPLIER is the value of the constant. Return true - if it succeeds. */ -static bool -tilepro_expand_const_mulsi (rtx op0, rtx op1, int multiplier) -{ - /* See if we have precomputed an efficient way to multiply by this - constant. */ - const struct tilepro_multiply_insn_seq *seq = - tilepro_find_multiply_insn_seq_for_constant (multiplier); - if (seq != NULL) - { - tilepro_expand_constant_multiply_given_sequence (op0, op1, seq); - return true; - } - else - return false; -} - - -/* Expand the mulsi pattern. */ -bool -tilepro_expand_mulsi (rtx op0, rtx op1, rtx op2) -{ - if (CONST_INT_P (op2)) - { - HOST_WIDE_INT n = trunc_int_for_mode (INTVAL (op2), SImode); - return tilepro_expand_const_mulsi (op0, op1, n); - } - return false; -} - - -/* Expand a high multiply pattern in SImode. RESULT, OP1, OP2 are the - operands, and SIGN is true if it's a signed multiply, and false if - it's an unsigned multiply. */ -static void -tilepro_expand_high_multiply (rtx result, rtx op1, rtx op2, bool sign) -{ - rtx tmp0 = gen_reg_rtx (SImode); - rtx tmp1 = gen_reg_rtx (SImode); - rtx tmp2 = gen_reg_rtx (SImode); - rtx tmp3 = gen_reg_rtx (SImode); - rtx tmp4 = gen_reg_rtx (SImode); - rtx tmp5 = gen_reg_rtx (SImode); - rtx tmp6 = gen_reg_rtx (SImode); - rtx tmp7 = gen_reg_rtx (SImode); - rtx tmp8 = gen_reg_rtx (SImode); - rtx tmp9 = gen_reg_rtx (SImode); - rtx tmp10 = gen_reg_rtx (SImode); - rtx tmp11 = gen_reg_rtx (SImode); - rtx tmp12 = gen_reg_rtx (SImode); - rtx tmp13 = gen_reg_rtx (SImode); - rtx result_lo = gen_reg_rtx (SImode); - - if (sign) - { - emit_insn (gen_insn_mulhl_su (tmp0, op1, op2)); - emit_insn (gen_insn_mulhl_su (tmp1, op2, op1)); - emit_insn (gen_insn_mulll_uu (tmp2, op1, op2)); - emit_insn (gen_insn_mulhh_ss (tmp3, op1, op2)); - } - else - { - emit_insn (gen_insn_mulhl_uu (tmp0, op1, op2)); - emit_insn (gen_insn_mulhl_uu (tmp1, op2, op1)); - emit_insn (gen_insn_mulll_uu (tmp2, op1, op2)); - emit_insn (gen_insn_mulhh_uu (tmp3, op1, op2)); - } - - emit_move_insn (tmp4, (gen_rtx_ASHIFT (SImode, tmp0, GEN_INT (16)))); - - emit_move_insn (tmp5, (gen_rtx_ASHIFT (SImode, tmp1, GEN_INT (16)))); - - emit_move_insn (tmp6, (gen_rtx_PLUS (SImode, tmp4, tmp5))); - emit_move_insn (result_lo, (gen_rtx_PLUS (SImode, tmp2, tmp6))); - - emit_move_insn (tmp7, gen_rtx_LTU (SImode, tmp6, tmp4)); - emit_move_insn (tmp8, gen_rtx_LTU (SImode, result_lo, tmp2)); - - if (sign) - { - emit_move_insn (tmp9, (gen_rtx_ASHIFTRT (SImode, tmp0, GEN_INT (16)))); - emit_move_insn (tmp10, (gen_rtx_ASHIFTRT (SImode, tmp1, GEN_INT (16)))); - } - else - { - emit_move_insn (tmp9, (gen_rtx_LSHIFTRT (SImode, tmp0, GEN_INT (16)))); - emit_move_insn (tmp10, (gen_rtx_LSHIFTRT (SImode, tmp1, GEN_INT (16)))); - } - - emit_move_insn (tmp11, (gen_rtx_PLUS (SImode, tmp3, tmp7))); - emit_move_insn (tmp12, (gen_rtx_PLUS (SImode, tmp8, tmp9))); - emit_move_insn (tmp13, (gen_rtx_PLUS (SImode, tmp11, tmp12))); - emit_move_insn (result, (gen_rtx_PLUS (SImode, tmp13, tmp10))); -} - - -/* Implement smulsi3_highpart. */ -void -tilepro_expand_smulsi3_highpart (rtx op0, rtx op1, rtx op2) -{ - tilepro_expand_high_multiply (op0, op1, op2, true); -} - - -/* Implement umulsi3_highpart. */ -void -tilepro_expand_umulsi3_highpart (rtx op0, rtx op1, rtx op2) -{ - tilepro_expand_high_multiply (op0, op1, op2, false); -} - - - -/* Compare and branches */ - -/* Helper function to handle DImode for tilepro_emit_setcc_internal. */ -static bool -tilepro_emit_setcc_internal_di (rtx res, enum rtx_code code, rtx op0, rtx op1) -{ - rtx operands[2], lo_half[2], hi_half[2]; - rtx tmp, tmp0, tmp1, tmp2; - bool swap = false; - - /* Reduce the number of cases we need to handle by reversing the - operands. */ - switch (code) - { - case EQ: - case NE: - case LE: - case LT: - case LEU: - case LTU: - /* We handle these compares directly. */ - break; - - case GE: - case GT: - case GEU: - case GTU: - /* Reverse the operands. */ - swap = true; - break; - - default: - /* We should not have called this with any other code. */ - gcc_unreachable (); - } - - if (swap) - { - code = swap_condition (code); - tmp = op0, op0 = op1, op1 = tmp; - } - - operands[0] = op0; - operands[1] = op1; - - split_di (operands, 2, lo_half, hi_half); - - if (!reg_or_0_operand (lo_half[0], SImode)) - lo_half[0] = force_reg (SImode, lo_half[0]); - - if (!reg_or_0_operand (hi_half[0], SImode)) - hi_half[0] = force_reg (SImode, hi_half[0]); - - if (!CONST_INT_P (lo_half[1]) && !register_operand (lo_half[1], SImode)) - lo_half[1] = force_reg (SImode, lo_half[1]); - - if (!CONST_INT_P (hi_half[1]) && !register_operand (hi_half[1], SImode)) - hi_half[1] = force_reg (SImode, hi_half[1]); - - tmp0 = gen_reg_rtx (SImode); - tmp1 = gen_reg_rtx (SImode); - tmp2 = gen_reg_rtx (SImode); - - switch (code) - { - case EQ: - emit_insn (gen_insn_seq (tmp0, lo_half[0], lo_half[1])); - emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_andsi3 (res, tmp0, tmp1)); - return true; - case NE: - emit_insn (gen_insn_sne (tmp0, lo_half[0], lo_half[1])); - emit_insn (gen_insn_sne (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_iorsi3 (res, tmp0, tmp1)); - return true; - case LE: - emit_insn (gen_insn_slte (tmp0, hi_half[0], hi_half[1])); - emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_insn_slte_u (tmp2, lo_half[0], lo_half[1])); - emit_insn (gen_insn_mvnz (res, tmp0, tmp1, tmp2)); - return true; - case LT: - if (operands[1] == const0_rtx) - { - emit_insn (gen_lshrsi3 (res, hi_half[0], GEN_INT (31))); - return true; - } - else - { - emit_insn (gen_insn_slt (tmp0, hi_half[0], hi_half[1])); - emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_insn_slt_u (tmp2, lo_half[0], lo_half[1])); - emit_insn (gen_insn_mvnz (res, tmp0, tmp1, tmp2)); - } - return true; - case LEU: - emit_insn (gen_insn_slte_u (tmp0, hi_half[0], hi_half[1])); - emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_insn_slte_u (tmp2, lo_half[0], lo_half[1])); - emit_insn (gen_insn_mvnz (res, tmp0, tmp1, tmp2)); - return true; - case LTU: - emit_insn (gen_insn_slt_u (tmp0, hi_half[0], hi_half[1])); - emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); - emit_insn (gen_insn_slt_u (tmp2, lo_half[0], lo_half[1])); - emit_insn (gen_insn_mvnz (res, tmp0, tmp1, tmp2)); - return true; - default: - gcc_unreachable (); - } - - return false; -} - - -/* Certain simplifications can be done to make invalid setcc - operations valid. Return the final comparison, or NULL if we can't - work. */ -static bool -tilepro_emit_setcc_internal (rtx res, enum rtx_code code, rtx op0, rtx op1, - machine_mode cmp_mode) -{ - rtx tmp; - bool swap = false; - - if (cmp_mode == DImode) - { - return tilepro_emit_setcc_internal_di (res, code, op0, op1); - } - - /* The general case: fold the comparison code to the types of - compares that we have, choosing the branch as necessary. */ - - switch (code) - { - case EQ: - case NE: - case LE: - case LT: - case LEU: - case LTU: - /* We have these compares. */ - break; - - case GE: - case GT: - case GEU: - case GTU: - /* We do not have these compares, so we reverse the - operands. */ - swap = true; - break; - - default: - /* We should not have called this with any other code. */ - gcc_unreachable (); - } - - if (swap) - { - code = swap_condition (code); - tmp = op0, op0 = op1, op1 = tmp; - } - - if (!reg_or_0_operand (op0, SImode)) - op0 = force_reg (SImode, op0); - - if (!CONST_INT_P (op1) && !register_operand (op1, SImode)) - op1 = force_reg (SImode, op1); - - /* Return the setcc comparison. */ - emit_insn (gen_rtx_SET (res, gen_rtx_fmt_ee (code, SImode, op0, op1))); - - return true; -} - - -/* Implement cstore patterns. */ -bool -tilepro_emit_setcc (rtx operands[], machine_mode cmp_mode) -{ - return - tilepro_emit_setcc_internal (operands[0], GET_CODE (operands[1]), - operands[2], operands[3], cmp_mode); -} - - -/* Return whether CODE is a signed comparison. */ -static bool -signed_compare_p (enum rtx_code code) -{ - return (code == EQ || code == NE || code == LT || code == LE - || code == GT || code == GE); -} - - -/* Generate the comparison for an SImode conditional branch. */ -static rtx -tilepro_emit_cc_test (enum rtx_code code, rtx op0, rtx op1, - machine_mode cmp_mode, bool eq_ne_only) -{ - enum rtx_code branch_code; - rtx temp; - - /* Check for a compare against zero using a comparison we can do - directly. */ - if (cmp_mode != DImode - && op1 == const0_rtx - && (code == EQ || code == NE - || (!eq_ne_only && signed_compare_p (code)))) - { - op0 = force_reg (SImode, op0); - return gen_rtx_fmt_ee (code, VOIDmode, op0, const0_rtx); - } - - /* The general case: fold the comparison code to the types of - compares that we have, choosing the branch as necessary. */ - switch (code) - { - case EQ: - case LE: - case LT: - case LEU: - case LTU: - /* We have these compares. */ - branch_code = NE; - break; - - case NE: - case GE: - case GT: - case GEU: - case GTU: - /* These must be reversed (except NE, but let's - canonicalize). */ - code = reverse_condition (code); - branch_code = EQ; - break; - - default: - gcc_unreachable (); - } - - if (cmp_mode != DImode - && CONST_INT_P (op1) && (!satisfies_constraint_I (op1) || code == LEU)) - { - HOST_WIDE_INT n = trunc_int_for_mode (INTVAL (op1), SImode); - - switch (code) - { - case EQ: - /* Subtract off the value we want to compare against and see - if we get zero. This is cheaper than creating a constant - in a register. Except that subtracting -128 is more - expensive than seqi to -128, so we leave that alone. */ - /* ??? Don't do this when comparing against symbols, - otherwise we'll reduce (&x == 0x1234) to (&x-0x1234 == - 0), which will be declared false out of hand (at least - for non-weak). */ - if (!(symbolic_operand (op0, VOIDmode) - || (REG_P (op0) && REG_POINTER (op0)))) - { - /* To compare against MIN_INT, we add MIN_INT and check - for 0. */ - HOST_WIDE_INT add; - if (n != -2147483647 - 1) - add = -n; - else - add = n; - - op0 = force_reg (SImode, op0); - temp = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (temp, op0, gen_int_si (add))); - return gen_rtx_fmt_ee (reverse_condition (branch_code), - VOIDmode, temp, const0_rtx); - } - break; - - case LEU: - if (n == -1) - break; - /* FALLTHRU */ - - case LTU: - /* Change ((unsigned)x < 0x1000) into !((unsigned)x >> 12), - etc. */ - { - int first = exact_log2 (code == LTU ? n : n + 1); - if (first != -1) - { - op0 = force_reg (SImode, op0); - temp = gen_reg_rtx (SImode); - emit_move_insn (temp, - gen_rtx_LSHIFTRT (SImode, op0, - gen_int_si (first))); - return gen_rtx_fmt_ee (reverse_condition (branch_code), - VOIDmode, temp, const0_rtx); - } - } - break; - - default: - break; - } - } - - /* Compute a flag saying whether we should branch. */ - temp = gen_reg_rtx (SImode); - tilepro_emit_setcc_internal (temp, code, op0, op1, cmp_mode); - - /* Return the branch comparison. */ - return gen_rtx_fmt_ee (branch_code, VOIDmode, temp, const0_rtx); -} - - -/* Generate the comparison for a conditional branch. */ -void -tilepro_emit_conditional_branch (rtx operands[], machine_mode cmp_mode) -{ - rtx cmp_rtx = - tilepro_emit_cc_test (GET_CODE (operands[0]), operands[1], operands[2], - cmp_mode, false); - rtx branch_rtx = gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, cmp_rtx, - gen_rtx_LABEL_REF - (VOIDmode, - operands[3]), - pc_rtx)); - emit_jump_insn (branch_rtx); -} - - -/* Implement the movsicc pattern. */ -rtx -tilepro_emit_conditional_move (rtx cmp) -{ - return - tilepro_emit_cc_test (GET_CODE (cmp), XEXP (cmp, 0), XEXP (cmp, 1), - GET_MODE (XEXP (cmp, 0)), true); -} - - -/* Return true if INSN is annotated with a REG_BR_PROB note that - indicates it's a branch that's predicted taken. */ -static bool -cbranch_predicted_p (rtx_insn *insn) -{ - rtx x = find_reg_note (insn, REG_BR_PROB, 0); - - if (x) - { - return profile_probability::from_reg_br_prob_note (XINT (x, 0)) - >= profile_probability::even (); - } - - return false; -} - - -/* Output assembly code for a specific branch instruction, appending - the branch prediction flag to the opcode if appropriate. */ -static const char * -tilepro_output_simple_cbranch_with_opcode (rtx_insn *insn, const char *opcode, - int regop, bool netreg_p, - bool reverse_predicted) -{ - static char buf[64]; - sprintf (buf, "%s%s\t%%%c%d, %%l0", opcode, - (cbranch_predicted_p (insn) ^ reverse_predicted) ? "t" : "", - netreg_p ? 'N' : 'r', regop); - return buf; -} - - -/* Output assembly code for a specific branch instruction, appending - the branch prediction flag to the opcode if appropriate. */ -const char * -tilepro_output_cbranch_with_opcode (rtx_insn *insn, rtx *operands, - const char *opcode, - const char *rev_opcode, - int regop, bool netreg_p) -{ - const char *branch_if_false; - rtx taken, not_taken; - bool is_simple_branch; - - gcc_assert (LABEL_P (operands[0])); - - is_simple_branch = true; - if (INSN_ADDRESSES_SET_P ()) - { - int from_addr = INSN_ADDRESSES (INSN_UID (insn)); - int to_addr = INSN_ADDRESSES (INSN_UID (operands[0])); - int delta = to_addr - from_addr; - is_simple_branch = IN_RANGE (delta, -524288, 524280); - } - - if (is_simple_branch) - { - /* Just a simple conditional branch. */ - return - tilepro_output_simple_cbranch_with_opcode (insn, opcode, regop, - netreg_p, false); - } - - /* Generate a reversed branch around a direct jump. This fallback - does not use branch-likely instructions. */ - not_taken = gen_label_rtx (); - taken = operands[0]; - - /* Generate the reversed branch to NOT_TAKEN. */ - operands[0] = not_taken; - branch_if_false = - tilepro_output_simple_cbranch_with_opcode (insn, rev_opcode, regop, - netreg_p, true); - output_asm_insn (branch_if_false, operands); - - output_asm_insn ("j\t%l0", &taken); - - /* Output NOT_TAKEN. */ - targetm.asm_out.internal_label (asm_out_file, "L", - CODE_LABEL_NUMBER (not_taken)); - return ""; -} - - -/* Output assembly code for a conditional branch instruction. */ -const char * -tilepro_output_cbranch (rtx_insn *insn, rtx *operands, bool reversed) -{ - enum rtx_code code = GET_CODE (operands[1]); - const char *opcode; - const char *rev_opcode; - - if (reversed) - code = reverse_condition (code); - - switch (code) - { - case NE: - opcode = "bnz"; - rev_opcode = "bz"; - break; - case EQ: - opcode = "bz"; - rev_opcode = "bnz"; - break; - case GE: - opcode = "bgez"; - rev_opcode = "blz"; - break; - case GT: - opcode = "bgz"; - rev_opcode = "blez"; - break; - case LE: - opcode = "blez"; - rev_opcode = "bgz"; - break; - case LT: - opcode = "blz"; - rev_opcode = "bgez"; - break; - default: - gcc_unreachable (); - } - - return - tilepro_output_cbranch_with_opcode (insn, operands, opcode, rev_opcode, - 2, false); -} - - -/* Implement the tablejump pattern. */ -void -tilepro_expand_tablejump (rtx op0, rtx op1) -{ - if (flag_pic) - { - rtx table = gen_rtx_LABEL_REF (Pmode, op1); - rtx temp = gen_reg_rtx (Pmode); - rtx text_label_symbol = tilepro_text_label_symbol (); - rtx text_label_rtx = tilepro_text_label_rtx (); - - emit_insn (gen_addli_pcrel (temp, text_label_rtx, - table, text_label_symbol)); - emit_insn (gen_auli_pcrel (temp, temp, table, text_label_symbol)); - emit_move_insn (temp, - gen_rtx_PLUS (Pmode, - convert_to_mode (Pmode, op0, false), - temp)); - op0 = temp; - } - - emit_jump_insn (gen_tablejump_aux (op0, op1)); -} - - -/* Expand a builtin vector binary op, by calling gen function GEN with - operands in the proper modes. DEST is converted to DEST_MODE, and - src0 and src1 (if DO_SRC1 is true) is converted to SRC_MODE. */ -void -tilepro_expand_builtin_vector_binop (rtx (*gen) (rtx, rtx, rtx), - machine_mode dest_mode, - rtx dest, - machine_mode src_mode, - rtx src0, rtx src1, bool do_src1) -{ - dest = gen_lowpart (dest_mode, dest); - - if (src0 == const0_rtx) - src0 = CONST0_RTX (src_mode); - else - src0 = gen_lowpart (src_mode, src0); - - if (do_src1) - { - if (src1 == const0_rtx) - src1 = CONST0_RTX (src_mode); - else - src1 = gen_lowpart (src_mode, src1); - } - - emit_insn ((*gen) (dest, src0, src1)); -} - - - -/* Intrinsics */ - -struct tile_builtin_info -{ - enum insn_code icode; - tree fndecl; -}; - -static struct tile_builtin_info tilepro_builtin_info[TILEPRO_BUILTIN_max] = { - { CODE_FOR_addsi3, NULL }, /* add */ - { CODE_FOR_insn_addb, NULL }, /* addb */ - { CODE_FOR_insn_addbs_u, NULL }, /* addbs_u */ - { CODE_FOR_insn_addh, NULL }, /* addh */ - { CODE_FOR_insn_addhs, NULL }, /* addhs */ - { CODE_FOR_insn_addib, NULL }, /* addib */ - { CODE_FOR_insn_addih, NULL }, /* addih */ - { CODE_FOR_insn_addlis, NULL }, /* addlis */ - { CODE_FOR_ssaddsi3, NULL }, /* adds */ - { CODE_FOR_insn_adiffb_u, NULL }, /* adiffb_u */ - { CODE_FOR_insn_adiffh, NULL }, /* adiffh */ - { CODE_FOR_andsi3, NULL }, /* and */ - { CODE_FOR_insn_auli, NULL }, /* auli */ - { CODE_FOR_insn_avgb_u, NULL }, /* avgb_u */ - { CODE_FOR_insn_avgh, NULL }, /* avgh */ - { CODE_FOR_insn_bitx, NULL }, /* bitx */ - { CODE_FOR_bswapsi2, NULL }, /* bytex */ - { CODE_FOR_clzsi2, NULL }, /* clz */ - { CODE_FOR_insn_crc32_32, NULL }, /* crc32_32 */ - { CODE_FOR_insn_crc32_8, NULL }, /* crc32_8 */ - { CODE_FOR_ctzsi2, NULL }, /* ctz */ - { CODE_FOR_insn_drain, NULL }, /* drain */ - { CODE_FOR_insn_dtlbpr, NULL }, /* dtlbpr */ - { CODE_FOR_insn_dword_align, NULL }, /* dword_align */ - { CODE_FOR_insn_finv, NULL }, /* finv */ - { CODE_FOR_insn_flush, NULL }, /* flush */ - { CODE_FOR_insn_fnop, NULL }, /* fnop */ - { CODE_FOR_insn_icoh, NULL }, /* icoh */ - { CODE_FOR_insn_ill, NULL }, /* ill */ - { CODE_FOR_insn_info, NULL }, /* info */ - { CODE_FOR_insn_infol, NULL }, /* infol */ - { CODE_FOR_insn_inthb, NULL }, /* inthb */ - { CODE_FOR_insn_inthh, NULL }, /* inthh */ - { CODE_FOR_insn_intlb, NULL }, /* intlb */ - { CODE_FOR_insn_intlh, NULL }, /* intlh */ - { CODE_FOR_insn_inv, NULL }, /* inv */ - { CODE_FOR_insn_lb, NULL }, /* lb */ - { CODE_FOR_insn_lb_u, NULL }, /* lb_u */ - { CODE_FOR_insn_lh, NULL }, /* lh */ - { CODE_FOR_insn_lh_u, NULL }, /* lh_u */ - { CODE_FOR_insn_lnk, NULL }, /* lnk */ - { CODE_FOR_insn_lw, NULL }, /* lw */ - { CODE_FOR_insn_lw_na, NULL }, /* lw_na */ - { CODE_FOR_insn_lb_L2, NULL }, /* lb_L2 */ - { CODE_FOR_insn_lb_u_L2, NULL }, /* lb_u_L2 */ - { CODE_FOR_insn_lh_L2, NULL }, /* lh_L2 */ - { CODE_FOR_insn_lh_u_L2, NULL }, /* lh_u_L2 */ - { CODE_FOR_insn_lw_L2, NULL }, /* lw_L2 */ - { CODE_FOR_insn_lw_na_L2, NULL }, /* lw_na_L2 */ - { CODE_FOR_insn_lb_miss, NULL }, /* lb_miss */ - { CODE_FOR_insn_lb_u_miss, NULL }, /* lb_u_miss */ - { CODE_FOR_insn_lh_miss, NULL }, /* lh_miss */ - { CODE_FOR_insn_lh_u_miss, NULL }, /* lh_u_miss */ - { CODE_FOR_insn_lw_miss, NULL }, /* lw_miss */ - { CODE_FOR_insn_lw_na_miss, NULL }, /* lw_na_miss */ - { CODE_FOR_insn_maxb_u, NULL }, /* maxb_u */ - { CODE_FOR_insn_maxh, NULL }, /* maxh */ - { CODE_FOR_insn_maxib_u, NULL }, /* maxib_u */ - { CODE_FOR_insn_maxih, NULL }, /* maxih */ - { CODE_FOR_memory_barrier, NULL }, /* mf */ - { CODE_FOR_insn_mfspr, NULL }, /* mfspr */ - { CODE_FOR_insn_minb_u, NULL }, /* minb_u */ - { CODE_FOR_insn_minh, NULL }, /* minh */ - { CODE_FOR_insn_minib_u, NULL }, /* minib_u */ - { CODE_FOR_insn_minih, NULL }, /* minih */ - { CODE_FOR_insn_mm, NULL }, /* mm */ - { CODE_FOR_insn_mnz, NULL }, /* mnz */ - { CODE_FOR_insn_mnzb, NULL }, /* mnzb */ - { CODE_FOR_insn_mnzh, NULL }, /* mnzh */ - { CODE_FOR_movsi, NULL }, /* move */ - { CODE_FOR_insn_movelis, NULL }, /* movelis */ - { CODE_FOR_insn_mtspr, NULL }, /* mtspr */ - { CODE_FOR_insn_mulhh_ss, NULL }, /* mulhh_ss */ - { CODE_FOR_insn_mulhh_su, NULL }, /* mulhh_su */ - { CODE_FOR_insn_mulhh_uu, NULL }, /* mulhh_uu */ - { CODE_FOR_insn_mulhha_ss, NULL }, /* mulhha_ss */ - { CODE_FOR_insn_mulhha_su, NULL }, /* mulhha_su */ - { CODE_FOR_insn_mulhha_uu, NULL }, /* mulhha_uu */ - { CODE_FOR_insn_mulhhsa_uu, NULL }, /* mulhhsa_uu */ - { CODE_FOR_insn_mulhl_ss, NULL }, /* mulhl_ss */ - { CODE_FOR_insn_mulhl_su, NULL }, /* mulhl_su */ - { CODE_FOR_insn_mulhl_us, NULL }, /* mulhl_us */ - { CODE_FOR_insn_mulhl_uu, NULL }, /* mulhl_uu */ - { CODE_FOR_insn_mulhla_ss, NULL }, /* mulhla_ss */ - { CODE_FOR_insn_mulhla_su, NULL }, /* mulhla_su */ - { CODE_FOR_insn_mulhla_us, NULL }, /* mulhla_us */ - { CODE_FOR_insn_mulhla_uu, NULL }, /* mulhla_uu */ - { CODE_FOR_insn_mulhlsa_uu, NULL }, /* mulhlsa_uu */ - { CODE_FOR_insn_mulll_ss, NULL }, /* mulll_ss */ - { CODE_FOR_insn_mulll_su, NULL }, /* mulll_su */ - { CODE_FOR_insn_mulll_uu, NULL }, /* mulll_uu */ - { CODE_FOR_insn_mullla_ss, NULL }, /* mullla_ss */ - { CODE_FOR_insn_mullla_su, NULL }, /* mullla_su */ - { CODE_FOR_insn_mullla_uu, NULL }, /* mullla_uu */ - { CODE_FOR_insn_mulllsa_uu, NULL }, /* mulllsa_uu */ - { CODE_FOR_insn_mvnz, NULL }, /* mvnz */ - { CODE_FOR_insn_mvz, NULL }, /* mvz */ - { CODE_FOR_insn_mz, NULL }, /* mz */ - { CODE_FOR_insn_mzb, NULL }, /* mzb */ - { CODE_FOR_insn_mzh, NULL }, /* mzh */ - { CODE_FOR_insn_nap, NULL }, /* nap */ - { CODE_FOR_nop, NULL }, /* nop */ - { CODE_FOR_insn_nor, NULL }, /* nor */ - { CODE_FOR_iorsi3, NULL }, /* or */ - { CODE_FOR_insn_packbs_u, NULL }, /* packbs_u */ - { CODE_FOR_insn_packhb, NULL }, /* packhb */ - { CODE_FOR_insn_packhs, NULL }, /* packhs */ - { CODE_FOR_insn_packlb, NULL }, /* packlb */ - { CODE_FOR_popcountsi2, NULL }, /* pcnt */ - { CODE_FOR_insn_prefetch, NULL }, /* prefetch */ - { CODE_FOR_insn_prefetch_L1, NULL }, /* prefetch_L1 */ - { CODE_FOR_rotlsi3, NULL }, /* rl */ - { CODE_FOR_insn_s1a, NULL }, /* s1a */ - { CODE_FOR_insn_s2a, NULL }, /* s2a */ - { CODE_FOR_insn_s3a, NULL }, /* s3a */ - { CODE_FOR_insn_sadab_u, NULL }, /* sadab_u */ - { CODE_FOR_insn_sadah, NULL }, /* sadah */ - { CODE_FOR_insn_sadah_u, NULL }, /* sadah_u */ - { CODE_FOR_insn_sadb_u, NULL }, /* sadb_u */ - { CODE_FOR_insn_sadh, NULL }, /* sadh */ - { CODE_FOR_insn_sadh_u, NULL }, /* sadh_u */ - { CODE_FOR_insn_sb, NULL }, /* sb */ - { CODE_FOR_insn_seq, NULL }, /* seq */ - { CODE_FOR_insn_seqb, NULL }, /* seqb */ - { CODE_FOR_insn_seqh, NULL }, /* seqh */ - { CODE_FOR_insn_seqib, NULL }, /* seqib */ - { CODE_FOR_insn_seqih, NULL }, /* seqih */ - { CODE_FOR_insn_sh, NULL }, /* sh */ - { CODE_FOR_ashlsi3, NULL }, /* shl */ - { CODE_FOR_insn_shlb, NULL }, /* shlb */ - { CODE_FOR_insn_shlh, NULL }, /* shlh */ - { CODE_FOR_insn_shlb, NULL }, /* shlib */ - { CODE_FOR_insn_shlh, NULL }, /* shlih */ - { CODE_FOR_lshrsi3, NULL }, /* shr */ - { CODE_FOR_insn_shrb, NULL }, /* shrb */ - { CODE_FOR_insn_shrh, NULL }, /* shrh */ - { CODE_FOR_insn_shrb, NULL }, /* shrib */ - { CODE_FOR_insn_shrh, NULL }, /* shrih */ - { CODE_FOR_insn_slt, NULL }, /* slt */ - { CODE_FOR_insn_slt_u, NULL }, /* slt_u */ - { CODE_FOR_insn_sltb, NULL }, /* sltb */ - { CODE_FOR_insn_sltb_u, NULL }, /* sltb_u */ - { CODE_FOR_insn_slte, NULL }, /* slte */ - { CODE_FOR_insn_slte_u, NULL }, /* slte_u */ - { CODE_FOR_insn_slteb, NULL }, /* slteb */ - { CODE_FOR_insn_slteb_u, NULL }, /* slteb_u */ - { CODE_FOR_insn_slteh, NULL }, /* slteh */ - { CODE_FOR_insn_slteh_u, NULL }, /* slteh_u */ - { CODE_FOR_insn_slth, NULL }, /* slth */ - { CODE_FOR_insn_slth_u, NULL }, /* slth_u */ - { CODE_FOR_insn_sltib, NULL }, /* sltib */ - { CODE_FOR_insn_sltib_u, NULL }, /* sltib_u */ - { CODE_FOR_insn_sltih, NULL }, /* sltih */ - { CODE_FOR_insn_sltih_u, NULL }, /* sltih_u */ - { CODE_FOR_insn_sne, NULL }, /* sne */ - { CODE_FOR_insn_sneb, NULL }, /* sneb */ - { CODE_FOR_insn_sneh, NULL }, /* sneh */ - { CODE_FOR_ashrsi3, NULL }, /* sra */ - { CODE_FOR_insn_srab, NULL }, /* srab */ - { CODE_FOR_insn_srah, NULL }, /* srah */ - { CODE_FOR_insn_srab, NULL }, /* sraib */ - { CODE_FOR_insn_srah, NULL }, /* sraih */ - { CODE_FOR_subsi3, NULL }, /* sub */ - { CODE_FOR_insn_subb, NULL }, /* subb */ - { CODE_FOR_insn_subbs_u, NULL }, /* subbs_u */ - { CODE_FOR_insn_subh, NULL }, /* subh */ - { CODE_FOR_insn_subhs, NULL }, /* subhs */ - { CODE_FOR_sssubsi3, NULL }, /* subs */ - { CODE_FOR_insn_sw, NULL }, /* sw */ - { CODE_FOR_insn_tblidxb0, NULL }, /* tblidxb0 */ - { CODE_FOR_insn_tblidxb1, NULL }, /* tblidxb1 */ - { CODE_FOR_insn_tblidxb2, NULL }, /* tblidxb2 */ - { CODE_FOR_insn_tblidxb3, NULL }, /* tblidxb3 */ - { CODE_FOR_insn_tns, NULL }, /* tns */ - { CODE_FOR_insn_wh64, NULL }, /* wh64 */ - { CODE_FOR_xorsi3, NULL }, /* xor */ - { CODE_FOR_tilepro_network_barrier, NULL }, /* network_barrier */ - { CODE_FOR_tilepro_idn0_receive, NULL }, /* idn0_receive */ - { CODE_FOR_tilepro_idn1_receive, NULL }, /* idn1_receive */ - { CODE_FOR_tilepro_idn_send, NULL }, /* idn_send */ - { CODE_FOR_tilepro_sn_receive, NULL }, /* sn_receive */ - { CODE_FOR_tilepro_sn_send, NULL }, /* sn_send */ - { CODE_FOR_tilepro_udn0_receive, NULL }, /* udn0_receive */ - { CODE_FOR_tilepro_udn1_receive, NULL }, /* udn1_receive */ - { CODE_FOR_tilepro_udn2_receive, NULL }, /* udn2_receive */ - { CODE_FOR_tilepro_udn3_receive, NULL }, /* udn3_receive */ - { CODE_FOR_tilepro_udn_send, NULL }, /* udn_send */ -}; - - -struct tilepro_builtin_def -{ - const char *name; - enum tilepro_builtin code; - bool is_const; - /* The first character is the return type. Subsequent characters - are the argument types. See char_to_type. */ - const char *type; -}; - - -static const struct tilepro_builtin_def tilepro_builtins[] = { - { "__insn_add", TILEPRO_INSN_ADD, true, "lll" }, - { "__insn_addb", TILEPRO_INSN_ADDB, true, "lll" }, - { "__insn_addbs_u", TILEPRO_INSN_ADDBS_U, false, "lll" }, - { "__insn_addh", TILEPRO_INSN_ADDH, true, "lll" }, - { "__insn_addhs", TILEPRO_INSN_ADDHS, false, "lll" }, - { "__insn_addi", TILEPRO_INSN_ADD, true, "lll" }, - { "__insn_addib", TILEPRO_INSN_ADDIB, true, "lll" }, - { "__insn_addih", TILEPRO_INSN_ADDIH, true, "lll" }, - { "__insn_addli", TILEPRO_INSN_ADD, true, "lll" }, - { "__insn_addlis", TILEPRO_INSN_ADDLIS, false, "lll" }, - { "__insn_adds", TILEPRO_INSN_ADDS, false, "lll" }, - { "__insn_adiffb_u", TILEPRO_INSN_ADIFFB_U, true, "lll" }, - { "__insn_adiffh", TILEPRO_INSN_ADIFFH, true, "lll" }, - { "__insn_and", TILEPRO_INSN_AND, true, "lll" }, - { "__insn_andi", TILEPRO_INSN_AND, true, "lll" }, - { "__insn_auli", TILEPRO_INSN_AULI, true, "lll" }, - { "__insn_avgb_u", TILEPRO_INSN_AVGB_U, true, "lll" }, - { "__insn_avgh", TILEPRO_INSN_AVGH, true, "lll" }, - { "__insn_bitx", TILEPRO_INSN_BITX, true, "ll" }, - { "__insn_bytex", TILEPRO_INSN_BYTEX, true, "ll" }, - { "__insn_clz", TILEPRO_INSN_CLZ, true, "ll" }, - { "__insn_crc32_32", TILEPRO_INSN_CRC32_32, true, "lll" }, - { "__insn_crc32_8", TILEPRO_INSN_CRC32_8, true, "lll" }, - { "__insn_ctz", TILEPRO_INSN_CTZ, true, "ll" }, - { "__insn_drain", TILEPRO_INSN_DRAIN, false, "v" }, - { "__insn_dtlbpr", TILEPRO_INSN_DTLBPR, false, "vl" }, - { "__insn_dword_align", TILEPRO_INSN_DWORD_ALIGN, true, "lllk" }, - { "__insn_finv", TILEPRO_INSN_FINV, false, "vk" }, - { "__insn_flush", TILEPRO_INSN_FLUSH, false, "vk" }, - { "__insn_fnop", TILEPRO_INSN_FNOP, false, "v" }, - { "__insn_icoh", TILEPRO_INSN_ICOH, false, "vk" }, - { "__insn_ill", TILEPRO_INSN_ILL, false, "v" }, - { "__insn_info", TILEPRO_INSN_INFO, false, "vl" }, - { "__insn_infol", TILEPRO_INSN_INFOL, false, "vl" }, - { "__insn_inthb", TILEPRO_INSN_INTHB, true, "lll" }, - { "__insn_inthh", TILEPRO_INSN_INTHH, true, "lll" }, - { "__insn_intlb", TILEPRO_INSN_INTLB, true, "lll" }, - { "__insn_intlh", TILEPRO_INSN_INTLH, true, "lll" }, - { "__insn_inv", TILEPRO_INSN_INV, false, "vp" }, - { "__insn_lb", TILEPRO_INSN_LB, false, "lk" }, - { "__insn_lb_u", TILEPRO_INSN_LB_U, false, "lk" }, - { "__insn_lh", TILEPRO_INSN_LH, false, "lk" }, - { "__insn_lh_u", TILEPRO_INSN_LH_U, false, "lk" }, - { "__insn_lnk", TILEPRO_INSN_LNK, true, "l" }, - { "__insn_lw", TILEPRO_INSN_LW, false, "lk" }, - { "__insn_lw_na", TILEPRO_INSN_LW_NA, false, "lk" }, - { "__insn_lb_L2", TILEPRO_INSN_LB_L2, false, "lk" }, - { "__insn_lb_u_L2", TILEPRO_INSN_LB_U_L2, false, "lk" }, - { "__insn_lh_L2", TILEPRO_INSN_LH_L2, false, "lk" }, - { "__insn_lh_u_L2", TILEPRO_INSN_LH_U_L2, false, "lk" }, - { "__insn_lw_L2", TILEPRO_INSN_LW_L2, false, "lk" }, - { "__insn_lw_na_L2", TILEPRO_INSN_LW_NA_L2, false, "lk" }, - { "__insn_lb_miss", TILEPRO_INSN_LB_MISS, false, "lk" }, - { "__insn_lb_u_miss", TILEPRO_INSN_LB_U_MISS, false, "lk" }, - { "__insn_lh_miss", TILEPRO_INSN_LH_MISS, false, "lk" }, - { "__insn_lh_u_miss", TILEPRO_INSN_LH_U_MISS, false, "lk" }, - { "__insn_lw_miss", TILEPRO_INSN_LW_MISS, false, "lk" }, - { "__insn_lw_na_miss", TILEPRO_INSN_LW_NA_MISS, false, "lk" }, - { "__insn_maxb_u", TILEPRO_INSN_MAXB_U, true, "lll" }, - { "__insn_maxh", TILEPRO_INSN_MAXH, true, "lll" }, - { "__insn_maxib_u", TILEPRO_INSN_MAXIB_U, true, "lll" }, - { "__insn_maxih", TILEPRO_INSN_MAXIH, true, "lll" }, - { "__insn_mf", TILEPRO_INSN_MF, false, "v" }, - { "__insn_mfspr", TILEPRO_INSN_MFSPR, false, "ll" }, - { "__insn_minb_u", TILEPRO_INSN_MINB_U, true, "lll" }, - { "__insn_minh", TILEPRO_INSN_MINH, true, "lll" }, - { "__insn_minib_u", TILEPRO_INSN_MINIB_U, true, "lll" }, - { "__insn_minih", TILEPRO_INSN_MINIH, true, "lll" }, - { "__insn_mm", TILEPRO_INSN_MM, true, "lllll" }, - { "__insn_mnz", TILEPRO_INSN_MNZ, true, "lll" }, - { "__insn_mnzb", TILEPRO_INSN_MNZB, true, "lll" }, - { "__insn_mnzh", TILEPRO_INSN_MNZH, true, "lll" }, - { "__insn_move", TILEPRO_INSN_MOVE, true, "ll" }, - { "__insn_movei", TILEPRO_INSN_MOVE, true, "ll" }, - { "__insn_moveli", TILEPRO_INSN_MOVE, true, "ll" }, - { "__insn_movelis", TILEPRO_INSN_MOVELIS, false, "ll" }, - { "__insn_mtspr", TILEPRO_INSN_MTSPR, false, "vll" }, - { "__insn_mulhh_ss", TILEPRO_INSN_MULHH_SS, true, "lll" }, - { "__insn_mulhh_su", TILEPRO_INSN_MULHH_SU, true, "lll" }, - { "__insn_mulhh_uu", TILEPRO_INSN_MULHH_UU, true, "lll" }, - { "__insn_mulhha_ss", TILEPRO_INSN_MULHHA_SS, true, "llll" }, - { "__insn_mulhha_su", TILEPRO_INSN_MULHHA_SU, true, "llll" }, - { "__insn_mulhha_uu", TILEPRO_INSN_MULHHA_UU, true, "llll" }, - { "__insn_mulhhsa_uu", TILEPRO_INSN_MULHHSA_UU, true, "llll" }, - { "__insn_mulhl_ss", TILEPRO_INSN_MULHL_SS, true, "lll" }, - { "__insn_mulhl_su", TILEPRO_INSN_MULHL_SU, true, "lll" }, - { "__insn_mulhl_us", TILEPRO_INSN_MULHL_US, true, "lll" }, - { "__insn_mulhl_uu", TILEPRO_INSN_MULHL_UU, true, "lll" }, - { "__insn_mulhla_ss", TILEPRO_INSN_MULHLA_SS, true, "llll" }, - { "__insn_mulhla_su", TILEPRO_INSN_MULHLA_SU, true, "llll" }, - { "__insn_mulhla_us", TILEPRO_INSN_MULHLA_US, true, "llll" }, - { "__insn_mulhla_uu", TILEPRO_INSN_MULHLA_UU, true, "llll" }, - { "__insn_mulhlsa_uu", TILEPRO_INSN_MULHLSA_UU, true, "llll" }, - { "__insn_mulll_ss", TILEPRO_INSN_MULLL_SS, true, "lll" }, - { "__insn_mulll_su", TILEPRO_INSN_MULLL_SU, true, "lll" }, - { "__insn_mulll_uu", TILEPRO_INSN_MULLL_UU, true, "lll" }, - { "__insn_mullla_ss", TILEPRO_INSN_MULLLA_SS, true, "llll" }, - { "__insn_mullla_su", TILEPRO_INSN_MULLLA_SU, true, "llll" }, - { "__insn_mullla_uu", TILEPRO_INSN_MULLLA_UU, true, "llll" }, - { "__insn_mulllsa_uu", TILEPRO_INSN_MULLLSA_UU, true, "llll" }, - { "__insn_mvnz", TILEPRO_INSN_MVNZ, true, "llll" }, - { "__insn_mvz", TILEPRO_INSN_MVZ, true, "llll" }, - { "__insn_mz", TILEPRO_INSN_MZ, true, "lll" }, - { "__insn_mzb", TILEPRO_INSN_MZB, true, "lll" }, - { "__insn_mzh", TILEPRO_INSN_MZH, true, "lll" }, - { "__insn_nap", TILEPRO_INSN_NAP, false, "v" }, - { "__insn_nop", TILEPRO_INSN_NOP, true, "v" }, - { "__insn_nor", TILEPRO_INSN_NOR, true, "lll" }, - { "__insn_or", TILEPRO_INSN_OR, true, "lll" }, - { "__insn_ori", TILEPRO_INSN_OR, true, "lll" }, - { "__insn_packbs_u", TILEPRO_INSN_PACKBS_U, false, "lll" }, - { "__insn_packhb", TILEPRO_INSN_PACKHB, true, "lll" }, - { "__insn_packhs", TILEPRO_INSN_PACKHS, false, "lll" }, - { "__insn_packlb", TILEPRO_INSN_PACKLB, true, "lll" }, - { "__insn_pcnt", TILEPRO_INSN_PCNT, true, "ll" }, - { "__insn_prefetch", TILEPRO_INSN_PREFETCH, false, "vk" }, - { "__insn_prefetch_L1", TILEPRO_INSN_PREFETCH_L1, false, "vk" }, - { "__insn_rl", TILEPRO_INSN_RL, true, "lll" }, - { "__insn_rli", TILEPRO_INSN_RL, true, "lll" }, - { "__insn_s1a", TILEPRO_INSN_S1A, true, "lll" }, - { "__insn_s2a", TILEPRO_INSN_S2A, true, "lll" }, - { "__insn_s3a", TILEPRO_INSN_S3A, true, "lll" }, - { "__insn_sadab_u", TILEPRO_INSN_SADAB_U, true, "llll" }, - { "__insn_sadah", TILEPRO_INSN_SADAH, true, "llll" }, - { "__insn_sadah_u", TILEPRO_INSN_SADAH_U, true, "llll" }, - { "__insn_sadb_u", TILEPRO_INSN_SADB_U, true, "lll" }, - { "__insn_sadh", TILEPRO_INSN_SADH, true, "lll" }, - { "__insn_sadh_u", TILEPRO_INSN_SADH_U, true, "lll" }, - { "__insn_sb", TILEPRO_INSN_SB, false, "vpl" }, - { "__insn_seq", TILEPRO_INSN_SEQ, true, "lll" }, - { "__insn_seqb", TILEPRO_INSN_SEQB, true, "lll" }, - { "__insn_seqh", TILEPRO_INSN_SEQH, true, "lll" }, - { "__insn_seqi", TILEPRO_INSN_SEQ, true, "lll" }, - { "__insn_seqib", TILEPRO_INSN_SEQIB, true, "lll" }, - { "__insn_seqih", TILEPRO_INSN_SEQIH, true, "lll" }, - { "__insn_sh", TILEPRO_INSN_SH, false, "vpl" }, - { "__insn_shl", TILEPRO_INSN_SHL, true, "lll" }, - { "__insn_shlb", TILEPRO_INSN_SHLB, true, "lll" }, - { "__insn_shlh", TILEPRO_INSN_SHLH, true, "lll" }, - { "__insn_shli", TILEPRO_INSN_SHL, true, "lll" }, - { "__insn_shlib", TILEPRO_INSN_SHLIB, true, "lll" }, - { "__insn_shlih", TILEPRO_INSN_SHLIH, true, "lll" }, - { "__insn_shr", TILEPRO_INSN_SHR, true, "lll" }, - { "__insn_shrb", TILEPRO_INSN_SHRB, true, "lll" }, - { "__insn_shrh", TILEPRO_INSN_SHRH, true, "lll" }, - { "__insn_shri", TILEPRO_INSN_SHR, true, "lll" }, - { "__insn_shrib", TILEPRO_INSN_SHRIB, true, "lll" }, - { "__insn_shrih", TILEPRO_INSN_SHRIH, true, "lll" }, - { "__insn_slt", TILEPRO_INSN_SLT, true, "lll" }, - { "__insn_slt_u", TILEPRO_INSN_SLT_U, true, "lll" }, - { "__insn_sltb", TILEPRO_INSN_SLTB, true, "lll" }, - { "__insn_sltb_u", TILEPRO_INSN_SLTB_U, true, "lll" }, - { "__insn_slte", TILEPRO_INSN_SLTE, true, "lll" }, - { "__insn_slte_u", TILEPRO_INSN_SLTE_U, true, "lll" }, - { "__insn_slteb", TILEPRO_INSN_SLTEB, true, "lll" }, - { "__insn_slteb_u", TILEPRO_INSN_SLTEB_U, true, "lll" }, - { "__insn_slteh", TILEPRO_INSN_SLTEH, true, "lll" }, - { "__insn_slteh_u", TILEPRO_INSN_SLTEH_U, true, "lll" }, - { "__insn_slth", TILEPRO_INSN_SLTH, true, "lll" }, - { "__insn_slth_u", TILEPRO_INSN_SLTH_U, true, "lll" }, - { "__insn_slti", TILEPRO_INSN_SLT, true, "lll" }, - { "__insn_slti_u", TILEPRO_INSN_SLT_U, true, "lll" }, - { "__insn_sltib", TILEPRO_INSN_SLTIB, true, "lll" }, - { "__insn_sltib_u", TILEPRO_INSN_SLTIB_U, true, "lll" }, - { "__insn_sltih", TILEPRO_INSN_SLTIH, true, "lll" }, - { "__insn_sltih_u", TILEPRO_INSN_SLTIH_U, true, "lll" }, - { "__insn_sne", TILEPRO_INSN_SNE, true, "lll" }, - { "__insn_sneb", TILEPRO_INSN_SNEB, true, "lll" }, - { "__insn_sneh", TILEPRO_INSN_SNEH, true, "lll" }, - { "__insn_sra", TILEPRO_INSN_SRA, true, "lll" }, - { "__insn_srab", TILEPRO_INSN_SRAB, true, "lll" }, - { "__insn_srah", TILEPRO_INSN_SRAH, true, "lll" }, - { "__insn_srai", TILEPRO_INSN_SRA, true, "lll" }, - { "__insn_sraib", TILEPRO_INSN_SRAIB, true, "lll" }, - { "__insn_sraih", TILEPRO_INSN_SRAIH, true, "lll" }, - { "__insn_sub", TILEPRO_INSN_SUB, true, "lll" }, - { "__insn_subb", TILEPRO_INSN_SUBB, true, "lll" }, - { "__insn_subbs_u", TILEPRO_INSN_SUBBS_U, false, "lll" }, - { "__insn_subh", TILEPRO_INSN_SUBH, true, "lll" }, - { "__insn_subhs", TILEPRO_INSN_SUBHS, false, "lll" }, - { "__insn_subs", TILEPRO_INSN_SUBS, false, "lll" }, - { "__insn_sw", TILEPRO_INSN_SW, false, "vpl" }, - { "__insn_tblidxb0", TILEPRO_INSN_TBLIDXB0, true, "lll" }, - { "__insn_tblidxb1", TILEPRO_INSN_TBLIDXB1, true, "lll" }, - { "__insn_tblidxb2", TILEPRO_INSN_TBLIDXB2, true, "lll" }, - { "__insn_tblidxb3", TILEPRO_INSN_TBLIDXB3, true, "lll" }, - { "__insn_tns", TILEPRO_INSN_TNS, false, "lp" }, - { "__insn_wh64", TILEPRO_INSN_WH64, false, "vp" }, - { "__insn_xor", TILEPRO_INSN_XOR, true, "lll" }, - { "__insn_xori", TILEPRO_INSN_XOR, true, "lll" }, - { "__tile_network_barrier", TILEPRO_NETWORK_BARRIER, false, "v" }, - { "__tile_idn0_receive", TILEPRO_IDN0_RECEIVE, false, "l" }, - { "__tile_idn1_receive", TILEPRO_IDN1_RECEIVE, false, "l" }, - { "__tile_idn_send", TILEPRO_IDN_SEND, false, "vl" }, - { "__tile_sn_receive", TILEPRO_SN_RECEIVE, false, "l" }, - { "__tile_sn_send", TILEPRO_SN_SEND, false, "vl" }, - { "__tile_udn0_receive", TILEPRO_UDN0_RECEIVE, false, "l" }, - { "__tile_udn1_receive", TILEPRO_UDN1_RECEIVE, false, "l" }, - { "__tile_udn2_receive", TILEPRO_UDN2_RECEIVE, false, "l" }, - { "__tile_udn3_receive", TILEPRO_UDN3_RECEIVE, false, "l" }, - { "__tile_udn_send", TILEPRO_UDN_SEND, false, "vl" }, -}; - - -/* Convert a character in a builtin type string to a tree type. */ -static tree -char_to_type (char c) -{ - static tree volatile_ptr_type_node = NULL; - static tree volatile_const_ptr_type_node = NULL; - - if (volatile_ptr_type_node == NULL) - { - volatile_ptr_type_node = - build_pointer_type (build_qualified_type (void_type_node, - TYPE_QUAL_VOLATILE)); - volatile_const_ptr_type_node = - build_pointer_type (build_qualified_type (void_type_node, - TYPE_QUAL_CONST - | TYPE_QUAL_VOLATILE)); - } - - switch (c) - { - case 'v': - return void_type_node; - case 'l': - return long_unsigned_type_node; - case 'p': - return volatile_ptr_type_node; - case 'k': - return volatile_const_ptr_type_node; - default: - gcc_unreachable (); - } -} - - -/* Implement TARGET_INIT_BUILTINS. */ -static void -tilepro_init_builtins (void) -{ - size_t i; - - for (i = 0; i < ARRAY_SIZE (tilepro_builtins); i++) - { - const struct tilepro_builtin_def *p = &tilepro_builtins[i]; - tree ftype, ret_type, arg_type_list = void_list_node; - tree decl; - int j; - - for (j = strlen (p->type) - 1; j > 0; j--) - { - arg_type_list = - tree_cons (NULL_TREE, char_to_type (p->type[j]), arg_type_list); - } - - ret_type = char_to_type (p->type[0]); - - ftype = build_function_type (ret_type, arg_type_list); - - decl = add_builtin_function (p->name, ftype, p->code, BUILT_IN_MD, - NULL, NULL); - - if (p->is_const) - TREE_READONLY (decl) = 1; - TREE_NOTHROW (decl) = 1; - - if (tilepro_builtin_info[p->code].fndecl == NULL) - tilepro_builtin_info[p->code].fndecl = decl; - } -} - - -/* Implement TARGET_EXPAND_BUILTIN. */ -static rtx -tilepro_expand_builtin (tree exp, - rtx target, - rtx subtarget ATTRIBUTE_UNUSED, - machine_mode mode ATTRIBUTE_UNUSED, - int ignore ATTRIBUTE_UNUSED) -{ -#define MAX_BUILTIN_ARGS 4 - - tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0); - unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl); - tree arg; - call_expr_arg_iterator iter; - enum insn_code icode; - rtx op[MAX_BUILTIN_ARGS + 1], pat; - int opnum; - bool nonvoid; - insn_gen_fn fn; - - if (fcode >= TILEPRO_BUILTIN_max) - internal_error ("bad builtin fcode"); - icode = tilepro_builtin_info[fcode].icode; - if (icode == 0) - internal_error ("bad builtin icode"); - - nonvoid = TREE_TYPE (TREE_TYPE (fndecl)) != void_type_node; - - opnum = nonvoid; - FOR_EACH_CALL_EXPR_ARG (arg, iter, exp) - { - const struct insn_operand_data *insn_op; - - if (arg == error_mark_node) - return NULL_RTX; - if (opnum > MAX_BUILTIN_ARGS) - return NULL_RTX; - - insn_op = &insn_data[icode].operand[opnum]; - - op[opnum] = expand_expr (arg, NULL_RTX, insn_op->mode, EXPAND_NORMAL); - - if (!(*insn_op->predicate) (op[opnum], insn_op->mode)) - op[opnum] = copy_to_mode_reg (insn_op->mode, op[opnum]); - - if (!(*insn_op->predicate) (op[opnum], insn_op->mode)) - { - /* We still failed to meet the predicate even after moving - into a register. Assume we needed an immediate. */ - error_at (EXPR_LOCATION (exp), - "operand must be an immediate of the right size"); - return const0_rtx; - } - - opnum++; - } - - if (nonvoid) - { - machine_mode tmode = insn_data[icode].operand[0].mode; - if (!target - || GET_MODE (target) != tmode - || !(*insn_data[icode].operand[0].predicate) (target, tmode)) - target = gen_reg_rtx (tmode); - op[0] = target; - } - - fn = GEN_FCN (icode); - switch (opnum) - { - case 0: - pat = fn (NULL_RTX); - break; - case 1: - pat = fn (op[0]); - break; - case 2: - pat = fn (op[0], op[1]); - break; - case 3: - pat = fn (op[0], op[1], op[2]); - break; - case 4: - pat = fn (op[0], op[1], op[2], op[3]); - break; - case 5: - pat = fn (op[0], op[1], op[2], op[3], op[4]); - break; - default: - gcc_unreachable (); - } - if (!pat) - return NULL_RTX; - - /* If we are generating a prefetch, tell the scheduler not to move - it around. */ - if (GET_CODE (pat) == PREFETCH) - PREFETCH_SCHEDULE_BARRIER_P (pat) = true; - - emit_insn (pat); - - if (nonvoid) - return target; - else - return const0_rtx; -} - - -/* Implement TARGET_BUILTIN_DECL. */ -static tree -tilepro_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) -{ - if (code >= TILEPRO_BUILTIN_max) - return error_mark_node; - - return tilepro_builtin_info[code].fndecl; -} - - - -/* Stack frames */ - -/* Return whether REGNO needs to be saved in the stack frame. */ -static bool -need_to_save_reg (unsigned int regno) -{ - if (!call_used_or_fixed_reg_p (regno) - && df_regs_ever_live_p (regno)) - return true; - - if (flag_pic - && (regno == PIC_OFFSET_TABLE_REGNUM - || regno == TILEPRO_PIC_TEXT_LABEL_REGNUM) - && (crtl->uses_pic_offset_table || crtl->saves_all_registers)) - return true; - - if (crtl->calls_eh_return) - { - unsigned i; - for (i = 0; EH_RETURN_DATA_REGNO (i) != INVALID_REGNUM; i++) - { - if (regno == EH_RETURN_DATA_REGNO (i)) - return true; - } - } - - return false; -} - - -/* Return the size of the register savev area. This function is only - correct starting with local register allocation */ -static int -tilepro_saved_regs_size (void) -{ - int reg_save_size = 0; - int regno; - int offset_to_frame; - int align_mask; - - for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (need_to_save_reg (regno)) - reg_save_size += UNITS_PER_WORD; - - /* Pad out the register save area if necessary to make - frame_pointer_rtx be as aligned as the stack pointer. */ - offset_to_frame = crtl->args.pretend_args_size + reg_save_size; - align_mask = (STACK_BOUNDARY / BITS_PER_UNIT) - 1; - reg_save_size += (-offset_to_frame) & align_mask; - - return reg_save_size; -} - - -/* Round up frame size SIZE. */ -static int -round_frame_size (int size) -{ - return ((size + STACK_BOUNDARY / BITS_PER_UNIT - 1) - & -STACK_BOUNDARY / BITS_PER_UNIT); -} - - -/* Emit a store in the stack frame to save REGNO at address ADDR, and - emit the corresponding REG_CFA_OFFSET note described by CFA and - CFA_OFFSET. Return the emitted insn. */ -static rtx -frame_emit_store (int regno, int regno_note, rtx addr, rtx cfa, - int cfa_offset) -{ - rtx reg = gen_rtx_REG (Pmode, regno); - rtx mem = gen_frame_mem (Pmode, addr); - rtx mov = gen_movsi (mem, reg); - - /* Describe what just happened in a way that dwarf understands. We - use temporary registers to hold the address to make scheduling - easier, and use the REG_CFA_OFFSET to describe the address as an - offset from the CFA. */ - rtx reg_note = gen_rtx_REG (Pmode, regno_note); - rtx cfa_relative_addr = gen_rtx_PLUS (Pmode, cfa, gen_int_si (cfa_offset)); - rtx cfa_relative_mem = gen_frame_mem (Pmode, cfa_relative_addr); - rtx real = gen_rtx_SET (cfa_relative_mem, reg_note); - add_reg_note (mov, REG_CFA_OFFSET, real); - - return emit_insn (mov); -} - - -/* Emit a load in the stack frame to load REGNO from address ADDR. - Add a REG_CFA_RESTORE note to CFA_RESTORES if CFA_RESTORES is - non-null. Return the emitted insn. */ -static rtx_insn * -frame_emit_load (int regno, rtx addr, rtx *cfa_restores) -{ - rtx reg = gen_rtx_REG (Pmode, regno); - rtx mem = gen_frame_mem (Pmode, addr); - if (cfa_restores) - *cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, *cfa_restores); - return emit_insn (gen_movsi (reg, mem)); -} - - -/* Helper function to set RTX_FRAME_RELATED_P on instructions, - including sequences. */ -static rtx_insn * -set_frame_related_p (void) -{ - rtx_insn *seq = get_insns (); - rtx_insn *insn; - - end_sequence (); - - if (!seq) - return NULL; - - if (INSN_P (seq)) - { - insn = seq; - while (insn != NULL_RTX) - { - RTX_FRAME_RELATED_P (insn) = 1; - insn = NEXT_INSN (insn); - } - seq = emit_insn (seq); - } - else - { - seq = emit_insn (seq); - RTX_FRAME_RELATED_P (seq) = 1; - } - return seq; -} - - -#define FRP(exp) (start_sequence (), exp, set_frame_related_p ()) - -/* This emits code for 'sp += offset'. - - The ABI only allows us to modify 'sp' in a single 'addi' or - 'addli', so the backtracer understands it. Larger amounts cannot - use those instructions, so are added by placing the offset into a - large register and using 'add'. - - This happens after reload, so we need to expand it ourselves. */ -static rtx_insn * -emit_sp_adjust (int offset, int *next_scratch_regno, bool frame_related, - rtx reg_notes) -{ - rtx to_add; - rtx imm_rtx = gen_int_si (offset); - - rtx_insn *insn; - if (satisfies_constraint_J (imm_rtx)) - { - /* We can add this using a single addi or addli. */ - to_add = imm_rtx; - } - else - { - rtx tmp = gen_rtx_REG (Pmode, (*next_scratch_regno)--); - tilepro_expand_set_const32 (tmp, imm_rtx); - to_add = tmp; - } - - /* Actually adjust the stack pointer. */ - insn = emit_insn (gen_sp_adjust (stack_pointer_rtx, stack_pointer_rtx, - to_add)); - REG_NOTES (insn) = reg_notes; - - /* Describe what just happened in a way that dwarf understands. */ - if (frame_related) - { - rtx real = gen_rtx_SET (stack_pointer_rtx, - gen_rtx_PLUS (Pmode, stack_pointer_rtx, - imm_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; - add_reg_note (insn, REG_CFA_ADJUST_CFA, real); - } - - return insn; -} - - -/* Return whether the current function is leaf. This takes into - account whether the function calls tls_get_addr. */ -static bool -tilepro_current_function_is_leaf (void) -{ - return crtl->is_leaf && !cfun->machine->calls_tls_get_addr; -} - - -/* Return the frame size. */ -static int -compute_total_frame_size (void) -{ - int total_size = (get_frame_size () + tilepro_saved_regs_size () - + crtl->outgoing_args_size - + crtl->args.pretend_args_size); - - if (!tilepro_current_function_is_leaf () || cfun->calls_alloca) - { - /* Make room for save area in callee. */ - total_size += STACK_POINTER_OFFSET; - } - - return round_frame_size (total_size); -} - - -/* Return nonzero if this function is known to have a null epilogue. - This allows the optimizer to omit jumps to jumps if no stack was - created. */ -bool -tilepro_can_use_return_insn_p (void) -{ - return (reload_completed - && cfun->static_chain_decl == 0 - && compute_total_frame_size () == 0 - && tilepro_current_function_is_leaf () - && !crtl->profile && !df_regs_ever_live_p (TILEPRO_LINK_REGNUM)); -} - - -/* Returns an rtx for a stack slot at 'FP + offset_from_fp'. If there - is a frame pointer, it computes the value relative to - that. Otherwise it uses the stack pointer. */ -static rtx -compute_frame_addr (int offset_from_fp, int *next_scratch_regno) -{ - rtx base_reg_rtx, tmp_reg_rtx, offset_rtx; - int offset_from_base; - - if (frame_pointer_needed) - { - base_reg_rtx = hard_frame_pointer_rtx; - offset_from_base = offset_from_fp; - } - else - { - int offset_from_sp = compute_total_frame_size () + offset_from_fp; - base_reg_rtx = stack_pointer_rtx; - offset_from_base = offset_from_sp; - } - - if (offset_from_base == 0) - return base_reg_rtx; - - /* Compute the new value of the stack pointer. */ - tmp_reg_rtx = gen_rtx_REG (Pmode, (*next_scratch_regno)--); - offset_rtx = gen_int_si (offset_from_base); - - if (!tilepro_expand_addsi (tmp_reg_rtx, base_reg_rtx, offset_rtx)) - { - emit_insn (gen_rtx_SET (tmp_reg_rtx, - gen_rtx_PLUS (Pmode, base_reg_rtx, - offset_rtx))); - } - - return tmp_reg_rtx; -} - - -/* The stack frame looks like this: - +-------------+ - | ... | - | incoming | - | stack args | - AP -> +-------------+ - | caller's HFP| - +-------------+ - | lr save | - HFP -> +-------------+ - | var args | - | reg save | crtl->args.pretend_args_size bytes - +-------------+ - | ... | - | saved regs | tilepro_saved_regs_size() bytes - FP -> +-------------+ - | ... | - | vars | get_frame_size() bytes - +-------------+ - | ... | - | outgoing | - | stack args | crtl->outgoing_args_size bytes - +-------------+ - | HFP | 4 bytes (only here if nonleaf / alloca) - +-------------+ - | callee lr | 4 bytes (only here if nonleaf / alloca) - | save | - SP -> +-------------+ - - HFP == incoming SP. - - For functions with a frame larger than 32767 bytes, or which use - alloca (), r52 is used as a frame pointer. Otherwise there is no - frame pointer. - - FP is saved at SP+4 before calling a subroutine so the - callee can chain. */ -void -tilepro_expand_prologue (void) -{ -#define ROUND_ROBIN_SIZE 4 - /* We round-robin through four scratch registers to hold temporary - addresses for saving registers, to make instruction scheduling - easier. */ - rtx reg_save_addr[ROUND_ROBIN_SIZE] = { - NULL_RTX, NULL_RTX, NULL_RTX, NULL_RTX - }; - rtx insn, cfa; - unsigned int which_scratch; - int offset, start_offset, regno; - - /* A register that holds a copy of the incoming fp. */ - int fp_copy_regno = -1; - - /* A register that holds a copy of the incoming sp. */ - int sp_copy_regno = -1; - - /* Next scratch register number to hand out (postdecrementing). */ - int next_scratch_regno = 29; - - int total_size = compute_total_frame_size (); - - if (flag_stack_usage_info) - current_function_static_stack_size = total_size; - - /* Save lr first in its special location because code after this - might use the link register as a scratch register. */ - if (df_regs_ever_live_p (TILEPRO_LINK_REGNUM) || crtl->calls_eh_return) - { - FRP (frame_emit_store (TILEPRO_LINK_REGNUM, TILEPRO_LINK_REGNUM, - stack_pointer_rtx, stack_pointer_rtx, 0)); - emit_insn (gen_blockage ()); - } - - if (total_size == 0) - { - /* Load the PIC register if needed. */ - if (flag_pic && crtl->uses_pic_offset_table) - load_pic_register (false); - - return; - } - - cfa = stack_pointer_rtx; - - if (frame_pointer_needed) - { - fp_copy_regno = next_scratch_regno--; - - /* Copy the old frame pointer aside so we can save it later. */ - insn = FRP (emit_move_insn (gen_rtx_REG (word_mode, fp_copy_regno), - hard_frame_pointer_rtx)); - add_reg_note (insn, REG_CFA_REGISTER, NULL_RTX); - - /* Set up the frame pointer. */ - insn = FRP (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx)); - add_reg_note (insn, REG_CFA_DEF_CFA, hard_frame_pointer_rtx); - cfa = hard_frame_pointer_rtx; - REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = STACK_BOUNDARY; - - /* fp holds a copy of the incoming sp, in case we need to store - it. */ - sp_copy_regno = HARD_FRAME_POINTER_REGNUM; - } - else if (!tilepro_current_function_is_leaf ()) - { - /* Copy the old stack pointer aside so we can save it later. */ - sp_copy_regno = next_scratch_regno--; - emit_move_insn (gen_rtx_REG (Pmode, sp_copy_regno), - stack_pointer_rtx); - } - - if (tilepro_current_function_is_leaf ()) - { - /* No need to store chain pointer to caller's frame. */ - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - } - else - { - /* Save the frame pointer (incoming sp value) to support - backtracing. First we need to create an rtx with the store - address. */ - rtx chain_addr = gen_rtx_REG (Pmode, next_scratch_regno--); - rtx size_rtx = gen_int_si (-(total_size - UNITS_PER_WORD)); - - if (add_operand (size_rtx, Pmode)) - { - /* Expose more parallelism by computing this value from the - original stack pointer, not the one after we have pushed - the frame. */ - rtx p = gen_rtx_PLUS (Pmode, stack_pointer_rtx, size_rtx); - emit_insn (gen_rtx_SET (chain_addr, p)); - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - } - else - { - /* The stack frame is large, so just store the incoming sp - value at *(new_sp + UNITS_PER_WORD). */ - rtx p; - emit_sp_adjust (-total_size, &next_scratch_regno, - !frame_pointer_needed, NULL_RTX); - p = gen_rtx_PLUS (Pmode, stack_pointer_rtx, - GEN_INT (UNITS_PER_WORD)); - emit_insn (gen_rtx_SET (chain_addr, p)); - } - - /* Save our frame pointer for backtrace chaining. */ - emit_insn (gen_movsi (gen_frame_mem (SImode, chain_addr), - gen_rtx_REG (SImode, sp_copy_regno))); - } - - /* Compute where to start storing registers we need to save. */ - start_offset = -crtl->args.pretend_args_size - UNITS_PER_WORD; - offset = start_offset; - - /* Store all registers that need saving. */ - which_scratch = 0; - for (regno = FIRST_PSEUDO_REGISTER - 1; regno >= 0; regno--) - if (need_to_save_reg (regno)) - { - rtx r = reg_save_addr[which_scratch]; - int from_regno; - int cfa_offset = frame_pointer_needed ? offset : total_size + offset; - - if (r == NULL_RTX) - { - rtx p = compute_frame_addr (offset, &next_scratch_regno); - r = gen_rtx_REG (word_mode, next_scratch_regno--); - reg_save_addr[which_scratch] = r; - - emit_insn (gen_rtx_SET (r, p)); - } - else - { - /* Advance to the next stack slot to store this register. */ - int stride = ROUND_ROBIN_SIZE * -UNITS_PER_WORD; - rtx p = gen_rtx_PLUS (Pmode, r, GEN_INT (stride)); - emit_insn (gen_rtx_SET (r, p)); - } - - /* Save this register to the stack (but use the old fp value - we copied aside if appropriate). */ - from_regno = (fp_copy_regno >= 0 - && regno == - HARD_FRAME_POINTER_REGNUM) ? fp_copy_regno : regno; - FRP (frame_emit_store (from_regno, regno, r, cfa, cfa_offset)); - - offset -= UNITS_PER_WORD; - which_scratch = (which_scratch + 1) % ROUND_ROBIN_SIZE; - } - - /* If profiling, force that to happen after the frame is set up. */ - if (crtl->profile) - emit_insn (gen_blockage ()); - - /* Load the PIC register if needed. */ - if (flag_pic && crtl->uses_pic_offset_table) - load_pic_register (false); -} - - -/* Implement the epilogue and sibcall_epilogue patterns. SIBCALL_P is - true for a sibcall_epilogue pattern, and false for an epilogue - pattern. */ -void -tilepro_expand_epilogue (bool sibcall_p) -{ - /* We round-robin through four scratch registers to hold temporary - addresses for saving registers, to make instruction scheduling - easier. */ - rtx reg_save_addr[ROUND_ROBIN_SIZE] = { - NULL_RTX, NULL_RTX, NULL_RTX, NULL_RTX - }; - rtx_insn *last_insn, *insn; - unsigned int which_scratch; - int offset, start_offset, regno; - rtx cfa_restores = NULL_RTX; - - /* A register that holds a copy of the incoming fp. */ - int fp_copy_regno = -1; - - /* Next scratch register number to hand out (postdecrementing). */ - int next_scratch_regno = 29; - - int total_size = compute_total_frame_size (); - - last_insn = get_last_insn (); - - /* Load lr first since we are going to need it first. */ - insn = NULL; - if (df_regs_ever_live_p (TILEPRO_LINK_REGNUM)) - { - insn = frame_emit_load (TILEPRO_LINK_REGNUM, - compute_frame_addr (0, &next_scratch_regno), - &cfa_restores); - } - - if (total_size == 0) - { - if (insn) - { - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = cfa_restores; - } - goto done; - } - - /* Compute where to start restoring registers. */ - start_offset = -crtl->args.pretend_args_size - UNITS_PER_WORD; - offset = start_offset; - - if (frame_pointer_needed) - fp_copy_regno = next_scratch_regno--; - - /* Restore all callee-saved registers. */ - which_scratch = 0; - for (regno = FIRST_PSEUDO_REGISTER - 1; regno >= 0; regno--) - if (need_to_save_reg (regno)) - { - rtx r = reg_save_addr[which_scratch]; - if (r == NULL_RTX) - { - r = compute_frame_addr (offset, &next_scratch_regno); - reg_save_addr[which_scratch] = r; - } - else - { - /* Advance to the next stack slot to store this - register. */ - int stride = ROUND_ROBIN_SIZE * -UNITS_PER_WORD; - rtx p = gen_rtx_PLUS (Pmode, r, GEN_INT (stride)); - emit_insn (gen_rtx_SET (r, p)); - } - - if (fp_copy_regno >= 0 && regno == HARD_FRAME_POINTER_REGNUM) - frame_emit_load (fp_copy_regno, r, NULL); - else - frame_emit_load (regno, r, &cfa_restores); - - offset -= UNITS_PER_WORD; - which_scratch = (which_scratch + 1) % ROUND_ROBIN_SIZE; - } - - if (!tilepro_current_function_is_leaf ()) - cfa_restores = - alloc_reg_note (REG_CFA_RESTORE, stack_pointer_rtx, cfa_restores); - - emit_insn (gen_blockage ()); - - if (frame_pointer_needed) - { - /* Restore the old stack pointer by copying from the frame - pointer. */ - insn = emit_insn (gen_sp_restore (stack_pointer_rtx, - hard_frame_pointer_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = cfa_restores; - add_reg_note (insn, REG_CFA_DEF_CFA, stack_pointer_rtx); - } - else - { - insn = emit_sp_adjust (total_size, &next_scratch_regno, true, - cfa_restores); - } - - if (crtl->calls_eh_return) - emit_insn (gen_sp_adjust (stack_pointer_rtx, stack_pointer_rtx, - EH_RETURN_STACKADJ_RTX)); - - /* Restore the old frame pointer. */ - if (frame_pointer_needed) - { - insn = emit_move_insn (hard_frame_pointer_rtx, - gen_rtx_REG (Pmode, fp_copy_regno)); - add_reg_note (insn, REG_CFA_RESTORE, hard_frame_pointer_rtx); - } - - /* Mark the pic registers as live outside of the function. */ - if (flag_pic) - { - emit_use (cfun->machine->text_label_rtx); - emit_use (cfun->machine->got_rtx); - } - -done: - if (!sibcall_p) - { - /* Emit the actual 'return' instruction. */ - emit_jump_insn (gen__return ()); - } - else - { - emit_use (gen_rtx_REG (Pmode, TILEPRO_LINK_REGNUM)); - } - - /* Mark all insns we just emitted as frame-related. */ - for (; last_insn != NULL_RTX; last_insn = next_insn (last_insn)) - RTX_FRAME_RELATED_P (last_insn) = 1; -} - -#undef ROUND_ROBIN_SIZE - - -/* Implement INITIAL_ELIMINATION_OFFSET. */ -int -tilepro_initial_elimination_offset (int from, int to) -{ - int total_size = compute_total_frame_size (); - - if (from == FRAME_POINTER_REGNUM && to == STACK_POINTER_REGNUM) - { - return (total_size - crtl->args.pretend_args_size - - tilepro_saved_regs_size ()); - } - else if (from == FRAME_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM) - { - return -(crtl->args.pretend_args_size + tilepro_saved_regs_size ()); - } - else if (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM) - { - return STACK_POINTER_OFFSET + total_size; - } - else if (from == ARG_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM) - { - return STACK_POINTER_OFFSET; - } - else - gcc_unreachable (); -} - - -/* Return an RTX indicating where the return address to the - calling function can be found. */ -rtx -tilepro_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) -{ - if (count != 0) - return const0_rtx; - - return get_hard_reg_initial_val (Pmode, TILEPRO_LINK_REGNUM); -} - - -/* Implement EH_RETURN_HANDLER_RTX. */ -rtx -tilepro_eh_return_handler_rtx (void) -{ - /* The MEM needs to be volatile to prevent it from being - deleted. */ - rtx tmp = gen_frame_mem (Pmode, hard_frame_pointer_rtx); - MEM_VOLATILE_P (tmp) = true; - return tmp; -} - - - -/* Registers */ - -/* Implemnet TARGET_CONDITIONAL_REGISTER_USAGE. */ -static void -tilepro_conditional_register_usage (void) -{ - global_regs[TILEPRO_NETORDER_REGNUM] = 1; - /* TILEPRO_PIC_TEXT_LABEL_REGNUM is conditionally used. */ - if (TILEPRO_PIC_TEXT_LABEL_REGNUM != INVALID_REGNUM) - fixed_regs[TILEPRO_PIC_TEXT_LABEL_REGNUM] = 1; - if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM) - fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; -} - - -/* Implement TARGET_FRAME_POINTER_REQUIRED. */ -static bool -tilepro_frame_pointer_required (void) -{ - return crtl->calls_eh_return || cfun->calls_alloca; -} - - - -/* Scheduling and reorg */ - -/* Return the length of INSN. LENGTH is the initial length computed - by attributes in the machine-description file. This is where we - account for bundles. */ -int -tilepro_adjust_insn_length (rtx_insn *insn, int length) -{ - machine_mode mode = GET_MODE (insn); - - /* A non-termininating instruction in a bundle has length 0. */ - if (mode == SImode) - return 0; - - /* By default, there is not length adjustment. */ - return length; -} - - -/* Implement TARGET_SCHED_ISSUE_RATE. */ -static int -tilepro_issue_rate (void) -{ - return 3; -} - - -/* Return the rtx for the jump target. */ -static rtx -get_jump_target (rtx branch) -{ - if (CALL_P (branch)) - { - rtx call; - call = PATTERN (branch); - - if (GET_CODE (call) == PARALLEL) - call = XVECEXP (call, 0, 0); - - if (GET_CODE (call) == SET) - call = SET_SRC (call); - - if (GET_CODE (call) == CALL) - return XEXP (XEXP (call, 0), 0); - } - return 0; -} - -/* Implement TARGET_SCHED_ADJUST_COST. */ -static int -tilepro_sched_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, - int cost, unsigned int) -{ - /* If we have a true dependence, INSN is a call, and DEP_INSN - defines a register that is needed by the call (argument or stack - pointer), set its latency to 0 so that it can be bundled with - the call. Explicitly check for and exclude the case when - DEP_INSN defines the target of the jump. */ - if (CALL_P (insn) && dep_type == REG_DEP_TRUE) - { - rtx target = get_jump_target (insn); - if (!REG_P (target) || !set_of (target, dep_insn)) - return 0; - } - - return cost; -} - - -/* Skip over irrelevant NOTEs and such and look for the next insn we - would consider bundling. */ -static rtx_insn * -next_insn_to_bundle (rtx_insn *r, rtx_insn *end) -{ - for (; r != end; r = NEXT_INSN (r)) - { - if (NONDEBUG_INSN_P (r) - && GET_CODE (PATTERN (r)) != USE - && GET_CODE (PATTERN (r)) != CLOBBER) - return r; - } - - return NULL; -} - - -/* Go through all insns, and use the information generated during - scheduling to generate SEQUENCEs to represent bundles of - instructions issued simultaneously. */ -static void -tilepro_gen_bundles (void) -{ - basic_block bb; - FOR_EACH_BB_FN (bb, cfun) - { - rtx_insn *insn, *next; - rtx_insn *end = NEXT_INSN (BB_END (bb)); - - for (insn = next_insn_to_bundle (BB_HEAD (bb), end); insn; insn = next) - { - next = next_insn_to_bundle (NEXT_INSN (insn), end); - - /* Never wrap {} around inline asm. */ - if (GET_CODE (PATTERN (insn)) != ASM_INPUT) - { - if (next == NULL_RTX || GET_MODE (next) == TImode - /* NOTE: The scheduler incorrectly believes a call - insn can execute in the same cycle as the insn - after the call. This is of course impossible. - Really we need to fix the scheduler somehow, so - the code after the call gets scheduled - optimally. */ - || CALL_P (insn)) - { - /* Mark current insn as the end of a bundle. */ - PUT_MODE (insn, QImode); - } - else - { - /* Mark it as part of a bundle. */ - PUT_MODE (insn, SImode); - } - } - } - } -} - - -/* Helper function for tilepro_fixup_pcrel_references. */ -static void -replace_pc_relative_symbol_ref (rtx_insn *insn, rtx opnds[4], bool first_insn_p) -{ - rtx_insn *new_insns; - - start_sequence (); - - if (flag_pic == 1) - { - if (!first_insn_p) - { - emit_insn (gen_add_got16 (opnds[0], tilepro_got_rtx (), - opnds[2])); - emit_insn (gen_insn_lw (opnds[0], opnds[0])); - } - } - else - { - if (first_insn_p) - { - emit_insn (gen_addhi_got32 (opnds[0], tilepro_got_rtx (), - opnds[2])); - } - else - { - emit_insn (gen_addlo_got32 (opnds[0], opnds[1], opnds[2])); - emit_insn (gen_insn_lw (opnds[0], opnds[0])); - } - } - - new_insns = get_insns (); - end_sequence (); - - if (new_insns) - emit_insn_before (new_insns, insn); - - delete_insn (insn); -} - - -/* Returns whether INSN is a pc-relative addli insn. */ -static bool -match_addli_pcrel (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx unspec; - - if (GET_CODE (pattern) != SET) - return false; - - if (GET_CODE (SET_SRC (pattern)) != LO_SUM) - return false; - - if (GET_CODE (XEXP (SET_SRC (pattern), 1)) != CONST) - return false; - - unspec = XEXP (XEXP (SET_SRC (pattern), 1), 0); - - return (GET_CODE (unspec) == UNSPEC - && XINT (unspec, 1) == UNSPEC_PCREL_SYM); -} - - -/* Helper function for tilepro_fixup_pcrel_references. */ -static void -replace_addli_pcrel (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx set_src; - rtx unspec; - rtx opnds[4]; - bool first_insn_p; - - gcc_assert (GET_CODE (pattern) == SET); - opnds[0] = SET_DEST (pattern); - - set_src = SET_SRC (pattern); - gcc_assert (GET_CODE (set_src) == LO_SUM); - gcc_assert (GET_CODE (XEXP (set_src, 1)) == CONST); - opnds[1] = XEXP (set_src, 0); - - unspec = XEXP (XEXP (set_src, 1), 0); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_PCREL_SYM); - opnds[2] = XVECEXP (unspec, 0, 0); - opnds[3] = XVECEXP (unspec, 0, 1); - - /* We only need to replace SYMBOL_REFs, not LABEL_REFs. */ - if (GET_CODE (opnds[2]) != SYMBOL_REF) - return; - - first_insn_p = (opnds[1] == tilepro_text_label_rtx ()); - - replace_pc_relative_symbol_ref (insn, opnds, first_insn_p); -} - - -/* Returns whether INSN is a pc-relative auli insn. */ -static bool -match_auli_pcrel (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx high; - rtx unspec; - - if (GET_CODE (pattern) != SET) - return false; - - if (GET_CODE (SET_SRC (pattern)) != PLUS) - return false; - - high = XEXP (SET_SRC (pattern), 1); - - if (GET_CODE (high) != HIGH - || GET_CODE (XEXP (high, 0)) != CONST) - return false; - - unspec = XEXP (XEXP (high, 0), 0); - - return (GET_CODE (unspec) == UNSPEC - && XINT (unspec, 1) == UNSPEC_PCREL_SYM); -} - - -/* Helper function for tilepro_fixup_pcrel_references. */ -static void -replace_auli_pcrel (rtx_insn *insn) -{ - rtx pattern = PATTERN (insn); - rtx set_src; - rtx high; - rtx unspec; - rtx opnds[4]; - bool first_insn_p; - - gcc_assert (GET_CODE (pattern) == SET); - opnds[0] = SET_DEST (pattern); - - set_src = SET_SRC (pattern); - gcc_assert (GET_CODE (set_src) == PLUS); - opnds[1] = XEXP (set_src, 0); - - high = XEXP (set_src, 1); - gcc_assert (GET_CODE (high) == HIGH); - gcc_assert (GET_CODE (XEXP (high, 0)) == CONST); - - unspec = XEXP (XEXP (high, 0), 0); - gcc_assert (GET_CODE (unspec) == UNSPEC); - gcc_assert (XINT (unspec, 1) == UNSPEC_PCREL_SYM); - opnds[2] = XVECEXP (unspec, 0, 0); - opnds[3] = XVECEXP (unspec, 0, 1); - - /* We only need to replace SYMBOL_REFs, not LABEL_REFs. */ - if (GET_CODE (opnds[2]) != SYMBOL_REF) - return; - - first_insn_p = (opnds[1] == tilepro_text_label_rtx ()); - - replace_pc_relative_symbol_ref (insn, opnds, first_insn_p); -} - - -/* We generate PC relative SYMBOL_REFs as an optimization, to avoid - going through the GOT when the symbol is local to the compilation - unit. But such a symbol requires that the common text_label that - we generate at the beginning of the function be in the same section - as the reference to the SYMBOL_REF. This may not be true if we - generate hot/cold sections. This function looks for such cases and - replaces such references with the longer sequence going through the - GOT. - - We expect one of the following two instruction sequences: - addli tmp1, txt_label_reg, lo16(sym - txt_label) - auli tmp2, tmp1, ha16(sym - txt_label) - - auli tmp1, txt_label_reg, ha16(sym - txt_label) - addli tmp2, tmp1, lo16(sym - txt_label) - - If we're compiling -fpic, we replace the first instruction with - nothing, and the second instruction with: - - addli tmp2, got_rtx, got(sym) - lw tmp2, tmp2 - - If we're compiling -fPIC, we replace the first instruction with: - - auli tmp1, got_rtx, got_ha16(sym) - - and the second instruction with: - - addli tmp2, tmp1, got_lo16(sym) - lw tmp2, tmp2 - - Note that we're careful to disturb the instruction sequence as - little as possible, since it's very late in the compilation - process. -*/ -static void -tilepro_fixup_pcrel_references (void) -{ - rtx_insn *insn, *next_insn; - bool same_section_as_entry = true; - - for (insn = get_insns (); insn; insn = next_insn) - { - next_insn = NEXT_INSN (insn); - - if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) - { - same_section_as_entry = !same_section_as_entry; - continue; - } - - if (same_section_as_entry) - continue; - - if (!(INSN_P (insn) - && GET_CODE (PATTERN (insn)) != USE - && GET_CODE (PATTERN (insn)) != CLOBBER)) - continue; - - if (match_addli_pcrel (insn)) - replace_addli_pcrel (insn); - else if (match_auli_pcrel (insn)) - replace_auli_pcrel (insn); - } -} - - -/* Ensure that no var tracking notes are emitted in the middle of a - three-instruction bundle. */ -static void -reorder_var_tracking_notes (void) -{ - basic_block bb; - FOR_EACH_BB_FN (bb, cfun) - { - rtx_insn *insn, *next; - rtx_insn *queue = NULL; - bool in_bundle = false; - - for (insn = BB_HEAD (bb); insn != BB_END (bb); insn = next) - { - next = NEXT_INSN (insn); - - if (INSN_P (insn)) - { - /* Emit queued up notes at the last instruction of a bundle. */ - if (GET_MODE (insn) == QImode) - { - while (queue) - { - rtx_insn *next_queue = PREV_INSN (queue); - SET_PREV_INSN (NEXT_INSN (insn)) = queue; - SET_NEXT_INSN (queue) = NEXT_INSN (insn); - SET_NEXT_INSN (insn) = queue; - SET_PREV_INSN (queue) = insn; - queue = next_queue; - } - in_bundle = false; - } - else if (GET_MODE (insn) == SImode) - in_bundle = true; - } - else if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION) - { - if (in_bundle) - { - rtx_insn *prev = PREV_INSN (insn); - SET_PREV_INSN (next) = prev; - SET_NEXT_INSN (prev) = next; - - SET_PREV_INSN (insn) = queue; - queue = insn; - } - } - } - } -} - - -/* Perform machine dependent operations on the rtl chain INSNS. */ -static void -tilepro_reorg (void) -{ - /* We are freeing block_for_insn in the toplev to keep compatibility - with old MDEP_REORGS that are not CFG based. Recompute it - now. */ - compute_bb_for_insn (); - - if (flag_reorder_blocks_and_partition) - { - tilepro_fixup_pcrel_references (); - } - - if (flag_schedule_insns_after_reload) - { - split_all_insns (); - - timevar_push (TV_SCHED2); - schedule_insns (); - timevar_pop (TV_SCHED2); - - /* Examine the schedule to group into bundles. */ - tilepro_gen_bundles (); - } - - df_analyze (); - - if (flag_var_tracking) - { - timevar_push (TV_VAR_TRACKING); - variable_tracking_main (); - reorder_var_tracking_notes (); - timevar_pop (TV_VAR_TRACKING); - } - - df_finish_pass (false); -} - - - -/* Assembly */ - -/* Select a format to encode pointers in exception handling data. - CODE is 0 for data, 1 for code labels, 2 for function pointers. - GLOBAL is true if the symbol may be affected by dynamic - relocations. */ -int -tilepro_asm_preferred_eh_data_format (int code ATTRIBUTE_UNUSED, int global) -{ - return (global ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4; -} - - -/* Implement TARGET_ASM_OUTPUT_MI_THUNK. */ -static void -tilepro_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, - HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset, - tree function) -{ - const char *fnname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk_fndecl)); - rtx this_rtx, funexp; - rtx_insn *insn; - - /* Pretend to be a post-reload pass while generating rtl. */ - reload_completed = 1; - - /* Mark the end of the (empty) prologue. */ - emit_note (NOTE_INSN_PROLOGUE_END); - - /* Find the "this" pointer. If the function returns a structure, - the structure return pointer is in $1. */ - if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)), function)) - this_rtx = gen_rtx_REG (Pmode, 1); - else - this_rtx = gen_rtx_REG (Pmode, 0); - - /* Add DELTA to THIS_RTX. */ - emit_insn (gen_addsi3 (this_rtx, this_rtx, GEN_INT (delta))); - - /* If needed, add *(*THIS_RTX + VCALL_OFFSET) to THIS_RTX. */ - if (vcall_offset) - { - rtx tmp; - - tmp = gen_rtx_REG (Pmode, 29); - emit_move_insn (tmp, gen_rtx_MEM (Pmode, this_rtx)); - - emit_insn (gen_addsi3 (tmp, tmp, GEN_INT (vcall_offset))); - - emit_move_insn (tmp, gen_rtx_MEM (Pmode, tmp)); - - emit_insn (gen_addsi3 (this_rtx, this_rtx, tmp)); - } - - /* Generate a tail call to the target function. */ - if (!TREE_USED (function)) - { - assemble_external (function); - TREE_USED (function) = 1; - } - funexp = XEXP (DECL_RTL (function), 0); - funexp = gen_rtx_MEM (FUNCTION_MODE, funexp); - insn = emit_call_insn (gen_sibcall (funexp, const0_rtx)); - SIBLING_CALL_P (insn) = 1; - - /* Run just enough of rest_of_compilation to get the insns emitted. - There's not really enough bulk here to make other passes such as - instruction scheduling worth while. - - We don't currently bundle, but the instruciton sequence is all - serial except for the tail call, so we're only wasting one cycle. - */ - insn = get_insns (); - shorten_branches (insn); - assemble_start_function (thunk_fndecl, fnname); - final_start_function (insn, file, 1); - final (insn, file, 1); - final_end_function (); - assemble_end_function (thunk_fndecl, fnname); - - /* Stop pretending to be a post-reload pass. */ - reload_completed = 0; -} - - -/* Implement TARGET_ASM_TRAMPOLINE_TEMPLATE. */ -static void -tilepro_asm_trampoline_template (FILE *file) -{ - fprintf (file, "\tlnk r10\n"); - fprintf (file, "\taddi r10, r10, 32\n"); - fprintf (file, "\tlwadd r11, r10, %d\n", GET_MODE_SIZE (ptr_mode)); - fprintf (file, "\tlw r10, r10\n"); - fprintf (file, "\tjr r11\n"); - fprintf (file, "\t.word 0 # \n"); - fprintf (file, "\t.word 0 # \n"); -} - - -/* Implement TARGET_TRAMPOLINE_INIT. */ -static void -tilepro_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain) -{ - rtx fnaddr, chaddr; - rtx mem; - rtx begin_addr, end_addr; - int ptr_mode_size = GET_MODE_SIZE (ptr_mode); - - fnaddr = copy_to_reg (XEXP (DECL_RTL (fndecl), 0)); - chaddr = copy_to_reg (static_chain); - - emit_block_move (m_tramp, assemble_trampoline_template (), - GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL); - - mem = adjust_address (m_tramp, ptr_mode, - TRAMPOLINE_SIZE - 2 * ptr_mode_size); - emit_move_insn (mem, fnaddr); - mem = adjust_address (m_tramp, ptr_mode, - TRAMPOLINE_SIZE - ptr_mode_size); - emit_move_insn (mem, chaddr); - - /* Get pointers to the beginning and end of the code block. */ - begin_addr = force_reg (Pmode, XEXP (m_tramp, 0)); - end_addr = force_reg (Pmode, plus_constant (Pmode, XEXP (m_tramp, 0), - TRAMPOLINE_SIZE)); - - maybe_emit_call_builtin___clear_cache (begin_addr, end_addr); -} - - -/* Implement TARGET_PRINT_OPERAND. */ -static void -tilepro_print_operand (FILE *file, rtx x, int code) -{ - switch (code) - { - case 'c': - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("z", file); - break; - case NE: - fputs ("nz", file); - break; - default: - output_operand_lossage ("invalid %%c operand"); - } - return; - - case 'C': - /* Print the compare operator opcode for conditional moves. */ - switch (GET_CODE (x)) - { - case EQ: - fputs ("nz", file); - break; - case NE: - fputs ("z", file); - break; - default: - output_operand_lossage ("invalid %%C operand"); - } - return; - - case 'h': - { - /* Print the high 16 bits of a 32-bit constant. */ - HOST_WIDE_INT i; - if (CONST_INT_P (x)) - i = INTVAL (x); - else if (GET_CODE (x) == CONST_DOUBLE) - i = CONST_DOUBLE_LOW (x); - else - { - output_operand_lossage ("invalid %%h operand"); - return; - } - i = trunc_int_for_mode (i >> 16, HImode); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - - case 'H': - { - rtx addr = NULL; - const char *opstr = NULL; - bool pcrel = false; - if (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == UNSPEC) - { - addr = XVECEXP (XEXP (x, 0), 0, 0); - switch (XINT (XEXP (x, 0), 1)) - { - case UNSPEC_GOT32_SYM: - opstr = "got_ha16"; - break; - case UNSPEC_PCREL_SYM: - opstr = "ha16"; - pcrel = true; - break; - case UNSPEC_TLS_GD: - opstr = "tls_gd_ha16"; - break; - case UNSPEC_TLS_IE: - opstr = "tls_ie_ha16"; - break; - case UNSPEC_TLS_LE: - opstr = "tls_le_ha16"; - break; - default: - output_operand_lossage ("invalid %%H operand"); - } - } - else - { - addr = x; - opstr = "ha16"; - } - - fputs (opstr, file); - fputc ('(', file); - output_addr_const (file, addr); - - if (pcrel) - { - rtx addr2 = XVECEXP (XEXP (x, 0), 0, 1); - fputs (" - " , file); - output_addr_const (file, addr2); - } - - fputc (')', file); - return; - } - - case 'I': - /* Print an auto-inc memory operand. */ - if (!MEM_P (x)) - { - output_operand_lossage ("invalid %%I operand"); - return; - } - - output_memory_autoinc_first = true; - output_address (GET_MODE (x), XEXP (x, 0)); - return; - - case 'i': - /* Print an auto-inc memory operand. */ - if (!MEM_P (x)) - { - output_operand_lossage ("invalid %%i operand"); - return; - } - - output_memory_autoinc_first = false; - output_address (GET_MODE (x), XEXP (x, 0)); - return; - - case 'j': - { - /* Print the low 8 bits of a constant. */ - HOST_WIDE_INT i; - if (CONST_INT_P (x)) - i = INTVAL (x); - else if (GET_CODE (x) == CONST_DOUBLE) - i = CONST_DOUBLE_LOW (x); - else if (GET_CODE (x) == CONST_VECTOR - && CONST_INT_P (CONST_VECTOR_ELT (x, 0))) - i = INTVAL (CONST_VECTOR_ELT (x, 0)); - else - { - output_operand_lossage ("invalid %%j operand"); - return; - } - i = trunc_int_for_mode (i, QImode); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - - case 'L': - { - rtx addr = NULL; - const char *opstr = NULL; - bool pcrel = false; - if (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == UNSPEC) - { - addr = XVECEXP (XEXP (x, 0), 0, 0); - switch (XINT (XEXP (x, 0), 1)) - { - case UNSPEC_GOT16_SYM: - opstr = "got"; - break; - case UNSPEC_GOT32_SYM: - opstr = "got_lo16"; - break; - case UNSPEC_PCREL_SYM: - opstr = "lo16"; - pcrel = true; - break; - case UNSPEC_TLS_GD: - opstr = "tls_gd_lo16"; - break; - case UNSPEC_TLS_IE: - opstr = "tls_ie_lo16"; - break; - case UNSPEC_TLS_LE: - opstr = "tls_le_lo16"; - break; - default: - output_operand_lossage ("invalid %%L operand"); - } - } - else - { - addr = x; - opstr = "lo16"; - } - - fputs (opstr, file); - fputc ('(', file); - output_addr_const (file, addr); - - if (pcrel) - { - rtx addr2 = XVECEXP (XEXP (x, 0), 0, 1); - fputs (" - " , file); - output_addr_const (file, addr2); - } - - fputc (')', file); - return; - } - - case 'p': - if (GET_CODE (x) == SYMBOL_REF) - { - if (flag_pic && !SYMBOL_REF_LOCAL_P (x)) - fprintf (file, "plt("); - output_addr_const (file, x); - if (flag_pic && !SYMBOL_REF_LOCAL_P (x)) - fprintf (file, ")"); - } - else - output_addr_const (file, x); - return; - - case 'P': - { - /* Print a 32-bit constant plus one. */ - HOST_WIDE_INT i; - if (!CONST_INT_P (x)) - { - output_operand_lossage ("invalid %%P operand"); - return; - } - i = trunc_int_for_mode (INTVAL (x) + 1, SImode); - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - - case 'M': - { - /* Print an mm-style bit range. */ - int first_bit, last_bit; - - if (!CONST_INT_P (x) - || !tilepro_bitfield_operand_p (INTVAL (x), &first_bit, - &last_bit)) - { - output_operand_lossage ("invalid %%M operand"); - return; - } - - fprintf (file, "%d, %d", first_bit, last_bit); - return; - } - - case 'N': - { - const char *reg = NULL; - - /* Print a network register. */ - if (!CONST_INT_P (x)) - { - output_operand_lossage ("invalid %%N operand"); - return; - } - - switch (INTVAL (x)) - { - case TILEPRO_NETREG_IDN0: reg = "idn0"; break; - case TILEPRO_NETREG_IDN1: reg = "idn1"; break; - case TILEPRO_NETREG_SN: reg = "sn"; break; - case TILEPRO_NETREG_UDN0: reg = "udn0"; break; - case TILEPRO_NETREG_UDN1: reg = "udn1"; break; - case TILEPRO_NETREG_UDN2: reg = "udn2"; break; - case TILEPRO_NETREG_UDN3: reg = "udn3"; break; - default: gcc_unreachable (); - } - - fprintf (file, reg); - return; - } - - case 't': - { - /* Log base 2 of a power of two. */ - HOST_WIDE_INT i; - HOST_WIDE_INT n; - - if (!CONST_INT_P (x)) - { - output_operand_lossage ("invalid %%t operand"); - return; - } - n = trunc_int_for_mode (INTVAL (x), SImode); - i = exact_log2 (n); - if (i < 0) - { - output_operand_lossage ("invalid %%t operand"); - return; - } - - fprintf (file, HOST_WIDE_INT_PRINT_DEC, i); - return; - } - break; - - case 'r': - /* In this case we need a register. Use 'zero' if the - operand is const0_rtx. */ - if (x == const0_rtx - || (GET_MODE (x) != VOIDmode && x == CONST0_RTX (GET_MODE (x)))) - { - fputs ("zero", file); - return; - } - else if (!REG_P (x)) - { - output_operand_lossage ("invalid %%r operand"); - return; - } - /* FALLTHRU */ - - case 0: - if (REG_P (x)) - { - fprintf (file, "%s", reg_names[REGNO (x)]); - return; - } - else if (MEM_P (x)) - { - output_address (VOIDmode, XEXP (x, 0)); - return; - } - else - { - output_addr_const (file, x); - return; - } - break; - } - - debug_rtx (x); - output_operand_lossage ("unable to print out operand yet; code == %d (%c)", - code, code); -} - - -/* Implement TARGET_PRINT_OPERAND_ADDRESS. */ -static void -tilepro_print_operand_address (FILE *file, machine_mode mode, rtx addr) -{ - if (GET_CODE (addr) == POST_DEC - || GET_CODE (addr) == POST_INC) - { - int offset = GET_MODE_SIZE (mode); - - gcc_assert (mode != VOIDmode); - - if (output_memory_autoinc_first) - fprintf (file, "%s", reg_names[REGNO (XEXP (addr, 0))]); - else - fprintf (file, "%d", - GET_CODE (addr) == POST_DEC ? -offset : offset); - } - else if (GET_CODE (addr) == POST_MODIFY) - { - gcc_assert (mode != VOIDmode); - - gcc_assert (GET_CODE (XEXP (addr, 1)) == PLUS); - - if (output_memory_autoinc_first) - fprintf (file, "%s", reg_names[REGNO (XEXP (addr, 0))]); - else - fprintf (file, HOST_WIDE_INT_PRINT_DEC, - INTVAL (XEXP (XEXP (addr, 1), 1))); - } - else - tilepro_print_operand (file, addr, 'r'); -} - - -/* Machine mode of current insn, for determining curly brace - placement. */ -static machine_mode insn_mode; - - -/* Implement FINAL_PRESCAN_INSN. This is used to emit bundles. */ -void -tilepro_final_prescan_insn (rtx_insn *insn) -{ - /* Record this for tilepro_asm_output_opcode to examine. */ - insn_mode = GET_MODE (insn); -} - - -/* While emitting asm, are we currently inside '{' for a bundle? */ -static bool tilepro_in_bundle = false; - -/* Implement ASM_OUTPUT_OPCODE. Prepend/append curly braces as - appropriate given the bundling information recorded by - tilepro_gen_bundles. */ -const char * -tilepro_asm_output_opcode (FILE *stream, const char *code) -{ - bool pseudo = !strcmp (code, "pseudo"); - - if (!tilepro_in_bundle && insn_mode == SImode) - { - /* Start a new bundle. */ - fprintf (stream, "{\n\t"); - tilepro_in_bundle = true; - } - - if (tilepro_in_bundle && insn_mode == QImode) - { - /* Close an existing bundle. */ - static char buf[100]; - - gcc_assert (strlen (code) + 3 + 1 < sizeof (buf)); - - strcpy (buf, pseudo ? "" : code); - strcat (buf, "\n\t}"); - tilepro_in_bundle = false; - - return buf; - } - else - { - return pseudo ? "" : code; - } -} - - -/* Output assembler code to FILE to increment profiler label # LABELNO - for profiling a function entry. */ -void -tilepro_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) -{ - if (tilepro_in_bundle) - { - fprintf (file, "\t}\n"); - } - - if (flag_pic) - { - fprintf (file, - "\t{\n" - "\tmove\tr10, lr\n" - "\tjal\tplt(%s)\n" - "\t}\n", MCOUNT_NAME); - } - else - { - fprintf (file, - "\t{\n" - "\tmove\tr10, lr\n" - "\tjal\t%s\n" - "\t}\n", MCOUNT_NAME); - } - - tilepro_in_bundle = false; -} - - -/* Implement TARGET_ASM_FILE_END. */ -static void -tilepro_file_end (void) -{ - if (NEED_INDICATE_EXEC_STACK) - file_end_indicate_exec_stack (); -} - - -#undef TARGET_HAVE_TLS -#define TARGET_HAVE_TLS HAVE_AS_TLS - -#undef TARGET_OPTION_OVERRIDE -#define TARGET_OPTION_OVERRIDE tilepro_option_override - -#ifdef TARGET_THREAD_SSP_OFFSET -#undef TARGET_STACK_PROTECT_GUARD -#define TARGET_STACK_PROTECT_GUARD hook_tree_void_null -#endif - -#undef TARGET_SCALAR_MODE_SUPPORTED_P -#define TARGET_SCALAR_MODE_SUPPORTED_P tilepro_scalar_mode_supported_p - -#undef TARGET_VECTOR_MODE_SUPPORTED_P -#define TARGET_VECTOR_MODE_SUPPORTED_P tile_vector_mode_supported_p - -#undef TARGET_CANNOT_FORCE_CONST_MEM -#define TARGET_CANNOT_FORCE_CONST_MEM tilepro_cannot_force_const_mem - -#undef TARGET_FUNCTION_OK_FOR_SIBCALL -#define TARGET_FUNCTION_OK_FOR_SIBCALL tilepro_function_ok_for_sibcall - -#undef TARGET_PASS_BY_REFERENCE -#define TARGET_PASS_BY_REFERENCE tilepro_pass_by_reference - -#undef TARGET_RETURN_IN_MEMORY -#define TARGET_RETURN_IN_MEMORY tilepro_return_in_memory - -#undef TARGET_FUNCTION_ARG_BOUNDARY -#define TARGET_FUNCTION_ARG_BOUNDARY tilepro_function_arg_boundary - -#undef TARGET_FUNCTION_ARG -#define TARGET_FUNCTION_ARG tilepro_function_arg - -#undef TARGET_FUNCTION_ARG_ADVANCE -#define TARGET_FUNCTION_ARG_ADVANCE tilepro_function_arg_advance - -#undef TARGET_FUNCTION_VALUE -#define TARGET_FUNCTION_VALUE tilepro_function_value - -#undef TARGET_LIBCALL_VALUE -#define TARGET_LIBCALL_VALUE tilepro_libcall_value - -#undef TARGET_FUNCTION_VALUE_REGNO_P -#define TARGET_FUNCTION_VALUE_REGNO_P tilepro_function_value_regno_p - -#undef TARGET_PROMOTE_FUNCTION_MODE -#define TARGET_PROMOTE_FUNCTION_MODE \ - default_promote_function_mode_always_promote - -#undef TARGET_PROMOTE_PROTOTYPES -#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false - -#undef TARGET_BUILD_BUILTIN_VA_LIST -#define TARGET_BUILD_BUILTIN_VA_LIST tilepro_build_builtin_va_list - -#undef TARGET_EXPAND_BUILTIN_VA_START -#define TARGET_EXPAND_BUILTIN_VA_START tilepro_va_start - -#undef TARGET_SETUP_INCOMING_VARARGS -#define TARGET_SETUP_INCOMING_VARARGS tilepro_setup_incoming_varargs - -#undef TARGET_GIMPLIFY_VA_ARG_EXPR -#define TARGET_GIMPLIFY_VA_ARG_EXPR tilepro_gimplify_va_arg_expr - -#undef TARGET_RTX_COSTS -#define TARGET_RTX_COSTS tilepro_rtx_costs - -/* Limit to what we can reach in one addli. */ -#undef TARGET_MIN_ANCHOR_OFFSET -#define TARGET_MIN_ANCHOR_OFFSET -32768 -#undef TARGET_MAX_ANCHOR_OFFSET -#define TARGET_MAX_ANCHOR_OFFSET 32767 - -#undef TARGET_LEGITIMATE_CONSTANT_P -#define TARGET_LEGITIMATE_CONSTANT_P tilepro_legitimate_constant_p - -#undef TARGET_LRA_P -#define TARGET_LRA_P hook_bool_void_false - -#undef TARGET_LEGITIMATE_ADDRESS_P -#define TARGET_LEGITIMATE_ADDRESS_P tilepro_legitimate_address_p - -#undef TARGET_LEGITIMIZE_ADDRESS -#define TARGET_LEGITIMIZE_ADDRESS tilepro_legitimize_address - -#undef TARGET_DELEGITIMIZE_ADDRESS -#define TARGET_DELEGITIMIZE_ADDRESS tilepro_delegitimize_address - -#undef TARGET_INIT_BUILTINS -#define TARGET_INIT_BUILTINS tilepro_init_builtins - -#undef TARGET_BUILTIN_DECL -#define TARGET_BUILTIN_DECL tilepro_builtin_decl - -#undef TARGET_EXPAND_BUILTIN -#define TARGET_EXPAND_BUILTIN tilepro_expand_builtin - -#undef TARGET_CONDITIONAL_REGISTER_USAGE -#define TARGET_CONDITIONAL_REGISTER_USAGE tilepro_conditional_register_usage - -#undef TARGET_FRAME_POINTER_REQUIRED -#define TARGET_FRAME_POINTER_REQUIRED tilepro_frame_pointer_required - -#undef TARGET_DELAY_SCHED2 -#define TARGET_DELAY_SCHED2 true - -#undef TARGET_DELAY_VARTRACK -#define TARGET_DELAY_VARTRACK true - -#undef TARGET_SCHED_ISSUE_RATE -#define TARGET_SCHED_ISSUE_RATE tilepro_issue_rate - -#undef TARGET_SCHED_ADJUST_COST -#define TARGET_SCHED_ADJUST_COST tilepro_sched_adjust_cost - -#undef TARGET_MACHINE_DEPENDENT_REORG -#define TARGET_MACHINE_DEPENDENT_REORG tilepro_reorg - -#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK -#define TARGET_ASM_CAN_OUTPUT_MI_THUNK \ - hook_bool_const_tree_hwi_hwi_const_tree_true - -#undef TARGET_ASM_OUTPUT_MI_THUNK -#define TARGET_ASM_OUTPUT_MI_THUNK tilepro_asm_output_mi_thunk - -#undef TARGET_ASM_TRAMPOLINE_TEMPLATE -#define TARGET_ASM_TRAMPOLINE_TEMPLATE tilepro_asm_trampoline_template - -#undef TARGET_TRAMPOLINE_INIT -#define TARGET_TRAMPOLINE_INIT tilepro_trampoline_init - -#undef TARGET_PRINT_OPERAND -#define TARGET_PRINT_OPERAND tilepro_print_operand - -#undef TARGET_PRINT_OPERAND_ADDRESS -#define TARGET_PRINT_OPERAND_ADDRESS tilepro_print_operand_address - -#undef TARGET_ASM_FILE_END -#define TARGET_ASM_FILE_END tilepro_file_end - -#undef TARGET_CAN_USE_DOLOOP_P -#define TARGET_CAN_USE_DOLOOP_P can_use_doloop_if_innermost - -#undef TARGET_CONSTANT_ALIGNMENT -#define TARGET_CONSTANT_ALIGNMENT constant_alignment_word_strings - -struct gcc_target targetm = TARGET_INITIALIZER; - -#include "gt-tilepro.h" diff --git a/gcc/config/tilepro/tilepro.h b/gcc/config/tilepro/tilepro.h deleted file mode 100644 index 6c37aba..0000000 --- a/gcc/config/tilepro/tilepro.h +++ /dev/null @@ -1,457 +0,0 @@ -/* Definitions of target machine for GNU compiler for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file is part of GCC. - - GCC 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 3, or (at your - option) any later version. - - GCC 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 GCC; see the file COPYING3. If not see - . */ - -/* This is used by tilepro_cpu_cpp_builtins to indicate the byte order - we're compiling for. */ -#define TILEPRO_CPU_CPP_ENDIAN_BUILTINS() \ - do \ - { \ - if (BYTES_BIG_ENDIAN) \ - builtin_define ("__BIG_ENDIAN__"); \ - else \ - builtin_define ("__LITTLE_ENDIAN__"); \ - } \ - while (0) - -/* Target CPU builtins. */ -#define TARGET_CPU_CPP_BUILTINS() \ - tilepro_cpu_cpp_builtins (pfile) - -#undef PTRDIFF_TYPE -#define PTRDIFF_TYPE "int" - -#undef SIZE_TYPE -#define SIZE_TYPE "unsigned int" - - -/* Target machine storage layout */ - -#define BITS_BIG_ENDIAN 0 -#define BYTES_BIG_ENDIAN 0 -#define WORDS_BIG_ENDIAN 0 - -#define UNITS_PER_WORD 4 -#define PARM_BOUNDARY 32 -#define STACK_BOUNDARY 64 -#define FUNCTION_BOUNDARY 64 -#define BIGGEST_ALIGNMENT 64 -#define STRICT_ALIGNMENT 1 - -#define PCC_BITFIELD_TYPE_MATTERS 1 -#define FASTEST_ALIGNMENT 32 -#define BIGGEST_FIELD_ALIGNMENT 64 - -/* Make arrays of chars word-aligned for the same reasons. */ -#define DATA_ALIGNMENT(TYPE, ALIGN) \ - (TREE_CODE (TYPE) == ARRAY_TYPE \ - && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ - && (ALIGN) < FASTEST_ALIGNMENT ? FASTEST_ALIGNMENT : (ALIGN)) - -/* Make local arrays of chars word-aligned for the same reasons. */ -#define LOCAL_ALIGNMENT(TYPE, ALIGN) DATA_ALIGNMENT (TYPE, ALIGN) - - -/* Standard register usage. */ - -#define FIRST_PSEUDO_REGISTER (64 + 3) - -#define FIXED_REGISTERS \ - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1} - -#define CALL_REALLY_USED_REGISTERS \ - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ - 1, 1, 1} - -#define REG_ALLOC_ORDER { \ - 10, 11, 12, 13, 14, /* call used */ \ - 15, 16, 17, 18, 19, \ - 20, 21, 22, 23, 24, \ - 25, 26, 27, 28, 29, \ - \ - 9, 8, 7, 6, 5, /* argument */ \ - 4, 3, 2, 1, 0, \ - \ - 55, /* return address */ \ - \ - 30, 31, 32, 33, 34, /* call saved registers */ \ - 35, 36, 37, 38, 39, \ - 40, 41, 42, 43, 44, \ - 45, 46, 47, 48, 49, \ - 50, 51, \ - \ - 52, /* hard frame pointer */ \ - 53, 54, /* tp, sp */ \ - \ - 56, 57, 58, 59, 60, /* special purpose */ \ - 61, 62, 63, 64, 65, /* or fake registers */ \ - 66 \ -} - -/* Register that holds an address into the text segment that can be - used by pic code. */ -#define TILEPRO_PIC_TEXT_LABEL_REGNUM (flag_pic ? 50 : INVALID_REGNUM) -#define PIC_OFFSET_TABLE_REGNUM (flag_pic ? 51 : INVALID_REGNUM) -#define HARD_FRAME_POINTER_REGNUM 52 -#define THREAD_POINTER_REGNUM 53 -#define STACK_POINTER_REGNUM 54 -#define TILEPRO_LINK_REGNUM 55 -#define FRAME_POINTER_REGNUM 64 -#define ARG_POINTER_REGNUM 65 -/* Pseudo register used to enforce order between instructions that - touch the networks. */ -#define TILEPRO_NETORDER_REGNUM 66 -#define STATIC_CHAIN_REGNUM 10 - - -enum reg_class -{ - NO_REGS, - R0_REGS, - R1_REGS, - R2_REGS, - R3_REGS, - R4_REGS, - R5_REGS, - R6_REGS, - R7_REGS, - R8_REGS, - R9_REGS, - R10_REGS, - ALL_REGS, - LIM_REG_CLASSES -}; - -#define N_REG_CLASSES (int) LIM_REG_CLASSES - -/* Since GENERAL_REGS is the same class as ALL_REGS, don't give it a - different class number; just make it an alias. */ -#define GENERAL_REGS ALL_REGS - -#define REG_CLASS_NAMES \ - { \ - "NO_REGS", \ - "R0_REGS", \ - "R1_REGS", \ - "R2_REGS", \ - "R3_REGS", \ - "R4_REGS", \ - "R5_REGS", \ - "R6_REGS", \ - "R7_REGS", \ - "R8_REGS", \ - "R9_REGS", \ - "R10_REGS", \ - "ALL_REGS" \ - } - -#define REG_CLASS_CONTENTS \ - { \ - { 0 }, \ - { 1 << 0 }, \ - { 1 << 1 }, \ - { 1 << 2 }, \ - { 1 << 3 }, \ - { 1 << 4 }, \ - { 1 << 5 }, \ - { 1 << 6 }, \ - { 1 << 7 }, \ - { 1 << 8 }, \ - { 1 << 9 }, \ - { 1 << 10 }, \ - { 0xffffffff, 0xffffffff } \ - } - -#define REGNO_REG_CLASS(REGNO) \ - ((unsigned)(REGNO) <= 10 ? \ - (enum reg_class)(R0_REGS + (REGNO)) : ALL_REGS) - -#define INDEX_REG_CLASS NO_REGS -#define BASE_REG_CLASS ALL_REGS - -#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS) - -#define CLASS_MAX_NREGS(CLASS, MODE) \ - ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) - - -/* Stack layout; function entry, exit and calling. */ - -#define STACK_GROWS_DOWNWARD 1 -#define FRAME_GROWS_DOWNWARD 1 - -#define DYNAMIC_CHAIN_ADDRESS(FRAME) \ - plus_constant (Pmode, (FRAME), UNITS_PER_WORD) - -#define FIRST_PARM_OFFSET(FNDECL) 0 - -#define ACCUMULATE_OUTGOING_ARGS 1 - -#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1 - -#define INCOMING_FRAME_SP_OFFSET 0 - -#define STACK_POINTER_OFFSET (2 * UNITS_PER_WORD) - -#define ARG_POINTER_CFA_OFFSET(FNDECL) (-STACK_POINTER_OFFSET) - -#define DEFAULT_PCC_STRUCT_RETURN 0 - -/* The first 10 registers may hold return value. */ -#define TILEPRO_NUM_RETURN_REGS 10 - -/* The first 10 registers hold function arguments. */ -#define TILEPRO_NUM_ARG_REGS 10 - -#define FUNCTION_ARG_REGNO_P(N) ((N) < TILEPRO_NUM_ARG_REGS) - -/* The type used to store the number of words of arguments scanned so - far during argument scanning. This includes any space that is - skipped. */ -#define CUMULATIVE_ARGS int - -#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ - ((CUM) = 0) - - -#define ELIMINABLE_REGS \ - {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ - {ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \ - {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ - {FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}} - -#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ - ((OFFSET) = tilepro_initial_elimination_offset((FROM),(TO))) - -#define PROFILE_BEFORE_PROLOGUE 1 - -#define FUNCTION_PROFILER(FILE, LABELNO) \ - tilepro_function_profiler (FILE, LABELNO) - -#define TRAMPOLINE_SIZE 48 -#define TRAMPOLINE_ALIGNMENT 64 -#define TRAMPOLINE_SECTION text_section - - -/* Call frame debugging information. */ - -#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, TILEPRO_LINK_REGNUM) - -#define RETURN_ADDR_RTX tilepro_return_addr - -#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (TILEPRO_LINK_REGNUM) - -#define DWARF_ZERO_REG 63 - -#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N + 12) : INVALID_REGNUM) -#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, 11) -#define EH_RETURN_HANDLER_RTX tilepro_eh_return_handler_rtx () - -#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ - tilepro_asm_preferred_eh_data_format ((CODE), (GLOBAL)) - - -/* Addressing modes, and classification of registers for them. */ - -#define HAVE_POST_INCREMENT 1 -#define HAVE_POST_DECREMENT 1 -#define HAVE_POST_MODIFY_DISP 1 - -#define REGNO_OK_FOR_INDEX_P(regno) 0 -#define REGNO_OK_FOR_BASE_P(regno) \ - ((regno) < FIRST_PSEUDO_REGISTER || reg_renumber[regno] >= 0) - -#define MAX_REGS_PER_ADDRESS 1 - -#define CONSTANT_ADDRESS_P(X) 0 - -#define LEGITIMATE_PIC_OPERAND_P(X) tilepro_legitimate_pic_operand_p (X) - - -#define CASE_VECTOR_MODE SImode -#define CASE_VECTOR_PC_RELATIVE 0 -#define JUMP_TABLES_IN_TEXT_SECTION 0 - -#define DEFAULT_SIGNED_CHAR 1 - -#define MOVE_MAX UNITS_PER_WORD - -/* Use a value of 11 for MOVE_RATIO and friends, because TILEPro - returns structs as large as 10 words in registers. Because of some - some code generation inefficiency, we never get smaller code for - turning that into a memcpy, so pick a value that guarantees this - doesn't happen. */ -#define TILEPRO_CALL_RATIO 11 -#define MOVE_RATIO(speed) ((speed) ? 15 : TILEPRO_CALL_RATIO) -#define CLEAR_RATIO(speed) ((speed) ? 15 : TILEPRO_CALL_RATIO) -#define SET_RATIO(speed) ((speed) ? 15 : TILEPRO_CALL_RATIO) - -#define WORD_REGISTER_OPERATIONS 1 - -#define LOAD_EXTEND_OP(MODE) ZERO_EXTEND - -#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ - if (GET_MODE_CLASS (MODE) == MODE_INT \ - && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ - (MODE) = SImode; - -/* Define SLOW_BYTE_ACCESS to avoid making a QI or HI mode - register. */ -#define SLOW_BYTE_ACCESS 1 - -#define SHIFT_COUNT_TRUNCATED 1 - -#define SHORT_IMMEDIATES_SIGN_EXTEND 1 - -#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1) -#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1) - -#define Pmode SImode - -#define STORE_FLAG_VALUE 1 - -#define FUNCTION_MODE SImode - -#define NO_FUNCTION_CSE 1 - -#define ADJUST_INSN_LENGTH(INSN, LENGTH) \ - ((LENGTH) = tilepro_adjust_insn_length ((INSN), (LENGTH))) - -#define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT - -#define BRANCH_COST(speed_p, predictable_p) ((predictable_p) ? 2 : 6) - - -/* Control the assembler format that we output. */ - -#undef NO_DOLLAR_IN_LABEL - -#define ASM_COMMENT_START "##" - -#define TEXT_SECTION_ASM_OP "\t.text" - -#define DATA_SECTION_ASM_OP "\t.data" - -#undef READONLY_DATA_SECTION_ASM_OP -#define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata, \"a\"" - -#undef BSS_SECTION_ASM_OP -#define BSS_SECTION_ASM_OP "\t.section\t.bss, \"wa\"" - -#undef INIT_SECTION_ASM_OP -#define INIT_SECTION_ASM_OP "\t.section\t.init, \"ax\"" - -#undef FINI_SECTION_ASM_OP -#define FINI_SECTION_ASM_OP "\t.section\t.fini, \"ax\"" - -#define GLOBAL_ASM_OP ".global " - -#define SUPPORTS_WEAK 1 - -#define USER_LABEL_PREFIX "" - -#define REGISTER_PREFIX "" -#define REGISTER_NAMES \ - { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \ - "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \ - "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \ - "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31", \ - "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39", \ - "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47", \ - "r48", "r49", "r50", "r51", "r52", "tp", "sp", "lr", \ - "sn", "idn0", "idn1", "udn0", "udn1", "udn2", "udn3", "zero", \ - "?FRAME?", "?ARG?", "?NET?" } - -/* This is used to help emit bundles. */ -#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \ - tilepro_final_prescan_insn (insn) - -/* This is used to help emit bundles. */ -#define ASM_OUTPUT_OPCODE(STREAM, PTR) \ - (PTR = tilepro_asm_output_opcode (STREAM, PTR)) - -#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ - do \ - { \ - char label[256]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE));\ - fprintf (FILE, "\t.word "); \ - assemble_name (FILE, label); \ - fprintf (FILE, "\n"); \ - } \ - while (0) - -#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ - do \ - { \ - char label[256]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE)); \ - fprintf (FILE, "\t.word "); \ - assemble_name (FILE, label); \ - ASM_GENERATE_INTERNAL_LABEL (label, "L", (REL)); \ - fprintf (FILE, "-"); \ - assemble_name (FILE, label); \ - fprintf (FILE, "\n"); \ - } \ - while (0) - -#define ASM_OUTPUT_ALIGN(FILE,LOG) \ - do { if ((LOG) != 0) fprintf (FILE, "\t.align %d\n", 1 << (LOG)); } while (0) - -#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ - ( fputs (".comm ", (FILE)), \ - assemble_name ((FILE), (NAME)), \ - fprintf ((FILE), ",%u\n", (unsigned int)(ROUNDED))) - -#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ - ( fputs (".lcomm ", (FILE)), \ - assemble_name ((FILE), (NAME)), \ - fprintf ((FILE), ",%u\n", (unsigned int)(ROUNDED))) - - - -#define INIT_EXPANDERS tilepro_init_expanders () - -/* A C structure for machine-specific, per-function data. This is - added to the cfun structure. */ -typedef struct GTY(()) machine_function -{ - /* Symbol for the text label used for pic. */ - rtx text_label_symbol; - - /* Register for the text label. */ - rtx text_label_rtx; - - /* Register for the pic offset table. */ - rtx got_rtx; - - /* The function calls tls_get_addr. */ - int calls_tls_get_addr; -} machine_function; - -#ifndef HAVE_AS_TLS -#define HAVE_AS_TLS 0 -#endif diff --git a/gcc/config/tilepro/tilepro.md b/gcc/config/tilepro/tilepro.md deleted file mode 100644 index d5d362c..0000000 --- a/gcc/config/tilepro/tilepro.md +++ /dev/null @@ -1,3816 +0,0 @@ -;; Machine description for Tilera TILEPro chip for GCC. -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. -;; Contributed by Walter Lee (walt@tilera.com) -;; -;; This file is part of GCC. -;; -;; GCC 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 3, or (at your -;; option) any later version. -;; -;; GCC 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 GCC; see the file COPYING3. If not see -;; . - -(define_constants [ - ;; - ;; The following represent intrinsic insns, organized by latency. - ;; - - ;; single cycle - (UNSPEC_INSN_ADDLIS 1) - (UNSPEC_INSN_AULI 2) - (UNSPEC_INSN_AVGB_U 3) - (UNSPEC_INSN_AVGH 4) - (UNSPEC_INSN_BITX 5) - (UNSPEC_INSN_CRC32_32 6) - (UNSPEC_INSN_CRC32_8 7) - (UNSPEC_INSN_DRAIN 8) - (UNSPEC_INSN_DTLBPR 9) - (UNSPEC_INSN_DWORD_ALIGN 10) - (UNSPEC_INSN_FINV 11) - (UNSPEC_INSN_FLUSH 12) - (UNSPEC_INSN_FNOP 13) - (UNSPEC_INSN_ICOH 14) - (UNSPEC_INSN_ILL 15) - (UNSPEC_INSN_INFO 16) - (UNSPEC_INSN_INFOL 17) - (UNSPEC_INSN_INV 18) - (UNSPEC_INSN_LNK 19) - (UNSPEC_INSN_MFSPR 20) - (UNSPEC_INSN_MNZB 21) - (UNSPEC_INSN_MNZH 22) - (UNSPEC_INSN_MOVELIS 23) - (UNSPEC_INSN_MTSPR 24) - (UNSPEC_INSN_MZB 25) - (UNSPEC_INSN_MZH 26) - (UNSPEC_INSN_NAP 27) - (UNSPEC_INSN_PACKBS_U 28) - (UNSPEC_INSN_PACKHB 29) - (UNSPEC_INSN_PACKHS 30) - (UNSPEC_INSN_PACKLB 31) - (UNSPEC_INSN_PREFETCH_L1 32) - (UNSPEC_INSN_TBLIDXB0 33) - (UNSPEC_INSN_TBLIDXB1 34) - (UNSPEC_INSN_TBLIDXB2 35) - (UNSPEC_INSN_TBLIDXB3 36) - (UNSPEC_INSN_WH64 37) - - ;; 2 cycles - (UNSPEC_INSN_ADIFFB_U 100) - (UNSPEC_INSN_ADIFFH 101) - (UNSPEC_INSN_MULHHA_SS 102) - (UNSPEC_INSN_MULHHA_SU 103) - (UNSPEC_INSN_MULHHA_UU 104) - (UNSPEC_INSN_MULHHSA_UU 105) - (UNSPEC_INSN_MULHH_SS 106) - (UNSPEC_INSN_MULHH_SU 107) - (UNSPEC_INSN_MULHH_UU 108) - (UNSPEC_INSN_MULHLA_SS 109) - (UNSPEC_INSN_MULHLA_SU 110) - (UNSPEC_INSN_MULHLA_US 111) - (UNSPEC_INSN_MULHLA_UU 112) - (UNSPEC_INSN_MULHLSA_UU 113) - (UNSPEC_INSN_MULHL_SS 114) - (UNSPEC_INSN_MULHL_SU 115) - (UNSPEC_INSN_MULHL_US 116) - (UNSPEC_INSN_MULHL_UU 117) - (UNSPEC_INSN_MULLLA_SS 118) - (UNSPEC_INSN_MULLLA_SU 119) - (UNSPEC_INSN_MULLLA_UU 120) - (UNSPEC_INSN_MULLLSA_UU 121) - (UNSPEC_INSN_MULLL_SU 122) - (UNSPEC_INSN_MULLL_SS 123) - (UNSPEC_INSN_MULLL_UU 124) - (UNSPEC_INSN_SADAB_U 125) - (UNSPEC_INSN_SADAH 126) - (UNSPEC_INSN_SADAH_U 127) - (UNSPEC_INSN_SADB_U 128) - (UNSPEC_INSN_SADH 129) - (UNSPEC_INSN_SADH_U 130) - - ;; - ;; The following are special insns. - ;; - - ;; Blockage - (UNSPEC_BLOCKAGE 200) - - ;; Latency specifying loads. - (UNSPEC_LATENCY_L2 201) - (UNSPEC_LATENCY_MISS 202) - - ;; Lnk and its label - (UNSPEC_LNK_AND_LABEL 203) - - ;; Memory fence - (UNSPEC_MF 204) - - ;; A pseudo-op that prevents network operations from being ordered. - (UNSPEC_NETWORK_BARRIER 205) - - ;; Operations that access network registers. - (UNSPEC_NETWORK_RECEIVE 206) - (UNSPEC_NETWORK_SEND 207) - - ;; Stack protector operations - (UNSPEC_SP_SET 208) - (UNSPEC_SP_TEST 209) - - ;; A call to __tls_get_addr - (UNSPEC_TLS_GD_CALL 210) - - ;; An opaque TLS "add" operation for TLS general dynamic model - ;; access. - (UNSPEC_TLS_GD_ADD 211) - - ;; An opaque TLS "load" operation for TLS initial exec model access. - (UNSPEC_TLS_IE_LOAD 212) - - ;; - ;; The following are operands. - ;; - (UNSPEC_PCREL_SYM 300) - (UNSPEC_GOT16_SYM 301) - (UNSPEC_GOT32_SYM 302) - (UNSPEC_TLS_GD 303) - (UNSPEC_TLS_IE 304) - (UNSPEC_TLS_LE 305) -]) - -;; Mark the last instruction of various latencies, used to -;; determine the rtx costs of unspec insns. -(define_constants [ - (TILEPRO_LAST_LATENCY_1_INSN 99) - (TILEPRO_LAST_LATENCY_2_INSN 199) - (TILEPRO_LAST_LATENCY_INSN 299) -]) - -;; Constants for network registers. -(define_constants [ - (TILEPRO_NETREG_IDN0 0) - (TILEPRO_NETREG_IDN1 1) - (TILEPRO_NETREG_SN 2) - (TILEPRO_NETREG_UDN0 3) - (TILEPRO_NETREG_UDN1 4) - (TILEPRO_NETREG_UDN2 5) - (TILEPRO_NETREG_UDN3 6) -]) - -;; Constants for special purpose registers. -(define_constants [ - (TILEPRO_NETORDER_REG 66)]) - - -;; Operand and operator predicates and constraints - -(include "predicates.md") -(include "constraints.md") -(include "tilepro-generic.md") - -;; Define an insn type attribute. This defines what pipes things can -;; go in. -(define_attr "type" - "X0,X0_2cycle,X1,X1_branch,X1_2cycle,X1_L2,X1_miss,X01,Y0,Y0_2cycle,Y2,Y2_2cycle,Y2_L2,Y2_miss,Y01,cannot_bundle,cannot_bundle_3cycle,cannot_bundle_4cycle,nothing" - (const_string "Y01")) - -(define_attr "length" "" - (cond [(eq_attr "type" "X1_branch") - (if_then_else - (and (le (minus (match_dup 0) (pc)) (const_int 524280)) - (le (minus (pc) (match_dup 0)) (const_int 524288))) - (const_int 8) - (const_int 16)) - ] - (const_int 8))) - - -;; Define iterators. -(define_mode_iterator I48MODE [SI DI]) -(define_mode_iterator I12MODE [QI HI]) - -(define_code_iterator binop_u5bit [ashift ashiftrt lshiftrt rotate]) -(define_code_iterator binop_with_imm - [ashift lshiftrt ashiftrt rotate eq lt and ior xor]) -(define_code_iterator unop [bswap clz ctz popcount]) - -(define_mode_attr load [(QI "lb") (HI "lh") (SI "lw")]) -(define_mode_attr store [(QI "sb") (HI "sh") (SI "sw")]) - -;; expands to the name of the optab for a particular code. -(define_code_attr optab [(ashift "ashl") - (ashiftrt "ashr") - (lshiftrt "lshr") - (eq "seq") - (ne "sne") - (lt "slt") - (ltu "sltu") - (le "sle") - (leu "sleu") - (minus "sub") - (plus "add") - (rotate "rotl") - (smax "smax") - (smin "smin") - (umax "umax") - (umin "umin") - (ss_minus "sssub") - (ss_plus "ssadd") - (us_minus "ussub") - (us_plus "usadd") - (and "and") - (ior "ior") - (xor "xor") - (bswap "bswap") - (clz "clz") - (ctz "ctz") - (popcount "popcount")]) - -;; expands to the name of the insn that implements a particular -;; code. -(define_code_attr insn [(ashift "shl") - (ashiftrt "sra") - (lshiftrt "shr") - (eq "seq") - (ne "sne") - (lt "slt") - (ltu "slt") - (le "slte") - (leu "slte") - (minus "sub") - (plus "add") - (rotate "rl") - (smax "max") - (smin "min") - (umax "max") - (umin "min") - (ss_minus "sub") - (ss_plus "add") - (us_minus "sub") - (us_plus "add") - (and "and") - (ior "or") - (xor "xor") - (bswap "bytex") - (clz "clz") - (ctz "ctz") - (popcount "pcnt")]) - -;; expands to the suffix of the insn that implements a particular -;; code. -(define_code_attr u [(ashift "") - (ashiftrt "") - (lshiftrt "") - (eq "") - (ne "") - (lt "") - (ltu "_u") - (le "") - (leu "_u") - (minus "") - (plus "") - (rotate "") - (smax "") - (smin "") - (umax "_u") - (umin "_u") - (ss_minus "s") - (ss_plus "s") - (us_minus "s_u") - (us_plus "s_u") - (and "") - (ior "") - (xor "")]) - -;; indicates whether a particular code is commutative, using -;; the "%" commutative opterator constraint. -(define_code_attr comm [(ashift "") - (ashiftrt "") - (lshiftrt "") - (eq "%") - (ne "%") - (lt "") - (ltu "") - (le "") - (leu "") - (minus "") - (plus "%") - (rotate "") - (smax "%") - (umax "%") - (smin "%") - (umin "%") - (ss_plus "%") - (us_plus "%") - (ss_minus "") - (us_minus "") - (and "%") - (ior "%") - (xor "%")]) - -(define_mode_iterator VEC [V4QI V2HI]) - -;; Code iterator for all three shifts. -(define_code_iterator any_shift [ashift ashiftrt lshiftrt]) - -;; Code iterator for all byte ops without immediate variants. -(define_code_iterator v1op [us_plus ne le leu minus us_minus]) - -;; Code iterator for all 2-byte vector ops without immediate variants. -(define_code_iterator v2op [ss_plus ne le leu minus ss_minus]) - -;; Code iterator for all byte vector ops with immediate variants. -(define_code_iterator v1op_immed [plus umax umin eq lt ltu]) - -;; Code iterator for all 2-byte vector ops with immediate variants. -(define_code_iterator v2op_immed [plus smax smin eq lt ltu]) - -;; Code for packing two 2-byte vectors. -(define_code_iterator v2pack [truncate us_truncate]) - -;; expands to the part of the optab name describing how -;; two vectors are packed. -(define_code_attr pack_optab [(truncate "trunc") - (us_truncate "usat") - (ss_truncate "ssat")]) - -;; expands to the insn that implements a particular vector -;; packing code. -(define_code_attr pack_insn [(truncate "packl") - (us_truncate "pack") - (ss_truncate "pack")]) - -;; expands to the suffix of the insn that implements a -;; particular vector packing code. -(define_code_attr pack_u [(truncate "") - (us_truncate "s_u") - (ss_truncate "s")]) - - -;; -;; The basic data move insns. -;; - -(define_expand "movqi" - [(set (match_operand:QI 0 "nonimmediate_operand" "") - (match_operand:QI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilepro_expand_mov (QImode, operands)) - DONE; -}) - -(define_insn "*movqi_insn" - [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,r,U,m") - (match_operand:QI 1 "move_operand" "r,I,U,m,rO,rO"))] - "(register_operand (operands[0], QImode) - || reg_or_0_operand (operands[1], QImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - lb_u\t%0, %1 - lbadd_u\t%0, %I1, %i1 - sb\t%0, %r1 - sbadd\t%I0, %r1, %i0" - [(set_attr "type" "*,*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "movhi" - [(set (match_operand:HI 0 "nonimmediate_operand" "") - (match_operand:HI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilepro_expand_mov (HImode, operands)) - DONE; -}) - -(define_insn "*movhi_insn" - [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,r,r,U,m") - (match_operand:HI 1 "move_operand" "r,I,J,U,m,rO,rO"))] - "(register_operand (operands[0], HImode) - || reg_or_0_operand (operands[1], HImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - moveli\t%0, %1 - lh_u\t%0, %1 - lhadd_u\t%0, %I1, %i1 - sh\t%0, %r1 - shadd\t%I0, %r1, %i0" - [(set_attr "type" "*,*,X01,Y2_2cycle,X1_2cycle,Y2,X1")]) - - -(define_expand "movsi" - [(set (match_operand:SI 0 "nonimmediate_operand" "") - (match_operand:SI 1 "nonautoinc_operand" ""))] - "" -{ - if (tilepro_expand_mov (SImode, operands)) - DONE; -}) - -(define_insn "*movsi_high_insn" - [(set (match_operand:SI 0 "register_operand" "=r") - (high:SI (match_operand:SI 1 "symbolic_operand" "in")))] - "" - "auli\t%0, zero, ha16(%1)" - [(set_attr "type" "X01")]) - -(define_insn "*movsi_insn" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,r,r,r,U,m") - (match_operand:SI 1 "move_operand" "r,I,J,K,N,P,U,m,rO,rO"))] - "(register_operand (operands[0], SImode) - || reg_or_0_operand (operands[1], SImode))" - "@ - move\t%0, %r1 - movei\t%0, %1 - moveli\t%0, %1 - auli\t%0, zero, %h1 - addib\t%0, zero, %j1 - addih\t%0, zero, %h1 - lw\t%0, %1 - lwadd\t%0, %I1, %i1 - sw\t%0, %r1 - swadd\t%I0, %r1, %i0" - [(set_attr "type" "*,*,X01,X01,X01,X01,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_insn "movstrictqi" - [(set (strict_low_part (match_operand:QI 0 "register_operand" "+r")) - (match_operand:QI 1 "reg_or_0_operand" "rO"))] - "" - "mm\t%r0, %r1, %r0, 0, 7" - [(set_attr "type" "X01")]) - -(define_insn "movstricthi" - [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r")) - (match_operand:HI 1 "reg_or_0_operand" "rO"))] - "" - "mm\t%r0, %r1, %r0, 0, 15" - [(set_attr "type" "X01")]) - -(define_expand "movmisalign" - [(set (match_operand:VEC 0 "nonautoincmem_nonimmediate_operand" "") - (match_operand:VEC 1 "nonautoincmem_general_operand" ""))] - "" -{ - tilepro_expand_movmisalign (mode, operands); - DONE; -}) - -(define_expand "movsf" - [(set (match_operand:SF 0 "nonimmediate_operand" "") - (match_operand:SF 1 "general_operand" ""))] - "" -{ - /* Materialize immediates using clever SImode code, but don't - do this after reload starts, since gen_lowpart will choke - during reload if given an illegitimate address. */ - if (immediate_operand (operands[1], SFmode) - && operands[1] != const0_rtx - && (register_operand (operands[0], SFmode) - || (!reload_in_progress && !reload_completed))) - { - emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), - gen_lowpart (SImode, operands[1]))); - DONE; - } -}) - -(define_insn "*movsf" - [(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,U,m") - (match_operand:SF 1 "general_operand" "rO,U,m,rO,rO"))] - "" - "@ - move\t%0, %r1 - lw\t%0, %1 - lwadd\t%0, %I1, %i1 - sw\t%0, %r1 - swadd\t%I0, %r1, %i0" - [(set_attr "type" "*,Y2_2cycle,X1_2cycle,Y2,X1")]) - -(define_expand "mov" - [(set (match_operand:VEC 0 "nonimmediate_operand" "") - (match_operand:VEC 1 "general_operand" ""))] - "" -{ - /* Materialize immediates using clever SImode code, but don't - do this after reload starts, since gen_lowpart will choke - during reload if given an illegitimate address. */ - if (immediate_operand (operands[1], mode) - && operands[1] != const0_rtx - && (register_operand (operands[0], mode) - || (!reload_in_progress && !reload_completed))) - { - emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), - gen_lowpart (SImode, operands[1]))); - DONE; - } -}) - -(define_insn "*mov" - [(set (match_operand:VEC 0 "nonimmediate_operand" "=r,r,r,U,m") - (match_operand:VEC 1 "general_operand" "rO,U,m,rO,rO"))] - "" - "@ - move\t%0, %r1 - lw\t%0, %1 - lwadd\t%0, %I1, %i1 - sw\t%0, %r1 - swadd\t%I0, %r1, %i0" - [(set_attr "type" "*,Y2_2cycle,X1_2cycle,Y2,X1")]) - - -;; -;; Bit-field extracts -;; - -(define_expand "extv" - [(set (match_operand:SI 0 "register_operand" "") - (sign_extract:SI - (match_operand:QI 1 "nonautoincmem_operand" "") - (match_operand:SI 2 "immediate_operand" "") - (match_operand:SI 3 "immediate_operand" "")))] - "" -{ - HOST_WIDE_INT bit_offset, bit_width; - HOST_WIDE_INT first_byte_offset, last_byte_offset; - - bit_width = INTVAL (operands[2]); - bit_offset = INTVAL (operands[3]); - - /* Reject bitfields that can be done with a normal load */ - if (MEM_ALIGN (operands[1]) >= bit_offset + bit_width) - FAIL; - - /* The value in memory cannot span more than 4 bytes. */ - first_byte_offset = bit_offset / BITS_PER_UNIT; - last_byte_offset = (bit_offset + bit_width - 1) / BITS_PER_UNIT; - if (last_byte_offset - first_byte_offset > 3) - FAIL; - - tilepro_expand_unaligned_load (operands[0], operands[1], - bit_width, bit_offset, 1); - - DONE; -}) - -(define_expand "extzv" - [(set (match_operand:SI 0 "register_operand" "") - (zero_extract:SI - (match_operand:QI 1 "nonautoincmem_operand" "") - (match_operand:SI 2 "immediate_operand" "") - (match_operand:SI 3 "immediate_operand" "")))] - "" -{ - HOST_WIDE_INT bit_offset, bit_width; - HOST_WIDE_INT first_byte_offset, last_byte_offset; - - bit_width = INTVAL (operands[2]); - bit_offset = INTVAL (operands[3]); - - /* Reject bitfields that can be done with a normal load */ - if (MEM_ALIGN (operands[1]) >= bit_offset + bit_width) - FAIL; - - /* The value in memory cannot span more than 4 bytes. */ - first_byte_offset = bit_offset / BITS_PER_UNIT; - last_byte_offset = (bit_offset + bit_width - 1) / BITS_PER_UNIT; - if (last_byte_offset - first_byte_offset > 3) - FAIL; - - tilepro_expand_unaligned_load (operands[0], operands[1], - bit_width, bit_offset, 0); - - DONE; -}) - - -;; -;; Arithmetic ops -;; - -(define_insn "*s123a_insn" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "cint_248_operand" "I")) - (match_operand:SI 3 "reg_or_0_operand" "rO")))] - "" - "s%t2a\t%0, %r1, %r3") - -(define_expand "addsi3" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (match_operand:SI 1 "register_operand" "") - (match_operand:SI 2 "reg_or_cint_operand" "")))] - "" - " - if (tilepro_expand_addsi (operands[0], operands[1], operands[2])) - DONE; - ") - -(define_insn "*addsi_high_insn" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI - (match_operand:SI 1 "reg_or_0_operand" "%rO") - (high:SI (match_operand:SI 2 "const_symbolic_operand" "T"))))] - "" - "auli\t%0, %r1, %H2" - [(set_attr "type" "X01")]) - -(define_insn "*addsi_lo_sum_insn" - [(set (match_operand:SI 0 "register_operand" "=r") - (lo_sum:SI - (match_operand:SI 1 "reg_or_0_operand" "%rO") - (match_operand:SI 2 "const_symbolic_operand" "T")))] - "" - "addli\t%0, %r1, %L2" - [(set_attr "type" "X01")]) - -(define_insn "*addsi3_insn" - [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") - (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO,rO,rO") - (match_operand:SI 2 "add_operand" "r,I,J,K")))] - "" - "@ - add\t%0, %r1, %r2 - addi\t%0, %r1, %2 - addli\t%0, %r1, %2 - auli\t%0, %r1, %h2" - [(set_attr "type" "*,*,X01,X01")]) - -(define_insn "subsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "sub\t%0, %r1, %r2") - -(define_insn "negsi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (neg:SI (match_operand:SI 1 "reg_or_0_operand" "rO")))] - "" - "sub\t%0, zero, %r1") - -(define_insn "ssaddsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (ss_plus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "adds\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "sssubsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (ss_minus:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")))] - "" - "subs\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -;; -;; Shifts -;; - -;; ashift, ashiftrt, lshiftrt, rotate. -(define_insn "si3" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (binop_u5bit:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - i\t%0, %r1, %2 - \t%0, %r1, %r2") - - -;; -;; Compares -;; - -(define_expand "cstore4" - [(set (match_operand:SI 0 "register_operand" "") - (match_operator:SI 1 "ordered_comparison_operator" - [(match_operand:I48MODE 2 "reg_or_cint_operand" "") - (match_operand:I48MODE 3 "reg_or_cint_operand" "")]))] - "" - { if (!tilepro_emit_setcc (operands, mode)) FAIL; else DONE; }) - -(define_insn "insn_seq" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (eq:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - seqi\t%0, %r1, %2 - seq\t%0, %r1, %r2") - -(define_insn "insn_sne" - [(set (match_operand:SI 0 "register_operand" "=r") - (ne:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_cint_operand" "rO")))] - "" - "sne\t%0, %r1, %r2") - -(define_insn "insn_slt" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (lt:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - slti\t%0, %r1, %2 - slt\t%0, %r1, %r2") - -(define_insn "insn_slte" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (le:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "L,rO")))] - "" - "@ - slti\t%0, %r1, %P2 - slte\t%0, %r1, %r2") - -(define_insn "insn_slt_u" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (ltu:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "I,rO")))] - "" - "@ - slti_u\t%0, %r1, %2 - slt_u\t%0, %r1, %r2") - -(define_insn "insn_slte_u" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (leu:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "Q,rO")))] - "" - "@ - slti_u\t%0, %r1, %P2 - slte_u\t%0, %r1, %r2") - - -;; -;; Logical ops -;; - -(define_insn "andsi3" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (and:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO,rO") - (match_operand:SI 2 "and_operand" "I,M,rO")))] - "" - "@ - andi\t%0, %r1, %2 - mm\t%0, %r1, zero, %M2 - and\t%0, %r1, %r2" - [(set_attr "type" "*,X01,*")]) - -(define_insn "iorsi3" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (ior:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO") - (match_operand:SI 2 "reg_or_s8bit_operand" "I,rO")))] - "" - "@ - ori\t%0, %r1, %2 - or\t%0, %r1, %r2") - -(define_insn "xorsi3" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (xor:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO") - (match_operand:SI 2 "reg_or_s8bit_operand" "rO,I")))] - "" - "@ - xor\t%0, %r1, %r2 - xori\t%0, %r1, %2" - [(set_attr "type" "*,X01")]) - -;; bswap, clz, ctz, popcount -(define_insn "si2" - [(set (match_operand:SI 0 "register_operand" "=r") - (unop:SI (match_operand:SI 1 "reg_or_0_operand" "rO")))] - "" - "\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_expand "ctzdi2" - [(set (match_operand:DI 0 "register_operand" "") - (ctz:DI (match_operand:DI 1 "register_operand" "")))] - "" -{ - rtx lo, hi, ctz_lo, ctz_hi, ctz_hi_plus_32, result; - - split_di (&operands[1], 1, &lo, &hi); - lo = force_reg (SImode, lo); - hi = force_reg (SImode, hi); - - ctz_lo = gen_reg_rtx (SImode); - emit_insn (gen_ctzsi2 (ctz_lo, lo)); - - ctz_hi = gen_reg_rtx (SImode); - emit_insn (gen_ctzsi2 (ctz_hi, hi)); - - ctz_hi_plus_32 = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (ctz_hi_plus_32, ctz_hi, GEN_INT (32))); - - result = gen_reg_rtx (SImode); - emit_insn (gen_insn_mvz (result, ctz_lo, lo, ctz_hi_plus_32)); - - emit_move_insn (operands[0], convert_to_mode (DImode, result, 1)); - - DONE; -}) - -(define_expand "clzdi2" - [(set (match_operand:DI 0 "register_operand" "") - (clz:DI (match_operand:DI 1 "register_operand" "")))] - "" -{ - rtx lo, hi, clz_lo, clz_hi, clz_lo_plus_32, result; - - split_di (&operands[1], 1, &lo, &hi); - lo = force_reg (SImode, lo); - hi = force_reg (SImode, hi); - - clz_lo = gen_reg_rtx (SImode); - emit_insn (gen_clzsi2 (clz_lo, lo)); - - clz_hi = gen_reg_rtx (SImode); - emit_insn (gen_clzsi2 (clz_hi, hi)); - - clz_lo_plus_32 = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (clz_lo_plus_32, clz_lo, GEN_INT (32))); - - result = gen_reg_rtx (SImode); - emit_insn (gen_insn_mvz (result, clz_hi, hi, clz_lo_plus_32)); - - emit_move_insn (operands[0], convert_to_mode (DImode, result, 1)); - - DONE; -}) - -(define_expand "ffsdi2" - [(set (match_operand:DI 0 "register_operand" "") - (ffs:DI (match_operand:DI 1 "register_operand" "")))] - "" -{ - rtx lo, hi, ctz_lo, ctz_hi, ctz_hi_plus_32, ctz, ctz_plus_1,ctz_cond; - rtx result; - - split_di (&operands[1], 1, &lo, &hi); - lo = force_reg (SImode, lo); - hi = force_reg (SImode, hi); - - ctz_lo = gen_reg_rtx (SImode); - emit_insn (gen_ctzsi2 (ctz_lo, lo)); - - ctz_hi = gen_reg_rtx (SImode); - emit_insn (gen_ctzsi2 (ctz_hi, hi)); - - ctz_hi_plus_32 = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (ctz_hi_plus_32, ctz_hi, GEN_INT (32))); - - ctz = gen_reg_rtx (SImode); - emit_insn (gen_insn_mvz (ctz, ctz_lo, lo, ctz_hi_plus_32)); - - ctz_plus_1 = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (ctz_plus_1, ctz, GEN_INT (1))); - - ctz_cond = gen_reg_rtx (SImode); - emit_insn (gen_iorsi3 (ctz_cond, lo, hi)); - - result = gen_reg_rtx (SImode); - emit_insn (gen_insn_mvz (result, ctz_plus_1, ctz_cond, const0_rtx)); - - emit_move_insn (operands[0], convert_to_mode (DImode, result, 1)); - - DONE; -}) - -(define_expand "popcountdi2" - [(set (match_operand:DI 0 "register_operand" "") - (popcount:DI (match_operand:DI 1 "nonmemory_operand" "")))] - "" -{ - rtx lo, hi, popcount_lo, popcount_hi, result; - - split_di (&operands[1], 1, &lo, &hi); - lo = force_reg (SImode, lo); - hi = force_reg (SImode, hi); - - popcount_lo = gen_reg_rtx (SImode); - emit_insn (gen_popcountsi2 (popcount_lo, lo)); - - popcount_hi = gen_reg_rtx (SImode); - emit_insn (gen_popcountsi2 (popcount_hi, hi)); - - result = gen_reg_rtx (SImode); - emit_insn (gen_addsi3 (result, popcount_lo, popcount_hi)); - - emit_move_insn (operands[0], convert_to_mode (DImode, result, 1)); - - DONE; -}) - -(define_expand "paritysi2" - [(set (match_operand:SI 0 "register_operand" "") - (parity:SI (match_operand:SI 1 "reg_or_0_operand" "")))] - "" - { - operands[2] = gen_reg_rtx (SImode); - emit_insn (gen_popcountsi2 (operands[2], operands[1])); - emit_insn (gen_andsi3 (operands[0], operands[2], const1_rtx)); - DONE; - }) - -(define_expand "paritydi2" - [(set (match_operand:DI 0 "register_operand" "") - (parity:DI (match_operand:DI 1 "nonmemory_operand" "")))] - "" -{ - rtx lo, hi, xor_lohi, result; - - split_di (&operands[1], 1, &lo, &hi); - lo = force_reg (SImode, lo); - hi = force_reg (SImode, hi); - - xor_lohi = gen_reg_rtx (SImode); - emit_insn (gen_xorsi3 (xor_lohi, lo, hi)); - - result = gen_reg_rtx (SImode); - emit_insn (gen_paritysi2 (result, xor_lohi)); - - emit_move_insn (operands[0], convert_to_mode (DImode, result, 1)); - - DONE; -}) - -(define_insn "one_cmplsi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (not:SI (match_operand:SI 1 "reg_or_0_operand" "rO")))] - "" - "nor\t%0, %r1, zero") - - -;; -;; Conditional moves. -;; - -(define_expand "movsicc" - [(set (match_operand:SI 0 "register_operand" "") - (if_then_else:SI (match_operand 1 "comparison_operator" "") - (match_operand:SI 2 "reg_or_0_operand" "") - (match_operand:SI 3 "reg_or_0_operand" "")))] - "" - { operands[1] = tilepro_emit_conditional_move (operands[1]); }) - -(define_insn "movcc_insn" - [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") - (if_then_else:SI - (match_operator 4 "eqne_operator" - [(match_operand:SI 1 "reg_or_0_operand" "rO,rO,rO,rO") - (const_int 0)]) - (match_operand:SI 2 "reg_or_0_operand" "rO,O,rO,0") - (match_operand:SI 3 "reg_or_0_operand" "O,rO,0,rO")))] - "" - "@ - m%c4\t%0, %r1, %r2 - m%C4\t%0, %r1, %r3 - mv%c4\t%0, %r1, %r2 - mv%C4\t%0, %r1, %r3" - [(set_attr "type" "*,*,Y0,Y0")]) - -(define_expand "insn_mz" - [(set (match_operand:SI 0 "register_operand" "") - (if_then_else:SI - (eq (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:SI 2 "reg_or_0_operand" "") - (const_int 0)))]) - -(define_expand "insn_mnz" - [(set (match_operand:SI 0 "register_operand" "") - (if_then_else:SI - (ne (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:SI 2 "reg_or_0_operand" "") - (const_int 0)))]) - -(define_expand "insn_mvz" - [(set (match_operand:SI 0 "register_operand" "") - (if_then_else:SI - (eq (match_operand:SI 2 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:SI 3 "reg_or_0_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "")))]) - -(define_expand "insn_mvnz" - [(set (match_operand:SI 0 "register_operand" "") - (if_then_else:SI - (ne (match_operand:SI 2 "reg_or_0_operand" "") - (const_int 0)) - (match_operand:SI 3 "reg_or_0_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "")))]) - - -;; -;; Conversions -;; - -(define_insn "zero_extendqisi2" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (zero_extend:SI (match_operand:QI 1 "move_operand" "rO,U,m")))] - "" - "@ - mm\t%0, %r1, zero, 0, 7 - lb_u\t%0, %1 - lbadd_u\t%0, %I1, %i1" - [(set_attr "type" "X01,Y2_2cycle,X1_2cycle")]) - -(define_insn "zero_extendhisi2" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (zero_extend:SI (match_operand:HI 1 "move_operand" "rO,U,m")))] - "" - "@ - mm\t%0, %r1, zero, 0, 15 - lh_u\t%0, %1 - lhadd_u\t%0, %I1, %i1" - [(set_attr "type" "X01,Y2_2cycle,X1_2cycle")]) - -(define_expand "extendhisi2" - [(set (match_operand:SI 0 "register_operand" "") - (sign_extend:SI (match_operand:HI 1 "move_operand" "")))] - "" -{ - if (!memory_operand (operands[1], HImode)) - { - operands[1] = gen_lowpart (SImode, operands[1]); - operands[2] = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0]; - - emit_move_insn (operands[2], gen_rtx_ASHIFT (SImode, operands[1], - GEN_INT (16))); - emit_move_insn (operands[0], gen_rtx_ASHIFTRT (SImode, operands[2], - GEN_INT (16))); - DONE; - } -}) - -(define_insn "*lh" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (sign_extend:SI (match_operand:HI 1 "memory_operand" "U,m")))] - "" - "@ - lh\t%0, %1 - lhadd\t%0, %I1, %i1" - [(set_attr "type" "Y2_2cycle,X1_2cycle")]) - -(define_expand "extendqisi2" - [(set (match_operand:SI 0 "register_operand" "") - (sign_extend:SI (match_operand:QI 1 "move_operand" "")))] - "" -{ - if (!memory_operand (operands[1], QImode)) - { - operands[1] = gen_lowpart (SImode, operands[1]); - operands[2] = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0]; - - emit_move_insn (operands[2], gen_rtx_ASHIFT (SImode, operands[1], - GEN_INT (24))); - emit_move_insn (operands[0], gen_rtx_ASHIFTRT (SImode, operands[2], - GEN_INT (24))); - DONE; - } -}) - -(define_insn "*lb" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (sign_extend:SI (match_operand:QI 1 "memory_operand" "U,m")))] - "" - "@ - lb\t%0, %1 - lbadd\t%0, %I1, %i1" - [(set_attr "type" "Y2_2cycle,X1_2cycle")]) - -;; -;; insv patterns -;; -(define_expand "insv" - [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "u5bit_cint_operand" "") - (match_operand:SI 2 "u5bit_cint_operand" "")) - (match_operand:SI 3 "reg_or_cint_operand" ""))] - "" -{ - tilepro_expand_insv (operands); - DONE; -}) - -(define_insn "*insv_tblidxb0" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (match_operand:SI 1 "register_operand" "rO"))] - "" - "tblidxb0\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb1" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:SI - (const_int 8) - (const_int 8) - (match_operand:SI 1 "register_operand" "rO")))] - "" - "tblidxb1\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb2" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:SI - (const_int 8) - (const_int 16) - (match_operand:SI 1 "register_operand" "rO")))] - "" - "tblidxb2\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_tblidxb3" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (const_int 8) - (const_int 2)) - (zero_extract:SI - (const_int 8) - (const_int 24) - (match_operand:SI 1 "register_operand" "rO")))] - "" - "tblidxb3\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*insv_mm1" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (match_operand:SI 1 "u5bit_cint_operand" "n") - (const_int 0)) - (match_operand:SI 2 "register_operand" "rO"))] - "" - "mm\t%0, %r2, %0, 0, %1-1" - [(set_attr "type" "X01")]) - -(define_insn "*insv_mm2" - [(set (zero_extract:SI - (match_operand:SI 0 "register_operand" "+r") - (match_operand:SI 1 "u5bit_cint_operand" "n") - (match_operand:SI 2 "u5bit_cint_operand" "n")) - (zero_extract:SI - (match_operand:SI 3 "register_operand" "rO") - (match_dup 1) - (match_dup 2)))] - "" - "mm\t%0, %r3, %0, %2, %2+%1-1" - [(set_attr "type" "X01")]) - - -;; -;; Multiplies -;; - -(define_expand "mulsi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (mult:SI (zero_extend:SI - (subreg:HI (match_operand:SI 1 "nonmemory_operand" "") 0)) - (zero_extend:SI - (subreg:HI (match_operand:SI 2 "nonmemory_operand" "") 0)))) - (set (match_dup 0) - (unspec:SI [(match_dup 0) (match_dup 1) (match_dup 2)] - UNSPEC_INSN_MULHLSA_UU)) - (set (match_dup 0) - (unspec:SI [(match_dup 0) (match_dup 2) (match_dup 1)] - UNSPEC_INSN_MULHLSA_UU))] - "" - { - operands[1] = force_reg (SImode, operands[1]); - operands[1] = make_safe_from (operands[1], operands[0]); - - if (tilepro_expand_mulsi (operands[0], operands[1], operands[2])) - DONE; - else - { - operands[2] = force_reg (SImode, operands[2]); - operands[2] = make_safe_from (operands[2], operands[0]); - } - }) - -(define_insn "mulhisi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (mult:SI (sign_extend:SI - (match_operand:HI 1 "reg_or_0_operand" "rO")) - (sign_extend:SI - (match_operand:HI 2 "reg_or_0_operand" "rO"))))] - "" - "mulll_ss\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "umulhisi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (mult:SI (zero_extend:SI - (match_operand:HI 1 "reg_or_0_operand" "rO")) - (zero_extend:SI - (match_operand:HI 2 "reg_or_0_operand" "rO"))))] - "" - "mulll_uu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "usmulhisi3" - [(set (match_operand:SI 0 "register_operand" "=r") - (mult:SI (zero_extend:SI - (match_operand:HI 1 "reg_or_0_operand" "rO")) - (sign_extend:SI - (match_operand:HI 2 "reg_or_0_operand" "rO"))))] - "" - "mulll_su\t%0, %r2, %r1" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "maddhisi4" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI - (mult:SI (sign_extend:SI - (match_operand:HI 1 "reg_or_0_operand" "rO")) - (sign_extend:SI - (match_operand:HI 2 "reg_or_0_operand" "rO"))) - (match_operand:SI 3 "register_operand" "0")))] - "" - "mullla_ss\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "umaddhisi4" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI - (mult:SI (zero_extend:SI - (match_operand:HI 1 "reg_or_0_operand" "rO")) - (zero_extend:SI - (match_operand:HI 2 "reg_or_0_operand" "rO"))) - (match_operand:SI 3 "register_operand" "0")))] - "" - "mullla_uu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - - -(define_insn "mulqihi3" - [(set (match_operand:HI 0 "register_operand" "=r") - (mult:HI (sign_extend:HI - (match_operand:QI 1 "reg_or_0_operand" "rO")) - (sign_extend:HI - (match_operand:QI 2 "reg_or_0_operand" "rO"))))] - "" - "mulll_ss\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "umulqihi3" - [(set (match_operand:HI 0 "register_operand" "=r") - (mult:HI (zero_extend:HI - (match_operand:QI 1 "reg_or_0_operand" "rO")) - (zero_extend:HI - (match_operand:QI 2 "reg_or_0_operand" "rO"))))] - "" - "mulll_uu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_expand "smulsi3_highpart" - [(set (match_operand:SI 0 "register_operand" "") - (truncate:SI - (ashiftrt:DI - (mult:DI (sign_extend:DI (match_operand:SI 1 "reg_or_0_operand" "")) - (sign_extend:DI (match_operand:SI 2 "reg_or_0_operand" ""))) - (const_int 32))))] - "" - { - tilepro_expand_smulsi3_highpart (operands[0], operands[1], operands[2]); - DONE; - }) - -(define_expand "umulsi3_highpart" - [(set (match_operand:SI 0 "register_operand" "") - (truncate:SI - (lshiftrt:DI - (mult:DI (zero_extend:DI (match_operand:SI 1 "reg_or_0_operand" "")) - (zero_extend:DI (match_operand:SI 2 "reg_or_0_operand" ""))) - (const_int 32))))] - "" -{ - tilepro_expand_umulsi3_highpart (operands[0], operands[1], operands[2]); - DONE; -}) - - -;; -;; Loops -;; - -;; Define the subtract-one-and-jump insns so loop.c knows what to -;; generate. -(define_expand "doloop_end" - [(use (match_operand 0 "" "")) ;; loop pseudo - (use (match_operand 1 "" ""))] ;; label - "" -{ - if (optimize > 0) - { - rtx s0; - rtx bcomp; - rtx loc_ref; - - /* only deal with loop counters in SImode */ - if (GET_MODE (operands[0]) != SImode) - FAIL; - - s0 = operands [0]; - - emit_move_insn (s0, gen_rtx_PLUS (SImode, s0, GEN_INT (-1))); - bcomp = gen_rtx_NE(SImode, s0, const0_rtx); - loc_ref = gen_rtx_LABEL_REF (VOIDmode, operands [1]); - emit_jump_insn (gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, bcomp, - loc_ref, pc_rtx))); - DONE; - } - else - FAIL; - -}) - -;; -;; Prologue/epilogue -;; -(define_expand "prologue" - [(const_int 0)] - "" -{ - tilepro_expand_prologue (); - DONE; -}) - -(define_expand "epilogue" - [(const_int 0)] - "" -{ - tilepro_expand_epilogue (false); - DONE; -}) - -(define_expand "sibcall_epilogue" - [(const_int 0)] - "" -{ - tilepro_expand_epilogue (true); - DONE; -}) - -;; -;; Stack manipulations -;; - -;; An insn to allocate new stack space for dynamic use (e.g., alloca). -(define_expand "allocate_stack" - [(set (match_operand 0 "register_operand" "") - (minus (reg 54) (match_operand 1 "nonmemory_operand" ""))) - (set (reg 54) - (minus (reg 54) (match_dup 1)))] - "" - "tilepro_allocate_stack (operands[0], operands[1]); DONE;") - -;; -;; Branches -;; -(define_expand "call" - [(parallel [(call (match_operand:SI 0 "call_operand" "") - (match_operand 1 "" "")) - (use (reg:SI 54)) - (clobber (reg:SI 55))])] - "" - "") - -(define_insn "*call_insn" - [(call (mem:SI (match_operand:SI 0 "call_address_operand" "rO,i")) - (match_operand 1 "" "")) - (use (reg:SI 54)) - (clobber (reg:SI 55))] - "" - "@ - jalr\t%r0 - jal\t%p0" - [(set_attr "type" "X1,X1")]) - -(define_expand "call_value" - [(parallel [(set (match_operand 0 "register_operand" "") - (call (match_operand:SI 1 "call_operand" "") - (match_operand 2 "" ""))) - (use (reg:SI 54)) - (clobber (reg:SI 55))])] - "") - -(define_insn "*call_value_insn" - [(set (match_operand 0 "register_operand" "=r,r") - (call (mem:SI (match_operand:SI 1 "call_address_operand" "rO,i")) - (match_operand 2 "" ""))) - (use (reg:SI 54)) - (clobber (reg:SI 55))] - "" - "@ - jalr\t%r1 - jal\t%p1" - [(set_attr "type" "X1,X1")]) - -(define_expand "sibcall" - [(parallel [(call (match_operand:SI 0 "call_operand" "") - (match_operand 1 "" "")) - (use (reg:SI 54))])] - "" - "") - -(define_insn "*sibcall_insn" - [(call (mem:SI (match_operand:SI 0 "call_address_operand" "rO,i")) - (match_operand 1 "" "")) - (use (reg:SI 54))] - "SIBLING_CALL_P(insn)" - "@ - jr\t%r0 - j\t%p0" - [(set_attr "type" "X1,X1")]) - -(define_expand "sibcall_value" - [(parallel [(set (match_operand 0 "" "") - (call (match_operand:SI 1 "call_operand" "") - (match_operand:SI 2 "" ""))) - (use (reg:SI 54))])] - "" - "") - -(define_insn "*sibcall_value" - [(set (match_operand 0 "" "") - (call (mem:SI (match_operand:SI 1 "call_address_operand" "rO,i")) - (match_operand:SI 2 "" ""))) - (use (reg:SI 54))] - "SIBLING_CALL_P(insn)" - "@ - jr\t%r1 - j\t%p1" - [(set_attr "type" "X1,X1")]) - -(define_insn "jump" - [(set (pc) (label_ref (match_operand 0 "" "")))] - "" - "j\t%l0" - [(set_attr "type" "X1")]) - -(define_insn "indirect_jump" - [(set (pc) (match_operand:SI 0 "register_operand" "rO"))] - "" - "jr\t%r0" - [(set_attr "type" "X1")]) - -(define_expand "return" - [(parallel - [(return) - (use (reg:SI 55))])] - "tilepro_can_use_return_insn_p ()" - "") - -(define_insn "_return" - [(return) - (use (reg:SI 55))] - "reload_completed" - "jrp\tlr" - [(set_attr "type" "X1")]) - -(define_expand "tablejump" - [(set (pc) (match_operand:SI 0 "register_operand" "")) - (use (label_ref (match_operand 1 "" "")))] - "" -{ - tilepro_expand_tablejump (operands[0], operands[1]); - DONE; -}) - -(define_insn "tablejump_aux" - [(set (pc) (match_operand:SI 0 "register_operand" "r")) - (use (label_ref (match_operand 1 "" "")))] - "" - "jr\t%0" - [(set_attr "type" "X1")]) - -;; Call subroutine returning any type. -(define_expand "untyped_call" - [(parallel [(call (match_operand 0 "" "") - (const_int 0)) - (match_operand 1 "" "") - (match_operand 2 "" "")])] - "" -{ - int i; - - emit_call_insn (gen_call (operands[0], const0_rtx)); - - for (i = 0; i < XVECLEN (operands[2], 0); i++) - { - rtx set = XVECEXP (operands[2], 0, i); - emit_move_insn (SET_DEST (set), SET_SRC (set)); - } - - /* The optimizer does not know that the call sets the function value - registers we stored in the result block. We avoid problems by - claiming that all hard registers are used and clobbered at this - point. */ - emit_insn (gen_blockage ()); - - DONE; -}) - -;; UNSPEC_VOLATILE is considered to use and clobber all hard registers -;; and all of memory. This blocks insns from being moved across this -;; point. -(define_insn "blockage" - [(unspec_volatile [(const_int 0)] UNSPEC_BLOCKAGE)] - "" - "pseudo" - [(set_attr "type" "nothing") - (set_attr "length" "0")]) - -;; Internal expanders to prevent memory ops from moving around frame -;; allocation/deallocation. -;; -;; TODO: really this clobber should just clobber the frame memory. Is -;; this possibly by clobbering memory @ the sp reg (as alpha does?) -;; or by explicitly setting the alias set to the frame? -(define_insn "sp_adjust" - [(set (match_operand:SI 0 "register_operand" "=r,r,r") - (plus:SI - (match_operand:SI 1 "register_operand" "%r,r,r") - (match_operand:SI 2 "add_operand" "r,I,J"))) - (clobber (mem:BLK (scratch)))] - "" - "@ - add\t%0, %1, %2 - addi\t%0, %1, %2 - addli\t%0, %1, %2" - [(set_attr "type" "*,*,X01")]) - -;; Used for move sp, r52, to pop a stack frame. We need to make sure -;; that stack frame memory operations have been issued before we do -;; this. TODO: see above TODO. -(define_insn "sp_restore" - [(set (match_operand:SI 0 "register_operand" "=r") - (match_operand:SI 1 "register_operand" "r")) - (clobber (mem:BLK (scratch)))] - "" - "move\t%0, %1") - -(define_insn "nop" - [(const_int 0)] - "" - "nop" - [(set_attr "type" "Y01")]) - -(define_insn "trap" - [(trap_if (const_int 1) (const_int 0))] - "" - "raise; moveli zero, 6" - [(set_attr "type" "cannot_bundle")]) - - -;; -;; Conditional branches -;; - -(define_expand "cbranchsi4" - [(set (pc) - (if_then_else (match_operator 0 "ordered_comparison_operator" - [(match_operand:SI 1 "reg_or_cint_operand") - (match_operand:SI 2 "reg_or_cint_operand")]) - (label_ref (match_operand 3 "")) - (pc)))] - "" - { tilepro_emit_conditional_branch (operands, SImode); DONE; }) - - -(define_expand "cbranchdi4" - [(set (pc) - (if_then_else (match_operator 0 "ordered_comparison_operator" - [(match_operand:DI 1 "reg_or_cint_operand") - (match_operand:DI 2 "reg_or_cint_operand")]) - (label_ref (match_operand 3 "")) - (pc)))] - "" - { tilepro_emit_conditional_branch (operands, DImode); DONE; }) - - -(define_insn "*bcc_normal" - [(set (pc) - (if_then_else - (match_operator 1 "signed_comparison_operator" - [(match_operand:SI 2 "reg_or_0_operand" "rO") - (const_int 0)]) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilepro_output_cbranch (insn, operands, false); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*bcc_reverse" - [(set (pc) - (if_then_else - (match_operator 1 "signed_comparison_operator" - [(match_operand:SI 2 "reg_or_0_operand" "rO") - (const_int 0)]) - (pc) - (label_ref (match_operand 0 "" ""))))] - "" - { return tilepro_output_cbranch (insn, operands, true); } - [(set_attr "type" "X1_branch")]) - -;; FIXME: the straight forward versions which do not include the -;; subreg:QI does not match for some unknown reason. -(define_insn "*bbs_normal" - [(set (pc) - (if_then_else - (ne (zero_extract:SI (subreg:QI - (match_operand:SI 1 "reg_or_0_operand" "rO") 0) - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilepro_output_cbranch_with_opcode (insn, operands, "bbs", "bbns", - 1, 0); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*bbc_normal" - [(set (pc) - (if_then_else - (eq (zero_extract:SI (subreg:QI - (match_operand:SI 1 "reg_or_0_operand" "rO") 0) - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc)))] - "" - { return tilepro_output_cbranch_with_opcode (insn, operands, "bbns", "bbs", - 1, 0); } - [(set_attr "type" "X1_branch")]) - -;; Note that __insn_mf() expands to this. -(define_expand "memory_barrier" - [(set (match_dup 0) - (unspec_volatile:BLK [(match_dup 0)] UNSPEC_MF))] - "" -{ - operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); - MEM_VOLATILE_P (operands[0]) = 1; -}) - -(define_insn "*memory_barrier" - [(set (match_operand:BLK 0 "" "") - (unspec_volatile:BLK [(match_dup 0)] UNSPEC_MF))] - "" - "mf" - [(set_attr "type" "X1")]) - -(define_insn "prefetch" - [(prefetch (match_operand:SI 0 "address_operand" "rO") - (match_operand:SI 1 "const_int_operand" "") - (match_operand:SI 2 "const_int_operand" ""))] - "" - "prefetch\t%r0" - [(set_attr "type" "Y2")]) - - -;; -;; Network intrinsics -;; - -;; Note the "pseudo" text is handled specially by the -;; asm_output_opcode routine. If the output is an empty string, the -;; instruction would bypass the asm_output_opcode routine, bypassing -;; the bundle handling code. -(define_insn "tilepro_network_barrier" - [(unspec_volatile:SI [(const_int 0)] UNSPEC_NETWORK_BARRIER)] - "" - "pseudo" - [(set_attr "type" "nothing") - (set_attr "length" "0")]) - -(define_insn "*netreg_receive" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,U,m") - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i,i,i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - move\t%0, %N1 - sw\t%0, %N1 - swadd\t%I0, %N1, %i0" - [(set_attr "type" "*,Y2,X1")]) - -(define_insn "*netreg_send" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i,i,i,i,i,i") - (match_operand:SI 1 "reg_or_cint_operand" "rO,I,J,K,N,P") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - move\t%N0, %r1 - movei\t%N0, %1 - moveli\t%N0, %1 - auli\t%N0, zero, %h1 - addib\t%N0, zero, %j1 - addih\t%N0, zero, %h1" - [(set_attr "type" "*,*,X01,X01,X01,X01")]) - -(define_insn "*netreg_copy" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i") - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "move %N0, %N1") - -(define_expand "tilepro_idn0_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_IDN0) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_idn1_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_IDN1) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_idn_send" - [(parallel - [(unspec_volatile:SI [(const_int TILEPRO_NETREG_IDN0) - (match_operand:SI 0 "reg_or_cint_operand" "") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_sn_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_SN) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_sn_send" - [(parallel - [(unspec_volatile:SI [(const_int TILEPRO_NETREG_SN) - (match_operand:SI 0 "reg_or_cint_operand" "") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_udn0_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_UDN0) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_udn1_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_UDN1) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_udn2_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_UDN2) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_udn3_receive" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (unspec_volatile:SI [(const_int TILEPRO_NETREG_UDN3) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_expand "tilepro_udn_send" - [(parallel - [(unspec_volatile:SI [(const_int TILEPRO_NETREG_UDN0) - (match_operand:SI 0 "reg_or_cint_operand" "") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))])] - "") - -(define_insn "*netreg_add_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i,i,i,i") - (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rO,rO,rO,rO") - (match_operand:SI 2 "add_operand" "r,I,J,K")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - add\t%N0, %r1, %2 - addi\t%N0, %r1, %2 - addli\t%N0, %r1, %2 - auli\t%N0, %r1, %h2" - [(set_attr "type" "*,*,X01,X01")]) - -(define_insn "*netreg_add_from_network" - [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") - (plus:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i,i,i,i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "add_operand" "rO,I,J,K"))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - add\t%0, %N1, %r2 - addi\t%0, %N1, %2 - addli\t%0, %N1, %2 - auli\t%0, %N1, %h2" - [(set_attr "type" "*,*,X01,X01")]) - -(define_insn "*netreg_add_from_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i,i,i,i") - (plus:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i,i,i,i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "add_operand" "rO,I,J,K")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - add\t%N0, %N1, %r2 - addi\t%N0, %N1, %2 - addli\t%N0, %N1, %2 - auli\t%N0, %N1, %h2" - [(set_attr "type" "*,*,X01,X01")]) - -(define_code_iterator netreg_binop - [minus]) - -(define_insn "*netreg_binop_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i") - (netreg_binop:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%N0, %r1, %r2") - -(define_insn "*netreg_binop_from_network0" - [(set (match_operand:SI 0 "register_operand" "=r") - (netreg_binop:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "reg_or_0_operand" "rO"))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%0, %N1, %r2") - -(define_insn "*netreg_binop_from_network1" - [(set (match_operand:SI 0 "register_operand" "=r") - (netreg_binop:SI - (match_operand:SI 1 "reg_or_0_operand" "rO") - (unspec_volatile:SI [(match_operand:SI 2 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%0, %r1, %N2") - -(define_insn "*netreg_binop_from_to_network0" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i") - (netreg_binop:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "reg_or_0_operand" "rO")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%N0, %N1, %r2") - -(define_insn "*netreg_binop_from_to_network1" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i") - (netreg_binop:SI - (match_operand:SI 1 "reg_or_0_operand" "rO") - (unspec_volatile:SI [(match_operand:SI 2 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%N0, %r1, %N2") - -(define_insn "*netreg_binop_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i,i") - (binop_with_imm:SI (match_operand:SI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_cint_operand" "I,rO")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - i\t%N0, %r1, %2 - \t%N0, %r1, %r2") - -(define_insn "*netreg_binop_from_network" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (binop_with_imm:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i,i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "reg_or_cint_operand" "I,rO"))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - i\t%0, %N1, %2 - \t%0, %N1, %r2") - -(define_insn "*netreg_binop_from_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i,i") - (binop_with_imm:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i,i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "reg_or_cint_operand" "I,rO")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "@ - i\t%N0, %N1, %2 - \t%N0, %N1, %r2") - -(define_insn "*netreg_unop_to_network" - [(unspec_volatile:SI [(match_operand:SI 0 "netreg_operand" "i") - (unop:SI (match_operand:SI 1 "reg_or_0_operand" "rO")) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%N0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "*netreg_unop_from_network" - [(set (match_operand:SI 0 "register_operand" "=r") - (unop:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%0, %N1" - [(set_attr "type" "Y0")]) - -(define_insn "*netreg_unop_from_to_network" - [(unspec_volatile:SI - [(match_operand:SI 0 "netreg_operand" "i") - (unop:SI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)) - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_SEND) - (clobber (reg:SI TILEPRO_NETORDER_REG)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "\t%N0, %N1" - [(set_attr "type" "Y0")]) - -(define_insn "*netreg_sadh_u_from_network0" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI - [(unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADH_U)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "sadh_u\t%0, %N1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*netreg_sadh_u_from_network1" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI - [(match_operand:SI 1 "reg_or_0_operand" "rO") - (unspec_volatile:SI [(match_operand:SI 2 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)] - UNSPEC_INSN_SADH_U)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "sadh_u\t%0, %r1, %N2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*netreg_sadah_u_from_network0" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI - [(match_operand:SI 1 "reg_or_0_operand" "0") - (unspec_volatile:SI [(match_operand:SI 2 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADAH_U)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "sadah_u\t%0, %N2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "*netreg_sadah_u_from_network1" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI - [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (unspec_volatile:SI [(match_operand:SI 3 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE)] - UNSPEC_INSN_SADAH_U)) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - "sadah_u\t%0, %r2, %N3" - [(set_attr "type" "X0_2cycle")]) - -(define_code_iterator mm_combiner [ior xor plus]) - -;; This doesn't seem to match -- too complex for 'combine'? -;; -;; (define_insn "*netreg_mm_to_network" -;; [(unspec_volatile:SI -;; [(match_operand:SI 0 "netreg_operand" "i") -;; (mm_combiner:SI -;; (and:SI (match_operand:SI 1 "reg_or_0_operand" "rO") -;; (match_operand:SI 3 "const_int_operand" "n")) -;; (and:SI (match_operand:SI 2 "reg_or_0_operand" "rO") -;; (match_operand:SI 4 "const_int_operand" "n")))] -;; UNSPEC_NETWORK_SEND)] -;; "tilepro_bitfield_operand_p (INTVAL (operands[3]), NULL, NULL) -;; && INTVAL (operands[3]) == ~INTVAL (operands[4])" -;; "mm\t%N0, %r1, %r2, %M3" -;; [(set_attr "type" "X01")]) - -;; FIXME: the straight forward versions which do not include the -;; subreg:QI does not match for some unknown reason. -(define_insn "*netreg_bbs_normal" - [(set (pc) - (if_then_else - (ne (zero_extract:SI - (subreg:QI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) 0) - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - { return tilepro_output_cbranch_with_opcode (insn, operands, "bbs", "bbns", - 1, 1); } - [(set_attr "type" "X1_branch")]) - -(define_insn "*netreg_bbc_normal" - [(set (pc) - (if_then_else - (eq (zero_extract:SI - (subreg:QI - (unspec_volatile:SI [(match_operand:SI 1 "netreg_operand" "i") - (reg:SI TILEPRO_NETORDER_REG)] - UNSPEC_NETWORK_RECEIVE) 0) - (const_int 1) - (const_int 0)) - (const_int 0)) - (label_ref (match_operand 0 "" "")) - (pc))) - (clobber (reg:SI TILEPRO_NETORDER_REG))] - "" - { return tilepro_output_cbranch_with_opcode (insn, operands, "bbns", "bbns", - 1, 1); } - [(set_attr "type" "X1_branch")]) - - -;; -;; "__insn" Intrinsics (some expand directly to normal patterns above). -;; - -(define_insn "insn_addlis" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec_volatile:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "s16bit_cint_operand" "i")] - UNSPEC_INSN_ADDLIS))] - "" - "addlis\t%0, %r1, %2" - [(set_attr "type" "X01")]) - -(define_insn "insn_auli" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "s16bit_cint_operand" "i")] - UNSPEC_INSN_AULI))] - "" - "auli\t%0, %r1, %2" - [(set_attr "type" "X01")]) - -(define_insn "insn_drain" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_DRAIN)] - "" - "drain" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_icoh" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_ICOH)] - "" - "icoh\t%r0" - [(set_attr "type" "X1")]) - - -(define_insn "insn_info" - [(unspec_volatile:VOID [(match_operand:SI 0 "s8bit_cint_operand" "i")] - UNSPEC_INSN_INFO)] - "" - "info\t%0") - -(define_insn "insn_infol" - [(unspec_volatile:VOID [(match_operand:SI 0 "s16bit_cint_operand" "i")] - UNSPEC_INSN_INFOL)] - "" - "infol\t%0" - [(set_attr "type" "X01")]) - -;; loads - -(define_expand "insn_" - [(set (match_operand:SI 0 "register_operand" "") - (sign_extend:SI - (mem:I12MODE (match_operand:SI 1 "address_operand" ""))))] - "") - -(define_expand "insn__u" - [(set (match_operand:SI 0 "register_operand" "") - (zero_extend:SI - (mem:I12MODE (match_operand:SI 1 "address_operand" ""))))] - "") - -(define_insn "insn_add" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (sign_extend:SI (mem:I12MODE (match_dup 3))))] - "" - "add\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_add_u" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (zero_extend:SI (mem:I12MODE (match_dup 3))))] - "" - "add_u\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_expand "insn_lw" - [(set (match_operand:SI 0 "register_operand" "") - (mem:SI (match_operand:SI 1 "address_operand" "")))] - "") - -(define_insn "insn_lwadd" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (mem:SI (match_dup 3)))] - "" - "lwadd\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_lwadd_na" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (mem:SI (and:SI (match_dup 3) (const_int -4))))] - "" - "lwadd_na\t%0, %1, %2" - [(set_attr "type" "X1_2cycle")]) - -(define_insn "insn_lw_na" - [(set (match_operand:SI 0 "register_operand" "=r") - (mem:SI (and:SI (match_operand:SI 1 "address_operand" "rO") - (const_int -4))))] - "" - "lw_na\t%0, %r1" - [(set_attr "type" "X1_2cycle")]) - -;; L2 hits - -(define_insn "insn__L2" - [(set (match_operand:SI 0 "register_operand" "=r") - (sign_extend:SI - (unspec:I12MODE - [(mem:I12MODE (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_L2)))] - "" - "\t%0, %r1" - [(set_attr "type" "Y2_L2")]) - -(define_insn "insn__u_L2" - [(set (match_operand:SI 0 "register_operand" "=r") - (zero_extend:SI - (unspec:I12MODE - [(mem:I12MODE (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_L2)))] - "" - "_u\t%0, %r1" - [(set_attr "type" "Y2_L2")]) - -(define_insn "insn_add_L2" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (sign_extend:SI (unspec:I12MODE [(mem:I12MODE (match_dup 3))] - UNSPEC_LATENCY_L2)))] - "" - "add\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_add_u_L2" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (zero_extend:SI (unspec:I12MODE [(mem:I12MODE (match_dup 3))] - UNSPEC_LATENCY_L2)))] - "" - "add_u\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_lwadd_L2" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (match_dup 3))] UNSPEC_LATENCY_L2))] - "" - "lwadd\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_lwadd_na_L2" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (and:SI (match_dup 3) (const_int -4)))] - UNSPEC_LATENCY_L2))] - "" - "lwadd_na\t%0, %1, %2" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_lw_na_L2" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (and:SI (match_operand:SI 1 "address_operand" "rO") - (const_int -4)))] - UNSPEC_LATENCY_L2))] - "" - "lw_na\t%0, %r1" - [(set_attr "type" "X1_L2")]) - -(define_insn "insn_lw_L2" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_L2))] - "" - "lw\t%0, %r1" - [(set_attr "type" "Y2_L2")]) - -;; L2 miss - -(define_insn "insn__miss" - [(set (match_operand:SI 0 "register_operand" "=r") - (sign_extend:SI - (unspec:I12MODE - [(mem:I12MODE (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_MISS)))] - "" - "\t%0, %r1" - [(set_attr "type" "Y2_miss")]) - -(define_insn "insn__u_miss" - [(set (match_operand:SI 0 "register_operand" "=r") - (zero_extend:SI - (unspec:I12MODE - [(mem:I12MODE (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_MISS)))] - "" - "_u\t%0, %r1" - [(set_attr "type" "Y2_miss")]) - -(define_insn "insn_add_miss" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (sign_extend:SI (unspec:I12MODE [(mem:I12MODE (match_dup 3))] - UNSPEC_LATENCY_MISS)))] - "" - "add\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_add_u_miss" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (zero_extend:SI (unspec:I12MODE [(mem:I12MODE (match_dup 3))] - UNSPEC_LATENCY_MISS)))] - "" - "add_u\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_lwadd_miss" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (match_dup 3))] UNSPEC_LATENCY_MISS))] - "" - "lwadd\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_lwadd_na_miss" - [(set (match_operand:SI 1 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "1") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (and:SI (match_dup 3) (const_int -4)))] - UNSPEC_LATENCY_MISS))] - "" - "lwadd_na\t%0, %1, %2" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_lw_na_miss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (and:SI (match_operand:SI 1 "address_operand" "rO") - (const_int -4)))] - UNSPEC_LATENCY_MISS))] - "" - "lw_na\t%0, %r1" - [(set_attr "type" "X1_miss")]) - -(define_insn "insn_lw_miss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(mem:SI (match_operand:SI 1 "address_operand" "rO"))] - UNSPEC_LATENCY_MISS))] - "" - "lw\t%0, %r1" - [(set_attr "type" "Y2_miss")]) - -;; end loads - -(define_insn "insn_mfspr" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec_volatile:SI [(match_operand:SI 1 "u15bit_cint_operand" "i")] - UNSPEC_INSN_MFSPR)) - (clobber (mem:BLK (const_int 0)))] - "" - "mfspr\t%0, %1" - [(set_attr "type" "X1")]) - -(define_insn "*mm" - [(set (match_operand:SI 0 "register_operand" "=r") - (mm_combiner:SI - (and:SI (match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 3 "const_int_operand" "n")) - (and:SI (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 4 "const_int_operand" "n"))))] - "tilepro_bitfield_operand_p (INTVAL (operands[3]), NULL, NULL) - && INTVAL (operands[3]) == ~INTVAL (operands[4])" - "mm\t%0, %r1, %r2, %M3" - [(set_attr "type" "X01")]) - -(define_expand "insn_mm" - [(set (match_operand:SI 0 "register_operand" "") - (ior:SI - (and:SI (match_operand:SI 1 "reg_or_cint_operand" "") - (match_operand:SI 3 "u5bit_cint_operand" "")) - (and:SI (match_operand:SI 2 "reg_or_cint_operand" "") - (match_operand:SI 4 "u5bit_cint_operand" ""))))] - "" -{ - int first, last, i; - HOST_WIDE_INT mask; - - first = INTVAL (operands[3]) & 31; - last = INTVAL (operands[4]) & 31; - - if (((last + 1) & 31) == first) - { - /* Handle pathological case of a mask that includes only the - first operand. The reordering code below can't handle this. */ - emit_move_insn (operands[0], operands[1]); - DONE; - } - - /* Canonicalize order by putting constant second, if any. */ - if (CONST_INT_P (operands[1])) - { - int tmp_first; - - rtx tmp = operands[1]; - operands[1] = operands[2]; - operands[2] = tmp; - - /* Invert the bit range. */ - tmp_first = first; - first = (last + 1) & 31; - last = (tmp_first - 1) & 31; - } - - /* Convert the first/last bit range into a bit mask. */ - mask = 0; - - for (i = first; ; i = (i + 1) & 31) - { - mask |= ((HOST_WIDE_INT)1) << i; - if (i == last) - break; - } - - mask = trunc_int_for_mode (mask, SImode); - - operands[1] = force_reg (SImode, operands[1]); - operands[3] = GEN_INT (mask); - operands[4] = GEN_INT (~mask); - - if (CONST_INT_P (operands[2])) - { - HOST_WIDE_INT inserted_bits = INTVAL (operands[2]) & ~mask; - - if (inserted_bits == 0) - { - /* All inserted bits are zero. Use a bitwise AND. */ - emit_insn (gen_andsi3 (operands[0], operands[1], operands[3])); - DONE; - } - else if (inserted_bits == ~mask) - { - /* All inserted bits are ones. Use a bitwise IOR if we can. */ - if (satisfies_constraint_I (operands[4])) - { - emit_insn (gen_iorsi3 (operands[0], operands[1], operands[4])); - DONE; - } - - /* Canonicalize to inserting -1 when setting all masked bits - to 1, to facilitate CSE. */ - inserted_bits = -1; - } - - /* Sign extend the inserted bits to make them easier to materialize - in a register, but only if the inserted bits (~mask) do not already - include the high bits. */ - if ((~mask & 0x80000000) == 0) - { - int shift = sizeof (HOST_WIDE_INT) * 8 - first; - inserted_bits = (inserted_bits << shift) >> shift; - } - - operands[2] = GEN_INT (inserted_bits); - } - - operands[2] = force_reg (SImode, operands[2]); -}) - -(define_insn "insn_movelis" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec_volatile:SI [(match_operand:SI 1 "s16bit_cint_operand" "i")] - UNSPEC_INSN_MOVELIS))] - "" - "movelis\t%0, %1" - [(set_attr "type" "X01")]) - -(define_insn "insn_mtspr" - [(unspec_volatile:SI [(match_operand:SI 0 "u15bit_cint_operand" "i") - (match_operand:SI 1 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MTSPR) - (clobber (mem:BLK (const_int 0)))] - "" - "mtspr\t%0, %r1" - [(set_attr "type" "X1")]) - -(define_expand "insn_prefetch" - [(prefetch (match_operand:SI 0 "address_operand" "") - (const_int 0) - (const_int 2))]) - -(define_expand "insn_prefetch_L1" - [(use (match_operand:SI 0 "address_operand" ""))] - "" -{ - /* Generate a volatile byte load to a dummy register. */ - rtx mem = gen_rtx_MEM (QImode, operands[0]); - MEM_VOLATILE_P (mem) = 1; - - emit_insn (gen_zero_extendqisi2 (gen_reg_rtx (SImode), mem)); - DONE; -}) - -(define_expand "insn_s1a" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 2)) - (match_operand:SI 2 "reg_or_0_operand" "")))] - "") - -(define_expand "insn_s2a" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 4)) - (match_operand:SI 2 "reg_or_0_operand" "")))] - "") - -(define_expand "insn_s3a" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (mult:SI (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 8)) - (match_operand:SI 2 "reg_or_0_operand" "")))] - "") - -(define_expand "insn_" - [(set (mem:I12MODE (match_operand:SI 0 "address_operand" "")) - (match_operand:SI 1 "reg_or_0_operand" ""))] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], SImode, 0); -}) - -(define_expand "insn_sw" - [(set (mem:SI (match_operand:SI 0 "address_operand" "")) - (match_operand:SI 1 "reg_or_0_operand" ""))] - "") - -(define_expand "insn_add" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (match_operand:SI 3 "register_operand" "") - (match_operand:SI 2 "s8bit_cint_operand" ""))) - (set (mem:I12MODE (match_dup 3)) - (match_operand:SI 1 "reg_or_0_operand" ""))])] - "" -{ - operands[1] = simplify_gen_subreg (mode, operands[1], SImode, 0); -}) - -(define_insn "*insn_add" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "0") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (mem:I12MODE (match_dup 3)) - (match_operand:I12MODE 1 "reg_or_0_operand" "rO"))] - "" - "add\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -(define_insn "insn_swadd" - [(set (match_operand:SI 0 "register_operand" "=r") - (plus:SI (match_operand:SI 3 "register_operand" "0") - (match_operand:SI 2 "s8bit_cint_operand" "i"))) - (set (mem:SI (match_dup 3)) - (match_operand:SI 1 "reg_or_0_operand" "rO"))] - "" - "swadd\t%0, %r1, %2" - [(set_attr "type" "X1")]) - -(define_insn "insn_wh64" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_WH64) - (clobber (mem:BLK (const_int 0)))] - "" - "wh64\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_tns" - [(set (match_operand:SI 0 "register_operand" "=r") - (mem:SI (match_operand:SI 1 "reg_or_0_operand" "rO"))) - (set (mem:SI (match_dup 1)) (const_int 1))] - "" - "tns\t%0, %1" - [(set_attr "type" "X1")]) - -;; insn_addb -;; insn_addib -;; insn_maxb_u -;; insn_maxib_u -;; insn_minb_u -;; insn_minib_u -;; insn_seqb -;; insn_seqib -;; insn_sltb -;; insn_sltib -;; insn_sltb_u -;; insn_sltib_u -(define_insn "v4qi3" - [(set (match_operand:V4QI 0 "register_operand" "=r,r") - (v1op_immed:V4QI - (match_operand:V4QI 1 "reg_or_0_operand" "rO,rO") - (match_operand:V4QI 2 "reg_or_v4s8bit_operand" "W,rO")))] - "" - "@ - ib\t%0, %r1, %j2 - b\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_expand "insn_b" - [(set (match_operand:SI 0 "register_operand" "") - (v1op_immed:V4QI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v4qi3, V4QImode, operands[0], - V4QImode, operands[1], operands[2], true); - DONE; -}) - -(define_expand "insn_ib" - [(set (match_operand:SI 0 "register_operand" "") - (v1op_immed:V4QI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "s8bit_cint_operand" "")))] - "" -{ - /* Tile out immediate and expand to general case. */ - rtx n = tilepro_simd_int (operands[2], QImode); - tilepro_expand_builtin_vector_binop (gen_v4qi3, V4QImode, operands[0], - V4QImode, operands[1], n, true); - DONE; -}) - -;; insn_shlb -;; insn_shlib -;; insn_shrb -;; insn_shrib -;; insn_srab -;; insn_sraib -(define_insn "v4qi3" - [(set (match_operand:V4QI 0 "register_operand" "=r,r") - (any_shift:V4QI - (match_operand:V4QI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - ib\t%0, %r1, %2 - b\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_expand "insn_b" - [(set (match_operand:SI 0 "register_operand" "") - (any_shift:V4QI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_u5bit_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v4qi3, V4QImode, operands[0], - V4QImode, operands[1], operands[2], false); - DONE; -}) - -;; insn_addh -;; insn_addih -;; insn_maxh -;; insn_maxih -;; insn_minh -;; insn_minih -;; insn_seqh -;; insn_seqih -;; insn_slth -;; insn_sltih -;; insn_slth_u -;; insn_sltih_u -(define_insn "v2hi3" - [(set (match_operand:V2HI 0 "register_operand" "=r,r") - (v2op_immed:V2HI - (match_operand:V2HI 1 "reg_or_0_operand" "rO,rO") - (match_operand:V2HI 2 "reg_or_v2s8bit_operand" "Y,rO")))] - "" - "@ - ih\t%0, %r1, %j2 - h\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_expand "insn_h" - [(set (match_operand:SI 0 "register_operand" "") - (v2op_immed:V2HI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v2hi3, V2HImode, operands[0], - V2HImode, operands[1], operands[2], true); - DONE; -}) - -(define_expand "insn_ih" - [(set (match_operand:SI 0 "register_operand" "") - (v2op_immed:V2HI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "s8bit_cint_operand" "")))] - "" -{ - /* Tile out immediate and expand to general case. */ - rtx n = tilepro_simd_int (operands[2], HImode); - tilepro_expand_builtin_vector_binop (gen_v2hi3, V2HImode, operands[0], - V2HImode, operands[1], n, true); - DONE; -}) - -;; insn_shlh -;; insn_shlih -;; insn_shrh -;; insn_shrih -;; insn_srah -;; insn_sraih -(define_insn "v2hi3" - [(set (match_operand:V2HI 0 "register_operand" "=r,r") - (any_shift:V2HI - (match_operand:V2HI 1 "reg_or_0_operand" "rO,rO") - (match_operand:SI 2 "reg_or_u5bit_operand" "I,rO")))] - "" - "@ - ih\t%0, %r1, %2 - h\t%0, %r1, %r2" - [(set_attr "type" "X01,X01")]) - -(define_expand "insn_h" - [(set (match_operand:SI 0 "register_operand" "") - (any_shift:V2HI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v2hi3, V2HImode, operands[0], - V2HImode, operands[1], operands[2], false); - DONE; -}) - -;; insn_addbs_u -;; insn_subbs_u -;; insn_subb -;; insn_slteb -;; insn_slteb_u -;; insn_sneb -(define_insn "v4qi3" - [(set (match_operand:V4QI 0 "register_operand" "=r") - (v1op:V4QI - (match_operand:V4QI 1 "reg_or_0_operand" "rO") - (match_operand:V4QI 2 "reg_or_0_operand" "rO")))] - "" - "b\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_b" - [(set (match_operand:SI 0 "register_operand" "") - (v1op:V4QI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v4qi3, V4QImode, operands[0], - V4QImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_addhs -;; insn_subhs -;; insn_subh -;; insn_slteh -;; insn_slteh_u -;; insn_sneh -(define_insn "v2hi3" - [(set (match_operand:V2HI 0 "register_operand" "=r") - (v2op:V2HI - (match_operand:V2HI 1 "reg_or_0_operand" "rO") - (match_operand:V2HI 2 "reg_or_0_operand" "rO")))] - "" - "h\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_expand "insn_h" - [(set (match_operand:SI 0 "register_operand" "") - (v2op:V2HI - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")))] - "" -{ - tilepro_expand_builtin_vector_binop (gen_v2hi3, V2HImode, operands[0], - V2HImode, operands[1], operands[2], true); - DONE; -}) - -;; insn_inthb - -;; Byte ordering of these vectors is endian dependent. We concat -;; right-to-left for little endian. We concat and interleave in the -;; opposite way gcc's vector patterns work, so we need to reverse the -;; order of source operands. - -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3,A2,A1,A0,B3,B2,B1,B0} -;; => {A3,B3,A2,B2} -(define_insn "vec_interleave_highv4qi" - [(set (match_operand:V4QI 0 "register_operand" "=r") - (vec_select:V4QI - (vec_concat:V8QI (match_operand:V4QI 1 "reg_or_0_operand" "rO") - (match_operand:V4QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 2) (const_int 6) - (const_int 3) (const_int 7)])))] - "" - "inthb\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_inthb" - [(match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")] - "" -{ - /* Our instruction interleaves opposite of the way vec_interleave - works, so we need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_interleave_highv4qi, V4QImode, - operands[0], V4QImode, operands[2], - operands[1], true); - DONE; -}) - -;; insn_intlb -;; {B3,B2,B1,B0} {A3,A2,A1,A0} -;; => {A3,A2,A1,A0,B3,B2,B1,B0} -;; => {A1,B1,A0,B0} -(define_insn "vec_interleave_lowv4qi" - [(set (match_operand:V4QI 0 "register_operand" "=r") - (vec_select:V4QI - (vec_concat:V8QI (match_operand:V4QI 1 "reg_or_0_operand" "rO") - (match_operand:V4QI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 4) - (const_int 1) (const_int 5)])))] - "" - "intlb\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_intlb" - [(match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")] - "" -{ - /* Our instruction interleaves opposite of the way vec_interleave - works, so we need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_interleave_lowv4qi, V4QImode, - operands[0], V4QImode, operands[2], - operands[1], true); - DONE; -}) - -;; insn_inthh -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -;; => {A1,B1} -(define_insn "vec_interleave_highv2hi" - [(set (match_operand:V2HI 0 "register_operand" "=r") - (vec_select:V2HI - (vec_concat:V4HI (match_operand:V2HI 1 "reg_or_0_operand" "rO") - (match_operand:V2HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 1) (const_int 3)])))] - "" - "inthh\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_inthh" - [(match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")] - "" -{ - /* Our instruction interleaves opposite of the way vec_interleave - works, so we need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_interleave_highv2hi, V2HImode, - operands[0], V2HImode, operands[2], - operands[1], true); - DONE; -}) - -;; insn_intlh -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -;; => {A0,B0} -(define_insn "vec_interleave_lowv2hi" - [(set (match_operand:V2HI 0 "register_operand" "=r") - (vec_select:V2HI - (vec_concat:V4HI (match_operand:V2HI 1 "reg_or_0_operand" "rO") - (match_operand:V2HI 2 "reg_or_0_operand" "rO")) - (parallel [(const_int 0) (const_int 2)])))] - "" - "intlh\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_intlh" - [(match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "reg_or_0_operand" "") - (match_operand:SI 2 "reg_or_0_operand" "")] - "" -{ - /* Our instruction interleaves opposite of the way vec_interleave - works, so we need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_interleave_lowv2hi, V2HImode, - operands[0], V2HImode, operands[2], - operands[1], true); - DONE; -}) - -;; insn_packbs_u -;; insn_packlb -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -(define_insn "vec_pack__v2hi" - [(set (match_operand:V4QI 0 "register_operand" "=r") - (vec_concat:V4QI - (v2pack:V2QI (match_operand:V2HI 1 "reg_or_0_operand" "rO")) - (v2pack:V2QI (match_operand:V2HI 2 "reg_or_0_operand" "rO"))))] - "" - "b\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_b" - [(set (match_operand:SI 0 "register_operand" "") - (vec_concat:V4QI - (v2pack:V2QI (match_operand:SI 1 "reg_or_0_operand" "")) - (v2pack:V2QI (match_operand:SI 2 "reg_or_0_operand" ""))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_pack__v2hi, - V4QImode, operands[0], - V2HImode, operands[2], operands[1], true); - DONE; -}) - -;; insn_packhb -;; {B1,B0} {A1,A0} -;; => {A1,A0,B1,B0} -(define_insn "vec_pack_hipart_v2hi" - [(set (match_operand:V4QI 0 "register_operand" "=r") - (vec_concat:V4QI - (truncate:V2QI - (ashiftrt:V2HI (match_operand:V2HI 1 "reg_or_0_operand" "rO") - (const_int 8))) - (truncate:V2QI - (ashiftrt:V2HI (match_operand:V2HI 2 "reg_or_0_operand" "rO") - (const_int 8)))))] - "" - "packhb\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_packhb" - [(set (match_operand:SI 0 "register_operand" "") - (vec_concat:V4QI - (truncate:V2QI - (ashiftrt:V2HI (match_operand:SI 2 "reg_or_0_operand" "") - (const_int 8))) - (truncate:V2QI - (ashiftrt:V2HI (match_operand:SI 1 "reg_or_0_operand" "") - (const_int 8)))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_pack_hipart_v2hi, - V4QImode, operands[0], - V2HImode, operands[2], operands[1], true); - DONE; -}) - -;; insn_packhs -;; {B0} {A0} -;; => {A0,B0} -(define_insn "vec_pack_ssat_si" - [(set (match_operand:V2HI 0 "register_operand" "=r") - (vec_concat:V2HI - (ss_truncate:HI (match_operand:SI 1 "reg_or_0_operand" "rO")) - (ss_truncate:HI (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "packhs\t%0, %r2, %r1" - [(set_attr "type" "X01")]) - -(define_expand "insn_packhs" - [(set (match_operand:SI 0 "register_operand" "") - (vec_concat:V2HI - (ss_truncate:HI (match_operand:SI 2 "reg_or_0_operand" "")) - (ss_truncate:HI (match_operand:SI 1 "reg_or_0_operand" ""))))] - "" -{ - /* Our instruction concats opposite of the way vec_pack works, so we - need to reverse the source operands. */ - tilepro_expand_builtin_vector_binop (gen_vec_pack_ssat_si, - V2HImode, operands[0], - SImode, operands[2], operands[1], true); - DONE; -}) - -;; Rest of the intrinsics -(define_insn "insn_adiffb_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_ADIFFB_U))] - "" - "adiffb_u\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_adiffh" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_ADIFFH))] - "" - "adiffh\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_avgb_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_AVGB_U))] - "" - "avgb_u\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_avgh" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_AVGH))] - "" - "avgh\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_bitx" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO")] - UNSPEC_INSN_BITX))] - "" - "bitx\t%0, %r1" - [(set_attr "type" "Y0")]) - -(define_insn "insn_crc32_32" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CRC32_32))] - "" - "crc32_32\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_crc32_8" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_CRC32_8))] - "" - "crc32_8\t%0, %r1, %r2" - [(set_attr "type" "X0")]) - -(define_insn "insn_dtlbpr" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DTLBPR)] - "" - "dtlbpr\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_dword_align" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_DWORD_ALIGN))] - "" - "dword_align\t%0, %r2, %r3" - [(set_attr "type" "X0")]) - -(define_insn "insn_finv" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FINV)] - "" - "finv\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_flush" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_FLUSH)] - "" - "flush\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_fnop" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_FNOP)] - "" - "fnop") - -(define_insn "insn_ill" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_ILL)] - "" - "ill" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_inv" - [(unspec_volatile:VOID [(match_operand:SI 0 "reg_or_0_operand" "rO")] - UNSPEC_INSN_INV)] - "" - "inv\t%r0" - [(set_attr "type" "X1")]) - -(define_insn "insn_lnk" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(const_int 0)] UNSPEC_INSN_LNK))] - "" - "lnk\t%0" - [(set_attr "type" "X1")]) - -(define_insn "insn_mnzb" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MNZB))] - "" - "mnzb\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_mnzh" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MNZH))] - "" - "mnzh\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_mulhh_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHH_SS))] - "" - "mulhh_ss\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulhh_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHH_SU))] - "" - "mulhh_su\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhh_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHH_UU))] - "" - "mulhh_uu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulhha_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHHA_SS))] - "" - "mulhha_ss\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulhha_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHHA_SU))] - "" - "mulhha_su\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhha_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHHA_UU))] - "" - "mulhha_uu\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulhhsa_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHHSA_UU))] - "" - "mulhhsa_uu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhl_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHL_SS))] - "" - "mulhl_ss\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhl_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHL_SU))] - "" - "mulhl_su\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhl_us" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHL_US))] - "" - "mulhl_us\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhl_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHL_UU))] - "" - "mulhl_uu\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhla_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHLA_SS))] - "" - "mulhla_ss\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhla_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHLA_SU))] - "" - "mulhla_su\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhla_us" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHLA_US))] - "" - "mulhla_us\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhla_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHLA_UU))] - "" - "mulhla_uu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulhlsa_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULHLSA_UU))] - "" - "mulhlsa_uu\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulll_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLL_SS))] - "" - "mulll_ss\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulll_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLL_SU))] - "" - "mulll_su\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mulll_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLL_UU))] - "" - "mulll_uu\t%0, %r1, %r2" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mullla_ss" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLLA_SS))] - "" - "mullla_ss\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mullla_su" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLLA_SU))] - "" - "mullla_su\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mullla_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLLA_UU))] - "" - "mullla_uu\t%0, %r2, %r3" - [(set_attr "type" "Y0_2cycle")]) - -(define_insn "insn_mulllsa_uu" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MULLLSA_UU))] - "" - "mulllsa_uu\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_mzb" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MZB))] - "" - "mzb\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_mzh" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_MZH))] - "" - "mzh\t%0, %r1, %r2" - [(set_attr "type" "X01")]) - -(define_insn "insn_nap" - [(unspec_volatile:VOID [(const_int 0)] UNSPEC_INSN_NAP)] - "" - "nap" - [(set_attr "type" "cannot_bundle")]) - -(define_insn "insn_nor" - [(set (match_operand:SI 0 "register_operand" "=r") - (and:SI (not:SI (match_operand:SI 1 "reg_or_0_operand" "rO")) - (not:SI (match_operand:SI 2 "reg_or_0_operand" "rO"))))] - "" - "nor\t%0, %r1, %r2") - -(define_insn "insn_sadab_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADAB_U))] - "" - "sadab_u\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_sadah" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADAH))] - "" - "sadah\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_sadah_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO") - (match_operand:SI 3 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADAH_U))] - "" - "sadah_u\t%0, %r2, %r3" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_sadb_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADB_U))] - "" - "sadb_u\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_sadh" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADH))] - "" - "sadh\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_sadh_u" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "rO") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_SADH_U))] - "" - "sadh_u\t%0, %r1, %r2" - [(set_attr "type" "X0_2cycle")]) - -(define_insn "insn_tblidxb0" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB0))] - "" - "tblidxb0\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb1" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB1))] - "" - "tblidxb1\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb2" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB2))] - "" - "tblidxb2\t%0, %r2" - [(set_attr "type" "Y0")]) - -(define_insn "insn_tblidxb3" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "reg_or_0_operand" "0") - (match_operand:SI 2 "reg_or_0_operand" "rO")] - UNSPEC_INSN_TBLIDXB3))] - "" - "tblidxb3\t%0, %r2" - [(set_attr "type" "Y0")]) - - -;; -;; pic related instructions -;; - -;; NOTE: We compute the label in this unusual way because if we place -;; the label after the lnk, whether it is at the same address as the -;; lnk will vary depending on whether the optimization level chooses to -;; insert bundling braces. -(define_insn "insn_lnk_and_label" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec_volatile:SI [(match_operand:SI 1 "symbolic_operand" "")] - UNSPEC_LNK_AND_LABEL))] - "" - "%1 = . + 8\n\tlnk\t%0" - [(set_attr "type" "X1")]) - -(define_expand "addli_pcrel" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "register_operand" "") - (const:SI - (unspec:SI [(match_operand:SI 2 "symbolic_operand" "") - (match_operand:SI 3 "symbolic_operand" "")] - UNSPEC_PCREL_SYM))))] - "flag_pic") - -(define_expand "auli_pcrel" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (high:SI - (const:SI - (unspec:SI [(match_operand:SI 2 "symbolic_operand" "") - (match_operand:SI 3 "symbolic_operand" "")] - UNSPEC_PCREL_SYM)))))] - "flag_pic") - -(define_expand "add_got16" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (const:SI (unspec:SI [(match_operand:SI 2 "symbolic_operand" "")] - UNSPEC_GOT16_SYM))))] - "flag_pic == 1") - -(define_expand "addhi_got32" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (high:SI - (const:SI (unspec:SI [(match_operand:SI 2 "symbolic_operand" "")] - UNSPEC_GOT32_SYM)))))] - "flag_pic == 2") - -(define_expand "addlo_got32" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (const:SI (unspec:SI [(match_operand:SI 2 "symbolic_operand" "")] - UNSPEC_GOT32_SYM))))] - "flag_pic == 2") - - -;; -;; TLS -;; - -(define_expand "tls_gd_addhi" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (high:SI - (const:SI (unspec:SI [(match_operand 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_GD)))))] - "HAVE_AS_TLS") - -(define_expand "tls_gd_addlo" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "reg_or_0_operand" "") - (const:SI (unspec:SI [(match_operand 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_GD))))] - "HAVE_AS_TLS") - -(define_expand "tls_gd_call" - [(parallel - [(set (reg:SI 0) - (unspec:SI [(match_operand:SI 0 "tls_symbolic_operand" "") - (reg:SI 0)] - UNSPEC_TLS_GD_CALL)) - (clobber (reg:SI 25)) - (clobber (reg:SI 26)) - (clobber (reg:SI 27)) - (clobber (reg:SI 28)) - (clobber (reg:SI 29)) - (clobber (reg:SI 55))])] - "" -{ - cfun->machine->calls_tls_get_addr = true; -}) - -(define_insn "*tls_gd_call" - [(set (reg:SI 0) - (unspec:SI [(match_operand:SI 0 "tls_symbolic_operand" "") - (reg:SI 0)] - UNSPEC_TLS_GD_CALL)) - (clobber (reg:SI 25)) - (clobber (reg:SI 26)) - (clobber (reg:SI 27)) - (clobber (reg:SI 28)) - (clobber (reg:SI 29)) - (clobber (reg:SI 55))] - "" - "jal\ttls_gd_call(%0)" - [(set_attr "type" "X1")]) - -(define_insn "tls_gd_add" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_GD_ADD))] - "HAVE_AS_TLS" - "addi\t%0, %1, tls_gd_add(%2)") - -(define_insn "tls_ie_load" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "tls_symbolic_operand" "")] - UNSPEC_TLS_IE_LOAD))] - "HAVE_AS_TLS" - "lw_tls\t%0, %1, tls_ie_load(%2)" - [(set_attr "type" "X1_2cycle")]) - -(define_expand "tls_ie_addhi" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI - (match_operand:SI 1 "register_operand" "") - (high:SI - (const:SI (unspec:SI [(match_operand 2 "tls_ie_symbolic_operand" "")] - UNSPEC_TLS_IE)))))] - "HAVE_AS_TLS") - -(define_expand "tls_ie_addlo" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "register_operand" "") - (const:SI (unspec:SI [(match_operand 2 "tls_ie_symbolic_operand" "")] - UNSPEC_TLS_IE))))] - "HAVE_AS_TLS") - -(define_expand "tls_le_addhi" - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI - (match_operand:SI 1 "register_operand" "") - (high:SI - (const:SI (unspec:SI [(match_operand 2 "tls_le_symbolic_operand" "")] - UNSPEC_TLS_LE)))))] - "HAVE_AS_TLS") - -(define_expand "tls_le_addlo" - [(set (match_operand:SI 0 "register_operand" "") - (lo_sum:SI - (match_operand:SI 1 "register_operand" "") - (const:SI (unspec:SI [(match_operand 2 "tls_le_symbolic_operand" "")] - UNSPEC_TLS_LE))))] - "HAVE_AS_TLS") - - -;; -;; Stack protector instructions. -;; - -(define_expand "stack_protect_set" - [(set (match_operand 0 "nonautoincmem_operand" "") - (match_operand 1 "nonautoincmem_operand" ""))] - "" -{ -#ifdef TARGET_THREAD_SSP_OFFSET - rtx tp = gen_rtx_REG (Pmode, THREAD_POINTER_REGNUM); - rtx ssp_addr = gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET)); - rtx ssp = gen_reg_rtx (Pmode); - - emit_insn (gen_rtx_SET (ssp, ssp_addr)); - - operands[1] = gen_rtx_MEM (Pmode, ssp); -#endif - - emit_insn (gen_stack_protect_setsi (operands[0], operands[1])); - - DONE; -}) - -(define_insn "stack_protect_setsi" - [(set (match_operand:SI 0 "nonautoincmem_operand" "=U") - (unspec:SI [(match_operand:SI 1 "nonautoincmem_operand" "U")] - UNSPEC_SP_SET)) - (set (match_scratch:SI 2 "=&r") (const_int 0))] - "" - "lw\t%2, %1; { sw\t%0, %2; move\t%2, zero }" - [(set_attr "length" "16") - (set_attr "type" "cannot_bundle_3cycle")]) - - -(define_expand "stack_protect_test" - [(match_operand 0 "nonautoincmem_operand" "") - (match_operand 1 "nonautoincmem_operand" "") - (match_operand 2 "" "")] - "" -{ - rtx compare_result; - rtx bcomp, loc_ref; - -#ifdef TARGET_THREAD_SSP_OFFSET - rtx tp = gen_rtx_REG (Pmode, THREAD_POINTER_REGNUM); - rtx ssp_addr = gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET)); - rtx ssp = gen_reg_rtx (Pmode); - - emit_insn (gen_rtx_SET (ssp, ssp_addr)); - - operands[1] = gen_rtx_MEM (Pmode, ssp); -#endif - - compare_result = gen_reg_rtx (SImode); - - emit_insn (gen_stack_protect_testsi (compare_result, operands[0], - operands[1])); - - bcomp = gen_rtx_NE (SImode, compare_result, const0_rtx); - - loc_ref = gen_rtx_LABEL_REF (VOIDmode, operands[2]); - - emit_jump_insn (gen_rtx_SET (pc_rtx, - gen_rtx_IF_THEN_ELSE (VOIDmode, bcomp, - loc_ref, pc_rtx))); - - DONE; -}) - -(define_insn "stack_protect_testsi" - [(set (match_operand:SI 0 "register_operand" "=&r") - (unspec:SI [(match_operand:SI 1 "nonautoincmem_operand" "U") - (match_operand:SI 2 "nonautoincmem_operand" "U")] - UNSPEC_SP_TEST)) - (set (match_scratch:SI 3 "=&r") (const_int 0))] - "" - "lw\t%0, %1; lw\t%3, %2; { seq\t%0, %0, %3; move\t%3, zero }" - [(set_attr "length" "24") - (set_attr "type" "cannot_bundle_4cycle")]) - diff --git a/gcc/config/tilepro/tilepro.opt b/gcc/config/tilepro/tilepro.opt deleted file mode 100644 index 74ba0f3..0000000 --- a/gcc/config/tilepro/tilepro.opt +++ /dev/null @@ -1,36 +0,0 @@ -; Options for the TILEPro port of the compiler. -; Copyright (C) 2011-2022 Free Software Foundation, Inc. -; Contributed by Walter Lee (walt@tilera.com) -; -; This file is part of GCC. -; -; GCC 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 3, or (at your option) any later -; version. -; -; GCC 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 GCC; see the file COPYING3. If not see -; . - -m32 -Target RejectNegative -Compile with 32 bit longs and pointers, which is the only supported -behavior and thus the flag is ignored. - -mcpu= -Target RejectNegative Joined Enum(tilepro_cpu) Var(tilepro_cpu) Init(0) --mcpu=CPU Use features of and schedule code for given CPU. - -Enum -Name(tilepro_cpu) Type(int) -Known TILEPro CPUs (for use with the -mcpu= option): - -EnumValue -Enum(tilepro_cpu) String(tilepro) Value(0) - diff --git a/gcc/configure b/gcc/configure index f43dc98..62872d1 100755 --- a/gcc/configure +++ b/gcc/configure @@ -25804,33 +25804,6 @@ foo: .long 25 xor %l1, %tle_lox10(foo), %o5 ld [%g7 + %o5], %o1" ;; - tilepro*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - addli r0, zero, tls_gd(foo) - auli r0, zero, tls_gd_ha16(foo) - addli r0, r0, tls_gd_lo16(foo) - jal __tls_get_addr - addli r0, zero, tls_ie(foo) - auli r0, r0, tls_ie_ha16(foo) - addli r0, r0, tls_ie_lo16(foo)' - tls_as_opt="--fatal-warnings" - ;; - tilegx*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - shl16insli r0, zero, hw0_last_tls_gd(foo) - shl16insli r0, zero, hw1_last_tls_gd(foo) - shl16insli r0, r0, hw0_tls_gd(foo) - jal __tls_get_addr - shl16insli r0, zero, hw1_last_tls_ie(foo) - shl16insli r0, r0, hw0_tls_ie(foo)' - tls_as_opt="--fatal-warnings" - ;; xtensa*-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -29086,7 +29059,7 @@ esac case "$cpu_type" in aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | loongarch | m32c \ | m68k | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc \ - | tilegx | tilepro | visium | xstormy16 | xtensa) + | visium | xstormy16 | xtensa) insn="nop" ;; ia64 | s390) diff --git a/gcc/configure.ac b/gcc/configure.ac index 80bdd8c..4467473 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4082,33 +4082,6 @@ foo: .long 25 xor %l1, %tle_lox10(foo), %o5 ld [%g7 + %o5], %o1" ;; - tilepro*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - addli r0, zero, tls_gd(foo) - auli r0, zero, tls_gd_ha16(foo) - addli r0, r0, tls_gd_lo16(foo) - jal __tls_get_addr - addli r0, zero, tls_ie(foo) - auli r0, r0, tls_ie_ha16(foo) - addli r0, r0, tls_ie_lo16(foo)' - tls_as_opt="--fatal-warnings" - ;; - tilegx*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - shl16insli r0, zero, hw0_last_tls_gd(foo) - shl16insli r0, zero, hw1_last_tls_gd(foo) - shl16insli r0, r0, hw0_tls_gd(foo) - jal __tls_get_addr - shl16insli r0, zero, hw1_last_tls_ie(foo) - shl16insli r0, r0, hw0_tls_ie(foo)' - tls_as_opt="--fatal-warnings" - ;; xtensa*-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -5419,7 +5392,7 @@ esac case "$cpu_type" in aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | loongarch | m32c \ | m68k | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc \ - | tilegx | tilepro | visium | xstormy16 | xtensa) + | visium | xstormy16 | xtensa) insn="nop" ;; ia64 | s390) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index a2e2a30..dfbe33a 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -14638,8 +14638,6 @@ instructions, but allow the compiler to schedule those calls. * SH Built-in Functions:: * SPARC VIS Built-in Functions:: * TI C6X Built-in Functions:: -* TILE-Gx Built-in Functions:: -* TILEPro Built-in Functions:: * x86 Built-in Functions:: * x86 transactional memory intrinsics:: * x86 control-flow protection intrinsics:: @@ -21572,75 +21570,6 @@ int _abs (int); int _abs2 (int); @end smallexample -@node TILE-Gx Built-in Functions -@subsection TILE-Gx Built-in Functions - -GCC provides intrinsics to access every instruction of the TILE-Gx -processor. The intrinsics are of the form: - -@smallexample - -unsigned long long __insn_@var{op} (...) - -@end smallexample - -Where @var{op} is the name of the instruction. Refer to the ISA manual -for the complete list of instructions. - -GCC also provides intrinsics to directly access the network registers. -The intrinsics are: - -@smallexample -unsigned long long __tile_idn0_receive (void); -unsigned long long __tile_idn1_receive (void); -unsigned long long __tile_udn0_receive (void); -unsigned long long __tile_udn1_receive (void); -unsigned long long __tile_udn2_receive (void); -unsigned long long __tile_udn3_receive (void); -void __tile_idn_send (unsigned long long); -void __tile_udn_send (unsigned long long); -@end smallexample - -The intrinsic @code{void __tile_network_barrier (void)} is used to -guarantee that no network operations before it are reordered with -those after it. - -@node TILEPro Built-in Functions -@subsection TILEPro Built-in Functions - -GCC provides intrinsics to access every instruction of the TILEPro -processor. The intrinsics are of the form: - -@smallexample - -unsigned __insn_@var{op} (...) - -@end smallexample - -@noindent -where @var{op} is the name of the instruction. Refer to the ISA manual -for the complete list of instructions. - -GCC also provides intrinsics to directly access the network registers. -The intrinsics are: - -@smallexample -unsigned __tile_idn0_receive (void); -unsigned __tile_idn1_receive (void); -unsigned __tile_sn_receive (void); -unsigned __tile_udn0_receive (void); -unsigned __tile_udn1_receive (void); -unsigned __tile_udn2_receive (void); -unsigned __tile_udn3_receive (void); -void __tile_idn_send (unsigned); -void __tile_sn_send (unsigned); -void __tile_udn_send (unsigned); -@end smallexample - -The intrinsic @code{void __tile_network_barrier (void)} is used to -guarantee that no network operations before it are reordered with -those after it. - @node x86 Built-in Functions @subsection x86 Built-in Functions diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index ed0d1d8..460da3a 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -758,7 +758,7 @@ mips64orion, mips64vr, mipsel, mipsisa32, mipsisa32r2, mipsisa64, mipsisa64r2, mipsisa64r2el, mipsisa64sb1, mipsisa64sr71k, mipstx39, mmix, mn10300, moxie, msp430, nds32be, nds32le, nios2, nvptx, or1k, pdp11, powerpc, powerpc64, powerpc64le, powerpcle, pru, riscv32, riscv32be, riscv64, riscv64be, rl78, rx, -s390, s390x, sh, shle, sparc, sparc64, tic6x, tilegx, tilegxbe, tilepro, v850, +s390, s390x, sh, shle, sparc, sparc64, tic6x, v850, v850e, v850e1, vax, visium, x86_64, xstormy16, xtensa @end quotation @@ -3675,12 +3675,6 @@ information have to. @item @uref{#c6x-x-x,,c6x-*-*} @item -@uref{#tilegx-x-linux,,tilegx-*-linux*} -@item -@uref{#tilegxbe-x-linux,,tilegxbe-*-linux*} -@item -@uref{#tilepro-x-linux,,tilepro-*-linux*} -@item @uref{#visium-x-elf, visium-*-elf} @item @uref{#x-x-vxworks,,*-*-vxworks*} @@ -4981,30 +4975,6 @@ The C6X family of processors. This port requires binutils-2.22 or newer. @html
@end html -@anchor{tilegx-*-linux} -@heading tilegx-*-linux* -The TILE-Gx processor in little endian mode, running GNU/Linux. This -port requires binutils-2.22 or newer. - -@html -
-@end html -@anchor{tilegxbe-*-linux} -@heading tilegxbe-*-linux* -The TILE-Gx processor in big endian mode, running GNU/Linux. This -port requires binutils-2.23 or newer. - -@html -
-@end html -@anchor{tilepro-*-linux} -@heading tilepro-*-linux* -The TILEPro processor running GNU/Linux. This port requires -binutils-2.22 or newer. - -@html -
-@end html @anchor{visium-x-elf} @heading visium-*-elf CDS VISIUMcore processor. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index dfaa561..bde59ff 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1368,13 +1368,6 @@ See RS/6000 and PowerPC Options. @emph{System V Options} @gccoptlist{-Qy -Qn -YP,@var{paths} -Ym,@var{dir}} -@emph{TILE-Gx Options} -@gccoptlist{-mcpu=CPU -m32 -m64 -mbig-endian -mlittle-endian @gol --mcmodel=@var{code-model}} - -@emph{TILEPro Options} -@gccoptlist{-mcpu=@var{cpu} -m32} - @emph{V850 Options} @gccoptlist{-mlong-calls -mno-long-calls -mep -mno-ep @gol -mprolog-function -mno-prolog-function -mspace @gol @@ -19174,8 +19167,6 @@ platform. * Solaris 2 Options:: * SPARC Options:: * System V Options:: -* TILE-Gx Options:: -* TILEPro Options:: * V850 Options:: * VAX Options:: * Visium Options:: @@ -31068,63 +31059,6 @@ The assembler uses this option. @c the generic assembler that comes with Solaris takes just -Ym. @end table -@node TILE-Gx Options -@subsection TILE-Gx Options -@cindex TILE-Gx options - -These @samp{-m} options are supported on the TILE-Gx: - -@table @gcctabopt -@item -mcmodel=small -@opindex mcmodel=small -Generate code for the small model. The distance for direct calls is -limited to 500M in either direction. PC-relative addresses are 32 -bits. Absolute addresses support the full address range. - -@item -mcmodel=large -@opindex mcmodel=large -Generate code for the large model. There is no limitation on call -distance, pc-relative addresses, or absolute addresses. - -@item -mcpu=@var{name} -@opindex mcpu -Selects the type of CPU to be targeted. Currently the only supported -type is @samp{tilegx}. - -@item -m32 -@itemx -m64 -@opindex m32 -@opindex m64 -Generate code for a 32-bit or 64-bit environment. The 32-bit -environment sets int, long, and pointer to 32 bits. The 64-bit -environment sets int to 32 bits and long and pointer to 64 bits. - -@item -mbig-endian -@itemx -mlittle-endian -@opindex mbig-endian -@opindex mlittle-endian -Generate code in big/little endian mode, respectively. -@end table - -@node TILEPro Options -@subsection TILEPro Options -@cindex TILEPro options - -These @samp{-m} options are supported on the TILEPro: - -@table @gcctabopt -@item -mcpu=@var{name} -@opindex mcpu -Selects the type of CPU to be targeted. Currently the only supported -type is @samp{tilepro}. - -@item -m32 -@opindex m32 -Generate code for a 32-bit environment, which sets int, long, and -pointer to 32 bits. This is the only supported behavior so the flag -is essentially ignored. -@end table - @node V850 Options @subsection V850 Options @cindex V850 Options diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 463471f..04aedfa 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -3859,154 +3859,6 @@ Register B14 (aka DP). @end table -@item TILE-Gx---@file{config/tilegx/constraints.md} -@table @code -@item R00 -@itemx R01 -@itemx R02 -@itemx R03 -@itemx R04 -@itemx R05 -@itemx R06 -@itemx R07 -@itemx R08 -@itemx R09 -@itemx R10 -Each of these represents a register constraint for an individual -register, from r0 to r10. - -@item I -Signed 8-bit integer constant. - -@item J -Signed 16-bit integer constant. - -@item K -Unsigned 16-bit integer constant. - -@item L -Integer constant that fits in one signed byte when incremented by one -(@minus{}129 @dots{} 126). - -@item m -Memory operand. If used together with @samp{<} or @samp{>}, the -operand can have postincrement which requires printing with @samp{%In} -and @samp{%in} on TILE-Gx. For example: - -@smallexample -asm ("st_add %I0,%1,%i0" : "=m<>" (*mem) : "r" (val)); -@end smallexample - -@item M -A bit mask suitable for the BFINS instruction. - -@item N -Integer constant that is a byte tiled out eight times. - -@item O -The integer zero constant. - -@item P -Integer constant that is a sign-extended byte tiled out as four shorts. - -@item Q -Integer constant that fits in one signed byte when incremented -(@minus{}129 @dots{} 126), but excluding -1. - -@item S -Integer constant that has all 1 bits consecutive and starting at bit 0. - -@item T -A 16-bit fragment of a got, tls, or pc-relative reference. - -@item U -Memory operand except postincrement. This is roughly the same as -@samp{m} when not used together with @samp{<} or @samp{>}. - -@item W -An 8-element vector constant with identical elements. - -@item Y -A 4-element vector constant with identical elements. - -@item Z0 -The integer constant 0xffffffff. - -@item Z1 -The integer constant 0xffffffff00000000. - -@end table - -@item TILEPro---@file{config/tilepro/constraints.md} -@table @code -@item R00 -@itemx R01 -@itemx R02 -@itemx R03 -@itemx R04 -@itemx R05 -@itemx R06 -@itemx R07 -@itemx R08 -@itemx R09 -@itemx R10 -Each of these represents a register constraint for an individual -register, from r0 to r10. - -@item I -Signed 8-bit integer constant. - -@item J -Signed 16-bit integer constant. - -@item K -Nonzero integer constant with low 16 bits zero. - -@item L -Integer constant that fits in one signed byte when incremented by one -(@minus{}129 @dots{} 126). - -@item m -Memory operand. If used together with @samp{<} or @samp{>}, the -operand can have postincrement which requires printing with @samp{%In} -and @samp{%in} on TILEPro. For example: - -@smallexample -asm ("swadd %I0,%1,%i0" : "=m<>" (mem) : "r" (val)); -@end smallexample - -@item M -A bit mask suitable for the MM instruction. - -@item N -Integer constant that is a byte tiled out four times. - -@item O -The integer zero constant. - -@item P -Integer constant that is a sign-extended byte tiled out as two shorts. - -@item Q -Integer constant that fits in one signed byte when incremented -(@minus{}129 @dots{} 126), but excluding -1. - -@item T -A symbolic operand, or a 16-bit fragment of a got, tls, or pc-relative -reference. - -@item U -Memory operand except postincrement. This is roughly the same as -@samp{m} when not used together with @samp{<} or @samp{>}. - -@item W -A 4-element vector constant with identical elements. - -@item Y -A 2-element vector constant with identical elements. - -@end table - @item Visium---@file{config/visium/constraints.md} @table @code @item b diff --git a/gcc/testsuite/gcc.dg/lower-subreg-1.c b/gcc/testsuite/gcc.dg/lower-subreg-1.c index 595938a..c62db2c 100644 --- a/gcc/testsuite/gcc.dg/lower-subreg-1.c +++ b/gcc/testsuite/gcc.dg/lower-subreg-1.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* i?86-*-* ia64-*-* pru-*-* sparc*-*-* tilegx-*-* x86_64-*-* } } } } } */ +/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* i?86-*-* ia64-*-* pru-*-* sparc*-*-* x86_64-*-* } } } } } */ /* { dg-options "-O -fdump-rtl-subreg1" } */ /* { dg-require-effective-target ilp32 } */ diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp index c955332..64da5d1 100644 --- a/gcc/testsuite/gcc.misc-tests/linkage.exp +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp @@ -98,13 +98,6 @@ if { [isnative] && ![is_remote host] } then { } elseif [ string match "*ppc" $file_string ] { set native_cflags "-m32" } - } elseif [istarget "tilegx-*-linux*"] { - set file_string [exec file "linkage-x.o"] - if [ string match "*64-bit*" $file_string ] { - set native_cflags "-m64" - } elseif [ string match "*32-bit*" $file_string ] { - set native_cflags "-m32" - } } elseif [istarget "*86*-*-darwin*"] { set file_string [exec file "linkage-x.o"] if [ string match "*64*" $file_string ] { diff --git a/libgcc/config.host b/libgcc/config.host index 927d34a..b2a0a8e 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -212,12 +212,6 @@ s390*-*-*) sh[123456789lbe]*-*-*) cpu_type=sh ;; -tilegx*-*-*) - cpu_type=tilegx - ;; -tilepro*-*-*) - cpu_type=tilepro - ;; v850*-*-*) cpu_type=v850 ;; @@ -1487,17 +1481,6 @@ tic6x-*-elf) extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o" unwind_header=config/c6x/unwind-c6x.h ;; -tilegx*-*-linux*) - if test "${host_address}" = 64; then - tmake_file="${tmake_file} tilegx/t-softfp" - fi - tmake_file="${tmake_file} tilegx/t-crtstuff t-softfp-sfdf t-softfp tilegx/t-tilegx" - md_unwind_header=tilepro/linux-unwind.h - ;; -tilepro*-*-linux*) - tmake_file="${tmake_file} tilepro/t-crtstuff t-softfp-sfdf t-softfp tilepro/t-tilepro t-slibgcc-libgcc" - md_unwind_header=tilepro/linux-unwind.h - ;; v850*-*-*) tmake_file="${tmake_file} v850/t-v850 t-fdpbit" ;; diff --git a/libgcc/config/tilegx/sfp-machine.h b/libgcc/config/tilegx/sfp-machine.h deleted file mode 100644 index 1ce84e1..0000000 --- a/libgcc/config/tilegx/sfp-machine.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifdef __tilegx32__ -#include "config/tilegx/sfp-machine32.h" -#else -#include "config/tilegx/sfp-machine64.h" -#endif diff --git a/libgcc/config/tilegx/sfp-machine32.h b/libgcc/config/tilegx/sfp-machine32.h deleted file mode 100644 index 9fc281c..0000000 --- a/libgcc/config/tilegx/sfp-machine32.h +++ /dev/null @@ -1,68 +0,0 @@ -#define _FP_W_TYPE_SIZE 32 -#define _FP_W_TYPE unsigned long -#define _FP_WS_TYPE signed long -#define _FP_I_TYPE long - -typedef int TItype __attribute__ ((mode (TI))); -typedef unsigned int UTItype __attribute__ ((mode (TI))); - -#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype)) - -/* The type of the result of a floating point comparison. This must - match `__libgcc_cmp_return__' in GCC for the target. */ -typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); -#define CMPtype __gcc_CMPtype - -#define _FP_MUL_MEAT_S(R,X,Y) \ - _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_D(R,X,Y) \ - _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_Q(R,X,Y) \ - _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) - -#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y) -#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) -#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) - -#define _FP_NANFRAC_S _FP_QNANBIT_S -#define _FP_NANFRAC_D _FP_QNANBIT_D, 0 -#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 -#define _FP_NANSIGN_S 1 -#define _FP_NANSIGN_D 1 -#define _FP_NANSIGN_Q 1 - -#define _FP_KEEPNANFRACP 1 -#define _FP_QNANNEGATEDP 0 - -#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ - do { \ - if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ - && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ - { \ - R##_s = Y##_s; \ - _FP_FRAC_COPY_##wc(R,Y); \ - } \ - else \ - { \ - R##_s = X##_s; \ - _FP_FRAC_COPY_##wc(R,X); \ - } \ - R##_c = FP_CLS_NAN; \ - } while (0) - -#define _FP_TININESS_AFTER_ROUNDING 0 - -#define __LITTLE_ENDIAN 1234 -#define __BIG_ENDIAN 4321 - -#if defined __BIG_ENDIAN__ -#define __BYTE_ORDER __BIG_ENDIAN -#else -#define __BYTE_ORDER __LITTLE_ENDIAN -#endif - -/* Define ALIASNAME as a strong alias for NAME. */ -# define strong_alias(name, aliasname) _strong_alias(name, aliasname) -# define _strong_alias(name, aliasname) \ - extern __typeof (name) aliasname __attribute__ ((alias (#name))); - diff --git a/libgcc/config/tilegx/sfp-machine64.h b/libgcc/config/tilegx/sfp-machine64.h deleted file mode 100644 index 5dbbe60..0000000 --- a/libgcc/config/tilegx/sfp-machine64.h +++ /dev/null @@ -1,68 +0,0 @@ -#define _FP_W_TYPE_SIZE 64 -#define _FP_W_TYPE unsigned long -#define _FP_WS_TYPE signed long -#define _FP_I_TYPE long - -typedef int TItype __attribute__ ((mode (TI))); -typedef unsigned int UTItype __attribute__ ((mode (TI))); - -#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype)) - -/* The type of the result of a floating point comparison. This must - match `__libgcc_cmp_return__' in GCC for the target. */ -typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); -#define CMPtype __gcc_CMPtype - -#define _FP_MUL_MEAT_S(R,X,Y) \ - _FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y) -#define _FP_MUL_MEAT_D(R,X,Y) \ - _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_Q(R,X,Y) \ - _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) - -#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm) -#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y) -#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y) - -#define _FP_NANFRAC_S _FP_QNANBIT_S -#define _FP_NANFRAC_D _FP_QNANBIT_D -#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 -#define _FP_NANSIGN_S 1 -#define _FP_NANSIGN_D 1 -#define _FP_NANSIGN_Q 1 - -#define _FP_KEEPNANFRACP 1 -#define _FP_QNANNEGATEDP 0 - -#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ - do { \ - if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ - && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ - { \ - R##_s = Y##_s; \ - _FP_FRAC_COPY_##wc(R,Y); \ - } \ - else \ - { \ - R##_s = X##_s; \ - _FP_FRAC_COPY_##wc(R,X); \ - } \ - R##_c = FP_CLS_NAN; \ - } while (0) - -#define _FP_TININESS_AFTER_ROUNDING 0 - -#define __LITTLE_ENDIAN 1234 -#define __BIG_ENDIAN 4321 - -#if defined __BIG_ENDIAN__ -#define __BYTE_ORDER __BIG_ENDIAN -#else -#define __BYTE_ORDER __LITTLE_ENDIAN -#endif - -/* Define ALIASNAME as a strong alias for NAME. */ -# define strong_alias(name, aliasname) _strong_alias(name, aliasname) -# define _strong_alias(name, aliasname) \ - extern __typeof (name) aliasname __attribute__ ((alias (#name))); - diff --git a/libgcc/config/tilegx/t-crtstuff b/libgcc/config/tilegx/t-crtstuff deleted file mode 100644 index 870318c..0000000 --- a/libgcc/config/tilegx/t-crtstuff +++ /dev/null @@ -1,8 +0,0 @@ -# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, -# because then __FRAME_END__ might not be the last thing in .eh_frame -# section. -CRTSTUFF_T_CFLAGS += -fno-asynchronous-unwind-tables -CRTSTUFF_T_CFLAGS_S += -fno-asynchronous-unwind-tables - -# Compile crtbeginS.o and crtendS.o with -mcmodel=large -CRTSTUFF_T_CFLAGS_S += -mcmodel=large diff --git a/libgcc/config/tilegx/t-softfp b/libgcc/config/tilegx/t-softfp deleted file mode 100644 index a1e3513..0000000 --- a/libgcc/config/tilegx/t-softfp +++ /dev/null @@ -1 +0,0 @@ -softfp_int_modes += ti diff --git a/libgcc/config/tilegx/t-tilegx b/libgcc/config/tilegx/t-tilegx deleted file mode 100644 index 2fb6445..0000000 --- a/libgcc/config/tilegx/t-tilegx +++ /dev/null @@ -1,26 +0,0 @@ -LIB2ADD += \ - $(srcdir)/config/tilepro/atomic.c - -SOFTDIVIDE_FUNCS := \ - _tile_udivsi3 \ - _tile_divsi3 \ - _tile_udivdi3 \ - _tile_divdi3 \ - _tile_umodsi3 \ - _tile_modsi3 \ - _tile_umoddi3 \ - _tile_moddi3 - -softdivide-o = $(patsubst %,%$(objext),$(SOFTDIVIDE_FUNCS)) -$(softdivide-o): %$(objext): $(srcdir)/config/tilepro/softdivide.c - $(gcc_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< \ - $(vis_hide) -libgcc-objects += $(softdivide-o) - -ifeq ($(enable_shared),yes) -softdivide-s-o = $(patsubst %,%_s$(objext),$(SOFTDIVIDE_FUNCS)) -$(softdivide-s-o): %_s$(objext): $(srcdir)/config/tilepro/softdivide.c - $(gcc_s_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< -libgcc-s-objects += $(softdivide-s-o) -libgcc-eh-objects += _tile_divdi3.o _tile_umoddi3.o -endif diff --git a/libgcc/config/tilepro/atomic.c b/libgcc/config/tilepro/atomic.c deleted file mode 100644 index 5de2b7c..0000000 --- a/libgcc/config/tilepro/atomic.c +++ /dev/null @@ -1,397 +0,0 @@ -/* TILE atomics. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file 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 3, or (at your option) any - later version. - - This file 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. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -#include "tconfig.h" -#include "coretypes.h" -#include "atomic.h" - -#define bool unsigned char - -/* This code should be inlined by the compiler, but for now support - it as out-of-line methods in libgcc. */ - -static inline void -pre_atomic_barrier (int model) -{ - switch (model) - { - case __ATOMIC_RELEASE: - case __ATOMIC_ACQ_REL: - case __ATOMIC_SEQ_CST: - __atomic_thread_fence (model); - break; - default: - break; - } - return; -} - -static inline void -post_atomic_barrier (int model) -{ - switch (model) - { - case __ATOMIC_ACQUIRE: - case __ATOMIC_ACQ_REL: - case __ATOMIC_SEQ_CST: - __atomic_thread_fence (model); - break; - default: - break; - } - return; -} - -#define __unused __attribute__((unused)) - -#define __fetch_and_do(proto, type, size, opname, top, bottom) \ -proto \ -{ \ - top; \ - type rv = arch_atomic_##opname(p, i); \ - bottom; \ - return rv; \ -} - -#define __atomic_fetch_and_do(type, size, opname) \ - __fetch_and_do(type __atomic_fetch_##opname##_##size(type* p, type i, int model), \ - type, size, opname, \ - pre_atomic_barrier(model), \ - post_atomic_barrier(model)) \ - -__atomic_fetch_and_do (int, 4, add) -__atomic_fetch_and_do (int, 4, sub) -__atomic_fetch_and_do (int, 4, or) -__atomic_fetch_and_do (int, 4, and) -__atomic_fetch_and_do (int, 4, xor) -__atomic_fetch_and_do (int, 4, nand) -__atomic_fetch_and_do (long long, 8, add) -__atomic_fetch_and_do (long long, 8, sub) -__atomic_fetch_and_do (long long, 8, or) -__atomic_fetch_and_do (long long, 8, and) -__atomic_fetch_and_do (long long, 8, xor) -__atomic_fetch_and_do (long long, 8, nand) - -#define __sync_fetch_and_do(type, size, opname) \ - __fetch_and_do(type __sync_fetch_and_##opname##_##size(type* p, type i), \ - type, size, opname, \ - arch_atomic_write_barrier(), \ - arch_atomic_read_barrier()) - -__sync_fetch_and_do (int, 4, add) -__sync_fetch_and_do (int, 4, sub) -__sync_fetch_and_do (int, 4, or) -__sync_fetch_and_do (int, 4, and) -__sync_fetch_and_do (int, 4, xor) -__sync_fetch_and_do (int, 4, nand) -__sync_fetch_and_do (long long, 8, add) -__sync_fetch_and_do (long long, 8, sub) -__sync_fetch_and_do (long long, 8, or) -__sync_fetch_and_do (long long, 8, and) -__sync_fetch_and_do (long long, 8, xor) -__sync_fetch_and_do (long long, 8, nand) - -#define __do_and_fetch(proto, type, size, opname, op, op2, top, bottom) \ -proto \ -{ \ - top; \ - type rv = op2 (arch_atomic_##opname(p, i) op i); \ - bottom; \ - return rv; \ -} - -#define __atomic_do_and_fetch(type, size, opname, op, op2) \ - __do_and_fetch(type __atomic_##opname##_fetch_##size(type* p, type i, int model), \ - type, size, opname, op, op2, \ - pre_atomic_barrier(model), \ - post_atomic_barrier(model)) \ - -__atomic_do_and_fetch (int, 4, add, +, ) -__atomic_do_and_fetch (int, 4, sub, -, ) -__atomic_do_and_fetch (int, 4, or, |, ) -__atomic_do_and_fetch (int, 4, and, &, ) -__atomic_do_and_fetch (int, 4, xor, |, ) -__atomic_do_and_fetch (int, 4, nand, &, ~) -__atomic_do_and_fetch (long long, 8, add, +, ) -__atomic_do_and_fetch (long long, 8, sub, -, ) -__atomic_do_and_fetch (long long, 8, or, |, ) -__atomic_do_and_fetch (long long, 8, and, &, ) -__atomic_do_and_fetch (long long, 8, xor, |, ) -__atomic_do_and_fetch (long long, 8, nand, &, ~) - -#define __sync_do_and_fetch(type, size, opname, op, op2) \ - __do_and_fetch(type __sync_##opname##_and_fetch_##size(type* p, type i), \ - type, size, opname, op, op2, \ - arch_atomic_write_barrier(), \ - arch_atomic_read_barrier()) \ - -__sync_do_and_fetch (int, 4, add, +, ) -__sync_do_and_fetch (int, 4, sub, -, ) -__sync_do_and_fetch (int, 4, or, |, ) -__sync_do_and_fetch (int, 4, and, &, ) -__sync_do_and_fetch (int, 4, xor, |, ) -__sync_do_and_fetch (int, 4, nand, &, ~) -__sync_do_and_fetch (long long, 8, add, +, ) -__sync_do_and_fetch (long long, 8, sub, -, ) -__sync_do_and_fetch (long long, 8, or, |, ) -__sync_do_and_fetch (long long, 8, and, &, ) -__sync_do_and_fetch (long long, 8, xor, |, ) -__sync_do_and_fetch (long long, 8, nand, &, ~) - -#define __atomic_exchange_methods(type, size) \ -bool \ -__atomic_compare_exchange_##size(volatile type* ptr, type* oldvalp, \ - type newval, bool weak __unused, \ - int models, int modelf __unused) \ -{ \ - type oldval = *oldvalp; \ - pre_atomic_barrier(models); \ - type retval = arch_atomic_val_compare_and_exchange(ptr, oldval, newval); \ - post_atomic_barrier(models); \ - bool success = (retval == oldval); \ - *oldvalp = retval; \ - return success; \ -} \ - \ -type \ -__atomic_exchange_##size(volatile type* ptr, type val, int model) \ -{ \ - pre_atomic_barrier(model); \ - type retval = arch_atomic_exchange(ptr, val); \ - post_atomic_barrier(model); \ - return retval; \ -} - -__atomic_exchange_methods (int, 4) -__atomic_exchange_methods (long long, 8) - -#define __sync_exchange_methods(type, size) \ -type \ -__sync_val_compare_and_swap_##size(type* ptr, type oldval, type newval) \ -{ \ - arch_atomic_write_barrier(); \ - type retval = arch_atomic_val_compare_and_exchange(ptr, oldval, newval); \ - arch_atomic_read_barrier(); \ - return retval; \ -} \ - \ -bool \ -__sync_bool_compare_and_swap_##size(type* ptr, type oldval, type newval) \ -{ \ - arch_atomic_write_barrier(); \ - bool retval = arch_atomic_bool_compare_and_exchange(ptr, oldval, newval); \ - arch_atomic_read_barrier(); \ - return retval; \ -} \ - \ -type \ -__sync_lock_test_and_set_##size(type* ptr, type val) \ -{ \ - type retval = arch_atomic_exchange(ptr, val); \ - arch_atomic_acquire_barrier_value(retval); \ - return retval; \ -} - -__sync_exchange_methods (int, 4) -__sync_exchange_methods (long long, 8) - -#ifdef __LITTLE_ENDIAN__ -#define BIT_OFFSET(n, type) ((n) * 8) -#else -#define BIT_OFFSET(n, type) ((4 - sizeof(type) - (n)) * 8) -#endif - -/* Subword methods require the same approach for both TILEPro and - TILE-Gx. We load the background data for the word, insert the - desired subword piece, then compare-and-exchange it into place. */ -#define u8 unsigned char -#define u16 unsigned short - -#define __subword_cmpxchg_body(type, size, ptr, guess, val) \ - ({ \ - unsigned int *p = (unsigned int *)((unsigned long)ptr & ~3UL); \ - const int shift = BIT_OFFSET((unsigned long)ptr & 3UL, type); \ - const unsigned int valmask = (1 << (sizeof(type) * 8)) - 1; \ - const unsigned int bgmask = ~(valmask << shift); \ - unsigned int oldword = *p; \ - type oldval = (oldword >> shift) & valmask; \ - if (__builtin_expect((oldval == guess), 1)) { \ - unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \ - oldword = arch_atomic_val_compare_and_exchange(p, oldword, word); \ - oldval = (oldword >> shift) & valmask; \ - } \ - oldval; \ - }) \ - -#define __atomic_subword_cmpxchg(type, size) \ - \ -bool \ -__atomic_compare_exchange_##size(volatile type* ptr, type* guess_ptr, \ - type val, bool weak __unused, int models, \ - int modelf __unused) \ -{ \ - pre_atomic_barrier(models); \ - type guess = *guess_ptr; \ - type oldval = __subword_cmpxchg_body(type, size, ptr, guess, val); \ - post_atomic_barrier(models); \ - bool success = (oldval == guess); \ - *guess_ptr = oldval; \ - return success; \ -} - -__atomic_subword_cmpxchg (u8, 1) -__atomic_subword_cmpxchg (u16, 2) - -#define __sync_subword_cmpxchg(type, size) \ - \ -type \ -__sync_val_compare_and_swap_##size(type* ptr, type guess, type val) \ -{ \ - arch_atomic_write_barrier(); \ - type oldval = __subword_cmpxchg_body(type, size, ptr, guess, val); \ - arch_atomic_read_barrier(); \ - return oldval; \ -} \ - \ -bool \ -__sync_bool_compare_and_swap_##size(type* ptr, type guess, type val) \ -{ \ - type oldval = __sync_val_compare_and_swap_##size(ptr, guess, val); \ - return oldval == guess; \ -} - -__sync_subword_cmpxchg (u8, 1) -__sync_subword_cmpxchg (u16, 2) - -/* For the atomic-update subword methods, we use the same approach as - above, but we retry until we succeed if the compare-and-exchange - fails. */ -#define __subword(type, proto, top, expr, bottom) \ -proto \ -{ \ - top \ - unsigned int *p = (unsigned int *)((unsigned long)ptr & ~3UL); \ - const int shift = BIT_OFFSET((unsigned long)ptr & 3UL, type); \ - const unsigned int valmask = (1 << (sizeof(type) * 8)) - 1; \ - const unsigned int bgmask = ~(valmask << shift); \ - unsigned int oldword, xword = *p; \ - type val, oldval; \ - do { \ - oldword = xword; \ - oldval = (oldword >> shift) & valmask; \ - val = expr; \ - unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \ - xword = arch_atomic_val_compare_and_exchange(p, oldword, word); \ - } while (__builtin_expect(xword != oldword, 0)); \ - bottom \ -} - -#define __atomic_subword_fetch(type, funcname, expr, retval) \ - __subword(type, \ - type __atomic_ ## funcname(volatile type *ptr, type i, int model), \ - pre_atomic_barrier(model);, \ - expr, \ - post_atomic_barrier(model); return retval;) - -__atomic_subword_fetch (u8, fetch_add_1, oldval + i, oldval) -__atomic_subword_fetch (u8, fetch_sub_1, oldval - i, oldval) -__atomic_subword_fetch (u8, fetch_or_1, oldval | i, oldval) -__atomic_subword_fetch (u8, fetch_and_1, oldval & i, oldval) -__atomic_subword_fetch (u8, fetch_xor_1, oldval ^ i, oldval) -__atomic_subword_fetch (u8, fetch_nand_1, ~(oldval & i), oldval) - -__atomic_subword_fetch (u16, fetch_add_2, oldval + i, oldval) -__atomic_subword_fetch (u16, fetch_sub_2, oldval - i, oldval) -__atomic_subword_fetch (u16, fetch_or_2, oldval | i, oldval) -__atomic_subword_fetch (u16, fetch_and_2, oldval & i, oldval) -__atomic_subword_fetch (u16, fetch_xor_2, oldval ^ i, oldval) -__atomic_subword_fetch (u16, fetch_nand_2, ~(oldval & i), oldval) - -__atomic_subword_fetch (u8, add_fetch_1, oldval + i, val) -__atomic_subword_fetch (u8, sub_fetch_1, oldval - i, val) -__atomic_subword_fetch (u8, or_fetch_1, oldval | i, val) -__atomic_subword_fetch (u8, and_fetch_1, oldval & i, val) -__atomic_subword_fetch (u8, xor_fetch_1, oldval ^ i, val) -__atomic_subword_fetch (u8, nand_fetch_1, ~(oldval & i), val) - -__atomic_subword_fetch (u16, add_fetch_2, oldval + i, val) -__atomic_subword_fetch (u16, sub_fetch_2, oldval - i, val) -__atomic_subword_fetch (u16, or_fetch_2, oldval | i, val) -__atomic_subword_fetch (u16, and_fetch_2, oldval & i, val) -__atomic_subword_fetch (u16, xor_fetch_2, oldval ^ i, val) -__atomic_subword_fetch (u16, nand_fetch_2, ~(oldval & i), val) - -#define __sync_subword_fetch(type, funcname, expr, retval) \ - __subword(type, \ - type __sync_ ## funcname(type *ptr, type i), \ - arch_atomic_read_barrier();, \ - expr, \ - arch_atomic_write_barrier(); return retval;) - -__sync_subword_fetch (u8, fetch_and_add_1, oldval + i, oldval) -__sync_subword_fetch (u8, fetch_and_sub_1, oldval - i, oldval) -__sync_subword_fetch (u8, fetch_and_or_1, oldval | i, oldval) -__sync_subword_fetch (u8, fetch_and_and_1, oldval & i, oldval) -__sync_subword_fetch (u8, fetch_and_xor_1, oldval ^ i, oldval) -__sync_subword_fetch (u8, fetch_and_nand_1, ~(oldval & i), oldval) - -__sync_subword_fetch (u16, fetch_and_add_2, oldval + i, oldval) -__sync_subword_fetch (u16, fetch_and_sub_2, oldval - i, oldval) -__sync_subword_fetch (u16, fetch_and_or_2, oldval | i, oldval) -__sync_subword_fetch (u16, fetch_and_and_2, oldval & i, oldval) -__sync_subword_fetch (u16, fetch_and_xor_2, oldval ^ i, oldval) -__sync_subword_fetch (u16, fetch_and_nand_2, ~(oldval & i), oldval) - -__sync_subword_fetch (u8, add_and_fetch_1, oldval + i, val) -__sync_subword_fetch (u8, sub_and_fetch_1, oldval - i, val) -__sync_subword_fetch (u8, or_and_fetch_1, oldval | i, val) -__sync_subword_fetch (u8, and_and_fetch_1, oldval & i, val) -__sync_subword_fetch (u8, xor_and_fetch_1, oldval ^ i, val) -__sync_subword_fetch (u8, nand_and_fetch_1, ~(oldval & i), val) - -__sync_subword_fetch (u16, add_and_fetch_2, oldval + i, val) -__sync_subword_fetch (u16, sub_and_fetch_2, oldval - i, val) -__sync_subword_fetch (u16, or_and_fetch_2, oldval | i, val) -__sync_subword_fetch (u16, and_and_fetch_2, oldval & i, val) -__sync_subword_fetch (u16, xor_and_fetch_2, oldval ^ i, val) -__sync_subword_fetch (u16, nand_and_fetch_2, ~(oldval & i), val) - -#define __atomic_subword_lock(type, size) \ - __subword(type, \ - type __atomic_exchange_##size(volatile type* ptr, type nval, int model), \ - pre_atomic_barrier(model);, \ - nval, \ - post_atomic_barrier(model); return oldval;) - -__atomic_subword_lock (u8, 1) -__atomic_subword_lock (u16, 2) - -#define __sync_subword_lock(type, size) \ - __subword(type, \ - type __sync_lock_test_and_set_##size(type* ptr, type nval), \ - , \ - nval, \ - arch_atomic_acquire_barrier_value(oldval); return oldval;) - -__sync_subword_lock (u8, 1) -__sync_subword_lock (u16, 2) diff --git a/libgcc/config/tilepro/atomic.h b/libgcc/config/tilepro/atomic.h deleted file mode 100644 index 34547bb..0000000 --- a/libgcc/config/tilepro/atomic.h +++ /dev/null @@ -1,437 +0,0 @@ -/* Macros for atomic functionality for tile. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file 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 3, or (at your option) any - later version. - - This file 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. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - - -/* Provides macros for common atomic functionality. */ - -#ifndef _ATOMIC_H_ -#define _ATOMIC_H_ - -#ifdef __tilegx__ -/* Atomic instruction macros - - The macros provided by atomic.h simplify access to the TILE-Gx - architecture's atomic instructions. The architecture provides a - variety of atomic instructions, including "exchange", "compare and - exchange", "fetch and ADD", "fetch and AND", "fetch and OR", and - "fetch and ADD if greater than or equal to zero". - - No barrier or fence semantics are implied by any of the atomic - instructions for manipulating memory; you must specify the barriers - that you wish explicitly, using the provided macros. - - Any integral 32- or 64-bit value can be used as the argument - to these macros, such as "int", "long long", "unsigned long", etc. - The pointers must be aligned to 4 or 8 bytes for 32- or 64-bit data. - The "exchange" and "compare and exchange" macros may also take - pointer values. We use the pseudo-type "VAL" in the documentation - to indicate the use of an appropriate type. */ -#else -/* Atomic instruction macros - - The macros provided by atomic.h simplify access to the Tile - architecture's atomic instructions. Since the architecture - supports test-and-set as its only in-silicon atomic operation, many - of the operations provided by this header are implemented as - fast-path calls to Linux emulation routines. - - Using the kernel for atomic operations allows userspace to take - advantage of the kernel's existing atomic-integer support (managed - by a distributed array of locks). The kernel provides proper - ordering among simultaneous atomic operations on different cores, - and guarantees a process cannot be context-switched part way - through an atomic operation. By virtue of sharing the kernel - atomic implementation, the userspace atomic operations - are compatible with the atomic methods provided by the kernel's - futex() syscall API. Note that these operations never cause Linux - kernel scheduling, and are in fact invisible to the kernel; they - simply act as regular function calls but with an elevated privilege - level. Note that the kernel's distributed lock array is hashed by - using only VA bits from the atomic value's address (to avoid the - performance hit of page table locking and multiple page-table - lookups to get the PA) and only the VA bits that are below page - granularity (to properly lock simultaneous accesses to the same - page mapped at different VAs). As a result, simultaneous atomic - operations on values whose addresses are at the same offset on a - page will contend in the kernel for the same lock array element. - - No barrier or fence semantics are implied by any of the atomic - instructions for manipulating memory; you must specify the barriers - that you wish explicitly, using the provided macros. - - Any integral 32- or 64-bit value can be used as the argument - to these macros, such as "int", "long long", "unsigned long", etc. - The pointers must be aligned to 4 or 8 bytes for 32- or 64-bit data. - The "exchange" and "compare and exchange" macros may also take - pointer values. We use the pseudo-type "VAL" in the documentation - to indicate the use of an appropriate type. - - The 32-bit routines are implemented using a single kernel fast - syscall, as is the 64-bit compare-and-exchange. The other 64-bit - routines are implemented by looping over the 64-bit - compare-and-exchange routine, so may be potentially less efficient. */ -#endif - -#ifdef __tilegx__ -#define SPR_CMPEXCH_VALUE 0x2780 -#else -#define __NR_FAST_cmpxchg -1 -#define __NR_FAST_atomic_update -2 -#define __NR_FAST_cmpxchg64 -3 -#endif - - -/* 32-bit integer compare-and-exchange. */ -static __inline __attribute__ ((always_inline)) - int arch_atomic_val_compare_and_exchange_4 (volatile int *mem, - int oldval, int newval) -{ -#ifdef __tilegx__ - __insn_mtspr (SPR_CMPEXCH_VALUE, oldval); - return __insn_cmpexch4 (mem, newval); -#else - int result; - __asm__ __volatile__ ("swint1":"=R00" (result), - "=m" (*mem):"R10" (__NR_FAST_cmpxchg), "R00" (mem), - "R01" (oldval), "R02" (newval), "m" (*mem):"r20", - "r21", "r22", "r23", "r24", "r25", "r26", "r27", - "r28", "r29", "memory"); - return result; -#endif -} - -/* 64-bit integer compare-and-exchange. */ -static __inline __attribute__ ((always_inline)) - long long arch_atomic_val_compare_and_exchange_8 (volatile long long - *mem, long long oldval, - long long newval) -{ -#ifdef __tilegx__ - __insn_mtspr (SPR_CMPEXCH_VALUE, oldval); - return __insn_cmpexch (mem, newval); -#else - unsigned int result_lo, result_hi; - unsigned int oldval_lo = oldval & 0xffffffffu, oldval_hi = oldval >> 32; - unsigned int newval_lo = newval & 0xffffffffu, newval_hi = newval >> 32; - __asm__ __volatile__ ("swint1":"=R00" (result_lo), "=R01" (result_hi), - "=m" (*mem):"R10" (__NR_FAST_cmpxchg64), "R00" (mem), - "R02" (oldval_lo), "R03" (oldval_hi), - "R04" (newval_lo), "R05" (newval_hi), - "m" (*mem):"r20", "r21", "r22", "r23", "r24", "r25", - "r26", "r27", "r28", "r29", "memory"); - return ((long long) result_hi) << 32 | result_lo; -#endif -} - -/* This non-existent symbol is called for sizes other than "4" and "8", - indicating a bug in the caller. */ -extern int __arch_atomic_error_bad_argument_size (void) - __attribute__ ((warning ("sizeof atomic argument not 4 or 8"))); - - -#define arch_atomic_val_compare_and_exchange(mem, o, n) \ - __extension__ ({ \ - (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \ - ((sizeof(*(mem)) == 8) ? \ - arch_atomic_val_compare_and_exchange_8( \ - (volatile long long*)(mem), (__typeof((o)-(o)))(o), \ - (__typeof((n)-(n)))(n)) : \ - (sizeof(*(mem)) == 4) ? \ - arch_atomic_val_compare_and_exchange_4( \ - (volatile int*)(mem), (__typeof((o)-(o)))(o), \ - (__typeof((n)-(n)))(n)) : \ - __arch_atomic_error_bad_argument_size()); \ - }) - -#define arch_atomic_bool_compare_and_exchange(mem, o, n) \ - __extension__ ({ \ - __typeof(o) __o = (o); \ - __builtin_expect( \ - __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \ - }) - - -/* Loop with compare_and_exchange until we guess the correct value. - Normally "expr" will be an expression using __old and __value. */ -#define __arch_atomic_update_cmpxchg(mem, value, expr) \ - __extension__ ({ \ - __typeof(value) __value = (value); \ - __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess; \ - do { \ - __guess = __old; \ - __old = arch_atomic_val_compare_and_exchange(__mem, __old, (expr)); \ - } while (__builtin_expect(__old != __guess, 0)); \ - __old; \ - }) - -#ifdef __tilegx__ - -/* Generic atomic op with 8- or 4-byte variant. - The _mask, _addend, and _expr arguments are ignored on tilegx. */ -#define __arch_atomic_update(mem, value, op, _mask, _addend, _expr) \ - __extension__ ({ \ - ((__typeof(*(mem))) \ - ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op( \ - (volatile void *)(mem), \ - (long long)(__typeof((value)-(value)))(value)) : \ - (sizeof(*(mem)) == 4) ? (int)__insn_##op##4( \ - (volatile void *)(mem), \ - (int)(__typeof((value)-(value)))(value)) : \ - __arch_atomic_error_bad_argument_size())); \ - }) - -#else - -/* This uses TILEPro's fast syscall support to atomically compute: - - int old = *ptr; - *ptr = (old & mask) + addend; - return old; - - This primitive can be used for atomic exchange, add, or, and. - Only 32-bit support is provided. */ -static __inline __attribute__ ((always_inline)) - int - __arch_atomic_update_4 (volatile int *mem, int mask, int addend) -{ - int result; - __asm__ __volatile__ ("swint1":"=R00" (result), - "=m" (*mem):"R10" (__NR_FAST_atomic_update), - "R00" (mem), "R01" (mask), "R02" (addend), - "m" (*mem):"r20", "r21", "r22", "r23", "r24", "r25", - "r26", "r27", "r28", "r29", "memory"); - return result; -} - -/* Generic atomic op with 8- or 4-byte variant. - The _op argument is ignored on tilepro. */ -#define __arch_atomic_update(mem, value, _op, mask, addend, expr) \ - __extension__ ({ \ - (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \ - ((sizeof(*(mem)) == 8) ? \ - __arch_atomic_update_cmpxchg((mem), (value), (expr)) : \ - (sizeof(*(mem)) == 4) ? \ - __arch_atomic_update_4((volatile int*)(mem), \ - (__typeof((mask)-(mask)))(mask), \ - (__typeof((addend)-(addend)))(addend)) : \ - __arch_atomic_error_bad_argument_size()); \ - }) - -#endif /* __tilegx__ */ - - -#define arch_atomic_exchange(mem, newvalue) \ - __arch_atomic_update(mem, newvalue, exch, 0, newvalue, __value) - -#define arch_atomic_add(mem, value) \ - __arch_atomic_update(mem, value, fetchadd, -1, value, __old + __value) - -#define arch_atomic_sub(mem, value) arch_atomic_add((mem), -(value)) - -#define arch_atomic_increment(mem) arch_atomic_add((mem), 1) - -#define arch_atomic_decrement(mem) arch_atomic_add((mem), -1) - -#define arch_atomic_and(mem, mask) \ - __arch_atomic_update(mem, mask, fetchand, mask, 0, __old & __value) - -#define arch_atomic_or(mem, mask) \ - __arch_atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value) - -#define arch_atomic_xor(mem, mask) \ - __arch_atomic_update_cmpxchg(mem, mask, __old ^ __value) - -#define arch_atomic_nand(mem, mask) \ - __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value)) - -#define arch_atomic_bit_set(mem, bit) \ - __extension__ ({ \ - __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \ - __mask & arch_atomic_or((mem), __mask); \ - }) - -#define arch_atomic_bit_clear(mem, bit) \ - __extension__ ({ \ - __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \ - __mask & arch_atomic_and((mem), ~__mask); \ - }) - -#ifdef __tilegx__ -/* Atomically store a new value to memory. - Note that you can freely use types of any size here, unlike the - other atomic routines, which require 32- or 64-bit types. - This accessor is provided for compatibility with TILEPro, which - required an explicit atomic operation for stores that needed - to be atomic with respect to other atomic methods in this header. */ -#define arch_atomic_write(mem, value) ((void) (*(mem) = (value))) -#else -#define arch_atomic_write(mem, value) \ - do { \ - __typeof(mem) __aw_mem = (mem); \ - __typeof(value) __aw_val = (value); \ - unsigned int *__aw_mem32, __aw_intval, __aw_val32, __aw_off, __aw_mask; \ - __aw_intval = (__typeof((value) - (value)))__aw_val; \ - switch (sizeof(*__aw_mem)) { \ - case 8: \ - __arch_atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \ - break; \ - case 4: \ - __arch_atomic_update_4((int *)__aw_mem, 0, __aw_intval); \ - break; \ - case 2: \ - __aw_off = 8 * ((long)__aw_mem & 0x2); \ - __aw_mask = 0xffffU << __aw_off; \ - __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x2); \ - __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \ - __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ - (__old & ~__aw_mask) | __value); \ - break; \ - case 1: \ - __aw_off = 8 * ((long)__aw_mem & 0x3); \ - __aw_mask = 0xffU << __aw_off; \ - __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x3); \ - __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \ - __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ - (__old & ~__aw_mask) | __value); \ - break; \ - } \ - } while (0) -#endif - -/* Compiler barrier. - - This macro prevents loads or stores from being moved by the compiler - across the macro. Any loaded value that was loaded before this - macro must then be reloaded by the compiler. */ -#define arch_atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory") - -/* Full memory barrier. - - This macro has the semantics of arch_atomic_compiler_barrer(), but also - ensures that previous stores are visible to other cores, and that - all previous loaded values have been placed into their target - register on this core. */ -#define arch_atomic_full_barrier() __insn_mf() - -/* Read memory barrier. - - Ensure that all reads by this processor that occurred prior to the - read memory barrier have completed, and that no reads that occur - after the read memory barrier on this processor are initiated - before the barrier. - - On current TILE chips a read barrier is implemented as a full barrier, - but this may not be true in later versions of the architecture. - - See also arch_atomic_acquire_barrier() for the appropriate idiom to use - to ensure no reads are lifted above an atomic lock instruction. */ -#define arch_atomic_read_barrier() arch_atomic_full_barrier() - -/* Write memory barrier. - - Ensure that all writes by this processor that occurred prior to the - write memory barrier have completed, and that no writes that occur - after the write memory barrier on this processor are initiated - before the barrier. - - On current TILE chips a write barrier is implemented as a full barrier, - but this may not be true in later versions of the architecture. - - See also arch_atomic_release_barrier() for the appropriate idiom to use - to ensure all writes are complete prior to an atomic unlock instruction. */ -#define arch_atomic_write_barrier() arch_atomic_full_barrier() - -/* Lock acquisition barrier. - - Ensure that no load operations that follow this macro in the - program can issue prior to the barrier. Without such a barrier, - the compiler can reorder them to issue earlier, or the hardware can - issue them speculatively. The latter is not currently done in the - Tile microarchitecture, but using this operation improves - portability to future implementations. - - This operation is intended to be used as part of the "acquire" - path for locking, that is, when entering a critical section. - This should be done after the atomic operation that actually - acquires the lock, and in conjunction with a "control dependency" - that checks the atomic operation result to see if the lock was - in fact acquired. See the arch_atomic_read_barrier() macro - for a heavier-weight barrier to use in certain unusual constructs, - or arch_atomic_acquire_barrier_value() if no control dependency exists. */ -#define arch_atomic_acquire_barrier() arch_atomic_compiler_barrier() - -/* Lock release barrier. - - Ensure that no store operations that precede this macro in the - program complete subsequent to the barrier. Without such a - barrier, the compiler can reorder stores to issue later, or stores - can be still outstanding in the memory network. - - This operation is intended to be used as part of the "release" path - for locking, that is, when leaving a critical section. This should - be done before the operation (such as a store of zero) that - actually releases the lock. */ -#define arch_atomic_release_barrier() arch_atomic_write_barrier() - -/* Barrier until the read of a particular value is complete. - - This is occasionally useful when constructing certain locking - scenarios. For example, you might write a routine that issues an - atomic instruction to enter a critical section, then reads one or - more values within the critical section without checking to see if - the critical section was in fact acquired, and only later checks - the atomic instruction result to see if the lock was acquired. If - so the routine could properly release the lock and know that the - values that were read were valid. - - In this scenario, it is required to wait for the result of the - atomic instruction, even if the value itself is not checked. This - guarantees that if the atomic instruction succeeded in taking the lock, - the lock was held before any reads in the critical section issued. */ -#define arch_atomic_acquire_barrier_value(val) \ - __asm__ __volatile__("move %0, %0" :: "r"(val)) - -/* Access the given variable in memory exactly once. - - In some contexts, an algorithm may need to force access to memory, - since otherwise the compiler may think it can optimize away a - memory load or store; for example, in a loop when polling memory to - see if another cpu has updated it yet. Generally this is only - required for certain very carefully hand-tuned algorithms; using it - unnecessarily may result in performance losses. - - A related use of this macro is to ensure that the compiler does not - rematerialize the value of "x" by reloading it from memory - unexpectedly; the "volatile" marking will prevent the compiler from - being able to rematerialize. This is helpful if an algorithm needs - to read a variable without locking, but needs it to have the same - value if it ends up being used several times within the algorithm. - - Note that multiple uses of this macro are guaranteed to be ordered, - i.e. the compiler will not reorder stores or loads that are wrapped - in arch_atomic_access_once(). */ -#define arch_atomic_access_once(x) (*(volatile __typeof(x) *)&(x)) - - - -#endif /* !_ATOMIC_H_ */ diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h deleted file mode 100644 index a6874e8..0000000 --- a/libgcc/config/tilepro/linux-unwind.h +++ /dev/null @@ -1,99 +0,0 @@ -/* DWARF2 EH unwinding support for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - -This file is part of GCC. - -GCC 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 3, or (at your option) -any later version. - -GCC 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. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef inhibit_libc - -#include -#include -#include -#include - -/* Macro to define a copy of the kernel's __rt_sigreturn function - (in arch/tile/kernel/entry.S). If that function is changed, - this one needs to be changed to match it. */ -#define _sigreturn_asm(REG, NR) asm( \ - ".pushsection .text.__rt_sigreturn,\"a\"\n" \ - ".global __rt_sigreturn\n" \ - ".type __rt_sigreturn,@function\n" \ - "__rt_sigreturn:\n" \ - "moveli " #REG ", " #NR "\n" \ - "swint1\n" \ - ".size __rt_sigreturn, . - __rt_sigreturn\n" \ - ".popsection") -#define sigreturn_asm(REG, NR) _sigreturn_asm(REG, NR) -sigreturn_asm (TREG_SYSCALL_NR_NAME, __NR_rt_sigreturn); -#define SIGRETURN_LEN 16 -extern char __rt_sigreturn[]; - -#define MD_FALLBACK_FRAME_STATE_FOR tile_fallback_frame_state - -static _Unwind_Reason_Code -tile_fallback_frame_state (struct _Unwind_Context *context, - _Unwind_FrameState *fs) -{ - unsigned char *pc = context->ra; - struct sigcontext *sc; - long new_cfa; - int i; - - struct rt_sigframe { - unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; - siginfo_t info; - ucontext_t uc; - } *rt_; - - /* Return if this is not a signal handler. */ - if (memcmp (pc, __rt_sigreturn, SIGRETURN_LEN) != 0) - return _URC_END_OF_STACK; - - /* It was a signal handler; update the reported PC to point to our - copy, since that will be findable with dladdr() and therefore - somewhat easier to help understand what actually happened. */ - context->ra = __rt_sigreturn; - - rt_ = context->cfa; - sc = &rt_->uc.uc_mcontext; - - new_cfa = sc->sp; - fs->regs.cfa_how = CFA_REG_OFFSET; - fs->regs.cfa_reg = __LIBGCC_STACK_POINTER_REGNUM__; - fs->regs.cfa_offset = new_cfa - (long) context->cfa; - - for (i = 0; i < 56; ++i) - { - fs->regs.reg[i].how = REG_SAVED_OFFSET; - fs->regs.reg[i].loc.offset - = (long)&sc->gregs[i] - new_cfa; - } - - fs->regs.reg[56].how = REG_SAVED_OFFSET; - fs->regs.reg[56].loc.offset = (long)&sc->pc - new_cfa; - fs->retaddr_column = 56; - fs->signal_frame = 1; - - return _URC_NO_REASON; -} - -#endif /* ifdef inhibit_libc */ diff --git a/libgcc/config/tilepro/sfp-machine.h b/libgcc/config/tilepro/sfp-machine.h deleted file mode 100644 index 6953d8d..0000000 --- a/libgcc/config/tilepro/sfp-machine.h +++ /dev/null @@ -1,59 +0,0 @@ -#define _FP_W_TYPE_SIZE 32 -#define _FP_W_TYPE unsigned long -#define _FP_WS_TYPE signed long -#define _FP_I_TYPE long - -/* The type of the result of a floating point comparison. This must - match `__libgcc_cmp_return__' in GCC for the target. */ -typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); -#define CMPtype __gcc_CMPtype - -#define _FP_MUL_MEAT_S(R,X,Y) \ - _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_D(R,X,Y) \ - _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) -#define _FP_MUL_MEAT_Q(R,X,Y) \ - _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) - -#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y) -#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) -#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) - -#define _FP_NANFRAC_S _FP_QNANBIT_S -#define _FP_NANFRAC_D _FP_QNANBIT_D, 0 -#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 -#define _FP_NANSIGN_S 1 -#define _FP_NANSIGN_D 1 -#define _FP_NANSIGN_Q 1 - -#define _FP_KEEPNANFRACP 1 -#define _FP_QNANNEGATEDP 0 - -#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ - do { \ - if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ - && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ - { \ - R##_s = Y##_s; \ - _FP_FRAC_COPY_##wc(R,Y); \ - } \ - else \ - { \ - R##_s = X##_s; \ - _FP_FRAC_COPY_##wc(R,X); \ - } \ - R##_c = FP_CLS_NAN; \ - } while (0) - -#define _FP_TININESS_AFTER_ROUNDING 0 - -#define __LITTLE_ENDIAN 1234 -#define __BIG_ENDIAN 4321 - -#define __BYTE_ORDER __LITTLE_ENDIAN - -/* Define ALIASNAME as a strong alias for NAME. */ -# define strong_alias(name, aliasname) _strong_alias(name, aliasname) -# define _strong_alias(name, aliasname) \ - extern __typeof (name) aliasname __attribute__ ((alias (#name))); - diff --git a/libgcc/config/tilepro/softdivide.c b/libgcc/config/tilepro/softdivide.c deleted file mode 100644 index fea45bd..0000000 --- a/libgcc/config/tilepro/softdivide.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Division and remainder routines for Tile. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file 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 3, or (at your option) any - later version. - - This file 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. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -typedef int int32_t; -typedef unsigned uint32_t; -typedef long long int64_t; -typedef unsigned long long uint64_t; - -/* Raise signal 8 (SIGFPE) with code 1 (FPE_INTDIV). */ -static inline void -raise_intdiv (void) -{ - asm ("{ raise; moveli zero, 8 + (1 << 6) }"); -} - - -#ifndef __tilegx__ -/*__udivsi3 - 32 bit integer unsigned divide */ -static inline uint32_t __attribute__ ((always_inline)) -__udivsi3_inline (uint32_t dividend, uint32_t divisor) -{ - /* Divide out any power of two factor from dividend and divisor. - Note that when dividing by zero the divisor will remain zero, - which is all we need to detect that case below. */ - const int power_of_two_factor = __insn_ctz (divisor); - divisor >>= power_of_two_factor; - dividend >>= power_of_two_factor; - - /* Checks for division by power of two or division by zero. */ - if (divisor <= 1) - { - if (divisor == 0) - { - raise_intdiv (); - return 0; - } - return dividend; - } - - /* Compute (a / b) by repeatedly finding the largest N - such that (b << N) <= a. For each such N, set bit N in the - quotient, subtract (b << N) from a, and keep going. Think of this as - the reverse of the "shift-and-add" that a multiply does. The values - of N are precisely those shift counts. - - Finding N is easy. First, use clz(b) - clz(a) to find the N - that lines up the high bit of (b << N) with the high bit of a. - Any larger value of N would definitely make (b << N) > a, - which is too big. - - Then, if (b << N) > a (because it has larger low bits), decrement - N by one. This adjustment will definitely make (b << N) less - than a, because a's high bit is now one higher than b's. */ - - /* Precomputing the max_ values allows us to avoid a subtract - in the inner loop and just right shift by clz(remainder). */ - const int divisor_clz = __insn_clz (divisor); - const uint32_t max_divisor = divisor << divisor_clz; - const uint32_t max_qbit = 1 << divisor_clz; - - uint32_t quotient = 0; - uint32_t remainder = dividend; - - while (remainder >= divisor) - { - int shift = __insn_clz (remainder); - uint32_t scaled_divisor = max_divisor >> shift; - uint32_t quotient_bit = max_qbit >> shift; - - int too_big = (scaled_divisor > remainder); - scaled_divisor >>= too_big; - quotient_bit >>= too_big; - remainder -= scaled_divisor; - quotient |= quotient_bit; - } - return quotient; -} -#endif /* !__tilegx__ */ - - -/* __udivdi3 - 64 bit integer unsigned divide */ -static inline uint64_t __attribute__ ((always_inline)) -__udivdi3_inline (uint64_t dividend, uint64_t divisor) -{ - /* Divide out any power of two factor from dividend and divisor. - Note that when dividing by zero the divisor will remain zero, - which is all we need to detect that case below. */ - const int power_of_two_factor = __builtin_ctzll (divisor); - divisor >>= power_of_two_factor; - dividend >>= power_of_two_factor; - - /* Checks for division by power of two or division by zero. */ - if (divisor <= 1) - { - if (divisor == 0) - { - raise_intdiv (); - return 0; - } - return dividend; - } - -#ifndef __tilegx__ - if (((uint32_t) (dividend >> 32) | ((uint32_t) (divisor >> 32))) == 0) - { - /* Operands both fit in 32 bits, so use faster 32 bit algorithm. */ - return __udivsi3_inline ((uint32_t) dividend, (uint32_t) divisor); - } -#endif /* !__tilegx__ */ - - /* See algorithm description in __udivsi3 */ - - const int divisor_clz = __builtin_clzll (divisor); - const uint64_t max_divisor = divisor << divisor_clz; - const uint64_t max_qbit = 1ULL << divisor_clz; - - uint64_t quotient = 0; - uint64_t remainder = dividend; - - while (remainder >= divisor) - { - int shift = __builtin_clzll (remainder); - uint64_t scaled_divisor = max_divisor >> shift; - uint64_t quotient_bit = max_qbit >> shift; - - int too_big = (scaled_divisor > remainder); - scaled_divisor >>= too_big; - quotient_bit >>= too_big; - remainder -= scaled_divisor; - quotient |= quotient_bit; - } - return quotient; -} - - -#ifndef __tilegx__ -/* __umodsi3 - 32 bit integer unsigned modulo */ -static inline uint32_t __attribute__ ((always_inline)) -__umodsi3_inline (uint32_t dividend, uint32_t divisor) -{ - /* Shortcircuit mod by a power of two (and catch mod by zero). */ - const uint32_t mask = divisor - 1; - if ((divisor & mask) == 0) - { - if (divisor == 0) - { - raise_intdiv (); - return 0; - } - return dividend & mask; - } - - /* We compute the remainder (a % b) by repeatedly subtracting off - multiples of b from a until a < b. The key is that subtracting - off a multiple of b does not affect the result mod b. - - To make the algorithm run efficiently, we need to subtract - off a large multiple of b at each step. We subtract the largest - (b << N) that is <= a. - - Finding N is easy. First, use clz(b) - clz(a) to find the N - that lines up the high bit of (b << N) with the high bit of a. - Any larger value of N would definitely make (b << N) > a, - which is too big. - - Then, if (b << N) > a (because it has larger low bits), decrement - N by one. This adjustment will definitely make (b << N) less - than a, because a's high bit is now one higher than b's. */ - const uint32_t max_divisor = divisor << __insn_clz (divisor); - - uint32_t remainder = dividend; - while (remainder >= divisor) - { - const int shift = __insn_clz (remainder); - uint32_t scaled_divisor = max_divisor >> shift; - scaled_divisor >>= (scaled_divisor > remainder); - remainder -= scaled_divisor; - } - - return remainder; -} -#endif /* !__tilegx__ */ - - -/* __umoddi3 - 64 bit integer unsigned modulo */ -static inline uint64_t __attribute__ ((always_inline)) -__umoddi3_inline (uint64_t dividend, uint64_t divisor) -{ -#ifndef __tilegx__ - if (((uint32_t) (dividend >> 32) | ((uint32_t) (divisor >> 32))) == 0) - { - /* Operands both fit in 32 bits, so use faster 32 bit algorithm. */ - return __umodsi3_inline ((uint32_t) dividend, (uint32_t) divisor); - } -#endif /* !__tilegx__ */ - - /* Shortcircuit mod by a power of two (and catch mod by zero). */ - const uint64_t mask = divisor - 1; - if ((divisor & mask) == 0) - { - if (divisor == 0) - { - raise_intdiv (); - return 0; - } - return dividend & mask; - } - - /* See algorithm description in __umodsi3 */ - const uint64_t max_divisor = divisor << __builtin_clzll (divisor); - - uint64_t remainder = dividend; - while (remainder >= divisor) - { - const int shift = __builtin_clzll (remainder); - uint64_t scaled_divisor = max_divisor >> shift; - scaled_divisor >>= (scaled_divisor > remainder); - remainder -= scaled_divisor; - } - - return remainder; -} - - -uint32_t __udivsi3 (uint32_t dividend, uint32_t divisor); -#ifdef L_tile_udivsi3 -uint32_t -__udivsi3 (uint32_t dividend, uint32_t divisor) -{ -#ifndef __tilegx__ - return __udivsi3_inline (dividend, divisor); -#else /* !__tilegx__ */ - uint64_t n = __udivdi3_inline (((uint64_t) dividend), ((uint64_t) divisor)); - return (uint32_t) n; -#endif /* !__tilegx__ */ -} -#endif - -#define ABS(x) ((x) >= 0 ? (x) : -(x)) - -int32_t __divsi3 (int32_t dividend, int32_t divisor); -#ifdef L_tile_divsi3 -/* __divsi3 - 32 bit integer signed divide */ -int32_t -__divsi3 (int32_t dividend, int32_t divisor) -{ -#ifndef __tilegx__ - uint32_t n = __udivsi3_inline (ABS (dividend), ABS (divisor)); -#else /* !__tilegx__ */ - uint64_t n = - __udivdi3_inline (ABS ((int64_t) dividend), ABS ((int64_t) divisor)); -#endif /* !__tilegx__ */ - if ((dividend ^ divisor) < 0) - n = -n; - return (int32_t) n; -} -#endif - - -uint64_t __udivdi3 (uint64_t dividend, uint64_t divisor); -#ifdef L_tile_udivdi3 -uint64_t -__udivdi3 (uint64_t dividend, uint64_t divisor) -{ - return __udivdi3_inline (dividend, divisor); -} -#endif - -/*__divdi3 - 64 bit integer signed divide */ -int64_t __divdi3 (int64_t dividend, int64_t divisor); -#ifdef L_tile_divdi3 -int64_t -__divdi3 (int64_t dividend, int64_t divisor) -{ - uint64_t n = __udivdi3_inline (ABS (dividend), ABS (divisor)); - if ((dividend ^ divisor) < 0) - n = -n; - return (int64_t) n; -} -#endif - - -uint32_t __umodsi3 (uint32_t dividend, uint32_t divisor); -#ifdef L_tile_umodsi3 -uint32_t -__umodsi3 (uint32_t dividend, uint32_t divisor) -{ -#ifndef __tilegx__ - return __umodsi3_inline (dividend, divisor); -#else /* !__tilegx__ */ - return __umoddi3_inline ((uint64_t) dividend, (uint64_t) divisor); -#endif /* !__tilegx__ */ -} -#endif - - -/* __modsi3 - 32 bit integer signed modulo */ -int32_t __modsi3 (int32_t dividend, int32_t divisor); -#ifdef L_tile_modsi3 -int32_t -__modsi3 (int32_t dividend, int32_t divisor) -{ -#ifndef __tilegx__ - uint32_t remainder = __umodsi3_inline (ABS (dividend), ABS (divisor)); -#else /* !__tilegx__ */ - uint64_t remainder = - __umoddi3_inline (ABS ((int64_t) dividend), ABS ((int64_t) divisor)); -#endif /* !__tilegx__ */ - return (int32_t) ((dividend >= 0) ? remainder : -remainder); -} -#endif - - -uint64_t __umoddi3 (uint64_t dividend, uint64_t divisor); -#ifdef L_tile_umoddi3 -uint64_t -__umoddi3 (uint64_t dividend, uint64_t divisor) -{ - return __umoddi3_inline (dividend, divisor); -} -#endif - - -/* __moddi3 - 64 bit integer signed modulo */ -int64_t __moddi3 (int64_t dividend, int64_t divisor); -#ifdef L_tile_moddi3 -int64_t -__moddi3 (int64_t dividend, int64_t divisor) -{ - uint64_t remainder = __umoddi3_inline (ABS (dividend), ABS (divisor)); - return (int64_t) ((dividend >= 0) ? remainder : -remainder); -} -#endif diff --git a/libgcc/config/tilepro/softmpy.S b/libgcc/config/tilepro/softmpy.S deleted file mode 100644 index 0554a6f..0000000 --- a/libgcc/config/tilepro/softmpy.S +++ /dev/null @@ -1,94 +0,0 @@ -/* 64-bit multiplication support for TILEPro. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - Contributed by Walter Lee (walt@tilera.com) - - This file 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 3, or (at your option) any - later version. - - This file 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. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - -/* 64-bit multiplication support. */ - - .file "softmpy.S" - -/* Parameters */ -#define lo0 r9 /* low 32 bits of n0 */ -#define hi0 r1 /* high 32 bits of n0 */ -#define lo1 r2 /* low 32 bits of n1 */ -#define hi1 r3 /* high 32 bits of n1 */ - -/* temps */ -#define result1_a r4 -#define result1_b r5 - -#define tmp0 r6 -#define tmp0_left_16 r7 -#define tmp1 r8 - - .section .text.__muldi3, "ax" - .align 8 - .globl __muldi3 - .type __muldi3, @function -__muldi3: - { - move lo0, r0 /* so we can write "out r0" while "in r0" alive */ - mulhl_uu tmp0, lo1, r0 - } - { - mulll_uu result1_a, lo1, hi0 - } - { - move tmp1, tmp0 - mulhla_uu tmp0, lo0, lo1 - } - { - mulhlsa_uu result1_a, lo1, hi0 - } - { - mulll_uu result1_b, lo0, hi1 - slt_u tmp1, tmp0, tmp1 - } - { - mulhlsa_uu result1_a, lo0, hi1 - shli r0, tmp0, 16 - } - { - move tmp0_left_16, r0 - mulhha_uu result1_b, lo0, lo1 - } - { - mullla_uu r0, lo1, lo0 - shli tmp1, tmp1, 16 - } - { - mulhlsa_uu result1_b, hi0, lo1 - inthh tmp1, tmp1, tmp0 - } - { - mulhlsa_uu result1_a, hi1, lo0 - slt_u tmp0, r0, tmp0_left_16 - } - /* NOTE: this will stall for a cycle here. Oh well. */ - { - add r1, tmp0, tmp1 - add result1_a, result1_a, result1_b - } - { - add r1, r1, result1_a - jrp lr - } - .size __muldi3,.-__muldi3 diff --git a/libgcc/config/tilepro/t-crtstuff b/libgcc/config/tilepro/t-crtstuff deleted file mode 100644 index eddc45c..0000000 --- a/libgcc/config/tilepro/t-crtstuff +++ /dev/null @@ -1,4 +0,0 @@ -# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, -# because then __FRAME_END__ might not be the last thing in .eh_frame -# section. -CRTSTUFF_T_CFLAGS += -fno-asynchronous-unwind-tables diff --git a/libgcc/config/tilepro/t-tilepro b/libgcc/config/tilepro/t-tilepro deleted file mode 100644 index eb6894c..0000000 --- a/libgcc/config/tilepro/t-tilepro +++ /dev/null @@ -1,33 +0,0 @@ -LIB2ADD += \ - $(srcdir)/config/tilepro/softmpy.S \ - $(srcdir)/config/tilepro/atomic.c - -LIB2FUNCS_EXCLUDE += \ - _divdi3 \ - _moddi3 \ - _muldi3 \ - _udivdi3 \ - _umoddi3 - -SOFTDIVIDE_FUNCS := \ - _tile_udivsi3 \ - _tile_divsi3 \ - _tile_udivdi3 \ - _tile_divdi3 \ - _tile_umodsi3 \ - _tile_modsi3 \ - _tile_umoddi3 \ - _tile_moddi3 - -softdivide-o = $(patsubst %,%$(objext),$(SOFTDIVIDE_FUNCS)) -$(softdivide-o): %$(objext): $(srcdir)/config/tilepro/softdivide.c - $(gcc_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< \ - $(vis_hide) -libgcc-objects += $(softdivide-o) - -ifeq ($(enable_shared),yes) -softdivide-s-o = $(patsubst %,%_s$(objext),$(SOFTDIVIDE_FUNCS)) -$(softdivide-s-o): %_s$(objext): $(srcdir)/config/tilepro/softdivide.c - $(gcc_s_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< -libgcc-s-objects += $(softdivide-s-o) -endif -- 2.7.4