summaryrefslogtreecommitdiff
path: root/gcc/config/mep
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mep')
-rw-r--r--gcc/config/mep/constraints.md162
-rw-r--r--gcc/config/mep/default.h10
-rw-r--r--gcc/config/mep/intrinsics.h620
-rw-r--r--gcc/config/mep/intrinsics.md21568
-rw-r--r--gcc/config/mep/ivc2-template.h9
-rw-r--r--gcc/config/mep/mep-c5.cpu278
-rw-r--r--gcc/config/mep/mep-core.cpu3081
-rw-r--r--gcc/config/mep/mep-default.cpu26
-rw-r--r--gcc/config/mep/mep-ext-cop.cpu24
-rw-r--r--gcc/config/mep/mep-intrin.h8933
-rw-r--r--gcc/config/mep/mep-ivc2.cpu9776
-rw-r--r--gcc/config/mep/mep-lib1.asm125
-rw-r--r--gcc/config/mep/mep-lib2.c139
-rw-r--r--gcc/config/mep/mep-pragma.c404
-rw-r--r--gcc/config/mep/mep-protos.h133
-rw-r--r--gcc/config/mep/mep-tramp.c103
-rw-r--r--gcc/config/mep/mep.c7464
-rw-r--r--gcc/config/mep/mep.cpu21
-rw-r--r--gcc/config/mep/mep.h824
-rw-r--r--gcc/config/mep/mep.md2266
-rw-r--r--gcc/config/mep/mep.opt162
-rw-r--r--gcc/config/mep/predicates.md184
-rw-r--r--gcc/config/mep/t-mep105
23 files changed, 56417 insertions, 0 deletions
diff --git a/gcc/config/mep/constraints.md b/gcc/config/mep/constraints.md
new file mode 100644
index 000000000..5aa2de69c
--- /dev/null
+++ b/gcc/config/mep/constraints.md
@@ -0,0 +1,162 @@
+;; Toshiba Media Processor Machine constraints
+;; Copyright (C) 2009 Free Software Foundation, Inc.
+;; Contributed by Red Hat Inc.
+;;
+;; 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
+;; <http://www.gnu.org/licenses/>. */
+
+
+
+(define_register_constraint "a" "SP_REGS"
+ "The $sp register.")
+
+(define_register_constraint "b" "TP_REGS"
+ "The $tp register.")
+
+(define_register_constraint "c" "CONTROL_REGS"
+ "Any control register.")
+
+(define_register_constraint "d" "HILO_REGS"
+ "Either the $hi or the $lo register.")
+
+(define_register_constraint "em" "LOADABLE_CR_REGS"
+ "Coprocessor registers that can be directly loaded ($c0-$c15).")
+
+(define_register_constraint "ex" "mep_have_copro_copro_moves_p ? CR_REGS : NO_REGS"
+ "Coprocessor registers that can be moved to each other.")
+
+(define_register_constraint "er" "mep_have_core_copro_moves_p ? CR_REGS : NO_REGS"
+ "Coprocessor registers that can be moved to core registers.")
+
+(define_register_constraint "h" "HI_REGS"
+ "The $hi register.")
+
+(define_register_constraint "j" "RPC_REGS"
+ "The $rpc register.")
+
+(define_register_constraint "l" "LO_REGS"
+ "The $lo register.")
+
+(define_register_constraint "t" "TPREL_REGS"
+ "Registers which can be used in $tp-relative addressing.")
+
+(define_register_constraint "v" "GP_REGS"
+ "The $gp register.")
+
+(define_register_constraint "x" "CR_REGS"
+ "The coprocessor registers.")
+
+(define_register_constraint "y" "CCR_REGS"
+ "The coprocessor control registers.")
+
+(define_register_constraint "z" "R0_REGS"
+ "The $0 register.")
+
+(define_register_constraint "A" "USER0_REGS"
+ "User-defined register set A.")
+
+(define_register_constraint "B" "USER1_REGS"
+ "User-defined register set B.")
+
+(define_register_constraint "C" "USER2_REGS"
+ "User-defined register set C.")
+
+(define_register_constraint "D" "USER3_REGS"
+ "User-defined register set D.")
+
+
+
+(define_constraint "I"
+ "Offsets for $gp-rel addressing."
+ (and (match_code "const_int")
+ (match_test "ival >= -32768 && ival < 32768")))
+
+(define_constraint "J"
+ "Constants that can be used directly with boolean insns."
+ (and (match_code "const_int")
+ (match_test "ival >= 0 && ival < 65536")))
+
+(define_constraint "K"
+ "Constants that can be moved directly to registers."
+ (and (match_code "const_int")
+ (match_test "ival >= 0 && ival < 0x01000000")))
+
+(define_constraint "L"
+ "Small constants that can be added to registers."
+ (and (match_code "const_int")
+ (match_test "ival >= -32 && ival < 32")))
+
+(define_constraint "M"
+ "Long shift counts."
+ (and (match_code "const_int")
+ (match_test "ival >= 0 && ival < 32")))
+
+(define_constraint "N"
+ "Small constants that can be compared to registers."
+ (and (match_code "const_int")
+ (match_test "ival >= 0 && ival < 16")))
+
+(define_constraint "O"
+ "Constants that can be loaded into the top half of registers."
+ (and (match_code "const_int")
+ (match_test "!(ival & 0xffff) && ival >= -2147483647-1 && ival <= 2147483647")))
+
+(define_constraint "S"
+ "Signed 8-bit immediates."
+ (and (match_code "const_int")
+ (match_test "ival >= -128 && ival < 127")))
+
+
+
+;; This must only be used with mep_call_address_operand() as the predicate.
+(define_constraint "R"
+ "@internal
+Near symbols that can be used as addresses for CALL."
+ (not (match_code "reg")))
+
+(define_constraint "T"
+ "Symbols encoded for $tp-rel or $gp-rel addressing."
+ (ior (ior
+ (and (match_code "unspec")
+ (match_code "symbol_ref" "a"))
+ (and (match_code "const")
+ (and (match_code "unspec" "0")
+ (match_code "symbol_ref" "0a"))))
+ (and (match_code "const")
+ (and (match_code "plus" "0")
+ (and (match_code "unspec" "00")
+ (match_code "symbol_ref" "00a"))))))
+
+(define_constraint "U"
+ "Non-constant addresses for loading/saving coprocessor registers."
+ (and (match_code "mem")
+ (match_test "! CONSTANT_P (XEXP (op, 0))")))
+
+(define_constraint "W"
+ "The top half of a symbol's value."
+ (and (match_code "high")
+ (match_code "symbol_ref" "0")))
+
+(define_constraint "Y"
+ "A register indirect address without offset."
+ (and (match_code "mem")
+ (match_code "reg" "0")))
+
+(define_constraint "Z"
+ "Symbolic references to the control bus."
+ (and (and (match_code "mem")
+ (match_code "symbol_ref" "0"))
+ (match_test "mep_section_tag (op) == 'c'")))
diff --git a/gcc/config/mep/default.h b/gcc/config/mep/default.h
new file mode 100644
index 000000000..f5359721e
--- /dev/null
+++ b/gcc/config/mep/default.h
@@ -0,0 +1,10 @@
+/* Header created by MeP-Integrator */
+#undef __section
+#define __section(_secname) __attribute__((section(#_secname)))
+#undef mep_nop
+#define mep_nop() __asm__ volatile ("nop")
+
+#pragma GCC coprocessor available $c0...$c31
+#pragma GCC coprocessor call_saved $c6...$c7
+
+#include <intrinsics.h>
diff --git a/gcc/config/mep/intrinsics.h b/gcc/config/mep/intrinsics.h
new file mode 100644
index 000000000..b18217a8d
--- /dev/null
+++ b/gcc/config/mep/intrinsics.h
@@ -0,0 +1,620 @@
+
+
+/* DO NOT EDIT: This file is automatically generated by CGEN.
+ Any changes you make will be discarded when it is next regenerated.
+*/
+
+/* GCC defines these internally, as follows...
+#if __MEP_CONFIG_CP_DATA_BUS_WIDTH == 64
+ typedef long long cp_data_bus_int;
+#else
+ typedef long cp_data_bus_int;
+#endif
+typedef char cp_v8qi __attribute__((vector_size(8)));
+typedef unsigned char cp_v8uqi __attribute__((vector_size(8)));
+typedef short cp_v4hi __attribute__((vector_size(8)));
+typedef unsigned short cp_v4uhi __attribute__((vector_size(8)));
+typedef int cp_v2si __attribute__((vector_size(8)));
+typedef unsigned int cp_v2usi __attribute__((vector_size(8)));
+*/
+
+
+// default
+void mep_cpfmadila1_h (cp_v4hi, cp_v4hi, long, long); // volatile
+void mep_cpfmadiua1_h (cp_v4hi, cp_v4hi, long, long); // volatile
+void mep_cpfmadia1_b (cp_v8qi, cp_v8qi, long, long); // volatile
+void mep_cpfmadia1u_b (cp_v8uqi, cp_v8uqi, long, long); // volatile
+void mep_cpfmulila1_h (cp_v4hi, cp_v4hi, long, long); // volatile
+void mep_cpfmuliua1_h (cp_v4hi, cp_v4hi, long, long); // volatile
+void mep_cpfmulia1_b (cp_v8qi, cp_v8qi, long, long); // volatile
+void mep_cpfmulia1u_b (cp_v8uqi, cp_v8uqi, long, long); // volatile
+void mep_cpamadila1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpamadiua1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpamadia1_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpamadia1u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpamulila1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpamuliua1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpamulia1_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpamulia1u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpfmadila1s1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmadiua1s1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmadia1s1_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpfmadia1s1u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpfmulila1s1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmuliua1s1_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmulia1s1_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpfmulia1s1u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpfmadila1s0_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmadiua1s0_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmadia1s0_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpfmadia1s0u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpfmulila1s0_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmuliua1s0_h (cp_v4hi, cp_v4hi, long); // volatile
+void mep_cpfmulia1s0_b (cp_v8qi, cp_v8qi, long); // volatile
+void mep_cpfmulia1s0u_b (cp_v8uqi, cp_v8uqi, long); // volatile
+void mep_cpacswp (); // volatile
+void mep_cpaccpa1 (); // volatile
+void mep_cpacsuma1 (); // volatile
+void mep_c1nop (); // volatile
+void mep_cpfacla0s1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfacua0s1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfaca0s1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpfaca0s1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpfsftbla0s1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfsftbua0s1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfsftba0s1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpfsftba0s1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpfacla0s0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfacua0s0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfaca0s0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpfaca0s0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpfsftbla0s0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfsftbua0s0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpfsftba0s0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpfsftba0s0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsllia0 (long); // volatile
+void mep_cpsraia0 (long); // volatile
+void mep_cpsrlia0 (long); // volatile
+void mep_cpslla0 (cp_data_bus_int); // volatile
+void mep_cpsraa0 (cp_data_bus_int); // volatile
+void mep_cpsrla0 (cp_data_bus_int); // volatile
+void mep_cpaccpa0 (); // volatile
+void mep_cpacsuma0 (); // volatile
+cp_v2si mep_cpmovhla0_w (); // volatile
+cp_v2si mep_cpmovhua0_w (); // volatile
+cp_v2si mep_cppackla0_w (); // volatile
+cp_v2si mep_cppackua0_w (); // volatile
+cp_v4hi mep_cppackla0_h (); // volatile
+cp_v4hi mep_cppackua0_h (); // volatile
+cp_v8qi mep_cppacka0_b (); // volatile
+cp_v8uqi mep_cppacka0u_b (); // volatile
+cp_v2si mep_cpmovlla0_w (); // volatile
+cp_v2si mep_cpmovlua0_w (); // volatile
+cp_v2si mep_cpmovula0_w (); // volatile
+cp_v2si mep_cpmovuua0_w (); // volatile
+cp_v4hi mep_cpmovla0_h (); // volatile
+cp_v4hi mep_cpmovua0_h (); // volatile
+cp_v8qi mep_cpmova0_b (); // volatile
+void mep_cpsetla0_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsetua0_w (cp_v2si, cp_v2si); // volatile
+void mep_cpseta0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsadla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsadua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsada0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsada0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpabsla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpabsua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpabsa0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpabsa0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsubacla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubacua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubaca0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsubaca0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsubla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsuba0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsuba0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpaddacla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddacua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddaca0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpaddaca0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpaddla0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddua0_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpadda0_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpadda0u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_c0nop (); // volatile
+void mep_cpsmsbslla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmsbslua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmsbslla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmsbslua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmadslla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmadslua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmadslla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmadslua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmulslla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmulslua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmulslla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmulslua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmsbla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmsbua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmsbla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmsbua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmadla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmadua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsmadla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsmadua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmsbla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmsbua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmsbla1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmsbua1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmsbla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmsbua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmadla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmadua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmadla1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmadua1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmadla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmadua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmada1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpmada1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpmulla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmulua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpmulla1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmulua1u_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpmulla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmulua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpmula1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpmula1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpssda1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpssda1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpssqa1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpssqa1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsllia1 (long); // volatile
+void mep_cpsraia1 (long); // volatile
+void mep_cpsrlia1 (long); // volatile
+void mep_cpslla1 (cp_data_bus_int); // volatile
+void mep_cpsraa1 (cp_data_bus_int); // volatile
+void mep_cpsrla1 (cp_data_bus_int); // volatile
+cp_v2si mep_cpmovhla1_w (); // volatile
+cp_v2si mep_cpmovhua1_w (); // volatile
+cp_v2si mep_cppackla1_w (); // volatile
+cp_v2si mep_cppackua1_w (); // volatile
+cp_v4hi mep_cppackla1_h (); // volatile
+cp_v4hi mep_cppackua1_h (); // volatile
+cp_v8qi mep_cppacka1_b (); // volatile
+cp_v8uqi mep_cppacka1u_b (); // volatile
+cp_v2si mep_cpmovlla1_w (); // volatile
+cp_v2si mep_cpmovlua1_w (); // volatile
+cp_v2si mep_cpmovula1_w (); // volatile
+cp_v2si mep_cpmovuua1_w (); // volatile
+cp_v4hi mep_cpmovla1_h (); // volatile
+cp_v4hi mep_cpmovua1_h (); // volatile
+cp_v8qi mep_cpmova1_b (); // volatile
+void mep_cpsetla1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpsetua1_w (cp_v2si, cp_v2si); // volatile
+void mep_cpseta1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsadla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsadua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsada1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsada1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpabsla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpabsua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpabsa1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpabsa1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsubacla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubacua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubaca1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsubaca1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpsubla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsubua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpsuba1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpsuba1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpaddacla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddacua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddaca1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpaddaca1u_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpaddla1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpaddua1_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpadda1_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpadda1u_b (cp_v8uqi, cp_v8uqi); // volatile
+cp_data_bus_int mep_cdmovi (long);
+cp_data_bus_int mep_cdmoviu (long);
+cp_v2si mep_cpmovi_w (long);
+cp_v2usi mep_cpmoviu_w (long);
+cp_v4hi mep_cpmovi_h (long);
+cp_v4uhi mep_cpmoviu_h (long);
+cp_v8qi mep_cpmovi_b (long);
+cp_data_bus_int mep_cdclipi3 (cp_data_bus_int, long);
+cp_data_bus_int mep_cdclipiu3 (cp_data_bus_int, long);
+cp_v2si mep_cpclipi3_w (cp_v2si, long);
+cp_v2si mep_cpclipiu3_w (cp_v2si, long);
+cp_v2si mep_cpslai3_w (cp_v2si, long); // volatile
+cp_v4hi mep_cpslai3_h (cp_v4hi, long); // volatile
+cp_data_bus_int mep_cdslli3 (cp_data_bus_int, long);
+cp_v2si mep_cpslli3_w (cp_v2si, long);
+cp_v4hi mep_cpslli3_h (cp_v4hi, long);
+cp_v8qi mep_cpslli3_b (cp_v8qi, long);
+cp_data_bus_int mep_cdsrai3 (cp_data_bus_int, long);
+cp_v2si mep_cpsrai3_w (cp_v2si, long);
+cp_v4hi mep_cpsrai3_h (cp_v4hi, long);
+cp_v8qi mep_cpsrai3_b (cp_v8qi, long);
+cp_data_bus_int mep_cdsrli3 (cp_data_bus_int, long);
+cp_v2si mep_cpsrli3_w (cp_v2si, long);
+cp_v4hi mep_cpsrli3_h (cp_v4hi, long);
+cp_v8qi mep_cpsrli3_b (cp_v8qi, long);
+void mep_cpocmpge_w (cp_v2si, cp_v2si); // volatile
+void mep_cpocmpgeu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpocmpge_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpocmpge_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpocmpgeu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpocmpgt_w (cp_v2si, cp_v2si); // volatile
+void mep_cpocmpgtu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpocmpgt_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpocmpgt_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpocmpgtu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpocmpne_w (cp_v2si, cp_v2si); // volatile
+void mep_cpocmpne_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpocmpne_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpocmpeq_w (cp_v2si, cp_v2si); // volatile
+void mep_cpocmpeq_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpocmpeq_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpacmpge_w (cp_v2si, cp_v2si); // volatile
+void mep_cpacmpgeu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpacmpge_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpacmpge_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpacmpgeu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpacmpgt_w (cp_v2si, cp_v2si); // volatile
+void mep_cpacmpgtu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpacmpgt_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpacmpgt_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpacmpgtu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpacmpne_w (cp_v2si, cp_v2si); // volatile
+void mep_cpacmpne_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpacmpne_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpacmpeq_w (cp_v2si, cp_v2si); // volatile
+void mep_cpacmpeq_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpacmpeq_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpcmpge_w (cp_v2si, cp_v2si); // volatile
+void mep_cpcmpgeu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpcmpge_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpcmpge_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpcmpgeu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpcmpgt_w (cp_v2si, cp_v2si); // volatile
+void mep_cpcmpgtu_w (cp_v2usi, cp_v2usi); // volatile
+void mep_cpcmpgt_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpcmpgt_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpcmpgtu_b (cp_v8uqi, cp_v8uqi); // volatile
+void mep_cpcmpne_w (cp_v2si, cp_v2si); // volatile
+void mep_cpcmpne_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpcmpne_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpcmpeq_w (cp_v2si, cp_v2si); // volatile
+void mep_cpcmpeq_h (cp_v4hi, cp_v4hi); // volatile
+void mep_cpcmpeq_b (cp_v8qi, cp_v8qi); // volatile
+void mep_cpcmpeqz_b (cp_v8qi, cp_v8qi); // volatile
+cp_data_bus_int mep_cdcastw (cp_data_bus_int);
+cp_data_bus_int mep_cdcastuw (cp_data_bus_int);
+cp_v2si mep_cpcasth_w (cp_v2si);
+cp_v2si mep_cpcastuh_w (cp_v2si);
+cp_v2si mep_cpcastb_w (cp_v2si);
+cp_v2si mep_cpcastub_w (cp_v2si);
+cp_v4hi mep_cpcastb_h (cp_v4hi);
+cp_v4hi mep_cpcastub_h (cp_v4hi);
+cp_v4hi mep_cpextl_h (cp_v4hi);
+cp_v4uhi mep_cpextlu_h (cp_v4uhi);
+cp_v8qi mep_cpextl_b (cp_v8qi);
+cp_v8uqi mep_cpextlu_b (cp_v8uqi);
+cp_v4uhi mep_cpextu_h (cp_v4uhi);
+cp_v4uhi mep_cpextuu_h (cp_v4uhi);
+cp_v8uqi mep_cpextu_b (cp_v8uqi);
+cp_v8uqi mep_cpextuu_b (cp_v8uqi);
+cp_v2si mep_cpbcast_w (cp_v2si);
+cp_v4hi mep_cpbcast_h (cp_v4hi);
+cp_v8qi mep_cpbcast_b (cp_v8qi);
+void mep_cpccadd_b (cp_v8qi*); // volatile
+cp_v2si mep_cphadd_w (cp_v2si);
+cp_v4hi mep_cphadd_h (cp_v4hi);
+cp_v8qi mep_cphadd_b (cp_v8qi);
+cp_v8uqi mep_cphaddu_b (cp_v8uqi);
+cp_v2si mep_cpnorm_w (cp_v2si);
+cp_v4hi mep_cpnorm_h (cp_v4hi);
+cp_v2si mep_cpldz_w (cp_v2si);
+cp_v4hi mep_cpldz_h (cp_v4hi);
+cp_v2si mep_cpabsz_w (cp_v2si);
+cp_v4hi mep_cpabsz_h (cp_v4hi);
+cp_v8qi mep_cpabsz_b (cp_v8qi);
+void mep_cpmovtocc (cp_data_bus_int); // volatile
+void mep_cpmovtocsar1 (cp_data_bus_int); // volatile
+void mep_cpmovtocsar0 (cp_data_bus_int); // volatile
+cp_data_bus_int mep_cpmovfrcc (); // volatile
+cp_data_bus_int mep_cpmovfrcsar1 (); // volatile
+cp_data_bus_int mep_cpmovfrcsar0 (); // volatile
+cp_v2si mep_cpmin3_w (cp_v2si, cp_v2si);
+cp_v2si mep_cpminu3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpmin3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpmin3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpminu3_b (cp_v8qi, cp_v8qi);
+cp_v2si mep_cpmax3_w (cp_v2si, cp_v2si);
+cp_v2si mep_cpmaxu3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpmax3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpmax3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpmaxu3_b (cp_v8qi, cp_v8qi);
+cp_v4hi mep_cpabs3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpabs3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpabsu3_b (cp_v8qi, cp_v8qi);
+cp_v2si mep_cpaddsr3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpaddsr3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpaddsr3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpaddsru3_b (cp_v8qi, cp_v8qi);
+cp_v2si mep_cpave3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpave3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpave3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpaveu3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextlsub3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextlsubu3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextusub3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextusubu3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextladd3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextladdu3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextuadd3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpextuaddu3_b (cp_v8qi, cp_v8qi);
+cp_v2si mep_cpssub3_w (cp_v2si, cp_v2si); // volatile
+cp_v4hi mep_cpssub3_h (cp_v4hi, cp_v4hi); // volatile
+cp_v2si mep_cpsadd3_w (cp_v2si, cp_v2si); // volatile
+cp_v4hi mep_cpsadd3_h (cp_v4hi, cp_v4hi); // volatile
+cp_v2si mep_cpsla3_w (cp_v2si, cp_v2si); // volatile
+cp_v4hi mep_cpsla3_h (cp_v4hi, cp_v4hi); // volatile
+cp_data_bus_int mep_cdsll3 (cp_data_bus_int, cp_data_bus_int);
+cp_v2si mep_cpssll3_w (cp_v2si, cp_v2si);
+cp_v2si mep_cpsll3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpssll3_h (cp_v4hi, cp_v4hi);
+cp_v4hi mep_cpsll3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpssll3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpsll3_b (cp_v8qi, cp_v8qi);
+cp_data_bus_int mep_cdsra3 (cp_data_bus_int, cp_data_bus_int);
+cp_v2si mep_cpssra3_w (cp_v2si, cp_v2si);
+cp_v2si mep_cpsra3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpssra3_h (cp_v4hi, cp_v4hi);
+cp_v4hi mep_cpsra3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpssra3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpsra3_b (cp_v8qi, cp_v8qi);
+cp_data_bus_int mep_cdsrl3 (cp_data_bus_int, cp_data_bus_int);
+cp_v2si mep_cpssrl3_w (cp_v2si, cp_v2si);
+cp_v2si mep_cpsrl3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpssrl3_h (cp_v4hi, cp_v4hi);
+cp_v4hi mep_cpsrl3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpssrl3_b (cp_v8qi, cp_v8qi);
+cp_v8qi mep_cpsrl3_b (cp_v8qi, cp_v8qi);
+cp_v4hi mep_cppack_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cppack_b (cp_v8qi, cp_v8qi);
+cp_v8uqi mep_cppacku_b (cp_v8uqi, cp_v8uqi);
+cp_v2si mep_cpunpackl_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpunpackl_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpunpackl_b (cp_v8qi, cp_v8qi);
+cp_v2usi mep_cpunpacku_w (cp_v2usi, cp_v2usi);
+cp_v4uhi mep_cpunpacku_h (cp_v4uhi, cp_v4uhi);
+cp_v8uqi mep_cpunpacku_b (cp_v8uqi, cp_v8uqi);
+cp_data_bus_int mep_cpfsftbs1 (cp_data_bus_int, cp_data_bus_int); // volatile
+cp_data_bus_int mep_cpfsftbs0 (cp_data_bus_int, cp_data_bus_int); // volatile
+cp_data_bus_int mep_cpfsftbi (cp_data_bus_int, cp_data_bus_int, long);
+cp_data_bus_int mep_cpsel (cp_data_bus_int, cp_data_bus_int); // volatile
+cp_vector mep_cpxor3 (cp_vector, cp_vector);
+cp_vector mep_cpnor3 (cp_vector, cp_vector);
+cp_vector mep_cpor3 (cp_vector, cp_vector);
+cp_vector mep_cpand3 (cp_vector, cp_vector);
+cp_data_bus_int mep_cdsub3 (cp_data_bus_int, cp_data_bus_int);
+cp_v2si mep_cpsub3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpsub3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpsub3_b (cp_v8qi, cp_v8qi);
+cp_data_bus_int mep_cdadd3 (cp_data_bus_int, cp_data_bus_int);
+cp_v2si mep_cpadd3_w (cp_v2si, cp_v2si);
+cp_v4hi mep_cpadd3_h (cp_v4hi, cp_v4hi);
+cp_v8qi mep_cpadd3_b (cp_v8qi, cp_v8qi);
+void mep_bsrv (void *);
+void mep_jsrv (long);
+void mep_synccp (); // volatile
+void mep_bcpaf (long, void *);
+void mep_bcpat (long, void *);
+void mep_bcpne (long, void *);
+void mep_bcpeq (long, void *);
+void mep_lmcpm1 (cp_data_bus_int*, long **, long);
+void mep_smcpm1 (cp_data_bus_int, long **, long);
+void mep_lwcpm1 (cp_data_bus_int*, long **, long);
+void mep_swcpm1 (cp_data_bus_int, long **, long);
+void mep_lhcpm1 (cp_data_bus_int*, long **, long);
+void mep_shcpm1 (cp_data_bus_int, long **, long);
+void mep_lbcpm1 (cp_data_bus_int*, long **, long);
+void mep_sbcpm1 (cp_data_bus_int, long **, long);
+void mep_lmcpm0 (cp_data_bus_int*, long **, long);
+void mep_smcpm0 (cp_data_bus_int, long **, long);
+void mep_lwcpm0 (cp_data_bus_int*, long **, long);
+void mep_swcpm0 (cp_data_bus_int, long **, long);
+void mep_lhcpm0 (cp_data_bus_int*, long **, long);
+void mep_shcpm0 (cp_data_bus_int, long **, long);
+void mep_lbcpm0 (cp_data_bus_int*, long **, long);
+void mep_sbcpm0 (cp_data_bus_int, long **, long);
+void mep_lmcpa (cp_data_bus_int*, long **, long);
+void mep_smcpa (cp_data_bus_int, long **, long);
+void mep_lwcpa (cp_data_bus_int*, long **, long);
+void mep_swcpa (cp_data_bus_int, long **, long);
+void mep_lhcpa (cp_data_bus_int*, long **, long);
+void mep_shcpa (cp_data_bus_int, long **, long);
+void mep_lbcpa (cp_data_bus_int*, long **, long);
+void mep_sbcpa (cp_data_bus_int, long **, long);
+void mep_lmcp16 (cp_data_bus_int*, long, long *);
+void mep_smcp16 (cp_data_bus_int, long, long *); // volatile
+void mep_lwcp16 (cp_data_bus_int*, long, long *);
+void mep_swcp16 (cp_data_bus_int, long, long *);
+void mep_lmcpi (cp_data_bus_int*, long **);
+void mep_smcpi (cp_data_bus_int, long **);
+void mep_lwcpi (cp_data_bus_int*, long **);
+void mep_swcpi (cp_data_bus_int, long **);
+void mep_lmcp (cp_data_bus_int*, long *);
+void mep_smcp (cp_data_bus_int, long *); // volatile
+void mep_lwcp (cp_data_bus_int*, long *);
+void mep_swcp (cp_data_bus_int, long *);
+void mep_ssubu (long*, long);
+void mep_saddu (long*, long);
+void mep_ssub (long*, long);
+void mep_sadd (long*, long);
+void mep_clipu (long*, long);
+void mep_clip (long*, long);
+void mep_maxu (long*, long);
+void mep_minu (long*, long);
+void mep_max (long*, long);
+void mep_min (long*, long);
+void mep_ave (long*, long);
+void mep_abs (long*, long);
+void mep_ldz (long*, long);
+void mep_dbreak (); // volatile
+void mep_dret ();
+void mep_divu (long, long);
+void mep_div (long, long);
+void mep_maddru (long*, long);
+void mep_maddr (long*, long);
+void mep_maddu (long, long);
+void mep_madd (long, long);
+void mep_mulru (long*, long);
+void mep_mulr (long*, long);
+void mep_mulu (long, long);
+void mep_mul (long, long);
+void mep_cache (long, long *); // volatile
+void mep_tas (long*, long *);
+void mep_btstm (long*, long *, long);
+void mep_bnotm (long *, long);
+void mep_bclrm (long *, long);
+void mep_bsetm (long *, long);
+void mep_ldcb (long*, long); // volatile
+void mep_stcb (long, long); // volatile
+void mep_syncm (); // volatile
+void mep_break (); // volatile
+void mep_swi (long); // volatile
+void mep_sleep (); // volatile
+void mep_halt (); // volatile
+void mep_reti ();
+void mep_ei (); // volatile
+void mep_di (); // volatile
+void mep_ldc (long*, long); // volatile
+void mep_ldc_lo (long*);
+void mep_ldc_hi (long*);
+void mep_ldc_lp (long*);
+void mep_stc (long, long); // volatile
+void mep_stc_lo (long);
+void mep_stc_hi (long);
+void mep_stc_lp (long);
+void mep_erepeat (void *);
+void mep_repeat (long, void *);
+void mep_ret ();
+void mep_jsr (long);
+void mep_jmp24 (void *);
+void mep_jmp (long);
+void mep_bsr24 (void *);
+void mep_bsr12 (void *);
+void mep_bne (long, long, void *);
+void mep_beq (long, long, void *);
+void mep_bgei (long, long, void *);
+void mep_blti (long, long, void *);
+void mep_bnei (long, long, void *);
+void mep_beqi (long, long, void *);
+void mep_bnez (long, void *);
+void mep_beqz (long, void *);
+void mep_bra (void *);
+void mep_fsft (long*, long); // volatile
+void mep_sll3 (long*, long, long);
+void mep_slli (long*, long);
+void mep_srli (long*, long);
+void mep_srai (long*, long);
+void mep_sll (long*, long);
+void mep_srl (long*, long);
+void mep_sra (long*, long);
+void mep_xor3 (long*, long, long);
+void mep_and3 (long*, long, long);
+void mep_or3 (long*, long, long);
+void mep_nor (long*, long);
+void mep_xor (long*, long);
+void mep_and (long*, long);
+void mep_or (long*, long);
+void mep_sltu3x (long*, long, long);
+void mep_slt3x (long*, long, long);
+void mep_add3x (long*, long, long);
+void mep_sl2ad3 (long*, long, long);
+void mep_sl1ad3 (long*, long, long);
+void mep_sltu3i (long*, long, long);
+void mep_slt3i (long*, long, long);
+void mep_sltu3 (long*, long, long);
+void mep_slt3 (long*, long, long);
+void mep_neg (long*, long);
+void mep_sbvck3 (long*, long, long);
+void mep_sub (long*, long);
+void mep_advck3 (long*, long, long);
+void mep_add3i (long*, long);
+void mep_add (long*, long);
+void mep_add3 (long*, long, long);
+void mep_movh (long*, long);
+void mep_movu16 (long*, long);
+void mep_movu24 (long*, long);
+void mep_movi16 (long*, long);
+void mep_movi8 (long*, long);
+void mep_mov (long*, long);
+void mep_ssarb (long, long); // volatile
+void mep_extuh (long*);
+void mep_extub (long*);
+void mep_exth (long*);
+void mep_extb (long*);
+void mep_lw24 (long*, long);
+void mep_sw24 (long, long);
+void mep_lhu16 (long*, long, long *);
+void mep_lbu16 (long*, long, long *);
+void mep_lw16 (long*, long, long *);
+void mep_lh16 (long*, long, long *);
+void mep_lb16 (long*, long, long *);
+void mep_sw16 (long, long, long *);
+void mep_sh16 (long, long, long *);
+void mep_sb16 (long, long, long *);
+void mep_lhu_tp (long*, long);
+void mep_lbu_tp (long*, long);
+void mep_lw_tp (long*, long);
+void mep_lh_tp (long*, long);
+void mep_lb_tp (long*, long);
+void mep_sw_tp (long, long);
+void mep_sh_tp (long, long);
+void mep_sb_tp (long, long);
+void mep_lw_sp (long*, long);
+void mep_sw_sp (long, long);
+void mep_lhu (long*, long *);
+void mep_lbu (long*, long *);
+void mep_lw (long*, long *);
+void mep_lh (long*, long *);
+void mep_lb (long*, long *);
+void mep_sw (long, long *);
+void mep_sh (long, long *);
+void mep_sb (long, long *);
+void mep_dsp1 (long*, long); // volatile
+void mep_dsp0 (long); // volatile
+void mep_dsp (long*, long, long); // volatile
+void mep_uci (long*, long, long); // volatile
+void mep_lhucpm1 (cp_data_bus_int*, long **, long);
+void mep_lbucpm1 (cp_data_bus_int*, long **, long);
+void mep_lhucpm0 (cp_data_bus_int*, long **, long);
+void mep_lbucpm0 (cp_data_bus_int*, long **, long);
+void mep_lhucpa (cp_data_bus_int*, long **, long);
+void mep_lbucpa (cp_data_bus_int*, long **, long);
+void mep_lhucp (cp_data_bus_int*, long, long *);
+void mep_lhcp (cp_data_bus_int*, long, long *);
+void mep_shcp (cp_data_bus_int, long, long *);
+void mep_lbucp (cp_data_bus_int*, long, long *);
+void mep_lbcp (cp_data_bus_int*, long, long *);
+void mep_sbcp (cp_data_bus_int, long, long *);
+void mep_casw3 (long*, long, long); // volatile
+void mep_cash3 (long*, long, long); // volatile
+void mep_casb3 (long*, long, long); // volatile
+void mep_prefd (long, long, long *); // volatile
+void mep_pref (long, long *); // volatile
+void mep_ldcb_r (long*, long *); // volatile
+void mep_stcb_r (long, long *); // volatile
+void mep_cmovh2 (long*, cp_data_bus_int);
+void mep_cmovh1 (cp_data_bus_int*, long);
+void mep_cmovc2 (long*, long); // volatile
+void mep_cmovc1 (long, long); // volatile
+void mep_cmov2 (long*, cp_data_bus_int);
+void mep_cmov1 (cp_data_bus_int*, long);
+cp_data_bus_int mep_cpmov (cp_data_bus_int);
diff --git a/gcc/config/mep/intrinsics.md b/gcc/config/mep/intrinsics.md
new file mode 100644
index 000000000..44343d3b7
--- /dev/null
+++ b/gcc/config/mep/intrinsics.md
@@ -0,0 +1,21568 @@
+
+
+;; DO NOT EDIT: This file is automatically generated by CGEN.
+;; Any changes you make will be discarded when it is next regenerated.
+
+
+(define_predicate "cgen_h_sint_12a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -2048
+ && INTVAL (op) < 2048")))
+
+(define_predicate "cgen_h_uint_20a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 1048576")))
+
+(define_predicate "cgen_h_uint_7a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 128")))
+
+(define_predicate "cgen_h_uint_6a2_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 1) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 128")))
+
+(define_predicate "cgen_h_uint_22a4_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 3) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 33554432")))
+
+(define_predicate "cgen_h_sint_2a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -2
+ && INTVAL (op) < 2")))
+
+(define_predicate "cgen_h_uint_24a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 16777216")))
+
+(define_predicate "cgen_h_sint_6a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -32
+ && INTVAL (op) < 32")))
+
+(define_predicate "cgen_h_uint_5a4_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 3) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 256")))
+
+(define_predicate "cgen_h_uint_2a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 4")))
+
+(define_predicate "cgen_h_sint_10a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -512
+ && INTVAL (op) < 512")))
+
+(define_predicate "cgen_h_uint_4a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 16")))
+
+(define_predicate "cgen_h_uint_6a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 64")))
+
+(define_predicate "cgen_h_uint_16a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 65536")))
+
+(define_predicate "cgen_h_uint_8a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 256")))
+
+(define_predicate "cgen_h_sint_16a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -32768
+ && INTVAL (op) < 32768")))
+
+(define_predicate "cgen_h_uint_5a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 32")))
+
+(define_predicate "cgen_h_sint_8a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= -128
+ && INTVAL (op) < 128")))
+
+(define_predicate "cgen_h_uint_3a1_immediate"
+ (and (match_code "const_int")
+ (match_test "(INTVAL (op) & 0) == 0
+ && INTVAL (op) >= 0
+ && INTVAL (op) < 8")))
+
+
+
+(define_insn "cgen_intrinsic_cpsmsbslla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2198))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2200))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2202))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2204))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2206))]
+ "CGEN_ENABLE_INSN_P (0)"
+ "cpsmsbslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2198))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2200))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2202))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2204))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2206))]
+ "CGEN_ENABLE_INSN_P (1)"
+ "cpsmsbslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2208))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2210))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2212))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2214))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2216))]
+ "CGEN_ENABLE_INSN_P (2)"
+ "cpsmsbslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2208))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2210))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2212))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2214))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2216))]
+ "CGEN_ENABLE_INSN_P (3)"
+ "cpsmsbslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2218))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2220))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2222))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2224))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2226))]
+ "CGEN_ENABLE_INSN_P (4)"
+ "cpsmsbslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2218))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2220))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2222))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2224))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2226))]
+ "CGEN_ENABLE_INSN_P (5)"
+ "cpsmsbslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2228))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2230))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2232))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2234))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2236))]
+ "CGEN_ENABLE_INSN_P (6)"
+ "cpsmsbslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbslua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2228))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2230))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2232))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2234))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2236))]
+ "CGEN_ENABLE_INSN_P (7)"
+ "cpsmsbslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2238))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2240))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2242))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2244))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2246))]
+ "CGEN_ENABLE_INSN_P (8)"
+ "cpsmadslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2238))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2240))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2242))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2244))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2246))]
+ "CGEN_ENABLE_INSN_P (9)"
+ "cpsmadslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2248))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2250))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2252))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2254))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2256))]
+ "CGEN_ENABLE_INSN_P (10)"
+ "cpsmadslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2248))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2250))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2252))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2254))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2256))]
+ "CGEN_ENABLE_INSN_P (11)"
+ "cpsmadslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2258))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2260))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2262))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2264))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2266))]
+ "CGEN_ENABLE_INSN_P (12)"
+ "cpsmadslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2258))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2260))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2262))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2264))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2266))]
+ "CGEN_ENABLE_INSN_P (13)"
+ "cpsmadslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2268))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2270))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2272))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2274))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2276))]
+ "CGEN_ENABLE_INSN_P (14)"
+ "cpsmadslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadslua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2268))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2270))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2272))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2274))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2276))]
+ "CGEN_ENABLE_INSN_P (15)"
+ "cpsmadslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2278))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2280))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2282))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2284))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2286))]
+ "CGEN_ENABLE_INSN_P (16)"
+ "cpmulslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2278))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2280))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2282))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2284))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2286))]
+ "CGEN_ENABLE_INSN_P (17)"
+ "cpmulslla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2288))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2290))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2292))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2294))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2296))]
+ "CGEN_ENABLE_INSN_P (18)"
+ "cpmulslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2288))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2290))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2292))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2294))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2296))]
+ "CGEN_ENABLE_INSN_P (19)"
+ "cpmulslua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2298))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2300))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2302))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2304))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2306))]
+ "CGEN_ENABLE_INSN_P (20)"
+ "cpmulslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2298))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2300))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2302))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2304))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2306))]
+ "CGEN_ENABLE_INSN_P (21)"
+ "cpmulslla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2308))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2310))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2312))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2314))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2316))]
+ "CGEN_ENABLE_INSN_P (22)"
+ "cpmulslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulslua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2308))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2310))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2312))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2314))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2316))]
+ "CGEN_ENABLE_INSN_P (23)"
+ "cpmulslua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2318))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2320))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2322))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2324))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2326))]
+ "CGEN_ENABLE_INSN_P (24)"
+ "cpsmsbla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2318))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2320))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2322))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2324))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2326))]
+ "CGEN_ENABLE_INSN_P (25)"
+ "cpsmsbla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2328))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2330))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2332))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2334))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2336))]
+ "CGEN_ENABLE_INSN_P (26)"
+ "cpsmsbua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2328))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2330))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2332))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2334))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2336))]
+ "CGEN_ENABLE_INSN_P (27)"
+ "cpsmsbua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2338))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2340))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2342))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2344))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2346))]
+ "CGEN_ENABLE_INSN_P (28)"
+ "cpsmsbla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2338))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2340))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2342))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2344))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2346))]
+ "CGEN_ENABLE_INSN_P (29)"
+ "cpsmsbla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2348))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2350))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2352))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2354))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2356))]
+ "CGEN_ENABLE_INSN_P (30)"
+ "cpsmsbua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmsbua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2348))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2350))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2352))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2354))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2356))]
+ "CGEN_ENABLE_INSN_P (31)"
+ "cpsmsbua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2358))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2360))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2362))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2364))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2366))]
+ "CGEN_ENABLE_INSN_P (32)"
+ "cpsmadla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2358))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2360))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2362))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2364))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2366))]
+ "CGEN_ENABLE_INSN_P (33)"
+ "cpsmadla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2368))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2370))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2372))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2374))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2376))]
+ "CGEN_ENABLE_INSN_P (34)"
+ "cpsmadua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2368))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2370))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2372))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2374))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2376))]
+ "CGEN_ENABLE_INSN_P (35)"
+ "cpsmadua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2378))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2380))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2382))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2384))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2386))]
+ "CGEN_ENABLE_INSN_P (36)"
+ "cpsmadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2378))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2380))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2382))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2384))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2386))]
+ "CGEN_ENABLE_INSN_P (37)"
+ "cpsmadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2388))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2390))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2392))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2394))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2396))]
+ "CGEN_ENABLE_INSN_P (38)"
+ "cpsmadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsmadua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2388))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2390))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2392))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2394))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2396))]
+ "CGEN_ENABLE_INSN_P (39)"
+ "cpsmadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2398))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2400))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2402))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2404))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2406))]
+ "CGEN_ENABLE_INSN_P (40)"
+ "cpmsbla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2398))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2400))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2402))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2404))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2406))]
+ "CGEN_ENABLE_INSN_P (41)"
+ "cpmsbla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2408))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2410))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2412))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2414))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2416))]
+ "CGEN_ENABLE_INSN_P (42)"
+ "cpmsbua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2408))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2410))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2412))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2414))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2416))]
+ "CGEN_ENABLE_INSN_P (43)"
+ "cpmsbua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1u_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2418))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2420))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2422))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2424))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2426))]
+ "CGEN_ENABLE_INSN_P (44)"
+ "cpmsbla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1u_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2418))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2420))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2422))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2424))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2426))]
+ "CGEN_ENABLE_INSN_P (45)"
+ "cpmsbla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1u_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2428))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2430))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2432))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2434))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2436))]
+ "CGEN_ENABLE_INSN_P (46)"
+ "cpmsbua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1u_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2428))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2430))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2432))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2434))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2436))]
+ "CGEN_ENABLE_INSN_P (47)"
+ "cpmsbua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2438))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2440))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2442))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2444))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2446))]
+ "CGEN_ENABLE_INSN_P (48)"
+ "cpmsbla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2438))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2440))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2442))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2444))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2446))]
+ "CGEN_ENABLE_INSN_P (49)"
+ "cpmsbla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2448))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2450))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2452))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2454))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2456))]
+ "CGEN_ENABLE_INSN_P (50)"
+ "cpmsbua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmsbua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2448))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2450))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2452))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2454))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2456))]
+ "CGEN_ENABLE_INSN_P (51)"
+ "cpmsbua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2458))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2460))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2462))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2464))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2466))]
+ "CGEN_ENABLE_INSN_P (52)"
+ "cpmadla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2458))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2460))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2462))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2464))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2466))]
+ "CGEN_ENABLE_INSN_P (53)"
+ "cpmadla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2468))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2470))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2472))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2474))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2476))]
+ "CGEN_ENABLE_INSN_P (54)"
+ "cpmadua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2468))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2470))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2472))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2474))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2476))]
+ "CGEN_ENABLE_INSN_P (55)"
+ "cpmadua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1u_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2478))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2480))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2482))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2484))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2486))]
+ "CGEN_ENABLE_INSN_P (56)"
+ "cpmadla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1u_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2478))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2480))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2482))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2484))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2486))]
+ "CGEN_ENABLE_INSN_P (57)"
+ "cpmadla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1u_w_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2488))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2490))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2492))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2494))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2496))]
+ "CGEN_ENABLE_INSN_P (58)"
+ "cpmadua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1u_w_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2488))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2490))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2492))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2494))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2496))]
+ "CGEN_ENABLE_INSN_P (59)"
+ "cpmadua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2498))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2500))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2502))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2504))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2506))]
+ "CGEN_ENABLE_INSN_P (60)"
+ "cpmadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2498))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2500))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2502))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2504))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2506))]
+ "CGEN_ENABLE_INSN_P (61)"
+ "cpmadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2508))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2510))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2512))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2514))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2516))]
+ "CGEN_ENABLE_INSN_P (62)"
+ "cpmadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmadua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2508))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2510))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2512))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2514))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2516))]
+ "CGEN_ENABLE_INSN_P (63)"
+ "cpmadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmada1_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2518))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2520))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2522))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2524))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2526))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2528))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2530))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2532))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2534))]
+ "CGEN_ENABLE_INSN_P (64)"
+ "cpmada1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmada1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2518))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2520))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2522))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2524))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2526))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2528))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2530))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2532))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2534))]
+ "CGEN_ENABLE_INSN_P (65)"
+ "cpmada1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmada1u_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2536))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2538))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2540))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2542))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2544))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2546))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2548))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2550))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2552))]
+ "CGEN_ENABLE_INSN_P (66)"
+ "cpmada1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmada1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2536))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2538))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2540))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2542))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2544))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2546))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2548))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2550))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2552))]
+ "CGEN_ENABLE_INSN_P (67)"
+ "cpmada1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1_w_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2554))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2556))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2558))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2560))]
+ "CGEN_ENABLE_INSN_P (68)"
+ "cpmulla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1_w_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2554))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2556))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2558))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2560))]
+ "CGEN_ENABLE_INSN_P (69)"
+ "cpmulla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1_w_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2562))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2564))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2566))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2568))]
+ "CGEN_ENABLE_INSN_P (70)"
+ "cpmulua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1_w_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2562))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2564))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2566))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2568))]
+ "CGEN_ENABLE_INSN_P (71)"
+ "cpmulua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1u_w_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2570))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2572))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2574))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2576))]
+ "CGEN_ENABLE_INSN_P (72)"
+ "cpmulla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1u_w_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2570))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2572))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2574))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2576))]
+ "CGEN_ENABLE_INSN_P (73)"
+ "cpmulla1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1u_w_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2578))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2580))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2582))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2584))]
+ "CGEN_ENABLE_INSN_P (74)"
+ "cpmulua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1u_w_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2578))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2580))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2582))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2584))]
+ "CGEN_ENABLE_INSN_P (75)"
+ "cpmulua1u.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1_h_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2586))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2588))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2590))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2592))]
+ "CGEN_ENABLE_INSN_P (76)"
+ "cpmulla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulla1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2586))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2588))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2590))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2592))]
+ "CGEN_ENABLE_INSN_P (77)"
+ "cpmulla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1_h_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2594))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2596))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2598))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2600))]
+ "CGEN_ENABLE_INSN_P (78)"
+ "cpmulua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmulua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2594))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2596))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2598))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2600))]
+ "CGEN_ENABLE_INSN_P (79)"
+ "cpmulua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmula1_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2602))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2604))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2606))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2608))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2610))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2612))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2614))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2616))]
+ "CGEN_ENABLE_INSN_P (80)"
+ "cpmula1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmula1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2602))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2604))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2606))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2608))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2610))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2612))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2614))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2616))]
+ "CGEN_ENABLE_INSN_P (81)"
+ "cpmula1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmula1u_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2618))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2620))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2622))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2624))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2626))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2628))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2630))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2632))]
+ "CGEN_ENABLE_INSN_P (82)"
+ "cpmula1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmula1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2618))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2620))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2622))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2624))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2626))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2628))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2630))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2632))]
+ "CGEN_ENABLE_INSN_P (83)"
+ "cpmula1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssda1_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2634))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2636))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2638))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2640))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2642))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2644))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2646))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2648))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2650))]
+ "CGEN_ENABLE_INSN_P (84)"
+ "cpssda1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssda1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2634))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2636))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2638))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2640))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2642))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2644))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2646))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2648))]
+ "CGEN_ENABLE_INSN_P (85)"
+ "cpssda1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssda1u_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2650))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2652))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2654))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2656))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2658))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2660))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2662))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2664))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2666))]
+ "CGEN_ENABLE_INSN_P (86)"
+ "cpssda1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssda1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2650))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2652))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2654))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2656))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2658))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2660))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2662))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2664))]
+ "CGEN_ENABLE_INSN_P (87)"
+ "cpssda1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssqa1_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2666))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2668))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2670))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2672))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2674))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2676))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2678))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2680))]
+ "CGEN_ENABLE_INSN_P (88)"
+ "cpssqa1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssqa1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2666))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2668))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2670))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2672))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2674))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2676))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2678))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2680))]
+ "CGEN_ENABLE_INSN_P (89)"
+ "cpssqa1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssqa1u_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2682))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2684))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2686))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2688))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2690))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2692))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2694))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2696))]
+ "CGEN_ENABLE_INSN_P (90)"
+ "cpssqa1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssqa1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2682))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2684))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2686))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2688))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2690))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2692))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2694))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2696))]
+ "CGEN_ENABLE_INSN_P (91)"
+ "cpssqa1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadila1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1000))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1002))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1004))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1006))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1008))]
+ "CGEN_ENABLE_INSN_P (92)"
+ "cpfmadila1.h\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadiua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1010))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1012))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1014))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1016))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1018))]
+ "CGEN_ENABLE_INSN_P (93)"
+ "cpfmadiua1.h\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1020))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1022))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1024))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1026))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1028))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1030))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1032))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1034))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1036))]
+ "CGEN_ENABLE_INSN_P (94)"
+ "cpfmadia1.b\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1038))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1040))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1042))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1044))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1046))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1048))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1050))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1052))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1054))]
+ "CGEN_ENABLE_INSN_P (95)"
+ "cpfmadia1u.b\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulila1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1056))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1058))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1060))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1062))]
+ "CGEN_ENABLE_INSN_P (96)"
+ "cpfmulila1.h\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmuliua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1064))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1066))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1068))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1070))]
+ "CGEN_ENABLE_INSN_P (97)"
+ "cpfmuliua1.h\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1072))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1074))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1076))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1078))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1080))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1082))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1084))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1086))]
+ "CGEN_ENABLE_INSN_P (98)"
+ "cpfmulia1.b\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")
+ ] 1088))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1090))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1092))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1094))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1096))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1098))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1100))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 1102))]
+ "CGEN_ENABLE_INSN_P (99)"
+ "cpfmulia1u.b\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamadila1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1104))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1106))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1108))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1110))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1112))]
+ "CGEN_ENABLE_INSN_P (100)"
+ "cpamadila1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamadiua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1114))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1116))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1118))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1120))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1122))]
+ "CGEN_ENABLE_INSN_P (101)"
+ "cpamadiua1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamadia1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1124))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1126))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1128))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1130))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1132))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1134))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1136))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1138))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1140))]
+ "CGEN_ENABLE_INSN_P (102)"
+ "cpamadia1.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamadia1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1142))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1144))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1146))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1148))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1150))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1152))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1154))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1156))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1158))]
+ "CGEN_ENABLE_INSN_P (103)"
+ "cpamadia1u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamulila1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1160))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1162))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1164))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1166))]
+ "CGEN_ENABLE_INSN_P (104)"
+ "cpamulila1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamuliua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1168))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1170))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1172))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1174))]
+ "CGEN_ENABLE_INSN_P (105)"
+ "cpamuliua1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamulia1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1176))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1178))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1180))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1182))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1184))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1186))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1188))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1190))]
+ "CGEN_ENABLE_INSN_P (106)"
+ "cpamulia1.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpamulia1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1192))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1194))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1196))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1198))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1200))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1202))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1204))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1206))]
+ "CGEN_ENABLE_INSN_P (107)"
+ "cpamulia1u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadila1s1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1208))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1210))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1212))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1214))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1216))]
+ "CGEN_ENABLE_INSN_P (108)"
+ "cpfmadila1s1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadiua1s1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1218))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1220))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1222))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1224))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1226))]
+ "CGEN_ENABLE_INSN_P (109)"
+ "cpfmadiua1s1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1s1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1228))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1230))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1232))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1234))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1236))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1238))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1240))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1242))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1244))]
+ "CGEN_ENABLE_INSN_P (110)"
+ "cpfmadia1s1.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1s1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1246))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1248))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1250))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1252))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1254))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1256))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1258))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1260))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1262))]
+ "CGEN_ENABLE_INSN_P (111)"
+ "cpfmadia1s1u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulila1s1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1264))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1266))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1268))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1270))]
+ "CGEN_ENABLE_INSN_P (112)"
+ "cpfmulila1s1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmuliua1s1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1272))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1274))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1276))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1278))]
+ "CGEN_ENABLE_INSN_P (113)"
+ "cpfmuliua1s1.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1s1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1280))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1282))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1284))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1286))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1288))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1290))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1292))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1294))]
+ "CGEN_ENABLE_INSN_P (114)"
+ "cpfmulia1s1.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1s1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1296))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1298))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1300))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1302))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1304))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1306))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1308))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1310))]
+ "CGEN_ENABLE_INSN_P (115)"
+ "cpfmulia1s1u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadila1s0_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1312))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1314))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1316))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1318))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1320))]
+ "CGEN_ENABLE_INSN_P (116)"
+ "cpfmadila1s0.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadiua1s0_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1322))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1324))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1326))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1328))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1330))]
+ "CGEN_ENABLE_INSN_P (117)"
+ "cpfmadiua1s0.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1s0_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1332))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1334))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1336))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1338))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1340))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1342))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1344))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1346))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1348))]
+ "CGEN_ENABLE_INSN_P (118)"
+ "cpfmadia1s0.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmadia1s0u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1350))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1352))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1354))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1356))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1358))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1360))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1362))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1364))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1366))]
+ "CGEN_ENABLE_INSN_P (119)"
+ "cpfmadia1s0u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulila1s0_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1368))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1370))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1372))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1374))]
+ "CGEN_ENABLE_INSN_P (120)"
+ "cpfmulila1s0.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmuliua1s0_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1376))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1378))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1380))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1382))]
+ "CGEN_ENABLE_INSN_P (121)"
+ "cpfmuliua1s0.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1s0_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1384))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1386))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1388))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1390))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1392))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1394))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1396))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1398))]
+ "CGEN_ENABLE_INSN_P (122)"
+ "cpfmulia1s0.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfmulia1s0u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:SI 2 "cgen_h_sint_8a1_immediate" "")
+ ] 1400))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1402))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1404))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1406))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1408))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1410))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1412))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (match_dup 2)
+ ] 1414))]
+ "CGEN_ENABLE_INSN_P (123)"
+ "cpfmulia1s0u.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsllia1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2698))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2700))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2702))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2704))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2706))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2708))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2710))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2712))]
+ "CGEN_ENABLE_INSN_P (124)"
+ "cpsllia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsllia1_1_p1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2698))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2700))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2702))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2704))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2706))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2708))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2710))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2712))]
+ "CGEN_ENABLE_INSN_P (125)"
+ "cpsllia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraia1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2714))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2716))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2718))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2720))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2722))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2724))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2726))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2728))]
+ "CGEN_ENABLE_INSN_P (126)"
+ "cpsraia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraia1_1_p1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2714))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2716))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2718))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2720))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2722))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2724))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2726))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2728))]
+ "CGEN_ENABLE_INSN_P (127)"
+ "cpsraia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrlia1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2730))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2732))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2734))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2736))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2738))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2740))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2742))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2744))]
+ "CGEN_ENABLE_INSN_P (128)"
+ "cpsrlia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrlia1_1_p1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 2730))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2732))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2734))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2736))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2738))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2740))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2742))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2744))]
+ "CGEN_ENABLE_INSN_P (129)"
+ "cpsrlia1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslla1_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2746))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2748))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2750))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2752))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2754))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2756))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2758))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2760))]
+ "CGEN_ENABLE_INSN_P (130)"
+ "cpslla1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslla1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2746))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2748))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2750))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2752))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2754))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2756))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2758))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2760))]
+ "CGEN_ENABLE_INSN_P (131)"
+ "cpslla1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraa1_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2762))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2764))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2766))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2768))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2770))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2772))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2774))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2776))]
+ "CGEN_ENABLE_INSN_P (132)"
+ "cpsraa1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraa1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2762))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2764))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2766))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2768))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2770))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2772))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2774))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2776))]
+ "CGEN_ENABLE_INSN_P (133)"
+ "cpsraa1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrla1_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2778))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2780))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2782))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2784))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2786))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2788))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2790))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2792))]
+ "CGEN_ENABLE_INSN_P (134)"
+ "cpsrla1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrla1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 2778))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2780))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2782))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2784))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2786))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2788))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2790))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 2792))]
+ "CGEN_ENABLE_INSN_P (135)"
+ "cpsrla1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacswp_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1416))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1418))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1420))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1422))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1424))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1426))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1428))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1430))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1432))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1434))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1436))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1438))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1440))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1442))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1444))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1446))]
+ "CGEN_ENABLE_INSN_P (136)"
+ "cpacswp"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaccpa1_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1448))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1450))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1452))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1454))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1456))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1458))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1460))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1462))]
+ "CGEN_ENABLE_INSN_P (137)"
+ "cpaccpa1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacsuma1_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1464))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1466))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1468))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1470))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1472))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1474))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1476))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1478))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1480))]
+ "CGEN_ENABLE_INSN_P (138)"
+ "cpacsuma1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhla1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2794))]
+ "CGEN_ENABLE_INSN_P (139)"
+ "cpmovhla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhla1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2794))]
+ "CGEN_ENABLE_INSN_P (140)"
+ "cpmovhla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhua1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2796))]
+ "CGEN_ENABLE_INSN_P (141)"
+ "cpmovhua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhua1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2796))]
+ "CGEN_ENABLE_INSN_P (142)"
+ "cpmovhua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2798))]
+ "CGEN_ENABLE_INSN_P (143)"
+ "cppackla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2798))]
+ "CGEN_ENABLE_INSN_P (144)"
+ "cppackla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2800))]
+ "CGEN_ENABLE_INSN_P (145)"
+ "cppackua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2800))]
+ "CGEN_ENABLE_INSN_P (146)"
+ "cppackua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla1_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2802))]
+ "CGEN_ENABLE_INSN_P (147)"
+ "cppackla1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla1_h_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2802))]
+ "CGEN_ENABLE_INSN_P (148)"
+ "cppackla1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua1_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2804))]
+ "CGEN_ENABLE_INSN_P (149)"
+ "cppackua1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua1_h_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2804))]
+ "CGEN_ENABLE_INSN_P (150)"
+ "cppackua1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka1_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2806))]
+ "CGEN_ENABLE_INSN_P (151)"
+ "cppacka1.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka1_b_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2806))]
+ "CGEN_ENABLE_INSN_P (152)"
+ "cppacka1.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka1u_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2808))]
+ "CGEN_ENABLE_INSN_P (153)"
+ "cppacka1u.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka1u_b_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2808))]
+ "CGEN_ENABLE_INSN_P (154)"
+ "cppacka1u.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlla1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2810))]
+ "CGEN_ENABLE_INSN_P (155)"
+ "cpmovlla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlla1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2810))]
+ "CGEN_ENABLE_INSN_P (156)"
+ "cpmovlla1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlua1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2812))]
+ "CGEN_ENABLE_INSN_P (157)"
+ "cpmovlua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlua1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2812))]
+ "CGEN_ENABLE_INSN_P (158)"
+ "cpmovlua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovula1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2814))]
+ "CGEN_ENABLE_INSN_P (159)"
+ "cpmovula1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovula1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2814))]
+ "CGEN_ENABLE_INSN_P (160)"
+ "cpmovula1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovuua1_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2816))]
+ "CGEN_ENABLE_INSN_P (161)"
+ "cpmovuua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovuua1_w_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2816))]
+ "CGEN_ENABLE_INSN_P (162)"
+ "cpmovuua1.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovla1_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2818))]
+ "CGEN_ENABLE_INSN_P (163)"
+ "cpmovla1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovla1_h_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2818))]
+ "CGEN_ENABLE_INSN_P (164)"
+ "cpmovla1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovua1_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2820))]
+ "CGEN_ENABLE_INSN_P (165)"
+ "cpmovua1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovua1_h_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2820))]
+ "CGEN_ENABLE_INSN_P (166)"
+ "cpmovua1.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmova1_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2822))]
+ "CGEN_ENABLE_INSN_P (167)"
+ "cpmova1.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmova1_b_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 2822))]
+ "CGEN_ENABLE_INSN_P (168)"
+ "cpmova1.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetla1_w_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2824))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2826))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2828))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2830))]
+ "CGEN_ENABLE_INSN_P (169)"
+ "cpsetla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetla1_w_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2824))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2826))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2828))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2830))]
+ "CGEN_ENABLE_INSN_P (170)"
+ "cpsetla1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetua1_w_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2832))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2834))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2836))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2838))]
+ "CGEN_ENABLE_INSN_P (171)"
+ "cpsetua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetua1_w_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2832))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2834))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2836))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2838))]
+ "CGEN_ENABLE_INSN_P (172)"
+ "cpsetua1.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpseta1_h_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2840))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2842))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2844))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2846))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2848))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2850))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2852))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2854))]
+ "CGEN_ENABLE_INSN_P (173)"
+ "cpseta1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpseta1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2840))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2842))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2844))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2846))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2848))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2850))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2852))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2854))]
+ "CGEN_ENABLE_INSN_P (174)"
+ "cpseta1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2856))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2858))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2860))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2862))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2864))]
+ "CGEN_ENABLE_INSN_P (175)"
+ "cpsadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2856))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2858))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2860))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2862))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2864))]
+ "CGEN_ENABLE_INSN_P (176)"
+ "cpsadla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2866))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2868))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2870))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2872))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2874))]
+ "CGEN_ENABLE_INSN_P (177)"
+ "cpsadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2866))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2868))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2870))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2872))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2874))]
+ "CGEN_ENABLE_INSN_P (178)"
+ "cpsadua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada1_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2876))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2878))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2880))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2882))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2884))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2886))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2888))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2890))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2892))]
+ "CGEN_ENABLE_INSN_P (179)"
+ "cpsada1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2876))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2878))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2880))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2882))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2884))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2886))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2888))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2890))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2892))]
+ "CGEN_ENABLE_INSN_P (180)"
+ "cpsada1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada1u_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2894))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2896))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2898))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2900))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2902))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2904))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2906))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2908))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2910))]
+ "CGEN_ENABLE_INSN_P (181)"
+ "cpsada1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2894))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2896))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2898))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2900))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2902))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2904))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2906))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2908))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2910))]
+ "CGEN_ENABLE_INSN_P (182)"
+ "cpsada1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsla1_h_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2912))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2914))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2916))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2918))]
+ "CGEN_ENABLE_INSN_P (183)"
+ "cpabsla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsla1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2912))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2914))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2916))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2918))]
+ "CGEN_ENABLE_INSN_P (184)"
+ "cpabsla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsua1_h_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2920))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2922))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2924))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2926))]
+ "CGEN_ENABLE_INSN_P (185)"
+ "cpabsua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2920))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2922))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2924))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2926))]
+ "CGEN_ENABLE_INSN_P (186)"
+ "cpabsua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa1_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2928))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2930))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2932))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2934))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2936))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2938))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2940))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2942))]
+ "CGEN_ENABLE_INSN_P (187)"
+ "cpabsa1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2928))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2930))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2932))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2934))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2936))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2938))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2940))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2942))]
+ "CGEN_ENABLE_INSN_P (188)"
+ "cpabsa1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa1u_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2944))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2946))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2948))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2950))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2952))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2954))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2956))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2958))]
+ "CGEN_ENABLE_INSN_P (189)"
+ "cpabsa1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2944))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2946))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2948))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2950))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2952))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2954))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2956))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2958))]
+ "CGEN_ENABLE_INSN_P (190)"
+ "cpabsa1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2960))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2962))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2964))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2966))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2968))]
+ "CGEN_ENABLE_INSN_P (191)"
+ "cpsubacla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2960))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2962))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2964))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2966))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2968))]
+ "CGEN_ENABLE_INSN_P (192)"
+ "cpsubacla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2970))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2972))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2974))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2976))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2978))]
+ "CGEN_ENABLE_INSN_P (193)"
+ "cpsubacua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2970))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2972))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2974))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2976))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2978))]
+ "CGEN_ENABLE_INSN_P (194)"
+ "cpsubacua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca1_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2980))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2982))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2984))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2986))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2988))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2990))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2992))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2994))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2996))]
+ "CGEN_ENABLE_INSN_P (195)"
+ "cpsubaca1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2980))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2982))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2984))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2986))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2988))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2990))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2992))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2994))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2996))]
+ "CGEN_ENABLE_INSN_P (196)"
+ "cpsubaca1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca1u_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2998))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3000))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3002))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3004))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3006))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3008))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3010))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3012))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3014))]
+ "CGEN_ENABLE_INSN_P (197)"
+ "cpsubaca1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2998))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3000))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3002))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3004))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3006))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3008))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3010))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3012))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3014))]
+ "CGEN_ENABLE_INSN_P (198)"
+ "cpsubaca1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubla1_h_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3016))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3018))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3020))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3022))]
+ "CGEN_ENABLE_INSN_P (199)"
+ "cpsubla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubla1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3016))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3018))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3020))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3022))]
+ "CGEN_ENABLE_INSN_P (200)"
+ "cpsubla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubua1_h_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3024))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3026))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3028))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3030))]
+ "CGEN_ENABLE_INSN_P (201)"
+ "cpsubua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3024))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3026))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3028))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3030))]
+ "CGEN_ENABLE_INSN_P (202)"
+ "cpsubua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba1_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3032))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3034))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3036))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3038))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3040))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3042))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3044))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3046))]
+ "CGEN_ENABLE_INSN_P (203)"
+ "cpsuba1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3032))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3034))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3036))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3038))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3040))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3042))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3044))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3046))]
+ "CGEN_ENABLE_INSN_P (204)"
+ "cpsuba1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba1u_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3048))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3050))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3052))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3054))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3056))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3058))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3060))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3062))]
+ "CGEN_ENABLE_INSN_P (205)"
+ "cpsuba1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3048))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3050))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3052))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3054))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3056))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3058))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3060))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3062))]
+ "CGEN_ENABLE_INSN_P (206)"
+ "cpsuba1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacla1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3064))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3066))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3068))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3070))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3072))]
+ "CGEN_ENABLE_INSN_P (207)"
+ "cpaddacla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacla1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3064))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3066))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3068))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3070))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3072))]
+ "CGEN_ENABLE_INSN_P (208)"
+ "cpaddacla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacua1_h_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3074))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3076))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3078))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3080))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3082))]
+ "CGEN_ENABLE_INSN_P (209)"
+ "cpaddacua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacua1_h_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3074))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3076))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3078))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3080))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3082))]
+ "CGEN_ENABLE_INSN_P (210)"
+ "cpaddacua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca1_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3084))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3086))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3088))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3090))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3092))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3094))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3096))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3098))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3100))]
+ "CGEN_ENABLE_INSN_P (211)"
+ "cpaddaca1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca1_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3084))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3086))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3088))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3090))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3092))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3094))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3096))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3098))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3100))]
+ "CGEN_ENABLE_INSN_P (212)"
+ "cpaddaca1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca1u_b_C3"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3102))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3104))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3106))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3108))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3110))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3112))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3114))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3116))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3118))]
+ "CGEN_ENABLE_INSN_P (213)"
+ "cpaddaca1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca1u_b_P1"
+ [(set (reg:SI 87)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3102))
+ (set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3104))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3106))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3108))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3110))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3112))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3114))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3116))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3118))]
+ "CGEN_ENABLE_INSN_P (214)"
+ "cpaddaca1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddla1_h_C3"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3120))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3122))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3124))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3126))]
+ "CGEN_ENABLE_INSN_P (215)"
+ "cpaddla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddla1_h_P1"
+ [(set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3120))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3122))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3124))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3126))]
+ "CGEN_ENABLE_INSN_P (216)"
+ "cpaddla1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddua1_h_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3128))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3130))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3132))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3134))]
+ "CGEN_ENABLE_INSN_P (217)"
+ "cpaddua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddua1_h_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3128))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3130))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3132))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3134))]
+ "CGEN_ENABLE_INSN_P (218)"
+ "cpaddua1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda1_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3136))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3138))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3140))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3142))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3144))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3146))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3148))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3150))]
+ "CGEN_ENABLE_INSN_P (219)"
+ "cpadda1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda1_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3136))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3138))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3140))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3142))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3144))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3146))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3148))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3150))]
+ "CGEN_ENABLE_INSN_P (220)"
+ "cpadda1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda1u_b_C3"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3152))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3154))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3156))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3158))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3160))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3162))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3164))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3166))]
+ "CGEN_ENABLE_INSN_P (221)"
+ "cpadda1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda1u_b_P1"
+ [(set (reg:SI 111)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3152))
+ (set (reg:SI 110)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3154))
+ (set (reg:SI 109)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3156))
+ (set (reg:SI 108)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3158))
+ (set (reg:SI 107)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3160))
+ (set (reg:SI 106)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3162))
+ (set (reg:SI 105)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3164))
+ (set (reg:SI 104)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3166))]
+ "CGEN_ENABLE_INSN_P (222)"
+ "cpadda1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3180))]
+ "CGEN_ENABLE_INSN_P (223)"
+ "cpmovi.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3180))]
+ "CGEN_ENABLE_INSN_P (224)"
+ "cpmovi.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_c1nop_P1"
+ [(unspec_volatile [
+ (const_int 0)
+ ] 1482)]
+ "CGEN_ENABLE_INSN_P (225)"
+ "c1nop"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdmovi_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3168))]
+ "CGEN_ENABLE_INSN_P (226)"
+ "cdmovi\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdmovi_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_16a1_immediate" "")
+ ] 3168))]
+ "CGEN_ENABLE_INSN_P (227)"
+ "cdmovi\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdmoviu_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_uint_8a1_immediate" "")
+ ] 3170))]
+ "CGEN_ENABLE_INSN_P (228)"
+ "cdmoviu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdmoviu_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3170))]
+ "CGEN_ENABLE_INSN_P (229)"
+ "cdmoviu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3172))]
+ "CGEN_ENABLE_INSN_P (230)"
+ "cpmovi.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_16a1_immediate" "")
+ ] 3172))]
+ "CGEN_ENABLE_INSN_P (231)"
+ "cpmovi.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmoviu_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_uint_8a1_immediate" "")
+ ] 3174))]
+ "CGEN_ENABLE_INSN_P (232)"
+ "cpmoviu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmoviu_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3174))]
+ "CGEN_ENABLE_INSN_P (233)"
+ "cpmoviu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3176))]
+ "CGEN_ENABLE_INSN_P (234)"
+ "cpmovi.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovi_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_16a1_immediate" "")
+ ] 3176))]
+ "CGEN_ENABLE_INSN_P (235)"
+ "cpmovi.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdclipi3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3182))]
+ "CGEN_ENABLE_INSN_P (236)"
+ "cdclipi3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdclipi3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3182))]
+ "CGEN_ENABLE_INSN_P (237)"
+ "cdclipi3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdclipiu3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3184))]
+ "CGEN_ENABLE_INSN_P (238)"
+ "cdclipiu3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdclipiu3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3184))]
+ "CGEN_ENABLE_INSN_P (239)"
+ "cdclipiu3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpclipi3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3186))]
+ "CGEN_ENABLE_INSN_P (240)"
+ "cpclipi3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpclipi3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3186))]
+ "CGEN_ENABLE_INSN_P (241)"
+ "cpclipi3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpclipiu3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3188))]
+ "CGEN_ENABLE_INSN_P (242)"
+ "cpclipiu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpclipiu3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3188))]
+ "CGEN_ENABLE_INSN_P (243)"
+ "cpclipiu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslai3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3190))]
+ "CGEN_ENABLE_INSN_P (244)"
+ "cpslai3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslai3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3190))]
+ "CGEN_ENABLE_INSN_P (245)"
+ "cpslai3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslai3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3192))]
+ "CGEN_ENABLE_INSN_P (246)"
+ "cpslai3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslai3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3192))]
+ "CGEN_ENABLE_INSN_P (247)"
+ "cpslai3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdslli3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3194))]
+ "CGEN_ENABLE_INSN_P (248)"
+ "cdslli3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdslli3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3194))]
+ "CGEN_ENABLE_INSN_P (249)"
+ "cdslli3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3196))]
+ "CGEN_ENABLE_INSN_P (250)"
+ "cpslli3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3196))]
+ "CGEN_ENABLE_INSN_P (251)"
+ "cpslli3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3198))]
+ "CGEN_ENABLE_INSN_P (252)"
+ "cpslli3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3198))]
+ "CGEN_ENABLE_INSN_P (253)"
+ "cpslli3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3200))]
+ "CGEN_ENABLE_INSN_P (254)"
+ "cpslli3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslli3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3200))]
+ "CGEN_ENABLE_INSN_P (255)"
+ "cpslli3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrai3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3202))]
+ "CGEN_ENABLE_INSN_P (256)"
+ "cdsrai3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrai3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3202))]
+ "CGEN_ENABLE_INSN_P (257)"
+ "cdsrai3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3204))]
+ "CGEN_ENABLE_INSN_P (258)"
+ "cpsrai3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3204))]
+ "CGEN_ENABLE_INSN_P (259)"
+ "cpsrai3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3206))]
+ "CGEN_ENABLE_INSN_P (260)"
+ "cpsrai3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3206))]
+ "CGEN_ENABLE_INSN_P (261)"
+ "cpsrai3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3208))]
+ "CGEN_ENABLE_INSN_P (262)"
+ "cpsrai3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrai3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3208))]
+ "CGEN_ENABLE_INSN_P (263)"
+ "cpsrai3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrli3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3210))]
+ "CGEN_ENABLE_INSN_P (264)"
+ "cdsrli3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrli3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_6a1_immediate" "")
+ ] 3210))]
+ "CGEN_ENABLE_INSN_P (265)"
+ "cdsrli3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3212))]
+ "CGEN_ENABLE_INSN_P (266)"
+ "cpsrli3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3212))]
+ "CGEN_ENABLE_INSN_P (267)"
+ "cpsrli3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3214))]
+ "CGEN_ENABLE_INSN_P (268)"
+ "cpsrli3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_4a1_immediate" "")
+ ] 3214))]
+ "CGEN_ENABLE_INSN_P (269)"
+ "cpsrli3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3216))]
+ "CGEN_ENABLE_INSN_P (270)"
+ "cpsrli3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrli3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "cgen_h_uint_3a1_immediate" "")
+ ] 3216))]
+ "CGEN_ENABLE_INSN_P (271)"
+ "cpsrli3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsla3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3460))]
+ "CGEN_ENABLE_INSN_P (272)"
+ "cpsla3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsla3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3460))]
+ "CGEN_ENABLE_INSN_P (273)"
+ "cpsla3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsla3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3462))]
+ "CGEN_ENABLE_INSN_P (274)"
+ "cpsla3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsla3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3462))]
+ "CGEN_ENABLE_INSN_P (275)"
+ "cpsla3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsll3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3464))]
+ "CGEN_ENABLE_INSN_P (276)"
+ "cdsll3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsll3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3464))]
+ "CGEN_ENABLE_INSN_P (277)"
+ "cdsll3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3466))]
+ "CGEN_ENABLE_INSN_P (278)"
+ "cpssll3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3466))]
+ "CGEN_ENABLE_INSN_P (279)"
+ "cpssll3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3468))]
+ "CGEN_ENABLE_INSN_P (280)"
+ "cpsll3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3468))]
+ "CGEN_ENABLE_INSN_P (281)"
+ "cpsll3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3470))]
+ "CGEN_ENABLE_INSN_P (282)"
+ "cpssll3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3470))]
+ "CGEN_ENABLE_INSN_P (283)"
+ "cpssll3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3472))]
+ "CGEN_ENABLE_INSN_P (284)"
+ "cpsll3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3472))]
+ "CGEN_ENABLE_INSN_P (285)"
+ "cpsll3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3474))]
+ "CGEN_ENABLE_INSN_P (286)"
+ "cpssll3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssll3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3474))]
+ "CGEN_ENABLE_INSN_P (287)"
+ "cpssll3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3476))]
+ "CGEN_ENABLE_INSN_P (288)"
+ "cpsll3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsll3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3476))]
+ "CGEN_ENABLE_INSN_P (289)"
+ "cpsll3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsra3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3478))]
+ "CGEN_ENABLE_INSN_P (290)"
+ "cdsra3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsra3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3478))]
+ "CGEN_ENABLE_INSN_P (291)"
+ "cdsra3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3480))]
+ "CGEN_ENABLE_INSN_P (292)"
+ "cpssra3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3480))]
+ "CGEN_ENABLE_INSN_P (293)"
+ "cpssra3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3482))]
+ "CGEN_ENABLE_INSN_P (294)"
+ "cpsra3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3482))]
+ "CGEN_ENABLE_INSN_P (295)"
+ "cpsra3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3484))]
+ "CGEN_ENABLE_INSN_P (296)"
+ "cpssra3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3484))]
+ "CGEN_ENABLE_INSN_P (297)"
+ "cpssra3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3486))]
+ "CGEN_ENABLE_INSN_P (298)"
+ "cpsra3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3486))]
+ "CGEN_ENABLE_INSN_P (299)"
+ "cpsra3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3488))]
+ "CGEN_ENABLE_INSN_P (300)"
+ "cpssra3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssra3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3488))]
+ "CGEN_ENABLE_INSN_P (301)"
+ "cpssra3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3490))]
+ "CGEN_ENABLE_INSN_P (302)"
+ "cpsra3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsra3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3490))]
+ "CGEN_ENABLE_INSN_P (303)"
+ "cpsra3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrl3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3492))]
+ "CGEN_ENABLE_INSN_P (304)"
+ "cdsrl3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsrl3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3492))]
+ "CGEN_ENABLE_INSN_P (305)"
+ "cdsrl3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3494))]
+ "CGEN_ENABLE_INSN_P (306)"
+ "cpssrl3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3494))]
+ "CGEN_ENABLE_INSN_P (307)"
+ "cpssrl3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3496))]
+ "CGEN_ENABLE_INSN_P (308)"
+ "cpsrl3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3496))]
+ "CGEN_ENABLE_INSN_P (309)"
+ "cpsrl3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3498))]
+ "CGEN_ENABLE_INSN_P (310)"
+ "cpssrl3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3498))]
+ "CGEN_ENABLE_INSN_P (311)"
+ "cpssrl3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3500))]
+ "CGEN_ENABLE_INSN_P (312)"
+ "cpsrl3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3500))]
+ "CGEN_ENABLE_INSN_P (313)"
+ "cpsrl3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3502))]
+ "CGEN_ENABLE_INSN_P (314)"
+ "cpssrl3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssrl3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3502))]
+ "CGEN_ENABLE_INSN_P (315)"
+ "cpssrl3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3504))]
+ "CGEN_ENABLE_INSN_P (316)"
+ "cpsrl3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrl3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3504))]
+ "CGEN_ENABLE_INSN_P (317)"
+ "cpsrl3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3390))]
+ "CGEN_ENABLE_INSN_P (318)"
+ "cpmin3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3390))]
+ "CGEN_ENABLE_INSN_P (319)"
+ "cpmin3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpminu3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3392))]
+ "CGEN_ENABLE_INSN_P (320)"
+ "cpminu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpminu3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3392))]
+ "CGEN_ENABLE_INSN_P (321)"
+ "cpminu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3394))]
+ "CGEN_ENABLE_INSN_P (322)"
+ "cpmin3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3394))]
+ "CGEN_ENABLE_INSN_P (323)"
+ "cpmin3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3396))]
+ "CGEN_ENABLE_INSN_P (324)"
+ "cpmin3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmin3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3396))]
+ "CGEN_ENABLE_INSN_P (325)"
+ "cpmin3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpminu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3398))]
+ "CGEN_ENABLE_INSN_P (326)"
+ "cpminu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpminu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3398))]
+ "CGEN_ENABLE_INSN_P (327)"
+ "cpminu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3400))]
+ "CGEN_ENABLE_INSN_P (328)"
+ "cpmax3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3400))]
+ "CGEN_ENABLE_INSN_P (329)"
+ "cpmax3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmaxu3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3402))]
+ "CGEN_ENABLE_INSN_P (330)"
+ "cpmaxu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmaxu3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3402))]
+ "CGEN_ENABLE_INSN_P (331)"
+ "cpmaxu3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3404))]
+ "CGEN_ENABLE_INSN_P (332)"
+ "cpmax3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3404))]
+ "CGEN_ENABLE_INSN_P (333)"
+ "cpmax3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3406))]
+ "CGEN_ENABLE_INSN_P (334)"
+ "cpmax3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmax3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3406))]
+ "CGEN_ENABLE_INSN_P (335)"
+ "cpmax3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmaxu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3408))]
+ "CGEN_ENABLE_INSN_P (336)"
+ "cpmaxu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmaxu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3408))]
+ "CGEN_ENABLE_INSN_P (337)"
+ "cpmaxu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppack_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3506))]
+ "CGEN_ENABLE_INSN_P (338)"
+ "cppack.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppack_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3506))]
+ "CGEN_ENABLE_INSN_P (339)"
+ "cppack.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppack_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3508))]
+ "CGEN_ENABLE_INSN_P (340)"
+ "cppack.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppack_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3508))]
+ "CGEN_ENABLE_INSN_P (341)"
+ "cppack.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacku_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3510))]
+ "CGEN_ENABLE_INSN_P (342)"
+ "cppacku.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacku_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3510))]
+ "CGEN_ENABLE_INSN_P (343)"
+ "cppacku.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpxor3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3532))]
+ "CGEN_ENABLE_INSN_P (344)"
+ "cpxor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpxor3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3532))]
+ "CGEN_ENABLE_INSN_P (345)"
+ "cpxor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnor3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3534))]
+ "CGEN_ENABLE_INSN_P (346)"
+ "cpnor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnor3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3534))]
+ "CGEN_ENABLE_INSN_P (347)"
+ "cpnor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpor3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3536))]
+ "CGEN_ENABLE_INSN_P (348)"
+ "cpor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpor3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3536))]
+ "CGEN_ENABLE_INSN_P (349)"
+ "cpor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpand3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3538))]
+ "CGEN_ENABLE_INSN_P (350)"
+ "cpand3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpand3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3538))]
+ "CGEN_ENABLE_INSN_P (351)"
+ "cpand3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabs3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3410))]
+ "CGEN_ENABLE_INSN_P (352)"
+ "cpabs3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabs3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3410))]
+ "CGEN_ENABLE_INSN_P (353)"
+ "cpabs3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabs3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3412))]
+ "CGEN_ENABLE_INSN_P (354)"
+ "cpabs3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabs3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3412))]
+ "CGEN_ENABLE_INSN_P (355)"
+ "cpabs3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3414))]
+ "CGEN_ENABLE_INSN_P (356)"
+ "cpabsu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3414))]
+ "CGEN_ENABLE_INSN_P (357)"
+ "cpabsu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3416))]
+ "CGEN_ENABLE_INSN_P (358)"
+ "cpaddsr3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3416))]
+ "CGEN_ENABLE_INSN_P (359)"
+ "cpaddsr3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3418))]
+ "CGEN_ENABLE_INSN_P (360)"
+ "cpaddsr3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3418))]
+ "CGEN_ENABLE_INSN_P (361)"
+ "cpaddsr3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3420))]
+ "CGEN_ENABLE_INSN_P (362)"
+ "cpaddsr3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsr3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3420))]
+ "CGEN_ENABLE_INSN_P (363)"
+ "cpaddsr3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsru3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3422))]
+ "CGEN_ENABLE_INSN_P (364)"
+ "cpaddsru3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddsru3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3422))]
+ "CGEN_ENABLE_INSN_P (365)"
+ "cpaddsru3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3424))]
+ "CGEN_ENABLE_INSN_P (366)"
+ "cpave3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3424))]
+ "CGEN_ENABLE_INSN_P (367)"
+ "cpave3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3426))]
+ "CGEN_ENABLE_INSN_P (368)"
+ "cpave3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3426))]
+ "CGEN_ENABLE_INSN_P (369)"
+ "cpave3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3428))]
+ "CGEN_ENABLE_INSN_P (370)"
+ "cpave3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpave3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3428))]
+ "CGEN_ENABLE_INSN_P (371)"
+ "cpave3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaveu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3430))]
+ "CGEN_ENABLE_INSN_P (372)"
+ "cpaveu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaveu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3430))]
+ "CGEN_ENABLE_INSN_P (373)"
+ "cpaveu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlsub3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3432))]
+ "CGEN_ENABLE_INSN_P (374)"
+ "cpextlsub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlsub3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3432))]
+ "CGEN_ENABLE_INSN_P (375)"
+ "cpextlsub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlsubu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3434))]
+ "CGEN_ENABLE_INSN_P (376)"
+ "cpextlsubu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlsubu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3434))]
+ "CGEN_ENABLE_INSN_P (377)"
+ "cpextlsubu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextusub3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3436))]
+ "CGEN_ENABLE_INSN_P (378)"
+ "cpextusub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextusub3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3436))]
+ "CGEN_ENABLE_INSN_P (379)"
+ "cpextusub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextusubu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3438))]
+ "CGEN_ENABLE_INSN_P (380)"
+ "cpextusubu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextusubu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3438))]
+ "CGEN_ENABLE_INSN_P (381)"
+ "cpextusubu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextladd3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3440))]
+ "CGEN_ENABLE_INSN_P (382)"
+ "cpextladd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextladd3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3440))]
+ "CGEN_ENABLE_INSN_P (383)"
+ "cpextladd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextladdu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3442))]
+ "CGEN_ENABLE_INSN_P (384)"
+ "cpextladdu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextladdu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3442))]
+ "CGEN_ENABLE_INSN_P (385)"
+ "cpextladdu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuadd3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3444))]
+ "CGEN_ENABLE_INSN_P (386)"
+ "cpextuadd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuadd3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3444))]
+ "CGEN_ENABLE_INSN_P (387)"
+ "cpextuadd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuaddu3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3446))]
+ "CGEN_ENABLE_INSN_P (388)"
+ "cpextuaddu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuaddu3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3446))]
+ "CGEN_ENABLE_INSN_P (389)"
+ "cpextuaddu3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssub3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3448))
+ (set (reg:SI 84)
+ (unspec_volatile:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3450))]
+ "CGEN_ENABLE_INSN_P (390)"
+ "cpssub3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssub3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3448))
+ (set (reg:SI 84)
+ (unspec_volatile:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3450))]
+ "CGEN_ENABLE_INSN_P (391)"
+ "cpssub3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssub3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3452))
+ (set (reg:SI 84)
+ (unspec_volatile:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3454))]
+ "CGEN_ENABLE_INSN_P (392)"
+ "cpssub3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpssub3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3452))
+ (set (reg:SI 84)
+ (unspec_volatile:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3454))]
+ "CGEN_ENABLE_INSN_P (393)"
+ "cpssub3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadd3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3456))]
+ "CGEN_ENABLE_INSN_P (394)"
+ "cpsadd3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadd3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3456))]
+ "CGEN_ENABLE_INSN_P (395)"
+ "cpsadd3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadd3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3458))]
+ "CGEN_ENABLE_INSN_P (396)"
+ "cpsadd3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadd3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3458))]
+ "CGEN_ENABLE_INSN_P (397)"
+ "cpsadd3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsub3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3540))]
+ "CGEN_ENABLE_INSN_P (398)"
+ "cdsub3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdsub3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3540))]
+ "CGEN_ENABLE_INSN_P (399)"
+ "cdsub3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3542))]
+ "CGEN_ENABLE_INSN_P (400)"
+ "cpsub3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_w_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3542))]
+ "CGEN_ENABLE_INSN_P (401)"
+ "cpsub3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3544))]
+ "CGEN_ENABLE_INSN_P (402)"
+ "cpsub3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_h_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3544))]
+ "CGEN_ENABLE_INSN_P (403)"
+ "cpsub3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3546))]
+ "CGEN_ENABLE_INSN_P (404)"
+ "cpsub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsub3_b_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3546))]
+ "CGEN_ENABLE_INSN_P (405)"
+ "cpsub3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdadd3_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3548))]
+ "CGEN_ENABLE_INSN_P (406)"
+ "cdadd3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdadd3_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3548))]
+ "CGEN_ENABLE_INSN_P (407)"
+ "cdadd3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3218))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3219))]
+ "CGEN_ENABLE_INSN_P (408)"
+ "cpocmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3218)]
+ "CGEN_ENABLE_INSN_P (409)"
+ "cpocmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgeu_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3220))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3221))]
+ "CGEN_ENABLE_INSN_P (410)"
+ "cpocmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgeu_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3220)]
+ "CGEN_ENABLE_INSN_P (411)"
+ "cpocmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3222))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3223))]
+ "CGEN_ENABLE_INSN_P (412)"
+ "cpocmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3222)]
+ "CGEN_ENABLE_INSN_P (413)"
+ "cpocmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3224))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3225))]
+ "CGEN_ENABLE_INSN_P (414)"
+ "cpocmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpge_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3224)]
+ "CGEN_ENABLE_INSN_P (415)"
+ "cpocmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgeu_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3226))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3227))]
+ "CGEN_ENABLE_INSN_P (416)"
+ "cpocmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgeu_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3226)]
+ "CGEN_ENABLE_INSN_P (417)"
+ "cpocmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3228))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3229))]
+ "CGEN_ENABLE_INSN_P (418)"
+ "cpocmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3228)]
+ "CGEN_ENABLE_INSN_P (419)"
+ "cpocmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgtu_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3230))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3231))]
+ "CGEN_ENABLE_INSN_P (420)"
+ "cpocmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgtu_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3230)]
+ "CGEN_ENABLE_INSN_P (421)"
+ "cpocmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3232))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3233))]
+ "CGEN_ENABLE_INSN_P (422)"
+ "cpocmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3232)]
+ "CGEN_ENABLE_INSN_P (423)"
+ "cpocmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3234))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3235))]
+ "CGEN_ENABLE_INSN_P (424)"
+ "cpocmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgt_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3234)]
+ "CGEN_ENABLE_INSN_P (425)"
+ "cpocmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgtu_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3236))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3237))]
+ "CGEN_ENABLE_INSN_P (426)"
+ "cpocmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpgtu_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3236)]
+ "CGEN_ENABLE_INSN_P (427)"
+ "cpocmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3238))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3239))]
+ "CGEN_ENABLE_INSN_P (428)"
+ "cpocmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3238)]
+ "CGEN_ENABLE_INSN_P (429)"
+ "cpocmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3240))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3241))]
+ "CGEN_ENABLE_INSN_P (430)"
+ "cpocmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3240)]
+ "CGEN_ENABLE_INSN_P (431)"
+ "cpocmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3242))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3243))]
+ "CGEN_ENABLE_INSN_P (432)"
+ "cpocmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpne_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3242)]
+ "CGEN_ENABLE_INSN_P (433)"
+ "cpocmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3244))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3245))]
+ "CGEN_ENABLE_INSN_P (434)"
+ "cpocmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3244)]
+ "CGEN_ENABLE_INSN_P (435)"
+ "cpocmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3246))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3247))]
+ "CGEN_ENABLE_INSN_P (436)"
+ "cpocmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3246)]
+ "CGEN_ENABLE_INSN_P (437)"
+ "cpocmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3248))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3249))]
+ "CGEN_ENABLE_INSN_P (438)"
+ "cpocmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpocmpeq_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3248)]
+ "CGEN_ENABLE_INSN_P (439)"
+ "cpocmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3250))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3251))]
+ "CGEN_ENABLE_INSN_P (440)"
+ "cpacmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3250)]
+ "CGEN_ENABLE_INSN_P (441)"
+ "cpacmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgeu_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3252))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3253))]
+ "CGEN_ENABLE_INSN_P (442)"
+ "cpacmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgeu_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3252)]
+ "CGEN_ENABLE_INSN_P (443)"
+ "cpacmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3254))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3255))]
+ "CGEN_ENABLE_INSN_P (444)"
+ "cpacmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3254)]
+ "CGEN_ENABLE_INSN_P (445)"
+ "cpacmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3256))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3257))]
+ "CGEN_ENABLE_INSN_P (446)"
+ "cpacmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpge_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3256)]
+ "CGEN_ENABLE_INSN_P (447)"
+ "cpacmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgeu_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3258))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3259))]
+ "CGEN_ENABLE_INSN_P (448)"
+ "cpacmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgeu_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3258)]
+ "CGEN_ENABLE_INSN_P (449)"
+ "cpacmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3260))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3261))]
+ "CGEN_ENABLE_INSN_P (450)"
+ "cpacmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3260)]
+ "CGEN_ENABLE_INSN_P (451)"
+ "cpacmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgtu_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3262))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3263))]
+ "CGEN_ENABLE_INSN_P (452)"
+ "cpacmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgtu_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3262)]
+ "CGEN_ENABLE_INSN_P (453)"
+ "cpacmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3264))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3265))]
+ "CGEN_ENABLE_INSN_P (454)"
+ "cpacmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3264)]
+ "CGEN_ENABLE_INSN_P (455)"
+ "cpacmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3266))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3267))]
+ "CGEN_ENABLE_INSN_P (456)"
+ "cpacmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgt_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3266)]
+ "CGEN_ENABLE_INSN_P (457)"
+ "cpacmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgtu_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3268))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3269))]
+ "CGEN_ENABLE_INSN_P (458)"
+ "cpacmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpgtu_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3268)]
+ "CGEN_ENABLE_INSN_P (459)"
+ "cpacmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3270))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3271))]
+ "CGEN_ENABLE_INSN_P (460)"
+ "cpacmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3270)]
+ "CGEN_ENABLE_INSN_P (461)"
+ "cpacmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3272))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3273))]
+ "CGEN_ENABLE_INSN_P (462)"
+ "cpacmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3272)]
+ "CGEN_ENABLE_INSN_P (463)"
+ "cpacmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3274))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3275))]
+ "CGEN_ENABLE_INSN_P (464)"
+ "cpacmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpne_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3274)]
+ "CGEN_ENABLE_INSN_P (465)"
+ "cpacmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_w_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3276))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3277))]
+ "CGEN_ENABLE_INSN_P (466)"
+ "cpacmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_w_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3276)]
+ "CGEN_ENABLE_INSN_P (467)"
+ "cpacmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_h_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3278))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3279))]
+ "CGEN_ENABLE_INSN_P (468)"
+ "cpacmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_h_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3278)]
+ "CGEN_ENABLE_INSN_P (469)"
+ "cpacmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_b_C3"
+ [(set (reg:SI 81)
+ (unspec:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3280))
+ (set (reg:SI 113)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3281))]
+ "CGEN_ENABLE_INSN_P (470)"
+ "cpacmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacmpeq_b_P0_P1"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3280)]
+ "CGEN_ENABLE_INSN_P (471)"
+ "cpacmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbi_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ (match_operand:DI 3 "cgen_h_uint_3a1_immediate" "")
+ ] 3528))]
+ "CGEN_ENABLE_INSN_P (472)"
+ "cpfsftbi\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbi_P0_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ (match_operand:DI 3 "cgen_h_uint_3a1_immediate" "")
+ ] 3528))]
+ "CGEN_ENABLE_INSN_P (473)"
+ "cpfsftbi\\t%0,%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfacla0s1_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1484))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1486))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1488))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1490))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1492))]
+ "CGEN_ENABLE_INSN_P (474)"
+ "cpfacla0s1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfacua0s1_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1494))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1496))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1498))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1500))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1502))]
+ "CGEN_ENABLE_INSN_P (475)"
+ "cpfacua0s1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfaca0s1_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1504))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1506))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1508))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1510))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1512))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1514))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1516))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1518))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1520))]
+ "CGEN_ENABLE_INSN_P (476)"
+ "cpfaca0s1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfaca0s1u_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1522))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1524))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1526))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1528))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1530))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1532))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1534))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1536))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1538))]
+ "CGEN_ENABLE_INSN_P (477)"
+ "cpfaca0s1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbla0s1_h_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1540))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1542))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1544))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1546))]
+ "CGEN_ENABLE_INSN_P (478)"
+ "cpfsftbla0s1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbua0s1_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1548))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1550))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1552))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1554))]
+ "CGEN_ENABLE_INSN_P (479)"
+ "cpfsftbua0s1.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftba0s1_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1556))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1558))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1560))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1562))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1564))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1566))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1568))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1570))]
+ "CGEN_ENABLE_INSN_P (480)"
+ "cpfsftba0s1.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftba0s1u_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1572))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1574))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1576))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1578))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1580))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1582))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1584))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1586))]
+ "CGEN_ENABLE_INSN_P (481)"
+ "cpfsftba0s1u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfacla0s0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1588))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1590))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1592))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1594))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1596))]
+ "CGEN_ENABLE_INSN_P (482)"
+ "cpfacla0s0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfacua0s0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1598))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1600))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1602))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1604))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1606))]
+ "CGEN_ENABLE_INSN_P (483)"
+ "cpfacua0s0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfaca0s0_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1608))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1610))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1612))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1614))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1616))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1618))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1620))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1622))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1624))]
+ "CGEN_ENABLE_INSN_P (484)"
+ "cpfaca0s0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfaca0s0u_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1626))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1628))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1630))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1632))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1634))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1636))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1638))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1640))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1642))]
+ "CGEN_ENABLE_INSN_P (485)"
+ "cpfaca0s0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbla0s0_h_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1644))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1646))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1648))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1650))]
+ "CGEN_ENABLE_INSN_P (486)"
+ "cpfsftbla0s0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbua0s0_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1652))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1654))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1656))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1658))]
+ "CGEN_ENABLE_INSN_P (487)"
+ "cpfsftbua0s0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftba0s0_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1660))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1662))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1664))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1666))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1668))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1670))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1672))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1674))]
+ "CGEN_ENABLE_INSN_P (488)"
+ "cpfsftba0s0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftba0s0u_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1676))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1678))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1680))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1682))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1684))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1686))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1688))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1690))]
+ "CGEN_ENABLE_INSN_P (489)"
+ "cpfsftba0s0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsllia0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 1692))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1694))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1696))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1698))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1700))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1702))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1704))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1706))]
+ "CGEN_ENABLE_INSN_P (490)"
+ "cpsllia0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraia0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 1708))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1710))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1712))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1714))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1716))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1718))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1720))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1722))]
+ "CGEN_ENABLE_INSN_P (491)"
+ "cpsraia0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrlia0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_5a1_immediate" "")
+ ] 1724))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1726))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1728))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1730))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1732))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1734))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1736))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1738))]
+ "CGEN_ENABLE_INSN_P (492)"
+ "cpsrlia0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpslla0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 1740))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1742))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1744))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1746))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1748))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1750))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1752))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1754))]
+ "CGEN_ENABLE_INSN_P (493)"
+ "cpslla0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsraa0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 1756))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1758))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1760))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1762))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1764))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1766))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1768))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1770))]
+ "CGEN_ENABLE_INSN_P (494)"
+ "cpsraa0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsrla0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 1772))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1774))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1776))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1778))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1780))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1782))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1784))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ ] 1786))]
+ "CGEN_ENABLE_INSN_P (495)"
+ "cpsrla0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaccpa0_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1788))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1790))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1792))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1794))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1796))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1798))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1800))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1802))]
+ "CGEN_ENABLE_INSN_P (496)"
+ "cpaccpa0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpacsuma0_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1804))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1806))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1808))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1810))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1812))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1814))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1816))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1818))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 1820))]
+ "CGEN_ENABLE_INSN_P (497)"
+ "cpacsuma0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhla0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1822))]
+ "CGEN_ENABLE_INSN_P (498)"
+ "cpmovhla0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovhua0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1824))]
+ "CGEN_ENABLE_INSN_P (499)"
+ "cpmovhua0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1826))]
+ "CGEN_ENABLE_INSN_P (500)"
+ "cppackla0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1828))]
+ "CGEN_ENABLE_INSN_P (501)"
+ "cppackua0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackla0_h_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1830))]
+ "CGEN_ENABLE_INSN_P (502)"
+ "cppackla0.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppackua0_h_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1832))]
+ "CGEN_ENABLE_INSN_P (503)"
+ "cppackua0.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka0_b_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1834))]
+ "CGEN_ENABLE_INSN_P (504)"
+ "cppacka0.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cppacka0u_b_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1836))]
+ "CGEN_ENABLE_INSN_P (505)"
+ "cppacka0u.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlla0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1838))]
+ "CGEN_ENABLE_INSN_P (506)"
+ "cpmovlla0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovlua0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1840))]
+ "CGEN_ENABLE_INSN_P (507)"
+ "cpmovlua0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovula0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1842))]
+ "CGEN_ENABLE_INSN_P (508)"
+ "cpmovula0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovuua0_w_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1844))]
+ "CGEN_ENABLE_INSN_P (509)"
+ "cpmovuua0.w\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovla0_h_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1846))]
+ "CGEN_ENABLE_INSN_P (510)"
+ "cpmovla0.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovua0_h_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1848))]
+ "CGEN_ENABLE_INSN_P (511)"
+ "cpmovua0.h\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmova0_b_P0S"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 1850))]
+ "CGEN_ENABLE_INSN_P (512)"
+ "cpmova0.b\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetla0_w_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1852))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1854))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1856))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1858))]
+ "CGEN_ENABLE_INSN_P (513)"
+ "cpsetla0.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsetua0_w_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1860))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1862))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1864))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1866))]
+ "CGEN_ENABLE_INSN_P (514)"
+ "cpsetua0.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpseta0_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1868))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1870))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1872))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1874))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1876))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1878))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1880))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1882))]
+ "CGEN_ENABLE_INSN_P (515)"
+ "cpseta0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadla0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1884))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1886))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1888))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1890))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1892))]
+ "CGEN_ENABLE_INSN_P (516)"
+ "cpsadla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsadua0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1894))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1896))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1898))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1900))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1902))]
+ "CGEN_ENABLE_INSN_P (517)"
+ "cpsadua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada0_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1904))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1906))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1908))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1910))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1912))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1914))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1916))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1918))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1920))]
+ "CGEN_ENABLE_INSN_P (518)"
+ "cpsada0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsada0u_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1922))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1924))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1926))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1928))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1930))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1932))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1934))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1936))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1938))]
+ "CGEN_ENABLE_INSN_P (519)"
+ "cpsada0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsla0_h_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1940))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1942))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1944))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1946))]
+ "CGEN_ENABLE_INSN_P (520)"
+ "cpabsla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsua0_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1948))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1950))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1952))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1954))]
+ "CGEN_ENABLE_INSN_P (521)"
+ "cpabsua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa0_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1956))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1958))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1960))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1962))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1964))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1966))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1968))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1970))]
+ "CGEN_ENABLE_INSN_P (522)"
+ "cpabsa0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsa0u_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1972))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1974))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1976))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1978))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1980))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1982))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1984))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1986))]
+ "CGEN_ENABLE_INSN_P (523)"
+ "cpabsa0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacla0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1988))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1990))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1992))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1994))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 1996))]
+ "CGEN_ENABLE_INSN_P (524)"
+ "cpsubacla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubacua0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 1998))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2000))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2002))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2004))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2006))]
+ "CGEN_ENABLE_INSN_P (525)"
+ "cpsubacua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca0_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2008))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2010))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2012))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2014))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2016))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2018))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2020))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2022))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2024))]
+ "CGEN_ENABLE_INSN_P (526)"
+ "cpsubaca0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubaca0u_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2026))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2028))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2030))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2032))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2034))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2036))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2038))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2040))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2042))]
+ "CGEN_ENABLE_INSN_P (527)"
+ "cpsubaca0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubla0_h_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2044))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2046))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2048))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2050))]
+ "CGEN_ENABLE_INSN_P (528)"
+ "cpsubla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsubua0_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2052))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2054))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2056))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2058))]
+ "CGEN_ENABLE_INSN_P (529)"
+ "cpsubua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba0_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2060))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2062))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2064))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2066))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2068))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2070))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2072))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2074))]
+ "CGEN_ENABLE_INSN_P (530)"
+ "cpsuba0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsuba0u_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2076))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2078))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2080))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2082))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2084))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2086))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2088))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2090))]
+ "CGEN_ENABLE_INSN_P (531)"
+ "cpsuba0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacla0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2092))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2094))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2096))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2098))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2100))]
+ "CGEN_ENABLE_INSN_P (532)"
+ "cpaddacla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddacua0_h_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2102))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2104))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2106))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2108))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2110))]
+ "CGEN_ENABLE_INSN_P (533)"
+ "cpaddacua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca0_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2112))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2114))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2116))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2118))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2120))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2122))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2124))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2126))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2128))]
+ "CGEN_ENABLE_INSN_P (534)"
+ "cpaddaca0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddaca0u_b_P0S"
+ [(set (reg:SI 86)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2130))
+ (set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2132))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2134))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2136))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2138))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2140))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2142))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2144))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2146))]
+ "CGEN_ENABLE_INSN_P (535)"
+ "cpaddaca0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddla0_h_P0S"
+ [(set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2148))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2150))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2152))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2154))]
+ "CGEN_ENABLE_INSN_P (536)"
+ "cpaddla0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpaddua0_h_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2156))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2158))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2160))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2162))]
+ "CGEN_ENABLE_INSN_P (537)"
+ "cpaddua0.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda0_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2164))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2166))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2168))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2170))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2172))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2174))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2176))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2178))]
+ "CGEN_ENABLE_INSN_P (538)"
+ "cpadda0.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadda0u_b_P0S"
+ [(set (reg:SI 103)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 2180))
+ (set (reg:SI 102)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2182))
+ (set (reg:SI 101)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2184))
+ (set (reg:SI 100)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2186))
+ (set (reg:SI 99)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2188))
+ (set (reg:SI 98)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2190))
+ (set (reg:SI 97)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2192))
+ (set (reg:SI 96)
+ (unspec_volatile:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 2194))]
+ "CGEN_ENABLE_INSN_P (539)"
+ "cpadda0u.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3282))]
+ "CGEN_ENABLE_INSN_P (540)"
+ "cpcmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3282))]
+ "CGEN_ENABLE_INSN_P (541)"
+ "cpcmpge.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgeu_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3284))]
+ "CGEN_ENABLE_INSN_P (542)"
+ "cpcmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgeu_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3284))]
+ "CGEN_ENABLE_INSN_P (543)"
+ "cpcmpgeu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_h_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3286))]
+ "CGEN_ENABLE_INSN_P (544)"
+ "cpcmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_h_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3286))]
+ "CGEN_ENABLE_INSN_P (545)"
+ "cpcmpge.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3288))]
+ "CGEN_ENABLE_INSN_P (546)"
+ "cpcmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpge_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3288))]
+ "CGEN_ENABLE_INSN_P (547)"
+ "cpcmpge.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgeu_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3290))]
+ "CGEN_ENABLE_INSN_P (548)"
+ "cpcmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgeu_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3290))]
+ "CGEN_ENABLE_INSN_P (549)"
+ "cpcmpgeu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3292))]
+ "CGEN_ENABLE_INSN_P (550)"
+ "cpcmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3292))]
+ "CGEN_ENABLE_INSN_P (551)"
+ "cpcmpgt.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgtu_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3294))]
+ "CGEN_ENABLE_INSN_P (552)"
+ "cpcmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgtu_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3294))]
+ "CGEN_ENABLE_INSN_P (553)"
+ "cpcmpgtu.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_h_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3296))]
+ "CGEN_ENABLE_INSN_P (554)"
+ "cpcmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_h_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3296))]
+ "CGEN_ENABLE_INSN_P (555)"
+ "cpcmpgt.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3298))]
+ "CGEN_ENABLE_INSN_P (556)"
+ "cpcmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgt_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3298))]
+ "CGEN_ENABLE_INSN_P (557)"
+ "cpcmpgt.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgtu_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3300))]
+ "CGEN_ENABLE_INSN_P (558)"
+ "cpcmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpgtu_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3300))]
+ "CGEN_ENABLE_INSN_P (559)"
+ "cpcmpgtu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3302))]
+ "CGEN_ENABLE_INSN_P (560)"
+ "cpcmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3302))]
+ "CGEN_ENABLE_INSN_P (561)"
+ "cpcmpne.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_h_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3304))]
+ "CGEN_ENABLE_INSN_P (562)"
+ "cpcmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_h_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3304))]
+ "CGEN_ENABLE_INSN_P (563)"
+ "cpcmpne.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3306))]
+ "CGEN_ENABLE_INSN_P (564)"
+ "cpcmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpne_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3306))]
+ "CGEN_ENABLE_INSN_P (565)"
+ "cpcmpne.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_w_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3308))]
+ "CGEN_ENABLE_INSN_P (566)"
+ "cpcmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_w_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3308))]
+ "CGEN_ENABLE_INSN_P (567)"
+ "cpcmpeq.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_h_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3310))]
+ "CGEN_ENABLE_INSN_P (568)"
+ "cpcmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_h_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3310))]
+ "CGEN_ENABLE_INSN_P (569)"
+ "cpcmpeq.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3312))]
+ "CGEN_ENABLE_INSN_P (570)"
+ "cpcmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeq_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3312))]
+ "CGEN_ENABLE_INSN_P (571)"
+ "cpcmpeq.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeqz_b_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3314))]
+ "CGEN_ENABLE_INSN_P (572)"
+ "cpcmpeqz.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcmpeqz_b_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3314))]
+ "CGEN_ENABLE_INSN_P (573)"
+ "cpcmpeqz.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocc_C3"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3378))]
+ "CGEN_ENABLE_INSN_P (574)"
+ "cpmovtocc\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocc_P0S_P1"
+ [(set (reg:SI 81)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3378))]
+ "CGEN_ENABLE_INSN_P (575)"
+ "cpmovtocc\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocsar1_C3"
+ [(set (reg:SI 95)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3380))]
+ "CGEN_ENABLE_INSN_P (576)"
+ "cpmovtocsar1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocsar1_P0S_P1"
+ [(set (reg:SI 95)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3380))]
+ "CGEN_ENABLE_INSN_P (577)"
+ "cpmovtocsar1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocsar0_C3"
+ [(set (reg:SI 80)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3382))]
+ "CGEN_ENABLE_INSN_P (578)"
+ "cpmovtocsar0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovtocsar0_P0S_P1"
+ [(set (reg:SI 80)
+ (unspec_volatile:SI [
+ (match_operand:DI 0 "general_operand" "x")
+ ] 3382))]
+ "CGEN_ENABLE_INSN_P (579)"
+ "cpmovtocsar0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcc_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3384))]
+ "CGEN_ENABLE_INSN_P (580)"
+ "cpmovfrcc\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcc_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3384))]
+ "CGEN_ENABLE_INSN_P (581)"
+ "cpmovfrcc\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcsar1_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3386))]
+ "CGEN_ENABLE_INSN_P (582)"
+ "cpmovfrcsar1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcsar1_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3386))]
+ "CGEN_ENABLE_INSN_P (583)"
+ "cpmovfrcsar1\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcsar0_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3388))]
+ "CGEN_ENABLE_INSN_P (584)"
+ "cpmovfrcsar0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmovfrcsar0_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (const_int 0)
+ ] 3388))]
+ "CGEN_ENABLE_INSN_P (585)"
+ "cpmovfrcsar0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdcastw_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3316))]
+ "CGEN_ENABLE_INSN_P (586)"
+ "cdcastw\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdcastw_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3316))]
+ "CGEN_ENABLE_INSN_P (587)"
+ "cdcastw\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdcastuw_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3318))]
+ "CGEN_ENABLE_INSN_P (588)"
+ "cdcastuw\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cdcastuw_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3318))]
+ "CGEN_ENABLE_INSN_P (589)"
+ "cdcastuw\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcasth_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3320))]
+ "CGEN_ENABLE_INSN_P (590)"
+ "cpcasth.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcasth_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3320))]
+ "CGEN_ENABLE_INSN_P (591)"
+ "cpcasth.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastuh_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3322))]
+ "CGEN_ENABLE_INSN_P (592)"
+ "cpcastuh.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastuh_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3322))]
+ "CGEN_ENABLE_INSN_P (593)"
+ "cpcastuh.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastb_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3324))]
+ "CGEN_ENABLE_INSN_P (594)"
+ "cpcastb.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastb_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3324))]
+ "CGEN_ENABLE_INSN_P (595)"
+ "cpcastb.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastub_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3326))]
+ "CGEN_ENABLE_INSN_P (596)"
+ "cpcastub.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastub_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3326))]
+ "CGEN_ENABLE_INSN_P (597)"
+ "cpcastub.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastb_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3328))]
+ "CGEN_ENABLE_INSN_P (598)"
+ "cpcastb.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastb_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3328))]
+ "CGEN_ENABLE_INSN_P (599)"
+ "cpcastb.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastub_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3330))]
+ "CGEN_ENABLE_INSN_P (600)"
+ "cpcastub.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpcastub_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3330))]
+ "CGEN_ENABLE_INSN_P (601)"
+ "cpcastub.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextl_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3332))]
+ "CGEN_ENABLE_INSN_P (602)"
+ "cpextl.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextl_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3332))]
+ "CGEN_ENABLE_INSN_P (603)"
+ "cpextl.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlu_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3334))]
+ "CGEN_ENABLE_INSN_P (604)"
+ "cpextlu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlu_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3334))]
+ "CGEN_ENABLE_INSN_P (605)"
+ "cpextlu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextl_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3336))]
+ "CGEN_ENABLE_INSN_P (606)"
+ "cpextl.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextl_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3336))]
+ "CGEN_ENABLE_INSN_P (607)"
+ "cpextl.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlu_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3338))]
+ "CGEN_ENABLE_INSN_P (608)"
+ "cpextlu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextlu_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3338))]
+ "CGEN_ENABLE_INSN_P (609)"
+ "cpextlu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextu_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3340))]
+ "CGEN_ENABLE_INSN_P (610)"
+ "cpextu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextu_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3340))]
+ "CGEN_ENABLE_INSN_P (611)"
+ "cpextu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuu_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3342))]
+ "CGEN_ENABLE_INSN_P (612)"
+ "cpextuu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuu_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3342))]
+ "CGEN_ENABLE_INSN_P (613)"
+ "cpextuu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextu_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3344))]
+ "CGEN_ENABLE_INSN_P (614)"
+ "cpextu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextu_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3344))]
+ "CGEN_ENABLE_INSN_P (615)"
+ "cpextu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuu_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3346))]
+ "CGEN_ENABLE_INSN_P (616)"
+ "cpextuu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpextuu_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3346))]
+ "CGEN_ENABLE_INSN_P (617)"
+ "cpextuu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3348))]
+ "CGEN_ENABLE_INSN_P (618)"
+ "cpbcast.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3348))]
+ "CGEN_ENABLE_INSN_P (619)"
+ "cpbcast.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3350))]
+ "CGEN_ENABLE_INSN_P (620)"
+ "cpbcast.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3350))]
+ "CGEN_ENABLE_INSN_P (621)"
+ "cpbcast.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3352))]
+ "CGEN_ENABLE_INSN_P (622)"
+ "cpbcast.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpbcast_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3352))]
+ "CGEN_ENABLE_INSN_P (623)"
+ "cpbcast.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpccadd_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "0")
+ ] 3354))]
+ "CGEN_ENABLE_INSN_P (624)"
+ "cpccadd.b\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpccadd_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "0")
+ ] 3354))]
+ "CGEN_ENABLE_INSN_P (625)"
+ "cpccadd.b\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3356))]
+ "CGEN_ENABLE_INSN_P (626)"
+ "cphadd.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3356))]
+ "CGEN_ENABLE_INSN_P (627)"
+ "cphadd.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3358))]
+ "CGEN_ENABLE_INSN_P (628)"
+ "cphadd.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3358))]
+ "CGEN_ENABLE_INSN_P (629)"
+ "cphadd.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3360))]
+ "CGEN_ENABLE_INSN_P (630)"
+ "cphadd.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphadd_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3360))]
+ "CGEN_ENABLE_INSN_P (631)"
+ "cphadd.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphaddu_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3362))]
+ "CGEN_ENABLE_INSN_P (632)"
+ "cphaddu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cphaddu_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3362))]
+ "CGEN_ENABLE_INSN_P (633)"
+ "cphaddu.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnorm_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3364))]
+ "CGEN_ENABLE_INSN_P (634)"
+ "cpnorm.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnorm_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3364))]
+ "CGEN_ENABLE_INSN_P (635)"
+ "cpnorm.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnorm_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3366))]
+ "CGEN_ENABLE_INSN_P (636)"
+ "cpnorm.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpnorm_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3366))]
+ "CGEN_ENABLE_INSN_P (637)"
+ "cpnorm.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpldz_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3368))]
+ "CGEN_ENABLE_INSN_P (638)"
+ "cpldz.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpldz_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3368))]
+ "CGEN_ENABLE_INSN_P (639)"
+ "cpldz.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpldz_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3370))]
+ "CGEN_ENABLE_INSN_P (640)"
+ "cpldz.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpldz_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3370))]
+ "CGEN_ENABLE_INSN_P (641)"
+ "cpldz.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3372))]
+ "CGEN_ENABLE_INSN_P (642)"
+ "cpabsz.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3372))]
+ "CGEN_ENABLE_INSN_P (643)"
+ "cpabsz.w\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3374))]
+ "CGEN_ENABLE_INSN_P (644)"
+ "cpabsz.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3374))]
+ "CGEN_ENABLE_INSN_P (645)"
+ "cpabsz.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3376))]
+ "CGEN_ENABLE_INSN_P (646)"
+ "cpabsz.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpabsz_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 3376))]
+ "CGEN_ENABLE_INSN_P (647)"
+ "cpabsz.b\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmov_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4172))]
+ "CGEN_ENABLE_INSN_P (648)"
+ "cpmov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmov_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4172))]
+ "CGEN_ENABLE_INSN_P (649)"
+ "cpmov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbs1_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3524))]
+ "CGEN_ENABLE_INSN_P (650)"
+ "cpfsftbs1\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbs1_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3524))]
+ "CGEN_ENABLE_INSN_P (651)"
+ "cpfsftbs1\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbs0_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3526))]
+ "CGEN_ENABLE_INSN_P (652)"
+ "cpfsftbs0\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpfsftbs0_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3526))]
+ "CGEN_ENABLE_INSN_P (653)"
+ "cpfsftbs0\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsel_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3530))]
+ "CGEN_ENABLE_INSN_P (654)"
+ "cpsel\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpsel_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec_volatile:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3530))]
+ "CGEN_ENABLE_INSN_P (655)"
+ "cpsel\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3512))]
+ "CGEN_ENABLE_INSN_P (656)"
+ "cpunpackl.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3512))]
+ "CGEN_ENABLE_INSN_P (657)"
+ "cpunpackl.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3514))]
+ "CGEN_ENABLE_INSN_P (658)"
+ "cpunpackl.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3514))]
+ "CGEN_ENABLE_INSN_P (659)"
+ "cpunpackl.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3516))]
+ "CGEN_ENABLE_INSN_P (660)"
+ "cpunpackl.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpackl_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3516))]
+ "CGEN_ENABLE_INSN_P (661)"
+ "cpunpackl.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3518))]
+ "CGEN_ENABLE_INSN_P (662)"
+ "cpunpacku.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3518))]
+ "CGEN_ENABLE_INSN_P (663)"
+ "cpunpacku.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3520))]
+ "CGEN_ENABLE_INSN_P (664)"
+ "cpunpacku.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3520))]
+ "CGEN_ENABLE_INSN_P (665)"
+ "cpunpacku.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3522))]
+ "CGEN_ENABLE_INSN_P (666)"
+ "cpunpacku.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpunpacku_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3522))]
+ "CGEN_ENABLE_INSN_P (667)"
+ "cpunpacku.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_w_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3550))]
+ "CGEN_ENABLE_INSN_P (668)"
+ "cpadd3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_w_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3550))]
+ "CGEN_ENABLE_INSN_P (669)"
+ "cpadd3.w\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3552))]
+ "CGEN_ENABLE_INSN_P (670)"
+ "cpadd3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_h_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3552))]
+ "CGEN_ENABLE_INSN_P (671)"
+ "cpadd3.h\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_b_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3554))]
+ "CGEN_ENABLE_INSN_P (672)"
+ "cpadd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpadd3_b_P0S_P1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "x")
+ (match_operand:DI 2 "general_operand" "x")
+ ] 3554))]
+ "CGEN_ENABLE_INSN_P (673)"
+ "cpadd3.b\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0s_p1")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_c0nop_P0_P0S"
+ [(unspec_volatile [
+ (const_int 0)
+ ] 2196)]
+ "CGEN_ENABLE_INSN_P (674)"
+ "c0nop"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0_p0s")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cpmoviu_h_C3"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_uint_8a1_immediate" "")
+ ] 3178))]
+ "CGEN_ENABLE_INSN_P (675)"
+ "cpmoviu.h\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovh_rn_crm"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4156))]
+ "CGEN_ENABLE_INSN_P (676)"
+ "cmovh\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovh_rn_crm_p0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4156))]
+ "CGEN_ENABLE_INSN_P (677)"
+ "cmovh\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovh_crn_rm"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4158))]
+ "CGEN_ENABLE_INSN_P (678)"
+ "cmovh\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovh_crn_rm_p0"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4158))]
+ "CGEN_ENABLE_INSN_P (679)"
+ "cmovh\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovc_rn_ccrm"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "y")
+ ] 4160))]
+ "CGEN_ENABLE_INSN_P (680)"
+ "cmovc\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovc_rn_ccrm_p0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "y")
+ ] 4160))]
+ "CGEN_ENABLE_INSN_P (681)"
+ "cmovc\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovc_ccrn_rm"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=y")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4162))]
+ "CGEN_ENABLE_INSN_P (682)"
+ "cmovc\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmovc_ccrn_rm_p0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=y")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4162))]
+ "CGEN_ENABLE_INSN_P (683)"
+ "cmovc\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmov_rn_crm"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4164))]
+ "CGEN_ENABLE_INSN_P (684)"
+ "cmov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmov_rn_crm_p0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "x")
+ ] 4164))]
+ "CGEN_ENABLE_INSN_P (685)"
+ "cmov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmov_crn_rm"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:DI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4166))]
+ "CGEN_ENABLE_INSN_P (686)"
+ "cmov\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "c3")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cmov_crn_rm_p0"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=x")
+ (unspec:DI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4166))]
+ "CGEN_ENABLE_INSN_P (687)"
+ "cmov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "cop")
+ (set_attr "slots" "p0")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bsrv"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3556)
+ (const_int 0))
+ (match_dup 0)
+ (pc)))
+ (set (reg:SI 17)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3558))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3559))]
+ "CGEN_ENABLE_INSN_P (688)"
+ "bsrv\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_jsrv"
+ [(set (pc)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3560))
+ (set (reg:SI 17)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3562))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3563))]
+ "CGEN_ENABLE_INSN_P (689)"
+ "jsrv\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_synccp"
+ [(unspec_volatile [
+ (const_int 0)
+ ] 3564)]
+ "CGEN_ENABLE_INSN_P (690)"
+ "synccp"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bcpaf"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 81)
+ ] 3566)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (691)"
+ "bcpaf\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bcpat"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 81)
+ ] 3568)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (692)"
+ "bcpat\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bcpne"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 81)
+ ] 3570)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (693)"
+ "bcpne\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bcpeq"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 81)
+ ] 3572)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (694)"
+ "bcpeq\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lmcpm1"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:DI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3574))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3576))]
+ "CGEN_ENABLE_INSN_P (695)"
+ "lmcpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_smcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3578))]
+ "CGEN_ENABLE_INSN_P (696)"
+ "smcpm1\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lwcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3580))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3582))]
+ "CGEN_ENABLE_INSN_P (697)"
+ "lwcpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_swcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3584))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3586))]
+ "CGEN_ENABLE_INSN_P (698)"
+ "swcpm1\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lhcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3588))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3590))]
+ "CGEN_ENABLE_INSN_P (699)"
+ "lhcpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_shcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3592))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3594))]
+ "CGEN_ENABLE_INSN_P (700)"
+ "shcpm1\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lbcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3596))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 3598))]
+ "CGEN_ENABLE_INSN_P (701)"
+ "lbcpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sbcpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3600))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ ] 3602))]
+ "CGEN_ENABLE_INSN_P (702)"
+ "sbcpm1\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lmcpm0"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:DI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3604))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3606))]
+ "CGEN_ENABLE_INSN_P (703)"
+ "lmcpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_smcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3608))]
+ "CGEN_ENABLE_INSN_P (704)"
+ "smcpm0\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lwcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3610))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3612))]
+ "CGEN_ENABLE_INSN_P (705)"
+ "lwcpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_swcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3614))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3616))]
+ "CGEN_ENABLE_INSN_P (706)"
+ "swcpm0\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lhcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3618))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3620))]
+ "CGEN_ENABLE_INSN_P (707)"
+ "lhcpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_shcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3622))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3624))]
+ "CGEN_ENABLE_INSN_P (708)"
+ "shcpm0\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lbcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3626))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 3628))]
+ "CGEN_ENABLE_INSN_P (709)"
+ "lbcpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sbcpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3630))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ ] 3632))]
+ "CGEN_ENABLE_INSN_P (710)"
+ "sbcpm0\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lmcpa"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:DI 3 "cgen_h_sint_10a1_immediate" "")
+ ] 3634))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ ] 3636))]
+ "CGEN_ENABLE_INSN_P (711)"
+ "lmcpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_smcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ ] 3638))]
+ "CGEN_ENABLE_INSN_P (712)"
+ "smcpa\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lwcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3640))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (mem:SI (scratch:SI))
+ ] 3642))]
+ "CGEN_ENABLE_INSN_P (713)"
+ "lwcpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_swcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ ] 3644))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 3646))]
+ "CGEN_ENABLE_INSN_P (714)"
+ "swcpa\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lhcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3648))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (mem:SI (scratch:SI))
+ ] 3650))]
+ "CGEN_ENABLE_INSN_P (715)"
+ "lhcpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_shcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ ] 3652))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 3654))]
+ "CGEN_ENABLE_INSN_P (716)"
+ "shcpa\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lbcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3656))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (mem:SI (scratch:SI))
+ ] 3658))]
+ "CGEN_ENABLE_INSN_P (717)"
+ "lbcpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sbcpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ ] 3660))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (match_dup 3)
+ ] 3662))]
+ "CGEN_ENABLE_INSN_P (718)"
+ "sbcpa\\t%1,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lmcp16"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:DI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3664))]
+ "CGEN_ENABLE_INSN_P (719)"
+ "lmcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_smcp16"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "em")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3666)]
+ "CGEN_ENABLE_INSN_P (720)"
+ "smcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lwcp16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3668))]
+ "CGEN_ENABLE_INSN_P (721)"
+ "lwcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_swcp16"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "em")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3670))]
+ "CGEN_ENABLE_INSN_P (722)"
+ "swcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lmcpi"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:SI 2 "general_operand" "1")
+ ] 3672))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ ] 3674))]
+ "CGEN_ENABLE_INSN_P (723)"
+ "lmcpi\\t%0,(%2+)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_smcpi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:DI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ ] 3676))]
+ "CGEN_ENABLE_INSN_P (724)"
+ "smcpi\\t%1,(%2+)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lwcpi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (mem:SI (scratch:SI))
+ ] 3678))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (mem:SI (scratch:SI))
+ ] 3680))]
+ "CGEN_ENABLE_INSN_P (725)"
+ "lwcpi\\t%0,(%2+)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_swcpi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "em")
+ (match_operand:SI 2 "general_operand" "0")
+ ] 3682))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3684))]
+ "CGEN_ENABLE_INSN_P (726)"
+ "swcpi\\t%1,(%2+)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lmcp"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=em")
+ (unspec:DI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3686))]
+ "CGEN_ENABLE_INSN_P (727)"
+ "lmcp\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_smcp"
+ [(unspec_volatile [
+ (match_operand:DI 0 "general_operand" "em")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3688)]
+ "CGEN_ENABLE_INSN_P (728)"
+ "smcp\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lwcp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3690))]
+ "CGEN_ENABLE_INSN_P (729)"
+ "lwcp\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_swcp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "em")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3692))]
+ "CGEN_ENABLE_INSN_P (730)"
+ "swcp\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_ssubu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3694))]
+ "CGEN_ENABLE_INSN_P (731)"
+ "ssubu\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_saddu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3696))]
+ "CGEN_ENABLE_INSN_P (732)"
+ "saddu\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_ssub"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3698))]
+ "CGEN_ENABLE_INSN_P (733)"
+ "ssub\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_sadd"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3700))]
+ "CGEN_ENABLE_INSN_P (734)"
+ "sadd\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_clipu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3702))]
+ "CGEN_ENABLE_INSN_P (735)"
+ "clipu\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_clip"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3704))]
+ "CGEN_ENABLE_INSN_P (736)"
+ "clip\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_maxu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3706))]
+ "CGEN_ENABLE_INSN_P (737)"
+ "maxu\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_minu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3708))]
+ "CGEN_ENABLE_INSN_P (738)"
+ "minu\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_max"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3710))]
+ "CGEN_ENABLE_INSN_P (739)"
+ "max\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_min"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3712))]
+ "CGEN_ENABLE_INSN_P (740)"
+ "min\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_ave"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3714))]
+ "CGEN_ENABLE_INSN_P (741)"
+ "ave\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_abs"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3716))]
+ "CGEN_ENABLE_INSN_P (742)"
+ "abs\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_ldz"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3718))]
+ "CGEN_ENABLE_INSN_P (743)"
+ "ldz\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_dbreak"
+ [(set (reg:SI 40)
+ (unspec_volatile:SI [
+ (reg:SI 40)
+ ] 3720))]
+ "CGEN_ENABLE_INSN_P (744)"
+ "dbreak"
+ [(set_attr "may_trap" "yes")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_dret"
+ [(set (pc)
+ (unspec:SI [
+ (reg:SI 41)
+ (reg:SI 40)
+ ] 3722))
+ (set (reg:SI 40)
+ (unspec:SI [
+ (reg:SI 41)
+ (reg:SI 40)
+ ] 3724))
+ (set (reg:SI 115)
+ (unspec:SI [
+ (reg:SI 41)
+ (reg:SI 40)
+ ] 3725))]
+ "CGEN_ENABLE_INSN_P (745)"
+ "dret"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_divu"
+ [(set (pc)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3726))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3728))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3729))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3730))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3731))]
+ "CGEN_ENABLE_INSN_P (746)"
+ "divu\\t%0,%1"
+ [(set_attr "may_trap" "yes")
+ (set_attr "latency" "34")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "div")])
+
+
+(define_insn "cgen_intrinsic_div"
+ [(set (pc)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3732))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3734))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3735))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3736))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3737))]
+ "CGEN_ENABLE_INSN_P (747)"
+ "div\\t%0,%1"
+ [(set_attr "may_trap" "yes")
+ (set_attr "latency" "34")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "div")])
+
+
+(define_insn "cgen_intrinsic_maddru"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3738))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3740))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3741))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3742))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3743))]
+ "CGEN_ENABLE_INSN_P (748)"
+ "maddru\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mulr")])
+
+
+(define_insn "cgen_intrinsic_maddr"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3744))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3746))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3747))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3748))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3749))]
+ "CGEN_ENABLE_INSN_P (749)"
+ "maddr\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mulr")])
+
+
+(define_insn "cgen_intrinsic_maddu"
+ [(set (reg:SI 24)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3750))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3751))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3752))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3753))]
+ "CGEN_ENABLE_INSN_P (750)"
+ "maddu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mul")])
+
+
+(define_insn "cgen_intrinsic_madd"
+ [(set (reg:SI 24)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3754))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3755))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3756))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 24)
+ (reg:SI 23)
+ ] 3757))]
+ "CGEN_ENABLE_INSN_P (751)"
+ "madd\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mul")])
+
+
+(define_insn "cgen_intrinsic_mulru"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3758))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3760))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3761))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3762))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3763))]
+ "CGEN_ENABLE_INSN_P (752)"
+ "mulru\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mulr")])
+
+
+(define_insn "cgen_intrinsic_mulr"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3764))
+ (set (reg:SI 24)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3766))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3767))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3768))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 1)
+ (match_dup 2)
+ ] 3769))]
+ "CGEN_ENABLE_INSN_P (753)"
+ "mulr\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mulr")])
+
+
+(define_insn "cgen_intrinsic_mulu"
+ [(set (reg:SI 24)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3770))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3771))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3772))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3773))]
+ "CGEN_ENABLE_INSN_P (754)"
+ "mulu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mul")])
+
+
+(define_insn "cgen_intrinsic_mul"
+ [(set (reg:SI 24)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3774))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3775))
+ (set (reg:SI 23)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3776))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ ] 3777))]
+ "CGEN_ENABLE_INSN_P (755)"
+ "mul\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "mul")])
+
+
+(define_insn "cgen_intrinsic_cache"
+ [(unspec_volatile [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3778)]
+ "CGEN_ENABLE_INSN_P (756)"
+ "cache\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_tas"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3780))
+ (set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_dup 1)
+ (mem:SI (scratch:SI))
+ ] 3782))]
+ "CGEN_ENABLE_INSN_P (757)"
+ "tas\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_btstm"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_3a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3784))]
+ "CGEN_ENABLE_INSN_P (758)"
+ "btstm\\t$0,(%1),%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bnotm"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_3a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3786))]
+ "CGEN_ENABLE_INSN_P (759)"
+ "bnotm\\t(%0),%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bclrm"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_3a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3788))]
+ "CGEN_ENABLE_INSN_P (760)"
+ "bclrm\\t(%0),%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bsetm"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_3a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3790))]
+ "CGEN_ENABLE_INSN_P (761)"
+ "bsetm\\t(%0),%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_ldcb"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3792))]
+ "CGEN_ENABLE_INSN_P (762)"
+ "ldcb\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ldcb")])
+
+
+(define_insn "cgen_intrinsic_stcb"
+ [(unspec_volatile [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3794)]
+ "CGEN_ENABLE_INSN_P (763)"
+ "stcb\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "stcb")])
+
+
+(define_insn "cgen_intrinsic_syncm"
+ [(unspec_volatile [
+ (const_int 0)
+ ] 3796)]
+ "CGEN_ENABLE_INSN_P (764)"
+ "syncm"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_break"
+ [(set (pc)
+ (unspec_volatile:SI [
+ (const_int 0)
+ ] 3798))]
+ "CGEN_ENABLE_INSN_P (765)"
+ "break"
+ [(set_attr "may_trap" "yes")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_swi"
+ [(set (reg:SI 36)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_uint_2a1_immediate" "")
+ (reg:SI 36)
+ ] 3800))]
+ "CGEN_ENABLE_INSN_P (766)"
+ "swi\\t%0"
+ [(set_attr "may_trap" "yes")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sleep"
+ [(unspec_volatile [
+ (const_int 0)
+ ] 3802)]
+ "CGEN_ENABLE_INSN_P (767)"
+ "sleep"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_halt"
+ [(unspec_volatile [
+ (reg:SI 32)
+ ] 3804)]
+ "CGEN_ENABLE_INSN_P (768)"
+ "halt"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_reti"
+ [(set (pc)
+ (unspec:SI [
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 39)
+ (reg:SI 35)
+ ] 3806))]
+ "CGEN_ENABLE_INSN_P (769)"
+ "reti"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ret")])
+
+
+(define_insn "cgen_intrinsic_ei"
+ [(set (reg:SI 32)
+ (unspec_volatile:SI [
+ (reg:SI 32)
+ ] 3808))]
+ "CGEN_ENABLE_INSN_P (770)"
+ "ei"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_di"
+ [(set (reg:SI 32)
+ (unspec_volatile:SI [
+ (reg:SI 32)
+ ] 3810))]
+ "CGEN_ENABLE_INSN_P (771)"
+ "di"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_ldc"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "c")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3812))]
+ "CGEN_ENABLE_INSN_P (772)"
+ "ldc\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ldc")])
+
+
+(define_insn "cgen_intrinsic_ldc_lo"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (reg:SI 24)
+ ] 3814))]
+ "CGEN_ENABLE_INSN_P (773)"
+ "ldc\\t%0,$lo"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ldc")])
+
+
+(define_insn "cgen_intrinsic_ldc_hi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (reg:SI 23)
+ ] 3816))]
+ "CGEN_ENABLE_INSN_P (774)"
+ "ldc\\t%0,$hi"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ldc")])
+
+
+(define_insn "cgen_intrinsic_ldc_lp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (reg:SI 17)
+ ] 3818))]
+ "CGEN_ENABLE_INSN_P (775)"
+ "ldc\\t%0,$lp"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ldc")])
+
+
+(define_insn "cgen_intrinsic_stc"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=c")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3820))]
+ "CGEN_ENABLE_INSN_P (776)"
+ "stc\\t%1,%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "stc")])
+
+
+(define_insn "cgen_intrinsic_stc_lo"
+ [(set (reg:SI 24)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ ] 3822))
+ (set (reg:SI 116)
+ (unspec:SI [
+ (match_dup 0)
+ ] 3823))]
+ "CGEN_ENABLE_INSN_P (777)"
+ "stc\\t%0,$lo"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "stc")])
+
+
+(define_insn "cgen_intrinsic_stc_hi"
+ [(set (reg:SI 23)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ ] 3824))
+ (set (reg:SI 117)
+ (unspec:SI [
+ (match_dup 0)
+ ] 3825))]
+ "CGEN_ENABLE_INSN_P (778)"
+ "stc\\t%0,$hi"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "stc")])
+
+
+(define_insn "cgen_intrinsic_stc_lp"
+ [(set (reg:SI 17)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ ] 3826))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ ] 3827))]
+ "CGEN_ENABLE_INSN_P (779)"
+ "stc\\t%0,$lp"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "stc")])
+
+
+(define_insn "cgen_intrinsic_erepeat"
+ [(set (reg:SI 22)
+ (unspec:SI [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3828))
+ (set (reg:SI 118)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3829))
+ (set (reg:SI 21)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3830))
+ (set (reg:SI 119)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3831))
+ (set (reg:SI 20)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3832))
+ (set (reg:SI 120)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3833))]
+ "CGEN_ENABLE_INSN_P (780)"
+ "erepeat\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_repeat"
+ [(set (reg:SI 22)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3834))
+ (set (reg:SI 118)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3835))
+ (set (reg:SI 21)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3836))
+ (set (reg:SI 119)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3837))
+ (set (reg:SI 20)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3838))
+ (set (reg:SI 120)
+ (unspec:SI [
+ (match_dup 0)
+ (match_dup 1)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3839))]
+ "CGEN_ENABLE_INSN_P (781)"
+ "repeat\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_ret"
+ [(set (pc)
+ (unspec:SI [
+ (reg:SI 32)
+ (reg:SI 42)
+ (reg:SI 17)
+ ] 3840))]
+ "CGEN_ENABLE_INSN_P (782)"
+ "ret"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ret")])
+
+
+(define_insn "cgen_intrinsic_jsr"
+ [(set (pc)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3842))
+ (set (reg:SI 17)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3844))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3845))]
+ "CGEN_ENABLE_INSN_P (783)"
+ "jsr\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_jmp24"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3846)
+ (const_int 0))
+ (match_dup 0)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (784)"
+ "jmp\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_jmp"
+ [(set (pc)
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3848))]
+ "CGEN_ENABLE_INSN_P (785)"
+ "jmp\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bsr12"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3854)
+ (const_int 0))
+ (match_dup 0)
+ (pc)))
+ (set (reg:SI 17)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3856))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3857))]
+ "CGEN_ENABLE_INSN_P (786)"
+ "bsr\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bsr24"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3850)
+ (const_int 0))
+ (match_dup 0)
+ (pc)))
+ (set (reg:SI 17)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3852))
+ (set (reg:SI 114)
+ (unspec:SI [
+ (match_dup 0)
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3853))]
+ "CGEN_ENABLE_INSN_P (787)"
+ "bsr\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bne"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3858)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (788)"
+ "bne\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_beq"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3860)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (789)"
+ "beq\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bgei"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3862)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (790)"
+ "bgei\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_blti"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3864)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (791)"
+ "blti\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bnei"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3866)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (792)"
+ "bnei\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_beqi"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 2 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3868)
+ (const_int 0))
+ (match_dup 2)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (793)"
+ "beqi\\t%0,%1,%l2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bnez"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3870)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (794)"
+ "bnez\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_beqz"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3872)
+ (const_int 0))
+ (match_dup 1)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (795)"
+ "beqz\\t%0,%l1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_bra"
+ [(set (pc)
+ (if_then_else (eq (unspec [
+ (match_operand:SI 0 "immediate_operand" "")
+ (reg:SI 32)
+ (reg:SI 42)
+ ] 3874)
+ (const_int 0))
+ (match_dup 0)
+ (pc)))]
+ "CGEN_ENABLE_INSN_P (796)"
+ "bra\\t%l0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_fsft"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (reg:SI 18)
+ ] 3876))]
+ "CGEN_ENABLE_INSN_P (797)"
+ "fsft\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "fsft")])
+
+
+(define_insn "cgen_intrinsic_sll3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3878))]
+ "CGEN_ENABLE_INSN_P (798)"
+ "sll3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_slli"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3880))]
+ "CGEN_ENABLE_INSN_P (799)"
+ "sll\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "shiftop" "operand2")])
+
+
+(define_insn "cgen_intrinsic_srli"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3882))]
+ "CGEN_ENABLE_INSN_P (800)"
+ "srl\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "shiftop" "operand2")])
+
+
+(define_insn "cgen_intrinsic_srai"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3884))]
+ "CGEN_ENABLE_INSN_P (801)"
+ "sra\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "shiftop" "operand2")])
+
+
+(define_insn "cgen_intrinsic_sll"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3886))]
+ "CGEN_ENABLE_INSN_P (802)"
+ "sll\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_srl"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3888))]
+ "CGEN_ENABLE_INSN_P (803)"
+ "srl\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_sra"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3890))]
+ "CGEN_ENABLE_INSN_P (804)"
+ "sra\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_xor3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_16a1_immediate" "")
+ ] 3892))]
+ "CGEN_ENABLE_INSN_P (805)"
+ "xor3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_and3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_16a1_immediate" "")
+ ] 3894))]
+ "CGEN_ENABLE_INSN_P (806)"
+ "and3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_or3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_16a1_immediate" "")
+ ] 3896))]
+ "CGEN_ENABLE_INSN_P (807)"
+ "or3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_nor"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3898))]
+ "CGEN_ENABLE_INSN_P (808)"
+ "nor\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_xor"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3900))]
+ "CGEN_ENABLE_INSN_P (809)"
+ "xor\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_and"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3902))]
+ "CGEN_ENABLE_INSN_P (810)"
+ "and\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_or"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3904))]
+ "CGEN_ENABLE_INSN_P (811)"
+ "or\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sltu3x"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_16a1_immediate" "")
+ ] 3906))]
+ "CGEN_ENABLE_INSN_P (812)"
+ "sltu3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_slt3x"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_sint_16a1_immediate" "")
+ ] 3908))]
+ "CGEN_ENABLE_INSN_P (813)"
+ "slt3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_add3x"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_sint_16a1_immediate" "")
+ ] 3910))]
+ "CGEN_ENABLE_INSN_P (814)"
+ "add3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sl2ad3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3912))]
+ "CGEN_ENABLE_INSN_P (815)"
+ "sl2ad3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_sl1ad3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3914))]
+ "CGEN_ENABLE_INSN_P (816)"
+ "sl1ad3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "int2")])
+
+
+(define_insn "cgen_intrinsic_sltu3i"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3916))]
+ "CGEN_ENABLE_INSN_P (817)"
+ "sltu3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_slt3i"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "cgen_h_uint_5a1_immediate" "")
+ ] 3918))]
+ "CGEN_ENABLE_INSN_P (818)"
+ "slt3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sltu3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3920))]
+ "CGEN_ENABLE_INSN_P (819)"
+ "sltu3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_slt3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3922))]
+ "CGEN_ENABLE_INSN_P (820)"
+ "slt3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_neg"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3924))]
+ "CGEN_ENABLE_INSN_P (821)"
+ "neg\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_sbvck3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3926))]
+ "CGEN_ENABLE_INSN_P (822)"
+ "sbvck3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "advck")])
+
+
+(define_insn "cgen_intrinsic_sub"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3928))]
+ "CGEN_ENABLE_INSN_P (823)"
+ "sub\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_advck3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=z")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3930))]
+ "CGEN_ENABLE_INSN_P (824)"
+ "advck3\\t$0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "advck")])
+
+
+(define_insn "cgen_intrinsic_add3i"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_5a4_immediate" "")
+ (reg:SI 15)
+ ] 3932))]
+ "CGEN_ENABLE_INSN_P (825)"
+ "add3\\t%0,$sp,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_add"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_sint_6a1_immediate" "")
+ ] 3934))]
+ "CGEN_ENABLE_INSN_P (826)"
+ "add\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_add3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3936))]
+ "CGEN_ENABLE_INSN_P (827)"
+ "add3\\t%0,%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_movh"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3938))]
+ "CGEN_ENABLE_INSN_P (828)"
+ "movh\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_movu16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_16a1_immediate" "")
+ ] 3940))]
+ "CGEN_ENABLE_INSN_P (829)"
+ "movu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_movu24"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_24a1_immediate" "")
+ ] 3942))]
+ "CGEN_ENABLE_INSN_P (830)"
+ "movu\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_movi8"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_8a1_immediate" "")
+ ] 3946))]
+ "CGEN_ENABLE_INSN_P (831)"
+ "mov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_movi16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ ] 3944))]
+ "CGEN_ENABLE_INSN_P (832)"
+ "mov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_mov"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3948))]
+ "CGEN_ENABLE_INSN_P (833)"
+ "mov\\t%0,%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_ssarb"
+ [(set (reg:SI 18)
+ (unspec_volatile:SI [
+ (match_operand:SI 0 "cgen_h_sint_2a1_immediate" "")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 3950))]
+ "CGEN_ENABLE_INSN_P (834)"
+ "ssarb\\t%0(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "ssarb")])
+
+
+(define_insn "cgen_intrinsic_extuh"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ ] 3952))]
+ "CGEN_ENABLE_INSN_P (835)"
+ "extuh\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_extub"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ ] 3954))]
+ "CGEN_ENABLE_INSN_P (836)"
+ "extub\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_exth"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ ] 3956))]
+ "CGEN_ENABLE_INSN_P (837)"
+ "exth\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_extb"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ ] 3958))]
+ "CGEN_ENABLE_INSN_P (838)"
+ "extb\\t%1"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lw24"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_22a4_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 3960))]
+ "CGEN_ENABLE_INSN_P (839)"
+ "lw\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sw24"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_22a4_immediate" "")
+ ] 3962))]
+ "CGEN_ENABLE_INSN_P (840)"
+ "sw\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lhu16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3964))]
+ "CGEN_ENABLE_INSN_P (841)"
+ "lhu\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lbu16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3966))]
+ "CGEN_ENABLE_INSN_P (842)"
+ "lbu\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lw16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3968))]
+ "CGEN_ENABLE_INSN_P (843)"
+ "lw\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lh16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3970))]
+ "CGEN_ENABLE_INSN_P (844)"
+ "lh\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lb16"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 3972))]
+ "CGEN_ENABLE_INSN_P (845)"
+ "lb\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sw16"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3974))]
+ "CGEN_ENABLE_INSN_P (846)"
+ "sw\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sh16"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3976))]
+ "CGEN_ENABLE_INSN_P (847)"
+ "sh\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sb16"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 3978))]
+ "CGEN_ENABLE_INSN_P (848)"
+ "sb\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lhu_tp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_6a2_immediate" "")
+ (reg:SI 13)
+ (mem:SI (scratch:SI))
+ ] 3980))]
+ "CGEN_ENABLE_INSN_P (849)"
+ "lhu\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lbu_tp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_7a1_immediate" "")
+ (reg:SI 13)
+ (mem:SI (scratch:SI))
+ ] 3982))]
+ "CGEN_ENABLE_INSN_P (850)"
+ "lbu\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lw_tp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_5a4_immediate" "")
+ (reg:SI 13)
+ (mem:SI (scratch:SI))
+ ] 3984))]
+ "CGEN_ENABLE_INSN_P (851)"
+ "lw\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lh_tp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_6a2_immediate" "")
+ (reg:SI 13)
+ (mem:SI (scratch:SI))
+ ] 3986))]
+ "CGEN_ENABLE_INSN_P (852)"
+ "lh\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lb_tp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=t")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_7a1_immediate" "")
+ (reg:SI 13)
+ (mem:SI (scratch:SI))
+ ] 3988))]
+ "CGEN_ENABLE_INSN_P (853)"
+ "lb\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sw_tp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "t")
+ (match_operand:SI 1 "cgen_h_uint_5a4_immediate" "")
+ (reg:SI 13)
+ ] 3990))]
+ "CGEN_ENABLE_INSN_P (854)"
+ "sw\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sh_tp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "t")
+ (match_operand:SI 1 "cgen_h_uint_6a2_immediate" "")
+ (reg:SI 13)
+ ] 3992))]
+ "CGEN_ENABLE_INSN_P (855)"
+ "sh\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sb_tp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "t")
+ (match_operand:SI 1 "cgen_h_uint_7a1_immediate" "")
+ (reg:SI 13)
+ ] 3994))]
+ "CGEN_ENABLE_INSN_P (856)"
+ "sb\\t%0,%1($tp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lw_sp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_uint_5a4_immediate" "")
+ (reg:SI 15)
+ (mem:SI (scratch:SI))
+ ] 3996))]
+ "CGEN_ENABLE_INSN_P (857)"
+ "lw\\t%0,%1($sp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sw_sp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "cgen_h_uint_5a4_immediate" "")
+ (reg:SI 15)
+ ] 3998))]
+ "CGEN_ENABLE_INSN_P (858)"
+ "sw\\t%0,%1($sp)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lhu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4000))]
+ "CGEN_ENABLE_INSN_P (859)"
+ "lhu\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lbu"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4002))]
+ "CGEN_ENABLE_INSN_P (860)"
+ "lbu\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lw"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4004))]
+ "CGEN_ENABLE_INSN_P (861)"
+ "lw\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lh"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4006))]
+ "CGEN_ENABLE_INSN_P (862)"
+ "lh\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lb"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4008))]
+ "CGEN_ENABLE_INSN_P (863)"
+ "lb\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "2")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_sw"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4010))]
+ "CGEN_ENABLE_INSN_P (864)"
+ "sw\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sh"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4012))]
+ "CGEN_ENABLE_INSN_P (865)"
+ "sh\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sb"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4014))]
+ "CGEN_ENABLE_INSN_P (866)"
+ "sb\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_dsp1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "cgen_h_uint_20a1_immediate" "")
+ ] 4016))]
+ "CGEN_ENABLE_INSN_P (867)"
+ "dsp1\\t%1,%2"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_dsp0"
+ [(unspec_volatile [
+ (match_operand:SI 0 "cgen_h_uint_24a1_immediate" "")
+ ] 4018)]
+ "CGEN_ENABLE_INSN_P (868)"
+ "dsp0\\t%0"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_dsp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (match_operand:SI 3 "cgen_h_uint_16a1_immediate" "")
+ ] 4020))]
+ "CGEN_ENABLE_INSN_P (869)"
+ "dsp\\t%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_uci"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (match_operand:SI 3 "cgen_h_uint_16a1_immediate" "")
+ ] 4022))]
+ "CGEN_ENABLE_INSN_P (870)"
+ "uci\\t%1,%2,%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lhucpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 4024))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 4026))]
+ "CGEN_ENABLE_INSN_P (871)"
+ "lhucpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lbucpm1"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 4028))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 31)
+ (reg:SI 30)
+ (mem:SI (scratch:SI))
+ ] 4030))]
+ "CGEN_ENABLE_INSN_P (872)"
+ "lbucpm1\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lhucpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 4032))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 4034))]
+ "CGEN_ENABLE_INSN_P (873)"
+ "lhucpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lbucpm0"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 4036))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (reg:SI 29)
+ (reg:SI 28)
+ (mem:SI (scratch:SI))
+ ] 4038))]
+ "CGEN_ENABLE_INSN_P (874)"
+ "lbucpm0\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_lhucpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 4040))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (mem:SI (scratch:SI))
+ ] 4042))]
+ "CGEN_ENABLE_INSN_P (875)"
+ "lhucpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lbucpa"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 2 "general_operand" "1")
+ (match_operand:SI 3 "cgen_h_sint_10a1_immediate" "")
+ (mem:SI (scratch:SI))
+ ] 4044))
+ (set (match_operand:SI 1 "nonimmediate_operand" "=r")
+ (unspec:SI [
+ (match_dup 2)
+ (match_dup 3)
+ (mem:SI (scratch:SI))
+ ] 4046))]
+ "CGEN_ENABLE_INSN_P (876)"
+ "lbucpa\\t%0,(%2+),%3"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "load")])
+
+
+(define_insn "cgen_intrinsic_lhucp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4048))]
+ "CGEN_ENABLE_INSN_P (877)"
+ "lhucp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lhcp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4050))]
+ "CGEN_ENABLE_INSN_P (878)"
+ "lhcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_shcp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "em")
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4052))]
+ "CGEN_ENABLE_INSN_P (879)"
+ "shcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lbucp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4054))]
+ "CGEN_ENABLE_INSN_P (880)"
+ "lbucp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_lbcp"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=em")
+ (unspec:SI [
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ (mem:SI (scratch:SI))
+ ] 4056))]
+ "CGEN_ENABLE_INSN_P (881)"
+ "lbcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_sbcp"
+ [(set (mem:SI (scratch:SI))
+ (unspec:SI [
+ (match_operand:SI 0 "general_operand" "em")
+ (match_operand:SI 1 "cgen_h_sint_12a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4058))]
+ "CGEN_ENABLE_INSN_P (882)"
+ "sbcp\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "store")])
+
+
+(define_insn "cgen_intrinsic_casw3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (match_operand:SI 3 "general_operand" "r")
+ ] 4060))]
+ "CGEN_ENABLE_INSN_P (883)"
+ "casw3\\t%1,%2,(%3)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_cash3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (match_operand:SI 3 "general_operand" "r")
+ ] 4062))]
+ "CGEN_ENABLE_INSN_P (884)"
+ "cash3\\t%1,%2,(%3)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_casb3"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "0")
+ (match_operand:SI 2 "general_operand" "r")
+ (match_operand:SI 3 "general_operand" "r")
+ ] 4064))]
+ "CGEN_ENABLE_INSN_P (885)"
+ "casb3\\t%1,%2,(%3)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_prefd"
+ [(unspec_volatile [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "cgen_h_sint_16a1_immediate" "")
+ (match_operand:SI 2 "general_operand" "r")
+ ] 4066)]
+ "CGEN_ENABLE_INSN_P (886)"
+ "pref\\t%0,%1(%2)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "4")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_pref"
+ [(unspec_volatile [
+ (match_operand:SI 0 "cgen_h_uint_4a1_immediate" "")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4068)]
+ "CGEN_ENABLE_INSN_P (887)"
+ "pref\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_ldcb_r"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
+ (unspec_volatile:SI [
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4070))]
+ "CGEN_ENABLE_INSN_P (888)"
+ "ldcb\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "3")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
+
+(define_insn "cgen_intrinsic_stcb_r"
+ [(unspec_volatile [
+ (match_operand:SI 0 "general_operand" "r")
+ (match_operand:SI 1 "general_operand" "r")
+ ] 4072)]
+ "CGEN_ENABLE_INSN_P (889)"
+ "stcb\\t%0,(%1)"
+ [(set_attr "may_trap" "no")
+ (set_attr "latency" "0")
+ (set_attr "length" "2")
+ (set_attr "slot" "core")
+ (set_attr "slots" "core")
+ (set_attr "stall" "none")])
+
diff --git a/gcc/config/mep/ivc2-template.h b/gcc/config/mep/ivc2-template.h
new file mode 100644
index 000000000..da0440c0d
--- /dev/null
+++ b/gcc/config/mep/ivc2-template.h
@@ -0,0 +1,9 @@
+#undef __section
+#define __section(_secname) __attribute__((section(#_secname)))
+#undef mep_nop
+#define mep_nop() __asm__ volatile ("nop")
+
+#pragma GCC coprocessor available $c0...$c31
+#pragma GCC coprocessor call_saved $c6...$c7
+
+#include <intrinsics.h>
diff --git a/gcc/config/mep/mep-c5.cpu b/gcc/config/mep/mep-c5.cpu
new file mode 100644
index 000000000..fc81e90ed
--- /dev/null
+++ b/gcc/config/mep/mep-c5.cpu
@@ -0,0 +1,278 @@
+; Toshiba MeP C5 Core description. -*- scheme -*-
+; Copyright (C) 2009
+; Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+(dnf f-c5n4 "extended field" (all-mep-core-isas) 16 4)
+(dnf f-c5n5 "extended field" (all-mep-core-isas) 20 4)
+(dnf f-c5n6 "extended field" (all-mep-core-isas) 24 4)
+(dnf f-c5n7 "extended field" (all-mep-core-isas) 28 4)
+(dnf f-rl5 "register l c5" (all-mep-core-isas) 20 4)
+(df f-12s20 "extended field" (all-mep-core-isas) 20 12 INT #f #f)
+
+(dnop rl5 "register Rl c5" (all-mep-core-isas) h-gpr f-rl5)
+(dnop cdisp12 "copro addend (12 bits)" (all-mep-core-isas) h-sint f-12s20)
+
+(dnci stcb_r "store in control bus space" (VOLATILE (MACH c5))
+ "stcb $rn,($rma)"
+ (+ MAJ_7 rn rma (f-sub4 12))
+ (c-call VOID "do_stcb" rn (and rma #xffff))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-stcb))))
+
+(dnci ldcb_r "load from control bus space" (VOLATILE (MACH c5) (LATENCY 3))
+ "ldcb $rn,($rma)"
+ (+ MAJ_7 rn rma (f-sub4 13))
+ (set rn (c-call SI "do_ldcb" (and rma #xffff)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-ldcb)
+ (unit u-exec)
+ (unit u-ldcb-gpr (out loadreg rn)))))
+
+(dnci pref "cache prefetch" ((MACH c5) VOLATILE)
+ "pref $cimm4,($rma)"
+ (+ MAJ_7 cimm4 rma (f-sub4 5))
+ (sequence ()
+ (c-call VOID "check_option_dcache" pc)
+ (c-call VOID "do_cache_prefetch" cimm4 rma pc))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci prefd "cache prefetch" ((MACH c5) VOLATILE)
+ "pref $cimm4,$sdisp16($rma)"
+ (+ MAJ_15 cimm4 rma (f-sub4 3) sdisp16)
+ (sequence ()
+ (c-call VOID "check_option_dcache" pc)
+ (c-call VOID "do_cache_prefetch" cimm4 (add INT rma (ext SI sdisp16)) pc))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci casb3 "compare and swap byte 3" ((MACH c5) VOLATILE OPTIONAL_BIT_INSN)
+ "casb3 $rl5,$rn,($rm)"
+ (+ MAJ_15 rn rm (f-sub4 #x1) (f-c5n4 #x2) rl5 (f-c5n6 #x0) (f-c5n7 #x0))
+ (sequence ()
+ (c-call VOID "do_casb3" (index-of rl5) rn rm pc)
+ (set rl5 rl5)
+ )
+ ((mep (unit u-use-gpr (in usereg rl5))
+ (unit u-load-gpr (out loadreg rl5))
+ (unit u-exec))))
+
+(dnci cash3 "compare and swap halfword 3" ((MACH c5) VOLATILE OPTIONAL_BIT_INSN)
+ "cash3 $rl5,$rn,($rm)"
+ (+ MAJ_15 rn rm (f-sub4 #x1) (f-c5n4 #x2) rl5 (f-c5n6 #x0) (f-c5n7 #x1))
+ (sequence ()
+ (c-call VOID "do_cash3" (index-of rl5) rn rm pc)
+ (set rl5 rl5)
+ )
+ ((mep (unit u-use-gpr (in usereg rl5))
+ (unit u-load-gpr (out loadreg rl5))
+ (unit u-exec))))
+
+(dnci casw3 "compare and swap word 3" ((MACH c5) VOLATILE OPTIONAL_BIT_INSN)
+ "casw3 $rl5,$rn,($rm)"
+ (+ MAJ_15 rn rm (f-sub4 #x1) (f-c5n4 #x2) rl5 (f-c5n6 #x0) (f-c5n7 #x2))
+ (sequence ()
+ (c-call VOID "do_casw3" (index-of rl5) rn rm pc)
+ (set rl5 rl5)
+ )
+ ((mep (unit u-use-gpr (in usereg rl5))
+ (unit u-load-gpr (out loadreg rl5))
+ (unit u-exec))))
+
+
+
+(dnci sbcp "store byte coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "sbcp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 0) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (add rma (ext SI cdisp12)))
+ (set (mem QI (add rma (ext SI cdisp12))) (and crn #xff)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbcp "load byte coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "lbcp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 4) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem QI (add rma (ext SI cdisp12))))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbucp "load byte coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "lbucp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 12) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem QI (add rma (ext SI cdisp12))))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+
+(dnci shcp "store half-word coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "shcp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 1) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (add rma (ext SI cdisp12)))
+ (set (mem HI (add rma (ext SI cdisp12))) (and crn #xffff)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhcp "load half-word coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "lhcp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 5) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem HI (add rma (ext SI cdisp12))))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhucp "load half-word coprocessor" (OPTIONAL_CP_INSN (STALL STORE) (MACH c5))
+ "lhucp $crn,$cdisp12($rma)"
+ (+ MAJ_15 crn rma (f-sub4 6) (f-ext4 13) cdisp12)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem HI (add rma (ext SI cdisp12))))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+
+(dnci lbucpa "load byte coprocessor" (OPTIONAL_CP_INSN (STALL LOAD) (MACH c5))
+ "lbucpa $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xC) (f-ext62 #x0) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem QI rma)))
+ (set rma (add rma cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhucpa "load half-word coprocessor" (OPTIONAL_CP_INSN (STALL LOAD) (MACH c5))
+ "lhucpa $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xD) (f-ext62 #x0) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (add rma (ext SI cdisp10a2))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbucpm0 "lbucpm0" (OPTIONAL_CP_INSN (MACH c5))
+ "lbucpm0 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xc) (f-ext62 #x2) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem QI rma)))
+ (set rma (mod0 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhucpm0 "lhucpm0" (OPTIONAL_CP_INSN (MACH c5))
+ "lhucpm0 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xd) (f-ext62 #x2) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (mod0 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbucpm1 "lbucpm1" (OPTIONAL_CP_INSN (MACH c5))
+ "lbucpm1 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xc) (f-ext62 #x3) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem QI rma)))
+ (set rma (mod1 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhucpm1 "lhucpm1" (OPTIONAL_CP_INSN (MACH c5))
+ "lhucpm1 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #xd) (f-ext62 #x3) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (zext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (mod1 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci uci "uci" ((MACH c5) VOLATILE)
+ "uci $rn,$rm,$uimm16"
+ (+ MAJ_15 rn rm (f-sub4 2) simm16)
+ (set rn (c-call SI "do_UCI" rn rm (zext SI uimm16) pc))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnf f-c5-rnm "register n/m" (all-mep-isas) 4 8)
+(dnf f-c5-rm "register m" (all-mep-isas) 8 4)
+(df f-c5-16u16 "general 16-bit u-val" (all-mep-isas) 16 16 UINT #f #f)
+
+(dnmf f-c5-rmuimm20 "20-bit immediate in Rm/Imm16" (all-mep-isas) UINT
+ (f-c5-rm f-c5-16u16)
+ (sequence () ; insert
+ (set (ifield f-c5-rm) (srl (ifield f-c5-rmuimm20) 16))
+ (set (ifield f-c5-16u16) (and (ifield f-c5-rmuimm20) #xffff))
+ )
+ (sequence () ; extract
+ (set (ifield f-c5-rmuimm20) (or (ifield f-c5-16u16)
+ (sll (ifield f-c5-rm) 16)))
+ )
+ )
+(dnop c5rmuimm20 "20-bit immediate in rm and imm16" (all-mep-core-isas) h-uint f-c5-rmuimm20)
+
+(dnmf f-c5-rnmuimm24 "24-bit immediate in Rm/Imm16" (all-mep-isas) UINT
+ (f-c5-rnm f-c5-16u16)
+ (sequence () ; insert
+ (set (ifield f-c5-rnm) (srl (ifield f-c5-rnmuimm24) 16))
+ (set (ifield f-c5-16u16) (and (ifield f-c5-rnmuimm24) #xffff))
+ )
+ (sequence () ; extract
+ (set (ifield f-c5-rnmuimm24) (or (ifield f-c5-16u16)
+ (sll (ifield f-c5-rnm) 16)))
+ )
+ )
+(dnop c5rnmuimm24 "24-bit immediate in rn, rm, and imm16" (all-mep-core-isas) h-uint f-c5-rnmuimm24)
+
+(dnci dsp "dsp" ((MACH c5) VOLATILE)
+ "dsp $rn,$rm,$uimm16"
+ (+ MAJ_15 rn rm (f-sub4 0) uimm16)
+ (set rn (c-call SI "do_DSP" rn rm (zext SI uimm16) pc))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci dsp0 "dsp0" ((MACH c5) VOLATILE NO-DIS ALIAS)
+ "dsp0 $c5rnmuimm24"
+ (+ MAJ_15 c5rnmuimm24 (f-sub4 0))
+ (c-call VOID "do_DSP" (zext SI c5rnmuimm24) pc)
+ ((mep (unit u-exec))))
+
+(dnci dsp1 "dsp1" ((MACH c5) VOLATILE NO-DIS ALIAS)
+ "dsp1 $rn,$c5rmuimm20"
+ (+ MAJ_15 rn (f-sub4 0) c5rmuimm20)
+ (set rn (c-call SI "do_DSP" rn (zext SI c5rmuimm20) pc))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
diff --git a/gcc/config/mep/mep-core.cpu b/gcc/config/mep/mep-core.cpu
new file mode 100644
index 000000000..cfcdd42da
--- /dev/null
+++ b/gcc/config/mep/mep-core.cpu
@@ -0,0 +1,3081 @@
+; Toshiba MeP Media Engine architecture description. -*- Scheme -*-
+; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009
+; Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+(include "simplify.inc")
+
+(define-pmacro isa-enum ()
+ (isas mep
+; begin-isa-enum
+ ext_core1 ext_cop1_16 ext_cop1_32 ext_cop1_48 ext_cop1_64
+; end-isa-enum
+ )
+)
+
+(define-arch
+ (name mep)
+ (comment "Toshiba MeP Media Engine")
+ (insn-lsb0? #f) ;; work around cgen limitation
+ (machs mep h1 c5)
+ isa-enum
+)
+
+(define-isa
+ (name mep)
+ (comment "MeP core instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+; begin-isas
+(define-isa
+ (name ext_core1)
+ (comment "MeP core extension instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+(define-isa
+ (name ext_cop1_16)
+ (comment "MeP coprocessor instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+(define-isa
+ (name ext_cop1_32)
+ (comment "MeP coprocessor instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+(define-isa
+ (name ext_cop1_48)
+ (comment "MeP coprocessor instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+(define-isa
+ (name ext_cop1_64)
+ (comment "MeP coprocessor instruction set")
+ (default-insn-word-bitsize 32)
+ (default-insn-bitsize 32)
+ (base-insn-bitsize 32)
+)
+
+(define-pmacro all-mep-isas () (ISA mep,ext_core1,ext_cop1_16,ext_cop1_32,ext_cop1_48,ext_cop1_64))
+
+(define-pmacro all-mep-core-isas () (ISA mep,ext_core1,ext_cop1_32))
+
+(define-pmacro all-core-isa-list () mep,ext_core1)
+; end-isas
+
+(define-cpu
+ (name mepf)
+ (comment "MeP family")
+ (endian either)
+ (insn-chunk-bitsize 16)
+ (word-bitsize 32)
+)
+
+(define-mach
+ (name mep)
+ (comment "MeP media engine")
+ (cpu mepf)
+ isa-enum
+)
+
+(define-mach
+ (name h1)
+ (comment "H1 media engine")
+ (cpu mepf)
+ isa-enum
+)
+
+(define-mach
+ (name c5)
+ (comment "C5 media engine")
+ (cpu mepf)
+ isa-enum
+)
+
+(define-model
+ (name mep)
+ (comment "MeP media engine processor")
+ (mach c5) ; mach gets changed by MeP-Integrator
+
+ (unit u-exec "execution unit" ()
+ 1 1 ; issue done
+ () () () ())
+
+ ; Branch unit
+ (unit u-branch "Branch Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ ((pc)) ; outputs
+ () ; profile action (default)
+ )
+
+ ; Multiply unit
+ (unit u-multiply "Multiply Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Divide unit
+ (unit u-divide "Divide Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Stcb unit
+ (unit u-stcb "stcb Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Ldcb unit
+ (unit u-ldcb "ldcb Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Load gpr unit
+ (unit u-load-gpr "Load into GPR Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ ((loadreg INT -1)) ; outputs
+ () ; profile action (default)
+ )
+
+ (unit u-ldcb-gpr "Ldcb into GPR Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ ((loadreg INT -1)) ; outputs
+ () ; profile action (default)
+ )
+
+ ; Multiply into GPR unit
+ (unit u-mul-gpr "Multiply into GPR Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ ((resultreg INT -1)) ; outputs
+ () ; profile action (default)
+ )
+
+ ; Use gpr unit -- stalls if GPR not ready
+ (unit u-use-gpr "Use GPR Unit" ()
+ 0 0 ; issue done
+ () ; state
+ ((usereg INT -1)) ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Use ctrl-reg unit -- stalls if CTRL-REG not ready
+ (unit u-use-ctrl-reg "Use CTRL-REG Unit" ()
+ 0 0 ; issue done
+ () ; state
+ ((usereg INT -1)) ; inputs
+ () ; outputs
+ () ; profile action (default)
+ )
+
+ ; Store ctrl-reg unit -- stalls if CTRL-REG not ready
+ (unit u-store-ctrl-reg "Store CTRL-REG Unit" ()
+ 0 0 ; issue done
+ () ; state
+ () ; inputs
+ ((storereg INT -1)) ; outputs
+ () ; profile action (default)
+ )
+)
+
+; Hardware elements.
+
+(dnh h-pc "program counter" (PC PROFILE all-mep-isas) (pc) () () ())
+
+(define-hardware
+ (name h-gpr)
+ (comment "General purpose registers")
+ (attrs all-mep-isas CACHE-ADDR PROFILE)
+ (type register SI (16))
+ (indices keyword "$"
+ (("0" 0) ("1" 1) ("2" 2) ("3" 3) ("4" 4) ("5" 5)
+ ("6" 6) ("7" 7) ("8" 8) ("9" 9) ("10" 10) ("11" 11)
+ ; "$8" is the preferred name for register 8, but "$tp", "$gp"
+ ; and "$sp" are preferred for their respective registers.
+ (fp 8) (tp 13) (gp 14) (sp 15)
+ ("12" 12) ("13" 13) ("14" 14) ("15" 15)))
+)
+
+(define-hardware
+ (name h-csr)
+ (comment "Control/special registers")
+ (attrs all-mep-isas PROFILE)
+ (type register SI (32))
+ (indices keyword "$"
+ ((pc 0) (lp 1) (sar 2) (rpb 4) (rpe 5) (rpc 6)
+ (hi 7) (lo 8) (mb0 12) (me0 13) (mb1 14) (me1 15)
+ (psw 16) (id 17) (tmp 18) (epc 19) (exc 20) (cfg 21)
+ (npc 23) (dbg 24) (depc 25) (opt 26) (rcfg 27) (ccfg 28)
+; begin-extra-csr-registers
+ (vid 22)
+; end-extra-csr-registers
+ ))
+ (get (index) (c-call SI "cgen_get_csr_value" index))
+ (set (index newval) (c-call VOID "cgen_set_csr_value" index newval))
+)
+
+(define-pmacro (-reg-pair n) ((.sym n) n))
+(define-hardware
+ (name h-cr64)
+ (comment "64-bit coprocessor registers")
+ (attrs all-mep-isas)
+ ; This assumes that the data path of the co-pro is 64 bits.
+ (type register DI (32))
+ (indices keyword "$c" (.map -reg-pair (.iota 32)))
+ (set (index newval) (c-call VOID "h_cr64_queue_set" index newval))
+)
+(define-hardware
+ (name h-cr64-w)
+ (comment "64-bit coprocessor registers, pending writes")
+ (attrs all-mep-isas)
+ ; This assumes that the data path of the co-pro is 64 bits.
+ (type register DI (32))
+)
+
+(define-hardware
+ (name h-cr)
+ (comment "32-bit coprocessor registers")
+ (attrs all-mep-isas VIRTUAL)
+ (type register SI (32))
+ (indices keyword "$c" (.map -reg-pair (.iota 32)))
+ (set (index newval) (c-call VOID "h_cr64_set" index (ext DI newval)))
+ (get (index) (trunc SI (c-call DI "h_cr64_get" index)))
+)
+
+;; Given a coprocessor control register number N, expand to a
+;; name/index pair: ($ccrN N)
+(define-pmacro (-ccr-reg-pair n) ((.sym "$ccr" n) n))
+
+(define-hardware
+ (name h-ccr)
+ (comment "Coprocessor control registers")
+ (attrs all-mep-isas)
+ (type register SI (64))
+ (indices keyword "" (.map -ccr-reg-pair (.iota 64)))
+ (set (index newval) (c-call VOID "h_ccr_queue_set" index newval))
+)
+(define-hardware
+ (name h-ccr-w)
+ (comment "Coprocessor control registers, pending writes")
+ (attrs all-mep-isas)
+ (type register SI (64))
+)
+
+
+; Instruction fields. Bit numbering reversed.
+
+; Conventions:
+;
+; N = number of bits in value
+; A = alignment (2 or 4, omit for 1)
+; B = leftmost (i.e. closest to zero) bit position
+;
+; -- Generic Fields (f-*) --
+; N number of bits in *value* (1-24)
+; [us] signed vs unsigned
+; B position of left-most bit (4-16)
+; aA opt. alignment (2=drop 1 lsb, 4=drop 2 lsbs, etc)
+; n opt. for noncontiguous fields
+; f-foo-{hi,lo} msb/lsb parts of field f-foo
+;
+; -- Operands --
+; pcrelNaA PC-relative branch target (signed)
+; pcabsNaA Absolute branch target (unsigned)
+;
+; [us]dispNaA [un]signed displacement
+; [us]immN [un]signed immediate value
+; addrNaA absolute address (unsigned)
+;
+; Additional prefixes may be used for special cases.
+
+(dnf f-major "major opcode" (all-mep-core-isas) 0 4)
+
+(dnf f-rn "register n" (all-mep-core-isas) 4 4)
+(dnf f-rn3 "register 0-7" (all-mep-core-isas) 5 3)
+(dnf f-rm "register m" (all-mep-core-isas) 8 4)
+(dnf f-rl "register l" (all-mep-core-isas) 12 4)
+(dnf f-sub2 "sub opcode (2 bits)" (all-mep-core-isas) 14 2)
+(dnf f-sub3 "sub opcode (3 bits)" (all-mep-core-isas) 13 3)
+(dnf f-sub4 "sub opcode (4 bits)" (all-mep-core-isas) 12 4)
+(dnf f-ext "extended field" (all-mep-core-isas) 16 8)
+(dnf f-ext4 "extended field 16:4" (all-mep-core-isas) 16 4)
+(dnf f-ext62 "extended field 20:2" (all-mep-core-isas) 20 2)
+(dnf f-crn "copro register n" (all-mep-core-isas) 4 4)
+
+(df f-csrn-hi "cr hi 1u15" (all-mep-core-isas) 15 1 UINT #f #f)
+(df f-csrn-lo "cr lo 4u8" (all-mep-core-isas) 8 4 UINT #f #f)
+(define-multi-ifield
+ (name f-csrn)
+ (comment "control reg")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-csrn-hi f-csrn-lo)
+ (insert (sequence ()
+ (set (ifield f-csrn-lo) (and (ifield f-csrn) #xf))
+ (set (ifield f-csrn-hi) (srl (ifield f-csrn) 4))))
+ (extract (set (ifield f-csrn)
+ (or (sll (ifield f-csrn-hi) 4) (ifield f-csrn-lo))))
+ )
+
+(df f-crnx-hi "crx hi 1u28" (all-mep-core-isas) 28 1 UINT #f #f)
+(df f-crnx-lo "crx lo 4u4" (all-mep-core-isas) 4 4 UINT #f #f)
+(define-multi-ifield
+ (name f-crnx)
+ (comment "copro register n (0-31)")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-crnx-hi f-crnx-lo)
+ (insert (sequence ()
+ (set (ifield f-crnx-lo) (and (ifield f-crnx) #xf))
+ (set (ifield f-crnx-hi) (srl (ifield f-crnx) 4))))
+ (extract (set (ifield f-crnx)
+ (or (sll (ifield f-crnx-hi) 4) (ifield f-crnx-lo))))
+ )
+
+; Miscellaneous fields.
+
+(define-pmacro (dnfb n)
+ (dnf (.sym f- n) (.str "bit " n) (all-mep-isas) n 1))
+
+; Define small fields used throughout the instruction set description.
+; Each field (eg. `f-N') is at single bit field at position N.
+
+(dnfb 0)
+(dnfb 1)
+(dnfb 2)
+(dnfb 3)
+(dnfb 4)
+(dnfb 5)
+(dnfb 6)
+(dnfb 7)
+(dnfb 8)
+(dnfb 9)
+(dnfb 10)
+(dnfb 11)
+(dnfb 12)
+(dnfb 13)
+(dnfb 14)
+(dnfb 15)
+(dnfb 16)
+(dnfb 17)
+(dnfb 18)
+(dnfb 19)
+(dnfb 20)
+(dnfb 21)
+(dnfb 22)
+(dnfb 23)
+(dnfb 24)
+(dnfb 25)
+(dnfb 26)
+(dnfb 27)
+(dnfb 28)
+(dnfb 29)
+(dnfb 30)
+(dnfb 31)
+
+; Branch/Jump target addresses
+
+(df f-8s8a2 "pc-rel addr (8 bits)" (all-mep-core-isas PCREL-ADDR) 8 7 INT
+ ((value pc) (sra SI (sub SI value pc) 1))
+ ((value pc) (add SI (sll SI value 1) pc)))
+
+(df f-12s4a2 "pc-rel addr (12 bits)" (all-mep-core-isas PCREL-ADDR) 4 11 INT
+ ((value pc) (sra SI (sub SI value pc) 1))
+ ((value pc) (add SI (sll SI value 1) pc)))
+
+(df f-17s16a2 "pc-rel addr (17 bits)" (all-mep-core-isas PCREL-ADDR) 16 16 INT
+ ((value pc) (sra SI (sub SI value pc) 1))
+ ((value pc) (add SI (sll SI value 1) pc)))
+
+(df f-24s5a2n-hi "24s5a2n hi 16s16" (all-mep-core-isas PCREL-ADDR) 16 16 INT #f #f)
+(df f-24s5a2n-lo "24s5a2n lo 7s5a2" (all-mep-core-isas PCREL-ADDR) 5 7 UINT #f #f)
+(define-multi-ifield
+ (name f-24s5a2n)
+ (comment "pc-rel addr (24 bits align 2)")
+ (attrs all-mep-core-isas PCREL-ADDR)
+ (mode INT)
+ (subfields f-24s5a2n-hi f-24s5a2n-lo)
+ (insert (sequence ()
+ (set (ifield f-24s5a2n)
+ (sub (ifield f-24s5a2n) pc))
+ (set (ifield f-24s5a2n-lo)
+ (srl (and (ifield f-24s5a2n) #xfe) 1))
+ (set (ifield f-24s5a2n-hi)
+ (sra INT (ifield f-24s5a2n) 8))))
+ (extract (set (ifield f-24s5a2n)
+ (add SI (or (sll (ifield f-24s5a2n-hi) 8)
+ (sll (ifield f-24s5a2n-lo) 1))
+ pc)))
+ )
+
+(df f-24u5a2n-hi "24u5a2n hi 16u16" (all-mep-core-isas) 16 16 UINT #f #f)
+(df f-24u5a2n-lo "24u5a2n lo 7u5a2" (all-mep-core-isas) 5 7 UINT #f #f)
+(define-multi-ifield
+ (name f-24u5a2n)
+ (comment "abs jump target (24 bits, alignment 2)")
+ (attrs all-mep-core-isas ABS-ADDR)
+ (mode UINT)
+ (subfields f-24u5a2n-hi f-24u5a2n-lo)
+ (insert (sequence ()
+ (set (ifield f-24u5a2n-lo)
+ (srl (and (ifield f-24u5a2n) #xff) 1))
+ (set (ifield f-24u5a2n-hi)
+ (srl (ifield f-24u5a2n) 8))
+ ))
+ (extract (set (ifield f-24u5a2n)
+ (or (sll (ifield f-24u5a2n-hi) 8)
+ (sll (ifield f-24u5a2n-lo) 1))))
+ )
+
+; Displacement fields.
+
+(df f-2u6 "SAR offset (2 bits)" (all-mep-core-isas) 6 2 UINT #f #f)
+(df f-7u9 "tp-rel b (7 bits)" (all-mep-core-isas) 9 7 UINT #f #f)
+(df f-7u9a2 "tp-rel h (7 bits)" (all-mep-core-isas) 9 6 UINT
+ ((value pc) (srl SI value 1))
+ ((value pc) (sll SI value 1)))
+(df f-7u9a4 "tp/sp-rel w (7 bits)" (all-mep-core-isas) 9 5 UINT
+ ((value pc) (srl SI value 2))
+ ((value pc) (sll SI value 2)))
+(df f-16s16 "general 16-bit s-val" (all-mep-core-isas) 16 16 INT #f #f)
+
+; Immediate fields.
+
+(df f-2u10 "swi level (2 bits)" (all-mep-core-isas) 10 2 UINT #f #f)
+(df f-3u5 "bit offset (3 bits)" (all-mep-core-isas) 5 3 UINT #f #f)
+(df f-4u8 "bCC const (4 bits)" (all-mep-core-isas) 8 4 UINT #f #f)
+(df f-5u8 "slt & shifts (5 bits)" (all-mep-core-isas) 8 5 UINT #f #f)
+(df f-5u24 "clip immediate (5 bits)" (all-mep-core-isas) 24 5 UINT #f #f)
+(df f-6s8 "add immediate (6 bits)" (all-mep-core-isas) 8 6 INT #f #f)
+(df f-8s8 "add imm (8 bits)" (all-mep-core-isas) 8 8 INT #f #f)
+(df f-16u16 "general 16-bit u-val" (all-mep-core-isas) 16 16 UINT #f #f)
+(df f-12u16 "cmov fixed 1" (all-mep-core-isas) 16 12 UINT #f #f)
+(df f-3u29 "cmov fixed 2" (all-mep-core-isas) 29 3 UINT #f #f)
+
+
+; These are all for the coprocessor opcodes
+
+; The field is like IJKiiiiiii where I and J are toggled if K is set,
+; for compatibility with older cores.
+(define-pmacro (compute-cdisp10 val)
+ (cond SI
+ ((and SI (cond SI ((and SI val #x80) (xor SI val #x300)) (else val)) #x200)
+ (sub (cond SI ((and SI val #x80) (xor SI val #x300)) (else val)) #x400))
+ (else
+ (cond SI ((and SI val #x80) (xor SI val #x300)) (else val)))
+ )
+ )
+(define-pmacro (extend-cdisp10 val)
+ (cond SI
+ ((and SI (compute-cdisp10 val) #x200)
+ (sub (and SI (compute-cdisp10 val) #x3ff) #x400))
+ (else
+ (and SI (compute-cdisp10 val) #x3ff))
+ )
+ )
+
+(df f-cdisp10 "cop imm10" (all-mep-core-isas) 22 10 INT
+ ((value pc) (extend-cdisp10 value))
+ ((value pc) (extend-cdisp10 value))
+ )
+
+; Non-contiguous fields.
+
+(df f-24u8a4n-hi "24u8a4n hi 16u16" (all-mep-core-isas) 16 16 UINT #f #f)
+(df f-24u8a4n-lo "24u8a4n lo 8u8a4" (all-mep-core-isas) 8 6 UINT #f #f)
+(define-multi-ifield
+ (name f-24u8a4n)
+ (comment "absolute 24-bit address")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-24u8a4n-hi f-24u8a4n-lo)
+ (insert (sequence ()
+ (set (ifield f-24u8a4n-hi) (srl (ifield f-24u8a4n) 8))
+ (set (ifield f-24u8a4n-lo) (srl (and (ifield f-24u8a4n) #xfc) 2))))
+ (extract (set (ifield f-24u8a4n)
+ (or (sll (ifield f-24u8a4n-hi) 8)
+ (sll (ifield f-24u8a4n-lo) 2))))
+ )
+
+(df f-24u8n-hi "24u8n hi 16u16" (all-mep-core-isas) 16 16 UINT #f #f)
+(df f-24u8n-lo "24u8n lo 8u8" (all-mep-core-isas) 8 8 UINT #f #f)
+(define-multi-ifield
+ (name f-24u8n)
+ (comment "24-bit constant")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-24u8n-hi f-24u8n-lo)
+ (insert (sequence ()
+ (set (ifield f-24u8n-hi) (srl (ifield f-24u8n) 8))
+ (set (ifield f-24u8n-lo) (and (ifield f-24u8n) #xff))))
+ (extract (set (ifield f-24u8n)
+ (or (sll (ifield f-24u8n-hi) 8)
+ (ifield f-24u8n-lo))))
+ )
+
+(df f-24u4n-hi "24u4n hi 8u4" (all-mep-core-isas) 4 8 UINT #f #f)
+(df f-24u4n-lo "24u4n lo 16u16" (all-mep-core-isas) 16 16 UINT #f #f)
+(define-multi-ifield
+ (name f-24u4n)
+ (comment "coprocessor code")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-24u4n-hi f-24u4n-lo)
+ (insert (sequence ()
+ (set (ifield f-24u4n-hi) (srl (ifield f-24u4n) 16))
+ (set (ifield f-24u4n-lo) (and (ifield f-24u4n) #xffff))))
+ (extract (set (ifield f-24u4n)
+ (or (sll (ifield f-24u4n-hi) 16)
+ (ifield f-24u4n-lo))))
+ )
+
+(define-multi-ifield
+ (name f-callnum)
+ (comment "system call number field")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-5 f-6 f-7 f-11)
+ (insert (sequence ()
+ (set (ifield f-5) (and (srl (ifield f-callnum) 3) 1))
+ (set (ifield f-6) (and (srl (ifield f-callnum) 2) 1))
+ (set (ifield f-7) (and (srl (ifield f-callnum) 1) 1))
+ (set (ifield f-11) (and (ifield f-callnum) 1))))
+ (extract (set (ifield f-callnum)
+ (or (sll (ifield f-5) 3)
+ (or (sll (ifield f-6) 2)
+ (or (sll (ifield f-7) 1)
+ (ifield f-11))))))
+ )
+
+(df f-ccrn-hi "ccrn hi 2u28" (all-mep-core-isas) 28 2 UINT #f #f)
+(df f-ccrn-lo "ccrn lo 4u4" (all-mep-core-isas) 4 4 UINT #f #f)
+(define-multi-ifield
+ (name f-ccrn)
+ (comment "Coprocessor register number field")
+ (attrs all-mep-core-isas)
+ (mode UINT)
+ (subfields f-ccrn-hi f-ccrn-lo)
+ (insert (sequence ()
+ (set (ifield f-ccrn-hi) (and (srl (ifield f-ccrn) 4) #x3))
+ (set (ifield f-ccrn-lo) (and (ifield f-ccrn) #xf))))
+ (extract (set (ifield f-ccrn)
+ (or (sll (ifield f-ccrn-hi) 4)
+ (ifield f-ccrn-lo))))
+ )
+
+; Operands.
+
+;; Only LABEL, REGNUM, FMAX_FLOAT and FMAX_INT are now relevant for correct
+;; operation. The others are mostly kept for backwards compatibility,
+;; although they do affect the dummy prototypes in
+;; gcc/config/mep/intrinsics.h.
+(define-attr
+ (type enum)
+ (for operand)
+ (name CDATA)
+ (comment "datatype to use for C intrinsics mapping")
+ (values LABEL REGNUM FMAX_FLOAT FMAX_INT
+ POINTER LONG ULONG SHORT USHORT CHAR UCHAR CP_DATA_BUS_INT)
+ (default LONG))
+
+(define-attr
+ (type enum)
+ (for insn)
+ (name CPTYPE)
+ (comment "datatype to use for coprocessor values")
+ (values CP_DATA_BUS_INT VECT V2SI V4HI V8QI V2USI V4UHI V8UQI)
+ (default CP_DATA_BUS_INT))
+
+(define-attr
+ (type enum)
+ (for insn)
+ (name CRET)
+ ;; VOID - all arguments are passed as parameters; if any are written, pointers to them are passed.
+ ;; FIRST - the first argument is the return value.
+ ;; FIRSTCOPY - the first argument is the return value, but a copy is also the first parameter.
+ (values VOID FIRST FIRSTCOPY)
+ (default VOID)
+ (comment "Insn's intrinsic returns void, or the first argument rather than (or in addition to) passing it."))
+
+(define-attr
+ (type integer)
+ (for operand)
+ (name ALIGN)
+ (comment "alignment of immediate operands")
+ (default 1))
+
+(define-attr
+ (for operand)
+ (type boolean)
+ (name RELOC_IMPLIES_OVERFLOW)
+ (comment "Operand should not be considered as a candidate for relocs"))
+
+(define-attr
+ (for hardware)
+ (type boolean)
+ (name IS_FLOAT)
+ (comment "Register contains a floating point value"))
+
+(define-pmacro (dpop name commment attrib hwr field func)
+ (define-full-operand name comment attrib
+ hwr DFLT field ((parse func)) () ()))
+(define-pmacro (dprp name commment attrib hwr field pafunc prfunc)
+ (define-full-operand name comment attrib
+ hwr DFLT field ((parse pafunc) (print prfunc)) () ()))
+
+(dnop r0 "register 0" (all-mep-core-isas) h-gpr 0)
+(dnop rn "register Rn" (all-mep-core-isas) h-gpr f-rn)
+(dnop rm "register Rm" (all-mep-core-isas) h-gpr f-rm)
+(dnop rl "register Rl" (all-mep-core-isas) h-gpr f-rl)
+(dnop rn3 "register 0-7" (all-mep-core-isas) h-gpr f-rn3)
+
+;; Variants of RM/RN with different CDATA attributes. See comment above
+;; CDATA for more details.
+
+(dnop rma "register Rm holding pointer" (all-mep-core-isas (CDATA POINTER)) h-gpr f-rm)
+
+(dnop rnc "register Rn holding char" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn)
+(dnop rnuc "register Rn holding unsigned char" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn)
+(dnop rns "register Rn holding short" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn)
+(dnop rnus "register Rn holding unsigned short" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn)
+(dnop rnl "register Rn holding long" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn)
+(dnop rnul "register Rn holding unsigned long" (all-mep-core-isas (CDATA ULONG)) h-gpr f-rn)
+
+(dnop rn3c "register 0-7 holding unsigned char" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn3)
+(dnop rn3uc "register 0-7 holding byte" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn3)
+(dnop rn3s "register 0-7 holding unsigned short" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn3)
+(dnop rn3us "register 0-7 holding short" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn3)
+(dnop rn3l "register 0-7 holding unsigned long" (all-mep-core-isas (CDATA LONG)) h-gpr f-rn3)
+(dnop rn3ul "register 0-7 holding long" (all-mep-core-isas (CDATA ULONG)) h-gpr f-rn3)
+
+
+(dnop lp "link pointer" (all-mep-core-isas) h-csr 1)
+(dnop sar "shift amount register" (all-mep-core-isas) h-csr 2)
+(dnop hi "high result" (all-mep-core-isas) h-csr 7)
+(dnop lo "low result" (all-mep-core-isas) h-csr 8)
+(dnop mb0 "modulo begin register 0" (all-mep-core-isas) h-csr 12)
+(dnop me0 "modulo end register 0" (all-mep-core-isas) h-csr 13)
+(dnop mb1 "modulo begin register 1" (all-mep-core-isas) h-csr 14)
+(dnop me1 "modulo end register 1" (all-mep-core-isas) h-csr 15)
+(dnop psw "program status word" (all-mep-core-isas) h-csr 16)
+(dnop epc "exception prog counter" (all-mep-core-isas) h-csr 19)
+(dnop exc "exception cause" (all-mep-core-isas) h-csr 20)
+(dnop npc "nmi program counter" (all-mep-core-isas) h-csr 23)
+(dnop dbg "debug register" (all-mep-core-isas) h-csr 24)
+(dnop depc "debug exception pc" (all-mep-core-isas) h-csr 25)
+(dnop opt "option register" (all-mep-core-isas) h-csr 26)
+(dnop r1 "register 1" (all-mep-core-isas) h-gpr 1)
+(dnop tp "tiny data area pointer" (all-mep-core-isas) h-gpr 13)
+(dnop sp "stack pointer" (all-mep-core-isas) h-gpr 15)
+(dprp tpr "TP register" (all-mep-core-isas) h-gpr 13 "tpreg" "tpreg")
+(dprp spr "SP register" (all-mep-core-isas) h-gpr 15 "spreg" "spreg")
+
+(define-full-operand
+ csrn "control/special register" (all-mep-core-isas (CDATA REGNUM)) h-csr
+ DFLT f-csrn ((parse "csrn")) () ()
+)
+
+(dnop csrn-idx "control/special reg idx" (all-mep-core-isas) h-uint f-csrn)
+(dnop crn64 "copro Rn (64-bit)" (all-mep-core-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-crn)
+(dnop crn "copro Rn (32-bit)" (all-mep-core-isas (CDATA CP_DATA_BUS_INT)) h-cr f-crn)
+(dnop crnx64 "copro Rn (0-31, 64-bit)" (all-mep-core-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-crnx)
+(dnop crnx "copro Rn (0-31, 32-bit)" (all-mep-core-isas (CDATA CP_DATA_BUS_INT)) h-cr f-crnx)
+(dnop ccrn "copro control reg CCRn" (all-mep-core-isas (CDATA REGNUM)) h-ccr f-ccrn)
+(dnop cccc "copro flags" (all-mep-core-isas) h-uint f-rm)
+
+(dprp pcrel8a2 "pc-rel addr (8 bits)" (all-mep-core-isas (CDATA LABEL) RELAX) h-sint f-8s8a2 "mep_align" "address")
+(dprp pcrel12a2 "pc-rel addr (12 bits)" (all-mep-core-isas (CDATA LABEL) RELAX) h-sint f-12s4a2 "mep_align" "address")
+(dprp pcrel17a2 "pc-rel addr (17 bits)" (all-mep-core-isas (CDATA LABEL) RELAX) h-sint f-17s16a2 "mep_align" "address")
+(dprp pcrel24a2 "pc-rel addr (24 bits)" (all-mep-core-isas (CDATA LABEL)) h-sint f-24s5a2n "mep_align" "address")
+(dprp pcabs24a2 "pc-abs addr (24 bits)" (all-mep-core-isas (CDATA LABEL)) h-uint f-24u5a2n "mep_alignu" "address")
+
+(dpop sdisp16 "displacement (16 bits)" (all-mep-core-isas) h-sint f-16s16 "signed16")
+(dpop simm16 "signed imm (16 bits)" (all-mep-core-isas) h-sint f-16s16 "signed16")
+(dpop uimm16 "unsigned imm (16 bits)" (all-mep-core-isas) h-uint f-16u16 "unsigned16")
+(dnop code16 "uci/dsp code (16 bits)" (all-mep-core-isas) h-uint f-16u16)
+
+(dnop udisp2 "SSARB addend (2 bits)" (all-mep-core-isas) h-sint f-2u6)
+(dnop uimm2 "interrupt (2 bits)" (all-mep-core-isas) h-uint f-2u10)
+
+(dnop simm6 "add const (6 bits)" (all-mep-core-isas) h-sint f-6s8)
+(dnop simm8 "mov const (8 bits)" (all-mep-core-isas RELOC_IMPLIES_OVERFLOW)
+ h-sint f-8s8)
+
+(dpop addr24a4 "sw/lw addr (24 bits)" (all-mep-core-isas (ALIGN 4)) h-uint f-24u8a4n "mep_alignu")
+(dnop code24 "coprocessor code" (all-mep-core-isas) h-uint f-24u4n)
+
+(dnop callnum "system call number" (all-mep-core-isas) h-uint f-callnum)
+(dnop uimm3 "bit immediate (3 bits)" (all-mep-core-isas) h-uint f-3u5)
+(dnop uimm4 "bCC const (4 bits)" (all-mep-core-isas) h-uint f-4u8)
+(dnop uimm5 "bit/shift val (5 bits)" (all-mep-core-isas) h-uint f-5u8)
+
+(dpop udisp7 "tp-rel b (7 bits)" (all-mep-core-isas) h-uint f-7u9 "unsigned7")
+(dpop udisp7a2 "tp-rel h (7 bits)" (all-mep-core-isas (ALIGN 2)) h-uint f-7u9a2 "unsigned7")
+(dpop udisp7a4 "tp/sp-rel w (7 bits)" (all-mep-core-isas (ALIGN 4)) h-uint f-7u9a4 "unsigned7")
+(dpop uimm7a4 "sp w-addend (7 bits)" (all-mep-core-isas (ALIGN 4)) h-uint f-7u9a4 "mep_alignu")
+
+(dnop uimm24 "immediate (24 bits)" (all-mep-core-isas) h-uint f-24u8n)
+
+(dnop cimm4 "cache immed'te (4 bits)" (all-mep-core-isas) h-uint f-rn)
+(dnop cimm5 "clip immediate (5 bits)" (all-mep-core-isas) h-uint f-5u24)
+
+(dpop cdisp10 "copro addend (8/10 bits)" (all-mep-core-isas) h-sint f-cdisp10 "cdisp10")
+(dpop cdisp10a2 "copro addend (8/10 bits)" (all-mep-core-isas) h-sint f-cdisp10 "cdisp10")
+(dpop cdisp10a4 "copro addend (8/10 bits)" (all-mep-core-isas) h-sint f-cdisp10 "cdisp10")
+(dpop cdisp10a8 "copro addend (8/10 bits)" (all-mep-core-isas) h-sint f-cdisp10 "cdisp10")
+
+; Special operand representing the various ways that the literal zero can be
+; specified.
+(define-full-operand
+ zero "Zero operand" (all-mep-core-isas) h-sint DFLT f-nil
+ ((parse "zero")) () ()
+)
+
+; Attributes.
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_BIT_INSN)
+ (comment "optional bit manipulation instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_MUL_INSN)
+ (comment "optional 32-bit multiply instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_DIV_INSN)
+ (comment "optional 32-bit divide instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_DEBUG_INSN)
+ (comment "optional debug instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_LDZ_INSN)
+ (comment "optional leading zeroes instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_ABS_INSN)
+ (comment "optional absolute difference instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_AVE_INSN)
+ (comment "optional average instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_MINMAX_INSN)
+ (comment "optional min/max instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_CLIP_INSN)
+ (comment "optional clipping instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_SAT_INSN)
+ (comment "optional saturation instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_UCI_INSN)
+ (comment "optional UCI instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_DSP_INSN)
+ (comment "optional DSP instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_CP_INSN)
+ (comment "optional coprocessor-related instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_CP64_INSN)
+ (comment "optional coprocessor-related 64 data bit instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name OPTIONAL_VLIW64)
+ (comment "optional vliw64 mode (vliw32 is default)"))
+
+(define-attr
+ (for insn)
+ (type enum)
+ (name STALL)
+ (attrs META)
+ (values NONE SHIFTI INT2 LOAD STORE LDC STC LDCB STCB SSARB FSFT RET
+ ADVCK MUL MULR DIV)
+ (default NONE)
+ (comment "gcc stall attribute"))
+
+(define-attr
+ (for insn)
+ (type string)
+ (name INTRINSIC)
+ (attrs META)
+ (comment "gcc intrinsic name"))
+
+(define-attr
+ (for insn)
+ (type enum)
+ (name SLOT)
+ (attrs META)
+ (values NONE C3 V1 V3 P0S P0 P1)
+ (default NONE)
+ (comment "coprocessor slot type"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name MAY_TRAP)
+ (comment "instruction may generate an exception"))
+
+; Attributes for scheduling restrictions in vliw mode
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VLIW_ALONE)
+ (comment "instruction can be scheduled alone in vliw mode"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VLIW_NO_CORE_NOP)
+ (comment "there is no corresponding nop core instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VLIW_NO_COP_NOP)
+ (comment "there is no corresponding nop coprocessor instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VLIW64_NO_MATCHING_NOP)
+ (comment "there is no corresponding nop coprocessor instruction"))
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VLIW32_NO_MATCHING_NOP)
+ (comment "there is no corresponding nop coprocessor instruction"))
+
+(define-attr
+ (for insn)
+ (type boolean)
+ (name VOLATILE)
+ (comment "Insn is volatile."))
+
+(define-attr
+ (for insn)
+ (type integer)
+ (name LATENCY)
+ (comment "The latency of this insn, used for scheduling as an intrinsic in gcc")
+ (default 0))
+
+; The MeP config tool will edit this.
+(define-attr
+ (type enum)
+ (for insn)
+ (name CONFIG)
+ (values NONE ; config-attr-start
+ default
+ ) ; config-attr-end
+)
+
+
+; Enumerations.
+
+(define-normal-insn-enum major "major opcodes" (all-mep-core-isas) MAJ_
+ f-major
+ (.map .str (.iota 16))
+)
+
+
+(define-pmacro (dni-isa xname xcomment xattrs xsyntax xformat xsemantics xtiming isa)
+ (define-insn
+ (name xname)
+ (comment xcomment)
+ (.splice attrs (.unsplice xattrs) (ISA isa))
+ (syntax xsyntax)
+ (format xformat)
+ (semantics xsemantics)
+ (.splice timing (.unsplice xtiming))
+ )
+)
+
+(define-pmacro (dnmi-isa xname xcomment xattrs xsyntax xemit isa)
+ (dnmi xname xcomment (.splice (.unsplice xattrs) (ISA isa)) xsyntax xemit)
+)
+
+; For making profiling calls and dynamic configuration
+(define-pmacro (cg-profile caller callee)
+ (c-call "cg_profile" caller callee)
+)
+; For dynamic configuration only
+(define-pmacro (cg-profile-jump caller callee)
+ (c-call "cg_profile_jump" caller callee)
+)
+
+; For defining Core Instructions
+(define-pmacro (dnci xname xcomment xattrs xsyntax xformat xsemantics xtiming)
+ (dni-isa xname xcomment xattrs xsyntax xformat xsemantics xtiming all-core-isa-list)
+)
+(define-pmacro (dncmi xname xcomment xattrs xsyntax xemit)
+ (dnmi-isa xname xcomment xattrs xsyntax xemit all-core-isa-list)
+)
+
+; For defining Coprocessor Instructions
+;(define-pmacro (dncpi xname xcomment xattrs xsyntax xformat xsemantics xtiming) (dni-isa xname xcomment xattrs xsyntax xformat xsemantics xtiming cop)
+;)
+
+;; flag setting macro
+(define-pmacro (set-bit xop xbitnum xval)
+ (set xop (or
+ (and xop (inv (sll 1 xbitnum)))
+ (and (sll 1 xbitnum) (sll xval xbitnum)))))
+
+;; some flags we commonly use in vliw reasoning / mode-switching etc.
+(define-pmacro (get-opt.vliw64) (and (srl opt 6) 1))
+(define-pmacro (get-opt.vliw32) (and (srl opt 5) 1))
+(define-pmacro (get-rm.lsb) (and rm 1))
+(define-pmacro (get-psw.om) (and (srl psw 12) 1))
+(define-pmacro (get-psw.nmi) (and (srl psw 9) 1))
+(define-pmacro (get-psw.iep) (and (srl psw 1) 1))
+(define-pmacro (get-psw.ump) (and (srl psw 3) 1))
+(define-pmacro (get-epc.etom) (and epc 1))
+(define-pmacro (get-npc.ntom) (and npc 1))
+(define-pmacro (get-lp.ltom) (and lp 1))
+
+(define-pmacro (set-psw.om zval) (set-bit (raw-reg h-csr 16) 12 zval))
+(define-pmacro (set-psw.nmi zval) (set-bit (raw-reg h-csr 16) 9 zval))
+(define-pmacro (set-psw.umc zval) (set-bit (raw-reg h-csr 16) 2 zval))
+(define-pmacro (set-psw.iec zval) (set-bit (raw-reg h-csr 16) 0 zval))
+(define-pmacro (set-rpe.elr zval) (set-bit (raw-reg h-csr 5) 0 zval))
+
+
+;; the "3 way switch" depending on our current operating mode and vliw status flags
+(define-pmacro (core-vliw-switch core-rtl vliw32-rtl vliw64-rtl)
+ (cond
+ ((andif (get-psw.om) (get-opt.vliw64)) vliw64-rtl)
+ ((andif (get-psw.om) (get-opt.vliw32)) vliw32-rtl)
+ (else core-rtl)))
+
+;; the varying-pcrel idiom
+(define-pmacro (set-vliw-modified-pcrel-offset xtarg xa xb xc)
+ (core-vliw-switch (set xtarg (add pc xa))
+ (set xtarg (add pc xb))
+ (set xtarg (add pc xc))))
+
+;; the increasing-alignment idiom in branch displacements
+(define-pmacro (set-vliw-alignment-modified xtarg zaddr)
+ (core-vliw-switch (set xtarg (and zaddr (inv 1)))
+ (set xtarg (and zaddr (inv 3)))
+ (set xtarg (and zaddr (inv 7)))))
+
+;; the increasing-alignment idiom in option-only form
+(define-pmacro (set-vliw-aliignment-modified-by-option xtarg zaddr)
+ (if (get-opt.vliw32)
+ (set xtarg (and zaddr (inv 3)))
+ (set xtarg (and zaddr (inv 7)))))
+
+
+
+; pmacros needed for coprocessor modulo addressing.
+
+; Taken from supplement ``The operation of the modulo addressing'' in
+; Toshiba documentation rev 2.2, p. 34.
+
+(define-pmacro (compute-mask0)
+ (sequence SI ((SI temp))
+ (set temp (or mb0 me0))
+ (srl (const SI -1) (c-call SI "do_ldz" temp))))
+
+(define-pmacro (mod0 immed)
+ (sequence SI ((SI modulo-mask))
+ (set modulo-mask (compute-mask0))
+ (if SI (eq (and rma modulo-mask) me0)
+ (or (and rma (inv modulo-mask)) mb0)
+ (add rma (ext SI immed)))))
+
+(define-pmacro (compute-mask1)
+ (sequence SI ((SI temp))
+ (set temp (or mb1 me1))
+ (srl (const SI -1) (c-call SI "do_ldz" temp))))
+
+(define-pmacro (mod1 immed)
+ (sequence SI ((SI modulo-mask))
+ (set modulo-mask (compute-mask1))
+ (if SI (eq (and rma modulo-mask) me1)
+ (or (and rma (inv modulo-mask)) mb1)
+ (add rma (ext SI immed)))))
+
+
+; Instructions.
+
+; A pmacro for use in semantic bodies of unimplemented insns.
+(define-pmacro (unimp mnemonic) (nop))
+
+; Core specific instructions
+; (include "mep-h1.cpu") ; -- exposed by MeP-Integrator
+(include "mep-c5.cpu") ; -- exposed by MeP-Integrator
+
+; Load/store instructions.
+
+(dnci sb "store byte (register indirect)" ((STALL STORE))
+ "sb $rnc,($rma)"
+ (+ MAJ_0 rnc rma (f-sub4 8))
+ (sequence ()
+ (c-call VOID "check_write_to_text" rma)
+ (set (mem UQI rma) (and rnc #xff)))
+ ((mep (unit u-use-gpr (in usereg rnc))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sh "store half-word (register indirect)" ((STALL STORE))
+ "sh $rns,($rma)"
+ (+ MAJ_0 rns rma (f-sub4 9))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and rma (inv 1)))
+ (set (mem UHI (and rma (inv 1))) (and rns #xffff)))
+ ((mep (unit u-use-gpr (in usereg rns))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sw "store word (register indirect)" ((STALL STORE))
+ "sw $rnl,($rma)"
+ (+ MAJ_0 rnl rma (f-sub4 10))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and rma (inv 3)))
+ (set (mem USI (and rma (inv 3))) rnl))
+ ((mep (unit u-use-gpr (in usereg rnl))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lb "load byte (register indirect)" ((STALL LOAD) (LATENCY 2))
+ "lb $rnc,($rma)"
+ (+ MAJ_0 rnc rma (f-sub4 12))
+ (set rnc (ext SI (mem QI rma)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnc)))))
+
+(dnci lh "load half-word (register indirect)" ((STALL LOAD) (LATENCY 2))
+ "lh $rns,($rma)"
+ (+ MAJ_0 rns rma (f-sub4 13))
+ (set rns (ext SI (mem HI (and rma (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rns)))))
+
+(dnci lw "load word (register indirect)" ((STALL LOAD) (LATENCY 2))
+ "lw $rnl,($rma)"
+ (+ MAJ_0 rnl rma (f-sub4 14))
+ (set rnl (mem SI (and rma (inv 3))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnl)))))
+
+(dnci lbu "load unsigned byte (register indirect)" ((STALL LOAD) (LATENCY 2))
+ "lbu $rnuc,($rma)"
+ (+ MAJ_0 rnuc rma (f-sub4 11))
+ (set rnuc (zext SI (mem UQI rma)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnuc)))))
+
+(dnci lhu "load unsigned half-word (register indirect)" ((STALL LOAD) (LATENCY 2))
+ "lhu $rnus,($rma)"
+ (+ MAJ_0 rnus rma (f-sub4 15))
+ (set rnus (zext SI (mem UHI (and rma (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnus)))))
+
+(dnci sw-sp "store word (sp relative)" ((STALL STORE))
+ "sw $rnl,$udisp7a4($spr)"
+ (+ MAJ_4 rnl (f-8 0) udisp7a4 (f-sub2 2))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and (add udisp7a4 sp) (inv 3)))
+ (set (mem SI (and (add udisp7a4 sp) (inv 3))) rnl))
+ ((mep (unit u-use-gpr (in usereg rnl))
+ (unit u-use-gpr (in usereg sp))
+ (unit u-exec))))
+
+
+(dnci lw-sp "load word (sp relative)" ((STALL LOAD) (LATENCY 2))
+ "lw $rnl,$udisp7a4($spr)"
+ (+ MAJ_4 rnl (f-8 0) udisp7a4 (f-sub2 3))
+ (set rnl (mem SI (and (add udisp7a4 sp) (inv 3))))
+ ((mep (unit u-use-gpr (in usereg sp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnl)))))
+
+(dnci sb-tp "store byte (tp relative)" ((STALL STORE))
+ "sb $rn3c,$udisp7($tpr)"
+ (+ MAJ_8 (f-4 0) rn3c (f-8 0) udisp7)
+ (sequence ()
+ (c-call VOID "check_write_to_text" (add (zext SI udisp7) tp))
+ (set (mem QI (add (zext SI udisp7) tp)) (and rn3c #xff)))
+ ((mep (unit u-use-gpr (in usereg rn3c))
+ (unit u-use-gpr (in usereg tp))
+ (unit u-exec))))
+
+(dnci sh-tp "store half-word (tp relative)" ((STALL STORE))
+ "sh $rn3s,$udisp7a2($tpr)"
+ (+ MAJ_8 (f-4 0) rn3s (f-8 1) udisp7a2 (f-15 0))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and (add (zext SI udisp7a2) tp) (inv 1)))
+ (set (mem HI (and (add (zext SI udisp7a2) tp) (inv 1))) (and rn3s #xffff)))
+ ((mep (unit u-use-gpr (in usereg rn3s))
+ (unit u-use-gpr (in usereg tp))
+ (unit u-exec))))
+
+(dnci sw-tp "store word (tp relative)" ((STALL STORE))
+ "sw $rn3l,$udisp7a4($tpr)"
+ (+ MAJ_4 (f-4 0) rn3l (f-8 1) udisp7a4 (f-sub2 2))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and (add (zext SI udisp7a4) tp) (inv 3)))
+ (set (mem SI (and (add (zext SI udisp7a4) tp) (inv 3))) rn3l))
+ ((mep (unit u-use-gpr (in usereg rn3l))
+ (unit u-use-gpr (in usereg tp))
+ (unit u-exec))))
+
+(dnci lb-tp "load byte (tp relative)" ((STALL LOAD) (LATENCY 2))
+ "lb $rn3c,$udisp7($tpr)"
+ (+ MAJ_8 (f-4 1) rn3c (f-8 0) udisp7)
+ (set rn3c (ext SI (mem QI (add (zext SI udisp7) tp))))
+ ((mep (unit u-use-gpr (in usereg tp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn3c)))))
+
+(dnci lh-tp "load half-word (tp relative)" ((STALL LOAD) (LATENCY 2))
+ "lh $rn3s,$udisp7a2($tpr)"
+ (+ MAJ_8 (f-4 1) rn3s (f-8 1) udisp7a2 (f-15 0))
+ (set rn3s (ext SI (mem HI (and (add (zext SI udisp7a2) tp) (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg tp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn3s)))))
+
+(dnci lw-tp "load word (tp relative)" ((STALL LOAD) (LATENCY 2))
+ "lw $rn3l,$udisp7a4($tpr)"
+ (+ MAJ_4 (f-4 0) rn3l (f-8 1) udisp7a4 (f-sub2 3))
+ (set rn3l (mem SI (and (add (zext SI udisp7a4) tp) (inv 3))))
+ ((mep (unit u-use-gpr (in usereg tp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn3l)))))
+
+(dnci lbu-tp "load unsigned byte (tp relative)" ((STALL LOAD) (LATENCY 2))
+ "lbu $rn3uc,$udisp7($tpr)"
+ (+ MAJ_4 (f-4 1) rn3uc (f-8 1) udisp7)
+ (set rn3uc (zext SI (mem QI (add (zext SI udisp7) tp))))
+ ((mep (unit u-use-gpr (in usereg tp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn3uc)))))
+
+(dnci lhu-tp "load unsigned half-word (tp relative)" ((STALL LOAD) (LATENCY 2))
+ "lhu $rn3us,$udisp7a2($tpr)"
+ (+ MAJ_8 (f-4 1) rn3us (f-8 1) udisp7a2 (f-15 1))
+ (set rn3us (zext SI (mem HI (and (add (zext SI udisp7a2) tp) (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg tp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn3us)))))
+
+(dnci sb16 "store byte (16 bit displacement)" ((STALL STORE))
+ "sb $rnc,$sdisp16($rma)"
+ (+ MAJ_12 rnc rma (f-sub4 8) sdisp16)
+ (sequence ()
+ (c-call VOID "check_write_to_text" (add rma (ext SI sdisp16)))
+ (set (mem QI (add rma (ext SI sdisp16))) (and rnc #xff)))
+ ((mep (unit u-use-gpr (in usereg rnc))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sh16 "store half-word (16 bit displacement)" ((STALL STORE))
+ "sh $rns,$sdisp16($rma)"
+ (+ MAJ_12 rns rma (f-sub4 9) sdisp16)
+ (sequence ()
+ (c-call VOID "check_write_to_text" (and (add rma (ext SI sdisp16)) (inv 1)))
+ (set (mem HI (and (add rma (ext SI sdisp16)) (inv 1))) (and rns #xffff)))
+ ((mep (unit u-use-gpr (in usereg rns))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sw16 "store word (16 bit displacement)" ((STALL STORE))
+ "sw $rnl,$sdisp16($rma)"
+ (+ MAJ_12 rnl rma (f-sub4 10) sdisp16)
+ (sequence ()
+ (c-call "check_write_to_text" (and (add rma (ext SI sdisp16)) (inv 3)))
+ (set (mem SI (and (add rma (ext SI sdisp16)) (inv 3))) rnl))
+ ((mep (unit u-use-gpr (in usereg rnl))
+ (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lb16 "load byte (16 bit displacement)" ((STALL LOAD) (LATENCY 2))
+ "lb $rnc,$sdisp16($rma)"
+ (+ MAJ_12 rnc rma (f-sub4 12) sdisp16)
+ (set rnc (ext SI (mem QI (add rma (ext SI sdisp16)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnc)))))
+
+(dnci lh16 "load half-word (16 bit displacement)" ((STALL LOAD) (LATENCY 2))
+ "lh $rns,$sdisp16($rma)"
+ (+ MAJ_12 rns rma (f-sub4 13) sdisp16)
+ (set rns (ext SI (mem HI (and (add rma (ext SI sdisp16)) (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rns)))))
+
+(dnci lw16 "load word (16 bit displacement)" ((STALL LOAD) (LATENCY 2))
+ "lw $rnl,$sdisp16($rma)"
+ (+ MAJ_12 rnl rma (f-sub4 14) sdisp16)
+ (set rnl (mem SI (and (add rma (ext SI sdisp16)) (inv 3))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnl)))))
+
+(dnci lbu16 "load unsigned byte (16 bit displacement)" ((STALL LOAD) (LATENCY 2))
+ "lbu $rnuc,$sdisp16($rma)"
+ (+ MAJ_12 rnuc rma (f-sub4 11) sdisp16)
+ (set rnuc (zext SI (mem QI (add rma (ext SI sdisp16)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnuc)))))
+
+(dnci lhu16 "load unsigned half-word (16 bit displacement)" ((STALL LOAD) (LATENCY 2))
+ "lhu $rnus,$sdisp16($rma)"
+ (+ MAJ_12 rnus rma (f-sub4 15) sdisp16)
+ (set rnus (zext SI (mem HI (and (add rma (ext SI sdisp16)) (inv 1)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rnus)))))
+
+(dnci sw24 "store word (24 bit absolute addressing)" ((STALL STORE))
+ "sw $rnl,($addr24a4)"
+ (+ MAJ_14 rnl addr24a4 (f-sub2 2))
+ (sequence ()
+ (c-call VOID "check_write_to_text" (zext SI addr24a4))
+ (set (mem SI (zext SI addr24a4)) rnl))
+ ((mep (unit u-use-gpr (in usereg rnl))
+ (unit u-exec))))
+
+(dnci lw24 "load word (24 bit absolute addressing)" ((STALL LOAD) (LATENCY 2))
+ "lw $rnl,($addr24a4)"
+ (+ MAJ_14 rnl addr24a4 (f-sub2 3))
+ (set rnl (mem SI (zext SI addr24a4)))
+ ((mep (unit u-exec)
+ (unit u-load-gpr (out loadreg rnl)))))
+
+
+; Extension instructions.
+
+(dnci extb "sign extend byte" ()
+ "extb $rn"
+ (+ MAJ_1 rn (f-rm 0) (f-sub4 13))
+ (set rn (ext SI (and QI rn #xff)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci exth "sign extend half-word" ()
+ "exth $rn"
+ (+ MAJ_1 rn (f-rm 2) (f-sub4 13))
+ (set rn (ext SI (and HI rn #xffff)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci extub "zero extend byte" ()
+ "extub $rn"
+ (+ MAJ_1 rn (f-rm 8) (f-sub4 13))
+ (set rn (zext SI (and rn #xff)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci extuh "zero extend half-word" ()
+ "extuh $rn"
+ (+ MAJ_1 rn (f-rm 10) (f-sub4 13))
+ (set rn (zext SI (and rn #xffff)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; Shift amount manipulation instructions.
+
+(dnci ssarb "set sar to bytes" ((STALL SSARB) VOLATILE)
+ "ssarb $udisp2($rm)"
+ (+ MAJ_1 (f-4 0) (f-5 0) udisp2 rm (f-sub4 12))
+ (if (c-call BI "big_endian_p")
+ (set sar (zext SI (mul (and (add udisp2 rm) 3) 8)))
+ (set sar (sub 32 (zext SI (mul (and (add udisp2 rm) 3) 8)))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+
+; Move instructions.
+
+(dnci mov "move" ()
+ "mov $rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 0))
+ (set rn rm)
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci movi8 "move 8-bit immediate" ()
+ "mov $rn,$simm8"
+ (+ MAJ_5 rn simm8)
+ (set rn (ext SI simm8))
+ ())
+
+(dnci movi16 "move 16-bit immediate" ()
+ "mov $rn,$simm16"
+ (+ MAJ_12 rn (f-rm 0) (f-sub4 1) simm16)
+ (set rn (ext SI simm16))
+ ())
+
+(dnci movu24 "move 24-bit unsigned immediate" ()
+ "movu $rn3,$uimm24"
+ (+ MAJ_13 (f-4 0) rn3 uimm24)
+ (set rn3 (zext SI uimm24))
+ ())
+
+(dnci movu16 "move 16-bit unsigned immediate" ()
+ "movu $rn,$uimm16"
+ (+ MAJ_12 rn (f-rm 1) (f-sub4 1) uimm16)
+ (set rn (zext SI uimm16))
+ ())
+
+(dnci movh "move high 16-bit immediate" ()
+ "movh $rn,$uimm16"
+ (+ MAJ_12 rn (f-rm 2) (f-sub4 1) uimm16)
+ (set rn (sll uimm16 16))
+ ())
+
+
+; Arithmetic instructions.
+
+(dnci add3 "add three registers" ()
+ "add3 $rl,$rn,$rm"
+ (+ MAJ_9 rn rm rl)
+ (set rl (add rn rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci add "add" ()
+ "add $rn,$simm6"
+ (+ MAJ_6 rn simm6 (f-sub2 0))
+ (set rn (add rn (ext SI simm6)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci add3i "add two registers and immediate" ()
+ "add3 $rn,$spr,$uimm7a4"
+ (+ MAJ_4 rn (f-8 0) uimm7a4 (f-sub2 0))
+ (set rn (add sp (zext SI uimm7a4)))
+ ((mep (unit u-use-gpr (in usereg sp))
+ (unit u-exec))))
+
+(dnci advck3 "add overflow check" ((STALL ADVCK))
+ "advck3 \\$0,$rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 7))
+ (if (add-oflag rn rm 0)
+ (set r0 1)
+ (set r0 0))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci sub "subtract" ()
+ "sub $rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 4))
+ (set rn (sub rn rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm)))))
+
+(dnci sbvck3 "subtraction overflow check" ((STALL ADVCK))
+ "sbvck3 \\$0,$rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 5))
+ (if (sub-oflag rn rm 0)
+ (set r0 1)
+ (set r0 0))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci neg "negate" ()
+ "neg $rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 1))
+ (set rn (neg rm))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci slt3 "set if less than" ()
+ "slt3 \\$0,$rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 2))
+ (if (lt rn rm)
+ (set r0 1)
+ (set r0 0))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci sltu3 "set less than unsigned" ()
+ "sltu3 \\$0,$rn,$rm"
+ (+ MAJ_0 rn rm (f-sub4 3))
+ (if (ltu rn rm)
+ (set r0 1)
+ (set r0 0))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci slt3i "set if less than immediate" ()
+ "slt3 \\$0,$rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 1))
+ (if (lt rn (zext SI uimm5))
+ (set r0 1)
+ (set r0 0))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci sltu3i "set if less than unsigned immediate" ()
+ "sltu3 \\$0,$rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 5))
+ (if (ltu rn (zext SI uimm5))
+ (set r0 1)
+ (set r0 0))
+ ())
+
+(dnci sl1ad3 "shift left one and add" ((STALL INT2))
+ "sl1ad3 \\$0,$rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 6))
+ (set r0 (add (sll rn 1) rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci sl2ad3 "shift left two and add" ((STALL INT2))
+ "sl2ad3 \\$0,$rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 7))
+ (set r0 (add (sll rn 2) rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci add3x "three operand add (extended)" ()
+ "add3 $rn,$rm,$simm16"
+ (+ MAJ_12 rn rm (f-sub4 0) simm16)
+ (set rn (add rm (ext SI simm16)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci slt3x "set if less than (extended)" ()
+ "slt3 $rn,$rm,$simm16"
+ (+ MAJ_12 rn rm (f-sub4 2) simm16)
+ (if (lt rm (ext SI simm16))
+ (set rn 1)
+ (set rn 0))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci sltu3x "set if less than unsigned (extended)" ()
+ "sltu3 $rn,$rm,$uimm16"
+ (+ MAJ_12 rn rm (f-sub4 3) uimm16)
+ (if (ltu rm (zext SI uimm16))
+ (set rn 1)
+ (set rn 0))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+
+; Logical instructions.
+
+(dnci or "bitwise or" ()
+ "or $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 0))
+ (set rn (or rn rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci and "bitwise and" ()
+ "and $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 1))
+ (set rn (and rn rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci xor "bitwise exclusive or" ()
+ "xor $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 2))
+ (set rn (xor rn rm))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci nor "bitwise negated or" ()
+ "nor $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 3))
+ (set rn (inv (or rn rm)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci or3 "or three operand" ()
+ "or3 $rn,$rm,$uimm16"
+ (+ MAJ_12 rn rm (f-sub4 4) uimm16)
+ (set rn (or rm (zext SI uimm16)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci and3 "and three operand" ()
+ "and3 $rn,$rm,$uimm16"
+ (+ MAJ_12 rn rm (f-sub4 5) uimm16)
+ (set rn (and rm (zext SI uimm16)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci xor3 "exclusive or three operand" ()
+ "xor3 $rn,$rm,$uimm16"
+ (+ MAJ_12 rn rm (f-sub4 6) uimm16)
+ (set rn (xor rm (zext SI uimm16)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+
+; Shift instructions.
+
+(dnci sra "shift right arithmetic" ((STALL INT2))
+ "sra $rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 13))
+ (set rn (sra rn (and rm #x1f)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci srl "shift right logical" ((STALL INT2))
+ "srl $rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 12))
+ (set rn (srl rn (and rm #x1f)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci sll "shift left logical" ((STALL INT2))
+ "sll $rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 14))
+ (set rn (sll rn (and rm #x1f)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+(dnci srai "shift right arithmetic (immediate)" ((STALL SHIFTI))
+ "sra $rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 3))
+ (set rn (sra rn uimm5))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci srli "shift right logical (immediate)" ((STALL SHIFTI))
+ "srl $rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 2))
+ (set rn (srl rn uimm5))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci slli "shift left logical (immediate)" ((STALL SHIFTI))
+ "sll $rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 6))
+ (set rn (sll rn uimm5))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci sll3 "three-register shift left logical" ((STALL INT2))
+ "sll3 \\$0,$rn,$uimm5"
+ (+ MAJ_6 rn uimm5 (f-sub3 7))
+ (set r0 (sll rn uimm5))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci fsft "field shift" ((STALL FSFT) VOLATILE)
+ "fsft $rn,$rm"
+ (+ MAJ_2 rn rm (f-sub4 15))
+ (sequence ((DI temp) (QI shamt))
+ (set shamt (and sar #x3f))
+ (set temp (sll (or (sll (zext DI rn) 32) (zext DI rm)) shamt))
+ (set rn (subword SI (srl temp 32) 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+
+; Branch/jump instructions.
+
+(dnci bra "branch" (RELAXABLE)
+ "bra $pcrel12a2"
+ (+ MAJ_11 pcrel12a2 (f-15 0))
+ (set-vliw-alignment-modified pc pcrel12a2)
+ ((mep (unit u-branch)
+ (unit u-exec))))
+
+(dnci beqz "branch if equal zero" (RELAXABLE)
+ "beqz $rn,$pcrel8a2"
+ (+ MAJ_10 rn pcrel8a2 (f-15 0))
+ (if (eq rn 0)
+ (set-vliw-alignment-modified pc pcrel8a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bnez "branch if not equal zero" (RELAXABLE)
+ "bnez $rn,$pcrel8a2"
+ (+ MAJ_10 rn pcrel8a2 (f-15 1))
+ (if (ne rn 0)
+ (set-vliw-alignment-modified pc pcrel8a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci beqi "branch equal immediate" (RELAXABLE)
+ "beqi $rn,$uimm4,$pcrel17a2"
+ (+ MAJ_14 rn uimm4 (f-sub4 0) pcrel17a2)
+ (if (eq rn (zext SI uimm4))
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bnei "branch not equal immediate" (RELAXABLE)
+ "bnei $rn,$uimm4,$pcrel17a2"
+ (+ MAJ_14 rn uimm4 (f-sub4 4) pcrel17a2)
+ (if (ne rn (zext SI uimm4))
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci blti "branch less than immediate" (RELAXABLE)
+ "blti $rn,$uimm4,$pcrel17a2"
+ (+ MAJ_14 rn uimm4 (f-sub4 12) pcrel17a2)
+ (if (lt rn (zext SI uimm4))
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bgei "branch greater than immediate" (RELAXABLE)
+ "bgei $rn,$uimm4,$pcrel17a2"
+ (+ MAJ_14 rn uimm4 (f-sub4 8) pcrel17a2)
+ (if (ge rn (zext SI uimm4))
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci beq "branch equal" ()
+ "beq $rn,$rm,$pcrel17a2"
+ (+ MAJ_14 rn rm (f-sub4 1) pcrel17a2)
+ (if (eq rn rm)
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bne "branch not equal" ()
+ "bne $rn,$rm,$pcrel17a2"
+ (+ MAJ_14 rn rm (f-sub4 5) pcrel17a2)
+ (if (ne rn rm)
+ (set-vliw-alignment-modified pc pcrel17a2))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bsr12 "branch to subroutine (12 bit displacement)" (RELAXABLE)
+ "bsr $pcrel12a2"
+ (+ MAJ_11 pcrel12a2 (f-15 1))
+ (sequence ()
+ (cg-profile pc pcrel12a2)
+ (set-vliw-modified-pcrel-offset lp 2 4 8)
+ (set-vliw-alignment-modified pc pcrel12a2))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci bsr24 "branch to subroutine (24 bit displacement)" ()
+ "bsr $pcrel24a2"
+ (+ MAJ_13 (f-4 1) (f-sub4 9) pcrel24a2)
+ (sequence ()
+ (cg-profile pc pcrel24a2)
+ (set-vliw-modified-pcrel-offset lp 4 4 8)
+ (set-vliw-alignment-modified pc pcrel24a2))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci jmp "jump" ()
+ "jmp $rm"
+ (+ MAJ_1 (f-rn 0) rm (f-sub4 14))
+ (sequence ()
+ (if (eq (get-psw.om) 0)
+ ;; core mode
+ (if (get-rm.lsb)
+ (sequence ()
+ (set-psw.om 1) ;; enter VLIW mode
+ (set-vliw-aliignment-modified-by-option pc rm))
+ (set pc (and rm (inv 1))))
+ ;; VLIW mode
+ (if (get-rm.lsb)
+ (sequence ()
+ (set-psw.om 0) ;; enter core mode
+ (set pc (and rm (inv 1))))
+ (set-vliw-aliignment-modified-by-option pc rm)))
+ (cg-profile-jump pc rm))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci jmp24 "jump (24 bit target)" ()
+ "jmp $pcabs24a2"
+ (+ MAJ_13 (f-4 1) (f-sub4 8) pcabs24a2)
+ (sequence ()
+ (set-vliw-alignment-modified pc (or (and pc #xf0000000) pcabs24a2))
+ (cg-profile-jump pc pcabs24a2))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci jsr "jump to subroutine" ()
+ "jsr $rm"
+ (+ MAJ_1 (f-rn 0) rm (f-sub4 15))
+ (sequence ()
+ (cg-profile pc rm)
+ (set-vliw-modified-pcrel-offset lp 2 4 8)
+ (set-vliw-alignment-modified pc rm))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci ret "return from subroutine" ((STALL RET))
+ "ret"
+ (+ MAJ_7 (f-rn 0) (f-rm 0) (f-sub4 2))
+ (sequence ()
+ (if (eq (get-psw.om) 0)
+ ;; core mode
+ (if (get-lp.ltom) ;; link-pointer "toggle mode" bit
+ (sequence ()
+ (set-psw.om 1) ;; enter VLIW mode
+ (set-vliw-aliignment-modified-by-option pc lp))
+ (set pc (and lp (inv 1))))
+ ;; VLIW mode
+ (if (get-lp.ltom) ;; link-pointer "toggle mode" bit
+ (sequence ()
+ (set-psw.om 0) ;; enter VLIW mode
+ (set pc (and lp (inv 1))))
+ (set-vliw-aliignment-modified-by-option pc lp)))
+ (c-call VOID "notify_ret" pc))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+
+; Repeat instructions.
+
+(dnci repeat "repeat specified repeat block" ()
+ "repeat $rn,$pcrel17a2"
+ (+ MAJ_14 rn (f-rm 0) (f-sub4 9) pcrel17a2)
+ (sequence ()
+ (set-vliw-modified-pcrel-offset (reg h-csr 4) 4 4 8)
+ (set-vliw-alignment-modified (reg h-csr 5) pcrel17a2)
+ (set (reg h-csr 6) rn))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci erepeat "endless repeat" ()
+ "erepeat $pcrel17a2"
+ (+ MAJ_14 (f-rn 0) (f-rm 1) (f-sub4 9) pcrel17a2)
+ (sequence ()
+ (set-vliw-modified-pcrel-offset (reg h-csr 4) 4 4 8)
+ (set-vliw-alignment-modified (reg h-csr 5) pcrel17a2)
+ (set-rpe.elr 1)
+ ; rpc may be undefined for erepeat
+ ; use 1 to trigger repeat logic in the sim's main loop
+ (set (reg h-csr 6) 1))
+ ())
+
+
+; Control instructions.
+
+;; special store variants
+
+(dnci stc_lp "store to control register lp" ((STALL STC))
+ "stc $rn,\\$lp"
+ (+ MAJ_7 rn (f-csrn-lo 1) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 0))
+ (set lp rn)
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-store-ctrl-reg (out storereg lp))
+ (unit u-exec))))
+
+(dnci stc_hi "store to control register hi" ((STALL STC))
+ "stc $rn,\\$hi"
+ (+ MAJ_7 rn (f-csrn-lo 7) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 0))
+ (set hi rn)
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-store-ctrl-reg (out storereg hi))
+ (unit u-exec))))
+
+(dnci stc_lo "store to control register lo" ((STALL STC))
+ "stc $rn,\\$lo"
+ (+ MAJ_7 rn (f-csrn-lo 8) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 0))
+ (set lo rn)
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-store-ctrl-reg (out storereg lo))
+ (unit u-exec))))
+
+;; general store
+
+(dnci stc "store to control register" (VOLATILE (STALL STC))
+ "stc $rn,$csrn"
+ (+ MAJ_7 rn csrn (f-12 1) (f-13 0) (f-14 0))
+ (set csrn rn)
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-store-ctrl-reg (out storereg csrn))
+ (unit u-exec))))
+
+;; special load variants
+
+(dnci ldc_lp "load from control register lp" ((STALL LDC))
+ "ldc $rn,\\$lp"
+ (+ MAJ_7 rn (f-csrn-lo 1) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 1))
+ (set rn lp)
+ ((mep (unit u-use-ctrl-reg (in usereg lp))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn)))))
+
+
+(dnci ldc_hi "load from control register hi" ((STALL LDC))
+ "ldc $rn,\\$hi"
+ (+ MAJ_7 rn (f-csrn-lo 7) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 1))
+ (set rn hi)
+ ((mep (unit u-use-ctrl-reg (in usereg hi))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn)))))
+
+(dnci ldc_lo "load from control register lo" ((STALL LDC))
+ "ldc $rn,\\$lo"
+ (+ MAJ_7 rn (f-csrn-lo 8) (f-csrn-hi 0) (f-12 1) (f-13 0) (f-14 1))
+ (set rn lo)
+ ((mep (unit u-use-ctrl-reg (in usereg lo))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn)))))
+
+;; general load
+
+(dnci ldc "load from control register" (VOLATILE (STALL LDC) (LATENCY 2))
+ "ldc $rn,$csrn"
+ (+ MAJ_7 rn csrn (f-12 1) (f-13 0) (f-14 1))
+ (if (eq (ifield f-csrn) 0)
+ ;; loading from the pc
+ (set-vliw-modified-pcrel-offset rn 2 4 8)
+ ;; loading from something else
+ (set rn csrn))
+ ((mep (unit u-use-ctrl-reg (in usereg csrn))
+ (unit u-exec)
+ (unit u-load-gpr (out loadreg rn)))))
+
+(dnci di "disable interrupt" (VOLATILE)
+ "di"
+ (+ MAJ_7 (f-rn 0) (f-rm 0) (f-sub4 0))
+ ; clear psw.iec
+ (set psw (sll (srl psw 1) 1))
+ ())
+
+(dnci ei "enable interrupt" (VOLATILE)
+ "ei"
+ (+ MAJ_7 (f-rn 0) (f-rm 1) (f-sub4 0))
+ ; set psw.iec
+ (set psw (or psw 1))
+ ())
+
+(dnci reti "return from interrupt" ((STALL RET))
+ "reti"
+ (+ MAJ_7 (f-rn 0) (f-rm 1) (f-sub4 2))
+ (if (eq (get-psw.om) 0)
+ ;; core operation mode
+ (if (get-psw.nmi)
+ ;; return from NMI
+ (if (get-npc.ntom)
+ ;; return in VLIW operation mode
+ (sequence ()
+ (set-psw.om 1)
+ (set-vliw-aliignment-modified-by-option pc npc)
+ (set-psw.nmi 0))
+ ;; return in core mode
+ (sequence ()
+ (set pc (and npc (inv 1)))
+ (set-psw.nmi 0)))
+ ;; return from non-NMI
+ (if (get-epc.etom)
+ ;; return in VLIW mode
+ (sequence ()
+ (set-psw.om 1)
+ (set-vliw-aliignment-modified-by-option pc epc)
+ (set-psw.umc (get-psw.ump))
+ (set-psw.iec (get-psw.iep)))
+ ;; return in core mode
+ (sequence ()
+ (set pc (and epc (inv 1)))
+ (set-psw.umc (get-psw.ump))
+ (set-psw.iec (get-psw.iep)))))
+ ;; VLIW operation mode
+ ;; xxx undefined
+ (nop))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci halt "halt pipeline" (VOLATILE)
+ "halt"
+ (+ MAJ_7 (f-rn 0) (f-rm 2) (f-sub4 2))
+ ; set psw.halt
+ (set (raw-reg h-csr 16) (or psw (sll 1 11)))
+ ())
+
+(dnci sleep "sleep pipeline" (VOLATILE)
+ "sleep"
+ (+ MAJ_7 (f-rn 0) (f-rm 6) (f-sub4 2))
+ (c-call VOID "do_sleep")
+ ())
+
+(dnci swi "software interrupt" (MAY_TRAP VOLATILE)
+ "swi $uimm2"
+ (+ MAJ_7 (f-rn 0) (f-8 0) (f-9 0) uimm2 (f-sub4 6))
+ (cond
+ ((eq uimm2 0) (set exc (or exc (sll 1 4))))
+ ((eq uimm2 1) (set exc (or exc (sll 1 5))))
+ ((eq uimm2 2) (set exc (or exc (sll 1 6))))
+ ((eq uimm2 3) (set exc (or exc (sll 1 7)))))
+ ())
+
+(dnci break "break exception" (MAY_TRAP VOLATILE)
+ "break"
+ (+ MAJ_7 (f-rn 0) (f-rm 3) (f-sub4 2))
+ (set pc (c-call USI "break_exception" pc))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci syncm "synchronise with memory" (VOLATILE)
+ "syncm"
+ (+ MAJ_7 (f-rn 0) (f-rm 1) (f-sub4 1))
+ (unimp "syncm")
+ ())
+
+(dnci stcb "store in control bus space" (VOLATILE (STALL STCB))
+ "stcb $rn,$uimm16"
+ (+ MAJ_15 rn (f-rm 0) (f-sub4 4) uimm16)
+ (c-call VOID "do_stcb" rn uimm16)
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec)
+ (unit u-stcb))))
+
+(dnci ldcb "load from control bus space" (VOLATILE (STALL LDCB) (LATENCY 3))
+ "ldcb $rn,$uimm16"
+ (+ MAJ_15 rn (f-rm 1) (f-sub4 4) uimm16)
+ (set rn (c-call SI "do_ldcb" uimm16))
+ ((mep (unit u-ldcb)
+ (unit u-exec)
+ (unit u-ldcb-gpr (out loadreg rn)))))
+
+
+; Bit manipulation instructions.
+; The following instructions become the reserved instruction when the
+; bit manipulation option is off.
+
+(dnci bsetm "set bit in memory" (OPTIONAL_BIT_INSN)
+ "bsetm ($rma),$uimm3"
+ (+ MAJ_2 (f-4 0) uimm3 rma (f-sub4 0))
+ (sequence ()
+ (c-call "check_option_bit" pc)
+ (set (mem UQI rma) (or (mem UQI rma) (sll 1 uimm3))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci bclrm "clear bit in memory" (OPTIONAL_BIT_INSN)
+ "bclrm ($rma),$uimm3"
+ (+ MAJ_2 (f-4 0) uimm3 rma (f-sub4 1))
+ (sequence ()
+ (c-call "check_option_bit" pc)
+ (set (mem UQI rma) (and (mem UQI rma) (inv (sll 1 uimm3)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci bnotm "toggle bit in memory" (OPTIONAL_BIT_INSN)
+ "bnotm ($rma),$uimm3"
+ (+ MAJ_2 (f-4 0) uimm3 rma (f-sub4 2))
+ (sequence ()
+ (c-call "check_option_bit" pc)
+ (set (mem UQI rma) (xor (mem UQI rma) (sll 1 uimm3))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci btstm "test bit in memory" (OPTIONAL_BIT_INSN)
+ "btstm \\$0,($rma),$uimm3"
+ (+ MAJ_2 (f-4 0) uimm3 rma (f-sub4 3))
+ (sequence ()
+ (c-call "check_option_bit" pc)
+ (set r0 (zext SI (and UQI (mem UQI rma) (sll 1 uimm3)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci tas "test and set" (OPTIONAL_BIT_INSN)
+ "tas $rn,($rma)"
+ (+ MAJ_2 rn rma (f-sub4 4))
+ (sequence ((SI result))
+ (c-call "check_option_bit" pc)
+ (set result (zext SI (mem UQI rma)))
+ (set (mem UQI rma) 1)
+ (set rn result))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+
+; Data cache instruction.
+
+(dnci cache "cache operations" (VOLATILE)
+ "cache $cimm4,($rma)"
+ (+ MAJ_7 cimm4 rma (f-sub4 4))
+ (c-call VOID "do_cache" cimm4 rma pc)
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+
+; Multiply instructions.
+; These instructions become the RI when the 32-bit multiply
+; instruction option is off.
+
+(dnci mul "multiply" (OPTIONAL_MUL_INSN (STALL MUL))
+ "mul $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 4))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (mul (ext DI rn) (ext DI rm)))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply))))
+
+(dnci mulu "multiply unsigned" (OPTIONAL_MUL_INSN (STALL MUL))
+ "mulu $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 5))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (mul (zext UDI rn) (zext UDI rm)))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply))))
+
+(dnci mulr "multiply, lo -> reg" (OPTIONAL_MUL_INSN (STALL MULR) (LATENCY 3))
+ "mulr $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 6))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (mul (ext DI rn) (ext DI rm)))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1))
+ (set rn (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply)
+ (unit u-mul-gpr (out resultreg rn)))))
+
+(dnci mulru "multiply unsigned, lo -> reg" (OPTIONAL_MUL_INSN (STALL MULR) (LATENCY 3))
+ "mulru $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 7))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (mul (zext UDI rn) (zext UDI rm)))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1))
+ (set rn (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply)
+ (unit u-mul-gpr (out resultreg rn)))))
+
+(dnci madd "multiply accumulate" (OPTIONAL_MUL_INSN (STALL MUL))
+ "madd $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 #x3004))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (or (sll (zext DI hi) 32) (zext DI lo)))
+ (set result (add result (mul (ext DI rn) (ext DI rm))))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply))))
+
+(dnci maddu "multiply accumulate unsigned" (OPTIONAL_MUL_INSN (STALL MUL))
+ "maddu $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 #x3005))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (or (sll (zext DI hi) 32) (zext DI lo)))
+ (set result (add result (mul (zext UDI rn) (zext UDI rm))))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply))))
+
+
+(dnci maddr "multiply accumulate, lo -> reg" (OPTIONAL_MUL_INSN (STALL MULR) (LATENCY 3))
+ "maddr $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 #x3006))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (or (sll (zext DI hi) 32) (zext DI lo)))
+ (set result (add result (mul (ext DI rn) (ext DI rm))))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1))
+ (set rn (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply)
+ (unit u-mul-gpr (out resultreg rn)))))
+
+(dnci maddru "multiple accumulate unsigned, lo -> reg" (OPTIONAL_MUL_INSN (STALL MULR) (LATENCY 3))
+ "maddru $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 #x3007))
+ (sequence ((DI result))
+ (c-call "check_option_mul" pc)
+ (set result (or (sll (zext DI hi) 32) (zext DI lo)))
+ (set result (add result (mul (zext UDI rn) (zext UDI rm))))
+ (set hi (subword SI result 0))
+ (set lo (subword SI result 1))
+ (set rn (subword SI result 1)))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-multiply)
+ (unit u-mul-gpr (out resultreg rn)))))
+
+
+; Divide instructions.
+; These instructions become the RI when the 32-bit divide instruction
+; option is off.
+
+(dnci div "divide" (OPTIONAL_DIV_INSN (STALL DIV) (LATENCY 34) MAY_TRAP)
+ "div $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 8))
+ (sequence ()
+ (c-call "check_option_div" pc)
+ (if (eq rm 0)
+ (set pc (c-call USI "zdiv_exception" pc))
+ ; Special case described on p. 76.
+ (if (and (eq rn #x80000000)
+ (eq rm #xffffffff))
+ (sequence ()
+ (set lo #x80000000)
+ (set hi 0))
+ (sequence ()
+ (set lo (div rn rm))
+ (set hi (mod rn rm))))))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-divide)
+ (unit u-branch))))
+
+(dnci divu "divide unsigned" (OPTIONAL_DIV_INSN (STALL DIV) (LATENCY 34) MAY_TRAP)
+ "divu $rn,$rm"
+ (+ MAJ_1 rn rm (f-sub4 9))
+ (sequence ()
+ (c-call "check_option_div" pc)
+ (if (eq rm 0)
+ (set pc (c-call USI "zdiv_exception" pc))
+ (sequence ()
+ (set lo (udiv rn rm))
+ (set hi (umod rn rm)))))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-divide)
+ (unit u-branch))))
+
+
+; Debug functions.
+; These instructions become the RI when the debug function option is
+; off.
+
+(dnci dret "return from debug exception" (OPTIONAL_DEBUG_INSN)
+ "dret"
+ (+ MAJ_7 (f-rn 0) (f-rm 1) (f-sub4 3))
+ (sequence ()
+ (c-call "check_option_debug" pc)
+ ; set DBG.DM.
+ (set dbg (and dbg (inv (sll SI 1 15))))
+ (set pc depc))
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+(dnci dbreak "generate debug exception" (OPTIONAL_DEBUG_INSN MAY_TRAP VOLATILE)
+ "dbreak"
+ (+ MAJ_7 (f-rn 0) (f-rm 3) (f-sub4 3))
+ (sequence ()
+ (c-call "check_option_debug" pc)
+ ; set DBG.DPB.
+ (set dbg (or dbg 1)))
+ ())
+
+
+; Leading zero instruction.
+
+(dnci ldz "leading zeroes" (OPTIONAL_LDZ_INSN (STALL INT2))
+ "ldz $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 0))
+ (sequence ()
+ (c-call "check_option_ldz" pc)
+ (set rn (c-call SI "do_ldz" rm)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec))))
+
+
+; Absolute difference instruction.
+
+(dnci abs "absolute difference" (OPTIONAL_ABS_INSN (STALL INT2))
+ "abs $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 3))
+ (sequence ()
+ (c-call "check_option_abs" pc)
+ (set rn (abs (sub rn rm))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; Average instruction.
+
+(dnci ave "average" (OPTIONAL_AVE_INSN (STALL INT2))
+ "ave $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 2))
+ (sequence ()
+ (c-call "check_option_ave" pc)
+ (set rn (sra (add (add rn rm) 1) 1)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; MIN/MAX instructions.
+
+(dnci min "minimum" (OPTIONAL_MINMAX_INSN (STALL INT2))
+ "min $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 4))
+ (sequence ()
+ (c-call "check_option_minmax" pc)
+ (if (gt rn rm)
+ (set rn rm)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci max "maximum" (OPTIONAL_MINMAX_INSN (STALL INT2))
+ "max $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 5))
+ (sequence ()
+ (c-call "check_option_minmax" pc)
+ (if (lt rn rm)
+ (set rn rm)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci minu "minimum unsigned" (OPTIONAL_MINMAX_INSN (STALL INT2))
+ "minu $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 6))
+ (sequence ()
+ (c-call "check_option_minmax" pc)
+ (if (gtu rn rm)
+ (set rn rm)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci maxu "maximum unsigned" (OPTIONAL_MINMAX_INSN (STALL INT2))
+ "maxu $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 7))
+ (sequence ()
+ (c-call "check_option_minmax" pc)
+ (if (ltu rn rm)
+ (set rn rm)))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; Clipping instruction.
+
+(dnci clip "clip" (OPTIONAL_CLIP_INSN (STALL INT2))
+ "clip $rn,$cimm5"
+ (+ MAJ_15 rn (f-rm 0) (f-sub4 1) (f-ext #x10) cimm5 (f-29 0) (f-30 0) (f-31 0))
+ (sequence ((SI min) (SI max))
+ (c-call "check_option_clip" pc)
+ (set max (sub (sll 1 (sub cimm5 1)) 1))
+ (set min (neg (sll 1 (sub cimm5 1))))
+ (cond
+ ((eq cimm5 0) (set rn 0))
+ ((gt rn max) (set rn max))
+ ((lt rn min) (set rn min))))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci clipu "clip unsigned" (OPTIONAL_CLIP_INSN (STALL INT2))
+ "clipu $rn,$cimm5"
+ (+ MAJ_15 rn (f-rm 0) (f-sub4 1) (f-ext #x10) cimm5 (f-29 0) (f-30 0) (f-31 1))
+ (sequence ((SI max))
+ (c-call "check_option_clip" pc)
+ (set max (sub (sll 1 cimm5) 1))
+ (cond
+ ((eq cimm5 0) (set rn 0))
+ ((gt rn max) (set rn max))
+ ((lt rn 0) (set rn 0))))
+ ((mep (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; Saturation instructions.
+
+(dnci sadd "saturating addition" (OPTIONAL_SAT_INSN (STALL INT2))
+ "sadd $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 8))
+ (sequence ()
+ (c-call "check_option_sat" pc)
+ (if (add-oflag rn rm 0)
+ (if (nflag rn)
+ ; underflow
+ (set rn (neg (sll 1 31)))
+ ; overflow
+ (set rn (sub (sll 1 31) 1)))
+ (set rn (add rn rm))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci ssub "saturating subtraction" (OPTIONAL_SAT_INSN (STALL INT2))
+ "ssub $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 10))
+ (sequence ()
+ (c-call "check_option_sat" pc)
+ (if (sub-oflag rn rm 0)
+ (if (nflag rn)
+ ; underflow
+ (set rn (neg (sll 1 31)))
+ ; overflow
+ (set rn (sub (sll 1 31) 1)))
+ (set rn (sub rn rm))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci saddu "saturating unsigned addition" (OPTIONAL_SAT_INSN (STALL INT2))
+ "saddu $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 9))
+ (sequence ()
+ (c-call "check_option_sat" pc)
+ (if (add-cflag rn rm 0)
+ (set rn (inv 0))
+ (set rn (add rn rm))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+(dnci ssubu "saturating unsigned subtraction" (OPTIONAL_SAT_INSN (STALL INT2))
+ "ssubu $rn,$rm"
+ (+ MAJ_15 rn rm (f-sub4 1) (f-16u16 11))
+ (sequence ()
+ (c-call "check_option_sat" pc)
+ (if (sub-cflag rn rm 0)
+ (set rn 0)
+ (set rn (sub rn rm))))
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-use-gpr (in usereg rn))
+ (unit u-exec))))
+
+
+; UCI and DSP options are defined in an external file.
+; See `mep-sample-ucidsp.cpu' for a sample.
+
+
+; Coprocessor instructions.
+
+(dnci swcp "store word coprocessor" (OPTIONAL_CP_INSN (STALL STORE))
+ "swcp $crn,($rma)"
+ (+ MAJ_3 crn rma (f-sub4 8))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 3)))
+ (set (mem SI (and rma (inv SI 3))) crn))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcp "load word coprocessor" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lwcp $crn,($rma)"
+ (+ MAJ_3 crn rma (f-sub4 9))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (mem SI (and rma (inv SI 3)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcp "smcp" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL STORE))
+ "smcp $crn64,($rma)"
+ (+ MAJ_3 crn64 rma (f-sub4 10))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (c-call "do_smcp" rma crn64 pc))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcp "lmcp" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL LOAD))
+ "lmcp $crn64,($rma)"
+ (+ MAJ_3 crn64 rma (f-sub4 11))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcp" rma pc)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci swcpi "swcp (post-increment)" (OPTIONAL_CP_INSN (STALL STORE))
+ "swcpi $crn,($rma+)"
+ (+ MAJ_3 crn rma (f-sub4 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 3)))
+ (set (mem SI (and rma (inv SI 3))) crn)
+ (set rma (add rma 4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcpi "lwcp (post-increment)" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lwcpi $crn,($rma+)"
+ (+ MAJ_3 crn rma (f-sub4 1))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (mem SI (and rma (inv SI 3))))
+ (set rma (add rma 4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcpi "smcp (post-increment)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL STORE))
+ "smcpi $crn64,($rma+)"
+ (+ MAJ_3 crn64 rma (f-sub4 2))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (c-call "do_smcpi" (index-of rma) crn64 pc)
+ (set rma rma)) ; reference as output for intrinsic generation
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcpi "lmcp (post-increment)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL LOAD))
+ "lmcpi $crn64,($rma+)"
+ (+ MAJ_3 crn64 rma (f-sub4 3))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcpi" (index-of rma) pc))
+ (set rma rma)) ; reference as output for intrinsic generation
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci swcp16 "swcp (16-bit displacement)" (OPTIONAL_CP_INSN (STALL STORE))
+ "swcp $crn,$sdisp16($rma)"
+ (+ MAJ_15 crn rma (f-sub4 12) sdisp16)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set (mem SI (and (add rma sdisp16) (inv SI 3))) crn))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcp16 "lwcp (16-bit displacement)" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lwcp $crn,$sdisp16($rma)"
+ (+ MAJ_15 crn rma (f-sub4 13) sdisp16)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (mem SI (and (add rma sdisp16) (inv SI 3)))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcp16 "smcp (16-bit displacement)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL STORE))
+ "smcp $crn64,$sdisp16($rma)"
+ (+ MAJ_15 crn64 rma (f-sub4 14) sdisp16)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call "do_smcp16" rma sdisp16 crn64 pc))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcp16 "lmcp (16-bit displacement)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL LOAD))
+ "lmcp $crn64,$sdisp16($rma)"
+ (+ MAJ_15 crn64 rma (f-sub4 15) sdisp16)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcp16" rma sdisp16 pc)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sbcpa "store byte coprocessor" (OPTIONAL_CP_INSN (STALL STORE))
+ "sbcpa $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 0) (f-ext62 0) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (set (mem QI rma) (and crn #xff))
+ (set rma (add rma (ext SI cdisp10))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbcpa "load byte coprocessor" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lbcpa $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x4) (f-ext62 #x0) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem QI rma)))
+ (set rma (add rma (ext SI cdisp10))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci shcpa "store half-word coprocessor" (OPTIONAL_CP_INSN (STALL STORE))
+ "shcpa $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x1) (f-ext62 #x0) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 1)))
+ (set (mem HI (and rma (inv SI 1))) (and crn #xffff))
+ (set rma (add rma (ext SI cdisp10a2))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhcpa "load half-word coprocessor" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lhcpa $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x5) (f-ext62 #x0) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (add rma (ext SI cdisp10a2))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci swcpa "store word coprocessor" (OPTIONAL_CP_INSN (STALL STORE))
+ "swcpa $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x2) (f-ext62 #x0) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 3)))
+ (set (mem SI (and rma (inv SI 3))) crn)
+ (set rma (add rma (ext SI cdisp10a4))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcpa "load word coprocessor" (OPTIONAL_CP_INSN (STALL LOAD))
+ "lwcpa $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x6) (f-ext62 #x0) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (mem SI (and rma (inv SI 3))))
+ (set rma (add rma (ext SI cdisp10a4))))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcpa "smcpa" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL STORE))
+ "smcpa $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x3) (f-ext62 #x0) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (c-call "do_smcpa" (index-of rma) cdisp10a8 crn64 pc)
+ (set rma rma)) ; reference as output for intrinsic generation
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcpa "lmcpa" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN (STALL LOAD))
+ "lmcpa $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x7) (f-ext62 #x0) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcpa" (index-of rma) cdisp10a8 pc))
+ (set rma rma)) ; reference as output for intrinsic generation
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+
+(dnci sbcpm0 "sbcpm0" (OPTIONAL_CP_INSN)
+ "sbcpm0 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x0) (f-ext62 #x2) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (set (mem QI rma) (and crn #xff))
+ (set rma (mod0 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbcpm0 "lbcpm0" (OPTIONAL_CP_INSN)
+ "lbcpm0 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x4) (f-ext62 #x2) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem QI rma)))
+ (set rma (mod0 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci shcpm0 "shcpm0" (OPTIONAL_CP_INSN)
+ "shcpm0 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x1) (f-ext62 #x2) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 1)))
+ (set (mem HI (and rma (inv SI 1))) (and crn #xffff))
+ (set rma (mod0 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhcpm0 "lhcpm0" (OPTIONAL_CP_INSN)
+ "lhcpm0 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x5) (f-ext62 #x2) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (mod0 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci swcpm0 "swcpm0" (OPTIONAL_CP_INSN)
+ "swcpm0 $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x2) (f-ext62 #x2) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 3)))
+ (set (mem SI (and rma (inv SI 3))) crn)
+ (set rma (mod0 cdisp10a4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcpm0 "lwcpm0" (OPTIONAL_CP_INSN)
+ "lwcpm0 $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x6) (f-ext62 #x2) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (mem SI (and rma (inv SI 3))))
+ (set rma (mod0 cdisp10a4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcpm0 "smcpm0" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN)
+ "smcpm0 $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x3) (f-ext62 #x2) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (c-call "do_smcp" rma crn64 pc)
+ (set rma (mod0 cdisp10a8)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcpm0 "lmcpm0" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN)
+ "lmcpm0 $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x7) (f-ext62 #x2) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcp" rma pc))
+ (set rma (mod0 cdisp10a8)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci sbcpm1 "sbcpm1" (OPTIONAL_CP_INSN)
+ "sbcpm1 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x0) (f-ext62 #x3) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" rma)
+ (set (mem QI rma) (and crn #xff))
+ (set rma (mod1 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lbcpm1 "lbcpm1" (OPTIONAL_CP_INSN)
+ "lbcpm1 $crn,($rma+),$cdisp10"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x4) (f-ext62 #x3) cdisp10)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem QI rma)))
+ (set rma (mod1 cdisp10)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci shcpm1 "shcpm1" (OPTIONAL_CP_INSN)
+ "shcpm1 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x1) (f-ext62 #x3) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 1)))
+ (set (mem HI (and rma (inv SI 1))) (and crn #xffff))
+ (set rma (mod1 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lhcpm1 "lhcpm1" (OPTIONAL_CP_INSN)
+ "lhcpm1 $crn,($rma+),$cdisp10a2"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x5) (f-ext62 #x3) cdisp10a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem HI (and rma (inv SI 1)))))
+ (set rma (mod1 cdisp10a2)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci swcpm1 "swcpm1" (OPTIONAL_CP_INSN)
+ "swcpm1 $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x2) (f-ext62 #x3) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call VOID "check_write_to_text" (and rma (inv SI 3)))
+ (set (mem SI (and rma (inv SI 3))) crn)
+ (set rma (mod1 cdisp10a4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lwcpm1 "lwcpm1" (OPTIONAL_CP_INSN)
+ "lwcpm1 $crn,($rma+),$cdisp10a4"
+ (+ MAJ_15 crn rma (f-sub4 5) (f-ext4 #x6) (f-ext62 #x3) cdisp10a4)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crn (ext SI (mem SI (and rma (inv SI 3)))))
+ (set rma (mod1 cdisp10a4)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci smcpm1 "smcpm1" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN)
+ "smcpm1 $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x3) (f-ext62 #x3) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (c-call "do_smcp" rma crn64 pc)
+ (c-call VOID "check_write_to_text" rma)
+ (set rma (mod1 cdisp10a8)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnci lmcpm1 "lmcpm1" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN)
+ "lmcpm1 $crn64,($rma+),$cdisp10a8"
+ (+ MAJ_15 crn64 rma (f-sub4 5) (f-ext4 #x7) (f-ext62 #x3) cdisp10a8)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "check_option_cp64" pc)
+ (set crn64 (c-call DI "do_lmcp" rma pc))
+ (set rma (mod1 cdisp10a8)))
+ ((mep (unit u-use-gpr (in usereg rma))
+ (unit u-exec))))
+
+(dnop cp_flag "branch condition register" (all-mep-isas) h-ccr 1)
+
+(dnci bcpeq "branch coprocessor equal" (OPTIONAL_CP_INSN RELAXABLE)
+ "bcpeq $cccc,$pcrel17a2"
+ (+ MAJ_13 (f-rn 8) cccc (f-sub4 4) pcrel17a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (if (eq (xor cccc cp_flag) 0)
+ (set-vliw-alignment-modified pc pcrel17a2)))
+ ())
+
+(dnci bcpne "branch coprocessor not equal" (OPTIONAL_CP_INSN RELAXABLE)
+ "bcpne $cccc,$pcrel17a2"
+ (+ MAJ_13 (f-rn 8) cccc (f-sub4 5) pcrel17a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (if (ne (xor cccc cp_flag) 0)
+ (set-vliw-alignment-modified pc pcrel17a2)))
+ ())
+
+(dnci bcpat "branch coprocessor and true" (OPTIONAL_CP_INSN RELAXABLE)
+ "bcpat $cccc,$pcrel17a2"
+ (+ MAJ_13 (f-rn 8) cccc (f-sub4 6) pcrel17a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (if (ne (and cccc cp_flag) 0)
+ (set-vliw-alignment-modified pc pcrel17a2)))
+ ())
+
+(dnci bcpaf "branch coprocessor and false" (OPTIONAL_CP_INSN RELAXABLE)
+ "bcpaf $cccc,$pcrel17a2"
+ (+ MAJ_13 (f-rn 8) cccc (f-sub4 7) pcrel17a2)
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (if (eq (and cccc cp_flag) 0)
+ (set-vliw-alignment-modified pc pcrel17a2)))
+ ())
+
+(dnci synccp "synchronise with coprocessor" (OPTIONAL_CP_INSN)
+ "synccp"
+ (+ MAJ_7 (f-rn 0) (f-rm 2) (f-sub4 1))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (unimp "synccp"))
+ ())
+
+(dnci jsrv "jump to vliw subroutine " (OPTIONAL_CP_INSN)
+ "jsrv $rm"
+ (+ MAJ_1 (f-rn 8) rm (f-sub4 15))
+ (sequence ()
+ (cg-profile pc rm)
+ (c-call "check_option_cp" pc)
+ (core-vliw-switch
+
+ ;; in core operating mode
+ (sequence ()
+ (set lp (or (add pc 2) 1))
+ (set-vliw-aliignment-modified-by-option pc rm)
+ (set-psw.om 1)) ;; to VLIW operation mode
+
+ ;; in VLIW32 operating mode
+ (sequence ()
+ (set lp (or (add pc 4) 1))
+ (set pc (and rm (inv 1)))
+ (set-psw.om 0)) ;; to core operation mode
+
+ ;; in VLIW64 operating mode
+ (sequence ()
+ (set lp (or (add pc 8) 1))
+ (set pc (and rm (inv 1)))
+ (set-psw.om 0)))) ;; to core operation mode
+ ((mep (unit u-use-gpr (in usereg rm))
+ (unit u-exec)
+ (unit u-branch))))
+
+(dnci bsrv "branch to vliw subroutine" (OPTIONAL_CP_INSN)
+ "bsrv $pcrel24a2"
+ (+ MAJ_13 (f-4 1) (f-sub4 11) pcrel24a2)
+ (sequence ()
+ (cg-profile pc pcrel24a2)
+ (c-call "check_option_cp" pc)
+ (core-vliw-switch
+
+ ;; in core operating mode
+ (sequence ()
+ (set lp (or (add pc 4) 1))
+ (set-vliw-aliignment-modified-by-option pc pcrel24a2)
+ (set-psw.om 1)) ;; to VLIW operation mode
+
+ ;; in VLIW32 operating mode
+ (sequence ()
+ (set lp (or (add pc 4) 1))
+ (set pc (and pcrel24a2 (inv 1)))
+ (set-psw.om 0)) ;; to core operation mode
+
+ ;; in VLIW64 operating mode
+ (sequence ()
+ (set lp (or (add pc 8) 1))
+ (set pc (and pcrel24a2 (inv 1)))
+ (set-psw.om 0)))) ;; to core operation mode
+ ((mep (unit u-exec)
+ (unit u-branch))))
+
+
+; An instruction for test instrumentation.
+; Using a reserved opcode.
+
+(dnci sim-syscall "simulator system call" ()
+ "--syscall--"
+ (+ MAJ_7 (f-4 1) callnum (f-8 0) (f-9 0) (f-10 0) (f-sub4 0))
+ (c-call "do_syscall" pc callnum)
+ ())
+
+(define-pmacro (dnri n major minor)
+ (dnci (.sym ri- n) "reserved instruction" ()
+ "--reserved--"
+ (+ major rn rm (f-sub4 minor))
+ (set pc (c-call USI "ri_exception" pc))
+ ((mep (unit u-exec)
+ (unit u-branch)))))
+
+(dnri 0 MAJ_0 6)
+(dnri 1 MAJ_1 10)
+(dnri 2 MAJ_1 11)
+(dnri 3 MAJ_2 5)
+(dnri 4 MAJ_2 8)
+(dnri 5 MAJ_2 9)
+(dnri 6 MAJ_2 10)
+(dnri 7 MAJ_2 11)
+(dnri 8 MAJ_3 4)
+(dnri 9 MAJ_3 5)
+(dnri 10 MAJ_3 6)
+(dnri 11 MAJ_3 7)
+(dnri 12 MAJ_3 12)
+(dnri 13 MAJ_3 13)
+(dnri 14 MAJ_3 14)
+(dnri 15 MAJ_3 15)
+(dnri 17 MAJ_7 7)
+(dnri 20 MAJ_7 14)
+(dnri 21 MAJ_7 15)
+(dnri 22 MAJ_12 7)
+(dnri 23 MAJ_14 13)
+;(dnri 24 MAJ_15 3)
+(dnri 26 MAJ_15 8)
+; begin core-specific reserved insns
+; end core-specific reserved insns
+
+
+; Macro instructions.
+
+(dnmi nop "nop"
+ ()
+ "nop"
+ (emit mov (rn 0) (rm 0)))
+
+; Emit the 16 bit form of these 32 bit insns when the displacement is zero.
+;
+(dncmi sb16-0 "store byte (explicit 16 bit displacement of zero)" (NO-DIS)
+ "sb $rnc,$zero($rma)"
+ (emit sb rnc rma))
+
+(dncmi sh16-0 "store half (explicit 16 bit displacement of zero)" (NO-DIS)
+ "sh $rns,$zero($rma)"
+ (emit sh rns rma))
+
+(dncmi sw16-0 "store word (explicit 16 bit displacement of zero)" (NO-DIS)
+ "sw $rnl,$zero($rma)"
+ (emit sw rnl rma))
+
+(dncmi lb16-0 "load byte (explicit 16 bit displacement of zero)" (NO-DIS)
+ "lb $rnc,$zero($rma)"
+ (emit lb rnc rma))
+
+(dncmi lh16-0 "load half (explicit 16 bit displacement of zero)" (NO-DIS)
+ "lh $rns,$zero($rma)"
+ (emit lh rns rma))
+
+(dncmi lw16-0 "load word (explicit 16 bit displacement of zero)" (NO-DIS)
+ "lw $rnl,$zero($rma)"
+ (emit lw rnl rma))
+
+(dncmi lbu16-0 "load unsigned byte (explicit 16 bit displacement of zero)" (NO-DIS)
+ "lbu $rnuc,$zero($rma)"
+ (emit lbu rnuc rma))
+
+(dncmi lhu16-0 "load unsigned half (explicit 16 bit displacement of zero)" (NO-DIS)
+ "lhu $rnus,$zero($rma)"
+ (emit lhu rnus rma))
+
+(dncmi swcp16-0 "swcp (explicit 16-bit displacement of zero)" (OPTIONAL_CP_INSN NO-DIS)
+ "swcp $crn,$zero($rma)"
+ (emit swcp crn rma))
+
+(dncmi lwcp16-0 "lwcp (explicit 16-bit displacement of zero)" (OPTIONAL_CP_INSN NO-DIS)
+ "lwcp $crn,$zero($rma)"
+ (emit lwcp crn rma))
+
+(dncmi smcp16-0 "smcp (explicit 16-bit displacement of zero)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN NO-DIS)
+ "smcp $crn64,$zero($rma)"
+ (emit smcp crn64 rma))
+
+(dncmi lmcp16-0 "lmcp (explicit 16-bit displacement of zero)" (OPTIONAL_CP_INSN OPTIONAL_CP64_INSN NO-DIS)
+ "lmcp $crn64,$zero($rma)"
+ (emit lmcp crn64 rma))
diff --git a/gcc/config/mep/mep-default.cpu b/gcc/config/mep/mep-default.cpu
new file mode 100644
index 000000000..54756f15d
--- /dev/null
+++ b/gcc/config/mep/mep-default.cpu
@@ -0,0 +1,26 @@
+; Toshiba MeP Media Engine architecture description. -*- Scheme -*-
+; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+; Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+; This file serves as a wrapper to bring in the core description plus
+; sample implementations of the UCI and DSP instructions.
+
+(include "mep-core.cpu")
+(include "mep-ext-cop.cpu")
diff --git a/gcc/config/mep/mep-ext-cop.cpu b/gcc/config/mep/mep-ext-cop.cpu
new file mode 100644
index 000000000..d770d8daf
--- /dev/null
+++ b/gcc/config/mep/mep-ext-cop.cpu
@@ -0,0 +1,24 @@
+; Toshiba MeP IVC2 Coprocessor description. -*- scheme -*-
+; Copyright (C) 2003,2009
+; Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+;; begin-user-isa-includes
+(include "mep-ivc2.cpu")
+;; end-user-isa-includes
diff --git a/gcc/config/mep/mep-intrin.h b/gcc/config/mep/mep-intrin.h
new file mode 100644
index 000000000..d556459b2
--- /dev/null
+++ b/gcc/config/mep/mep-intrin.h
@@ -0,0 +1,8933 @@
+
+
+/* DO NOT EDIT: This file is automatically generated by CGEN.
+ Any changes you make will be discarded when it is next regenerated. */
+
+#ifdef WANT_GCC_DECLARATIONS
+#define FIRST_SHADOW_REGISTER 113
+#define LAST_SHADOW_REGISTER 120
+#define FIXED_SHADOW_REGISTERS \
+ 1, 1, 1, 1, 1, 1, 1, 1
+#define CALL_USED_SHADOW_REGISTERS FIXED_SHADOW_REGISTERS
+#define SHADOW_REG_ALLOC_ORDER \
+ 113, 114, 115, 116, 117, 118, 119, 120
+#define SHADOW_REGISTER_NAMES \
+ "$shadow81", "$shadow17", "$shadow40", "$shadow24", "$shadow23", "$shadow22", "$shadow21", "$shadow20"
+
+
+
+#ifndef __MEP__
+enum {
+ mep_fcmpleis = 591,
+ mep_fcmplis = 593,
+ mep_fcmpes = 595,
+ mep_fcmpules = 597,
+ mep_fcmpuls = 599,
+ mep_fcmpues = 601,
+ mep_fcmpus = 603,
+ mep_fcvtsw = 605,
+ mep_ftruncws = 607,
+ mep_fnegs = 609,
+ mep_fabss = 611,
+ mep_fsqrts = 613,
+ mep_fdivs = 615,
+ mep_fmuls = 617,
+ mep_fsubs = 619,
+ mep_fadds = 621,
+ mep_fmovs = 623,
+ mep_cextb = 624,
+ mep_cexth = 625,
+ mep_cextub = 626,
+ mep_cextuh = 627,
+ mep_xmula0 = 628,
+ mep_cmula0 = 629,
+ mep_cneg = 630,
+ mep_cmovh2 = 632,
+ mep_cmovh1 = 633,
+ mep_cmovc2 = 634,
+ mep_cmovc1 = 635,
+ mep_cmov2 = 636,
+ mep_cmov1 = 637,
+ mep_cmovi = 638,
+ mep_cpmov = 640,
+ mep_cmov = 641,
+ mep_csrai3 = 642,
+ mep_csrai = 644,
+ mep_csra3 = 646,
+ mep_csra = 648,
+ mep_csrli3 = 650,
+ mep_csrli = 652,
+ mep_csrl3 = 654,
+ mep_csrl = 656,
+ mep_cslli3 = 658,
+ mep_cslli = 660,
+ mep_csll3 = 662,
+ mep_csll = 664,
+ mep_cxori3 = 666,
+ mep_cxori = 668,
+ mep_cxor3 = 670,
+ mep_cxor = 672,
+ mep_cnori3 = 674,
+ mep_cnori = 676,
+ mep_cnor3 = 678,
+ mep_cnor = 680,
+ mep_cori3 = 682,
+ mep_cori = 684,
+ mep_cor3 = 686,
+ mep_cor = 688,
+ mep_candi3 = 690,
+ mep_candi = 692,
+ mep_cand3 = 694,
+ mep_cand = 696,
+ mep_csubi3 = 698,
+ mep_csubi = 700,
+ mep_csub3 = 702,
+ mep_csub = 704,
+ mep_caddi3 = 706,
+ mep_caddi = 708,
+ mep_cadd3 = 710,
+ mep_cadd = 712
+};
+#endif /* ! defined (__MEP__) */
+
+
+enum cgen_regnum_operand_type {
+ cgen_regnum_operand_type_POINTER, /* long * */
+ cgen_regnum_operand_type_LABEL, /* void * */
+ cgen_regnum_operand_type_LONG, /* long */
+ cgen_regnum_operand_type_ULONG, /* unsigned long */
+ cgen_regnum_operand_type_SHORT, /* short */
+ cgen_regnum_operand_type_USHORT, /* unsigned short */
+ cgen_regnum_operand_type_CHAR, /* char */
+ cgen_regnum_operand_type_UCHAR, /* unsigned char */
+ cgen_regnum_operand_type_SI, /* __cop long */
+ cgen_regnum_operand_type_DI, /* __cop long long */
+ cgen_regnum_operand_type_CP_DATA_BUS_INT, /* cp_data_bus_int */
+ cgen_regnum_operand_type_VECTOR, /* opaque vector type */
+ cgen_regnum_operand_type_V8QI, /* V8QI vector type */
+ cgen_regnum_operand_type_V4HI, /* V4HI vector type */
+ cgen_regnum_operand_type_V2SI, /* V2SI vector type */
+ cgen_regnum_operand_type_V8UQI, /* V8UQI vector type */
+ cgen_regnum_operand_type_V4UHI, /* V4UHI vector type */
+ cgen_regnum_operand_type_V2USI, /* V2USI vector type */
+ cgen_regnum_operand_type_DEFAULT = cgen_regnum_operand_type_LONG
+};
+
+struct cgen_regnum_operand {
+ /* The number of addressable registers, 0 for non-regnum operands. */
+ unsigned char count;
+
+ /* The first register. */
+ unsigned char base;
+
+ /* The type of the operand. */
+ enum cgen_regnum_operand_type type;
+
+ /* Is it passed by reference? */
+ int reference_p;
+};
+
+struct cgen_insn {
+ /* An index into cgen_intrinsics[]. */
+ unsigned int intrinsic;
+
+ /* A bitmask of the ISAs which include this instruction. */
+ unsigned int isas;
+
+ /* A bitmask of the target-specific groups to which this instruction
+ belongs. */
+ unsigned int groups;
+
+ /* The insn_code for this instruction. */
+ int icode;
+
+ /* The number of arguments to the intrinsic function. */
+ unsigned int num_args;
+
+ /* If true, the first argument is the return value. */
+ unsigned int cret_p;
+
+ /* Maps operand numbers to argument numbers. */
+ unsigned int op_mapping[10];
+
+ /* Array of regnum properties, indexed by argument number. */
+ struct cgen_regnum_operand regnums[10];
+
+ /* The length of the instruction, in bytes. */
+ int length;
+};
+
+extern const struct cgen_insn cgen_insns[];
+extern const char *const cgen_intrinsics[];
+
+/* Is the instruction described by cgen_insns[INDEX] enabled? */
+#define CGEN_ENABLE_INSN_P(INDEX) \
+ ((CGEN_CURRENT_ISAS & cgen_insns[INDEX].isas) != 0 \
+ && (CGEN_CURRENT_GROUP & cgen_insns[INDEX].groups) != 0)
+
+#define ISA_EXT1 1
+#define ISA_MEP 2
+
+#define GROUP_KNOWN_CODE 1
+#define GROUP_NORMAL 2
+#define GROUP_VLIW 4
+
+#endif
+#ifdef WANT_GCC_DEFINITIONS
+struct cgen_immediate_predicate {
+ insn_operand_predicate_fn predicate;
+ int lower, upper, align;
+};
+
+const struct cgen_immediate_predicate cgen_immediate_predicates[] = {
+ { cgen_h_sint_12a1_immediate, -2048, 2048, 1 },
+ { cgen_h_uint_20a1_immediate, 0, 1048576, 1 },
+ { cgen_h_uint_7a1_immediate, 0, 128, 1 },
+ { cgen_h_uint_6a2_immediate, 0, 128, 2 },
+ { cgen_h_uint_22a4_immediate, 0, 33554432, 4 },
+ { cgen_h_sint_2a1_immediate, -2, 2, 1 },
+ { cgen_h_uint_24a1_immediate, 0, 16777216, 1 },
+ { cgen_h_sint_6a1_immediate, -32, 32, 1 },
+ { cgen_h_uint_5a4_immediate, 0, 256, 4 },
+ { cgen_h_uint_2a1_immediate, 0, 4, 1 },
+ { cgen_h_sint_10a1_immediate, -512, 512, 1 },
+ { cgen_h_uint_4a1_immediate, 0, 16, 1 },
+ { cgen_h_uint_6a1_immediate, 0, 64, 1 },
+ { cgen_h_uint_16a1_immediate, 0, 65536, 1 },
+ { cgen_h_uint_8a1_immediate, 0, 256, 1 },
+ { cgen_h_sint_16a1_immediate, -32768, 32768, 1 },
+ { cgen_h_uint_5a1_immediate, 0, 32, 1 },
+ { cgen_h_sint_8a1_immediate, -128, 128, 1 },
+ { cgen_h_uint_3a1_immediate, 0, 8, 1 }
+};
+
+const char *const cgen_intrinsics[] = {
+ "mep_cpfmadila1_h",
+ "mep_cpfmadiua1_h",
+ "mep_cpfmadia1_b",
+ "mep_cpfmadia1u_b",
+ "mep_cpfmulila1_h",
+ "mep_cpfmuliua1_h",
+ "mep_cpfmulia1_b",
+ "mep_cpfmulia1u_b",
+ "mep_cpamadila1_h",
+ "mep_cpamadiua1_h",
+ "mep_cpamadia1_b",
+ "mep_cpamadia1u_b",
+ "mep_cpamulila1_h",
+ "mep_cpamuliua1_h",
+ "mep_cpamulia1_b",
+ "mep_cpamulia1u_b",
+ "mep_cpfmadila1s1_h",
+ "mep_cpfmadiua1s1_h",
+ "mep_cpfmadia1s1_b",
+ "mep_cpfmadia1s1u_b",
+ "mep_cpfmulila1s1_h",
+ "mep_cpfmuliua1s1_h",
+ "mep_cpfmulia1s1_b",
+ "mep_cpfmulia1s1u_b",
+ "mep_cpfmadila1s0_h",
+ "mep_cpfmadiua1s0_h",
+ "mep_cpfmadia1s0_b",
+ "mep_cpfmadia1s0u_b",
+ "mep_cpfmulila1s0_h",
+ "mep_cpfmuliua1s0_h",
+ "mep_cpfmulia1s0_b",
+ "mep_cpfmulia1s0u_b",
+ "mep_cpacswp",
+ "mep_cpaccpa1",
+ "mep_cpacsuma1",
+ "mep_c1nop",
+ "mep_cpfacla0s1_h",
+ "mep_cpfacua0s1_h",
+ "mep_cpfaca0s1_b",
+ "mep_cpfaca0s1u_b",
+ "mep_cpfsftbla0s1_h",
+ "mep_cpfsftbua0s1_h",
+ "mep_cpfsftba0s1_b",
+ "mep_cpfsftba0s1u_b",
+ "mep_cpfacla0s0_h",
+ "mep_cpfacua0s0_h",
+ "mep_cpfaca0s0_b",
+ "mep_cpfaca0s0u_b",
+ "mep_cpfsftbla0s0_h",
+ "mep_cpfsftbua0s0_h",
+ "mep_cpfsftba0s0_b",
+ "mep_cpfsftba0s0u_b",
+ "mep_cpsllia0",
+ "mep_cpsraia0",
+ "mep_cpsrlia0",
+ "mep_cpslla0",
+ "mep_cpsraa0",
+ "mep_cpsrla0",
+ "mep_cpaccpa0",
+ "mep_cpacsuma0",
+ "mep_cpmovhla0_w",
+ "mep_cpmovhua0_w",
+ "mep_cppackla0_w",
+ "mep_cppackua0_w",
+ "mep_cppackla0_h",
+ "mep_cppackua0_h",
+ "mep_cppacka0_b",
+ "mep_cppacka0u_b",
+ "mep_cpmovlla0_w",
+ "mep_cpmovlua0_w",
+ "mep_cpmovula0_w",
+ "mep_cpmovuua0_w",
+ "mep_cpmovla0_h",
+ "mep_cpmovua0_h",
+ "mep_cpmova0_b",
+ "mep_cpsetla0_w",
+ "mep_cpsetua0_w",
+ "mep_cpseta0_h",
+ "mep_cpsadla0_h",
+ "mep_cpsadua0_h",
+ "mep_cpsada0_b",
+ "mep_cpsada0u_b",
+ "mep_cpabsla0_h",
+ "mep_cpabsua0_h",
+ "mep_cpabsa0_b",
+ "mep_cpabsa0u_b",
+ "mep_cpsubacla0_h",
+ "mep_cpsubacua0_h",
+ "mep_cpsubaca0_b",
+ "mep_cpsubaca0u_b",
+ "mep_cpsubla0_h",
+ "mep_cpsubua0_h",
+ "mep_cpsuba0_b",
+ "mep_cpsuba0u_b",
+ "mep_cpaddacla0_h",
+ "mep_cpaddacua0_h",
+ "mep_cpaddaca0_b",
+ "mep_cpaddaca0u_b",
+ "mep_cpaddla0_h",
+ "mep_cpaddua0_h",
+ "mep_cpadda0_b",
+ "mep_cpadda0u_b",
+ "mep_c0nop",
+ "mep_cpsmsbslla1_w",
+ "mep_cpsmsbslua1_w",
+ "mep_cpsmsbslla1_h",
+ "mep_cpsmsbslua1_h",
+ "mep_cpsmadslla1_w",
+ "mep_cpsmadslua1_w",
+ "mep_cpsmadslla1_h",
+ "mep_cpsmadslua1_h",
+ "mep_cpmulslla1_w",
+ "mep_cpmulslua1_w",
+ "mep_cpmulslla1_h",
+ "mep_cpmulslua1_h",
+ "mep_cpsmsbla1_w",
+ "mep_cpsmsbua1_w",
+ "mep_cpsmsbla1_h",
+ "mep_cpsmsbua1_h",
+ "mep_cpsmadla1_w",
+ "mep_cpsmadua1_w",
+ "mep_cpsmadla1_h",
+ "mep_cpsmadua1_h",
+ "mep_cpmsbla1_w",
+ "mep_cpmsbua1_w",
+ "mep_cpmsbla1u_w",
+ "mep_cpmsbua1u_w",
+ "mep_cpmsbla1_h",
+ "mep_cpmsbua1_h",
+ "mep_cpmadla1_w",
+ "mep_cpmadua1_w",
+ "mep_cpmadla1u_w",
+ "mep_cpmadua1u_w",
+ "mep_cpmadla1_h",
+ "mep_cpmadua1_h",
+ "mep_cpmada1_b",
+ "mep_cpmada1u_b",
+ "mep_cpmulla1_w",
+ "mep_cpmulua1_w",
+ "mep_cpmulla1u_w",
+ "mep_cpmulua1u_w",
+ "mep_cpmulla1_h",
+ "mep_cpmulua1_h",
+ "mep_cpmula1_b",
+ "mep_cpmula1u_b",
+ "mep_cpssda1_b",
+ "mep_cpssda1u_b",
+ "mep_cpssqa1_b",
+ "mep_cpssqa1u_b",
+ "mep_cpsllia1",
+ "mep_cpsraia1",
+ "mep_cpsrlia1",
+ "mep_cpslla1",
+ "mep_cpsraa1",
+ "mep_cpsrla1",
+ "mep_cpmovhla1_w",
+ "mep_cpmovhua1_w",
+ "mep_cppackla1_w",
+ "mep_cppackua1_w",
+ "mep_cppackla1_h",
+ "mep_cppackua1_h",
+ "mep_cppacka1_b",
+ "mep_cppacka1u_b",
+ "mep_cpmovlla1_w",
+ "mep_cpmovlua1_w",
+ "mep_cpmovula1_w",
+ "mep_cpmovuua1_w",
+ "mep_cpmovla1_h",
+ "mep_cpmovua1_h",
+ "mep_cpmova1_b",
+ "mep_cpsetla1_w",
+ "mep_cpsetua1_w",
+ "mep_cpseta1_h",
+ "mep_cpsadla1_h",
+ "mep_cpsadua1_h",
+ "mep_cpsada1_b",
+ "mep_cpsada1u_b",
+ "mep_cpabsla1_h",
+ "mep_cpabsua1_h",
+ "mep_cpabsa1_b",
+ "mep_cpabsa1u_b",
+ "mep_cpsubacla1_h",
+ "mep_cpsubacua1_h",
+ "mep_cpsubaca1_b",
+ "mep_cpsubaca1u_b",
+ "mep_cpsubla1_h",
+ "mep_cpsubua1_h",
+ "mep_cpsuba1_b",
+ "mep_cpsuba1u_b",
+ "mep_cpaddacla1_h",
+ "mep_cpaddacua1_h",
+ "mep_cpaddaca1_b",
+ "mep_cpaddaca1u_b",
+ "mep_cpaddla1_h",
+ "mep_cpaddua1_h",
+ "mep_cpadda1_b",
+ "mep_cpadda1u_b",
+ "mep_cdmovi",
+ "mep_cdmoviu",
+ "mep_cpmovi_w",
+ "mep_cpmoviu_w",
+ "mep_cpmovi_h",
+ "mep_cpmoviu_h",
+ "mep_cpmovi_b",
+ "mep_cdclipi3",
+ "mep_cdclipiu3",
+ "mep_cpclipi3_w",
+ "mep_cpclipiu3_w",
+ "mep_cpslai3_w",
+ "mep_cpslai3_h",
+ "mep_cdslli3",
+ "mep_cpslli3_w",
+ "mep_cpslli3_h",
+ "mep_cpslli3_b",
+ "mep_cdsrai3",
+ "mep_cpsrai3_w",
+ "mep_cpsrai3_h",
+ "mep_cpsrai3_b",
+ "mep_cdsrli3",
+ "mep_cpsrli3_w",
+ "mep_cpsrli3_h",
+ "mep_cpsrli3_b",
+ "mep_cpocmpge_w",
+ "mep_cpocmpgeu_w",
+ "mep_cpocmpge_h",
+ "mep_cpocmpge_b",
+ "mep_cpocmpgeu_b",
+ "mep_cpocmpgt_w",
+ "mep_cpocmpgtu_w",
+ "mep_cpocmpgt_h",
+ "mep_cpocmpgt_b",
+ "mep_cpocmpgtu_b",
+ "mep_cpocmpne_w",
+ "mep_cpocmpne_h",
+ "mep_cpocmpne_b",
+ "mep_cpocmpeq_w",
+ "mep_cpocmpeq_h",
+ "mep_cpocmpeq_b",
+ "mep_cpacmpge_w",
+ "mep_cpacmpgeu_w",
+ "mep_cpacmpge_h",
+ "mep_cpacmpge_b",
+ "mep_cpacmpgeu_b",
+ "mep_cpacmpgt_w",
+ "mep_cpacmpgtu_w",
+ "mep_cpacmpgt_h",
+ "mep_cpacmpgt_b",
+ "mep_cpacmpgtu_b",
+ "mep_cpacmpne_w",
+ "mep_cpacmpne_h",
+ "mep_cpacmpne_b",
+ "mep_cpacmpeq_w",
+ "mep_cpacmpeq_h",
+ "mep_cpacmpeq_b",
+ "mep_cpcmpge_w",
+ "mep_cpcmpgeu_w",
+ "mep_cpcmpge_h",
+ "mep_cpcmpge_b",
+ "mep_cpcmpgeu_b",
+ "mep_cpcmpgt_w",
+ "mep_cpcmpgtu_w",
+ "mep_cpcmpgt_h",
+ "mep_cpcmpgt_b",
+ "mep_cpcmpgtu_b",
+ "mep_cpcmpne_w",
+ "mep_cpcmpne_h",
+ "mep_cpcmpne_b",
+ "mep_cpcmpeq_w",
+ "mep_cpcmpeq_h",
+ "mep_cpcmpeq_b",
+ "mep_cpcmpeqz_b",
+ "mep_cdcastw",
+ "mep_cdcastuw",
+ "mep_cpcasth_w",
+ "mep_cpcastuh_w",
+ "mep_cpcastb_w",
+ "mep_cpcastub_w",
+ "mep_cpcastb_h",
+ "mep_cpcastub_h",
+ "mep_cpextl_h",
+ "mep_cpextlu_h",
+ "mep_cpextl_b",
+ "mep_cpextlu_b",
+ "mep_cpextu_h",
+ "mep_cpextuu_h",
+ "mep_cpextu_b",
+ "mep_cpextuu_b",
+ "mep_cpbcast_w",
+ "mep_cpbcast_h",
+ "mep_cpbcast_b",
+ "mep_cpccadd_b",
+ "mep_cphadd_w",
+ "mep_cphadd_h",
+ "mep_cphadd_b",
+ "mep_cphaddu_b",
+ "mep_cpnorm_w",
+ "mep_cpnorm_h",
+ "mep_cpldz_w",
+ "mep_cpldz_h",
+ "mep_cpabsz_w",
+ "mep_cpabsz_h",
+ "mep_cpabsz_b",
+ "mep_cpmovtocc",
+ "mep_cpmovtocsar1",
+ "mep_cpmovtocsar0",
+ "mep_cpmovfrcc",
+ "mep_cpmovfrcsar1",
+ "mep_cpmovfrcsar0",
+ "mep_cpmin3_w",
+ "mep_cpminu3_w",
+ "mep_cpmin3_h",
+ "mep_cpmin3_b",
+ "mep_cpminu3_b",
+ "mep_cpmax3_w",
+ "mep_cpmaxu3_w",
+ "mep_cpmax3_h",
+ "mep_cpmax3_b",
+ "mep_cpmaxu3_b",
+ "mep_cpabs3_h",
+ "mep_cpabs3_b",
+ "mep_cpabsu3_b",
+ "mep_cpaddsr3_w",
+ "mep_cpaddsr3_h",
+ "mep_cpaddsr3_b",
+ "mep_cpaddsru3_b",
+ "mep_cpave3_w",
+ "mep_cpave3_h",
+ "mep_cpave3_b",
+ "mep_cpaveu3_b",
+ "mep_cpextlsub3_b",
+ "mep_cpextlsubu3_b",
+ "mep_cpextusub3_b",
+ "mep_cpextusubu3_b",
+ "mep_cpextladd3_b",
+ "mep_cpextladdu3_b",
+ "mep_cpextuadd3_b",
+ "mep_cpextuaddu3_b",
+ "mep_cpssub3_w",
+ "mep_cpssub3_h",
+ "mep_cpsadd3_w",
+ "mep_cpsadd3_h",
+ "mep_cpsla3_w",
+ "mep_cpsla3_h",
+ "mep_cdsll3",
+ "mep_cpssll3_w",
+ "mep_cpsll3_w",
+ "mep_cpssll3_h",
+ "mep_cpsll3_h",
+ "mep_cpssll3_b",
+ "mep_cpsll3_b",
+ "mep_cdsra3",
+ "mep_cpssra3_w",
+ "mep_cpsra3_w",
+ "mep_cpssra3_h",
+ "mep_cpsra3_h",
+ "mep_cpssra3_b",
+ "mep_cpsra3_b",
+ "mep_cdsrl3",
+ "mep_cpssrl3_w",
+ "mep_cpsrl3_w",
+ "mep_cpssrl3_h",
+ "mep_cpsrl3_h",
+ "mep_cpssrl3_b",
+ "mep_cpsrl3_b",
+ "mep_cppack_h",
+ "mep_cppack_b",
+ "mep_cppacku_b",
+ "mep_cpunpackl_w",
+ "mep_cpunpackl_h",
+ "mep_cpunpackl_b",
+ "mep_cpunpacku_w",
+ "mep_cpunpacku_h",
+ "mep_cpunpacku_b",
+ "mep_cpfsftbs1",
+ "mep_cpfsftbs0",
+ "mep_cpfsftbi",
+ "mep_cpsel",
+ "mep_cpxor3",
+ "mep_cpnor3",
+ "mep_cpor3",
+ "mep_cpand3",
+ "mep_cdsub3",
+ "mep_cpsub3_w",
+ "mep_cpsub3_h",
+ "mep_cpsub3_b",
+ "mep_cdadd3",
+ "mep_cpadd3_w",
+ "mep_cpadd3_h",
+ "mep_cpadd3_b",
+ "mep_bsrv",
+ "mep_jsrv",
+ "mep_synccp",
+ "mep_bcpaf",
+ "mep_bcpat",
+ "mep_bcpne",
+ "mep_bcpeq",
+ "mep_lmcpm1",
+ "mep_smcpm1",
+ "mep_lwcpm1",
+ "mep_swcpm1",
+ "mep_lhcpm1",
+ "mep_shcpm1",
+ "mep_lbcpm1",
+ "mep_sbcpm1",
+ "mep_lmcpm0",
+ "mep_smcpm0",
+ "mep_lwcpm0",
+ "mep_swcpm0",
+ "mep_lhcpm0",
+ "mep_shcpm0",
+ "mep_lbcpm0",
+ "mep_sbcpm0",
+ "mep_lmcpa",
+ "mep_smcpa",
+ "mep_lwcpa",
+ "mep_swcpa",
+ "mep_lhcpa",
+ "mep_shcpa",
+ "mep_lbcpa",
+ "mep_sbcpa",
+ "mep_lmcp16",
+ "mep_smcp16",
+ "mep_lwcp16",
+ "mep_swcp16",
+ "mep_lmcpi",
+ "mep_smcpi",
+ "mep_lwcpi",
+ "mep_swcpi",
+ "mep_lmcp",
+ "mep_smcp",
+ "mep_lwcp",
+ "mep_swcp",
+ "mep_ssubu",
+ "mep_saddu",
+ "mep_ssub",
+ "mep_sadd",
+ "mep_clipu",
+ "mep_clip",
+ "mep_maxu",
+ "mep_minu",
+ "mep_max",
+ "mep_min",
+ "mep_ave",
+ "mep_abs",
+ "mep_ldz",
+ "mep_dbreak",
+ "mep_dret",
+ "mep_divu",
+ "mep_div",
+ "mep_maddru",
+ "mep_maddr",
+ "mep_maddu",
+ "mep_madd",
+ "mep_mulru",
+ "mep_mulr",
+ "mep_mulu",
+ "mep_mul",
+ "mep_cache",
+ "mep_tas",
+ "mep_btstm",
+ "mep_bnotm",
+ "mep_bclrm",
+ "mep_bsetm",
+ "mep_ldcb",
+ "mep_stcb",
+ "mep_syncm",
+ "mep_break",
+ "mep_swi",
+ "mep_sleep",
+ "mep_halt",
+ "mep_reti",
+ "mep_ei",
+ "mep_di",
+ "mep_ldc",
+ "mep_ldc_lo",
+ "mep_ldc_hi",
+ "mep_ldc_lp",
+ "mep_stc",
+ "mep_stc_lo",
+ "mep_stc_hi",
+ "mep_stc_lp",
+ "mep_erepeat",
+ "mep_repeat",
+ "mep_ret",
+ "mep_jsr",
+ "mep_jmp24",
+ "mep_jmp",
+ "mep_bsr24",
+ "mep_bsr12",
+ "mep_bne",
+ "mep_beq",
+ "mep_bgei",
+ "mep_blti",
+ "mep_bnei",
+ "mep_beqi",
+ "mep_bnez",
+ "mep_beqz",
+ "mep_bra",
+ "mep_fsft",
+ "mep_sll3",
+ "mep_slli",
+ "mep_srli",
+ "mep_srai",
+ "mep_sll",
+ "mep_srl",
+ "mep_sra",
+ "mep_xor3",
+ "mep_and3",
+ "mep_or3",
+ "mep_nor",
+ "mep_xor",
+ "mep_and",
+ "mep_or",
+ "mep_sltu3x",
+ "mep_slt3x",
+ "mep_add3x",
+ "mep_sl2ad3",
+ "mep_sl1ad3",
+ "mep_sltu3i",
+ "mep_slt3i",
+ "mep_sltu3",
+ "mep_slt3",
+ "mep_neg",
+ "mep_sbvck3",
+ "mep_sub",
+ "mep_advck3",
+ "mep_add3i",
+ "mep_add",
+ "mep_add3",
+ "mep_movh",
+ "mep_movu16",
+ "mep_movu24",
+ "mep_movi16",
+ "mep_movi8",
+ "mep_mov",
+ "mep_ssarb",
+ "mep_extuh",
+ "mep_extub",
+ "mep_exth",
+ "mep_extb",
+ "mep_lw24",
+ "mep_sw24",
+ "mep_lhu16",
+ "mep_lbu16",
+ "mep_lw16",
+ "mep_lh16",
+ "mep_lb16",
+ "mep_sw16",
+ "mep_sh16",
+ "mep_sb16",
+ "mep_lhu_tp",
+ "mep_lbu_tp",
+ "mep_lw_tp",
+ "mep_lh_tp",
+ "mep_lb_tp",
+ "mep_sw_tp",
+ "mep_sh_tp",
+ "mep_sb_tp",
+ "mep_lw_sp",
+ "mep_sw_sp",
+ "mep_lhu",
+ "mep_lbu",
+ "mep_lw",
+ "mep_lh",
+ "mep_lb",
+ "mep_sw",
+ "mep_sh",
+ "mep_sb",
+ "mep_dsp1",
+ "mep_dsp0",
+ "mep_dsp",
+ "mep_uci",
+ "mep_lhucpm1",
+ "mep_lbucpm1",
+ "mep_lhucpm0",
+ "mep_lbucpm0",
+ "mep_lhucpa",
+ "mep_lbucpa",
+ "mep_lhucp",
+ "mep_lhcp",
+ "mep_shcp",
+ "mep_lbucp",
+ "mep_lbcp",
+ "mep_sbcp",
+ "mep_casw3",
+ "mep_cash3",
+ "mep_casb3",
+ "mep_prefd",
+ "mep_pref",
+ "mep_ldcb_r",
+ "mep_stcb_r",
+ "mep_fcmpleis",
+ "mep_fcmpleis",
+ "mep_fcmplis",
+ "mep_fcmplis",
+ "mep_fcmpes",
+ "mep_fcmpes",
+ "mep_fcmpules",
+ "mep_fcmpules",
+ "mep_fcmpuls",
+ "mep_fcmpuls",
+ "mep_fcmpues",
+ "mep_fcmpues",
+ "mep_fcmpus",
+ "mep_fcmpus",
+ "mep_fcvtsw",
+ "mep_fcvtsw",
+ "mep_ftruncws",
+ "mep_ftruncws",
+ "mep_fnegs",
+ "mep_fnegs",
+ "mep_fabss",
+ "mep_fabss",
+ "mep_fsqrts",
+ "mep_fsqrts",
+ "mep_fdivs",
+ "mep_fdivs",
+ "mep_fmuls",
+ "mep_fmuls",
+ "mep_fsubs",
+ "mep_fsubs",
+ "mep_fadds",
+ "mep_fadds",
+ "mep_fmovs",
+ "mep_cextb",
+ "mep_cexth",
+ "mep_cextub",
+ "mep_cextuh",
+ "mep_xmula0",
+ "mep_cmula0",
+ "mep_cneg",
+ "mep_cneg",
+ "mep_cmovh2",
+ "mep_cmovh1",
+ "mep_cmovc2",
+ "mep_cmovc1",
+ "mep_cmov2",
+ "mep_cmov1",
+ "mep_cmovi",
+ "mep_cmovi",
+ "mep_cpmov",
+ "mep_cmov",
+ "mep_csrai3",
+ "mep_csrai3",
+ "mep_csrai",
+ "mep_csrai",
+ "mep_csra3",
+ "mep_csra3",
+ "mep_csra",
+ "mep_csra",
+ "mep_csrli3",
+ "mep_csrli3",
+ "mep_csrli",
+ "mep_csrli",
+ "mep_csrl3",
+ "mep_csrl3",
+ "mep_csrl",
+ "mep_csrl",
+ "mep_cslli3",
+ "mep_cslli3",
+ "mep_cslli",
+ "mep_cslli",
+ "mep_csll3",
+ "mep_csll3",
+ "mep_csll",
+ "mep_csll",
+ "mep_cxori3",
+ "mep_cxori3",
+ "mep_cxori",
+ "mep_cxori",
+ "mep_cxor3",
+ "mep_cxor3",
+ "mep_cxor",
+ "mep_cxor",
+ "mep_cnori3",
+ "mep_cnori3",
+ "mep_cnori",
+ "mep_cnori",
+ "mep_cnor3",
+ "mep_cnor3",
+ "mep_cnor",
+ "mep_cnor",
+ "mep_cori3",
+ "mep_cori3",
+ "mep_cori",
+ "mep_cori",
+ "mep_cor3",
+ "mep_cor3",
+ "mep_cor",
+ "mep_cor",
+ "mep_candi3",
+ "mep_candi3",
+ "mep_candi",
+ "mep_candi",
+ "mep_cand3",
+ "mep_cand3",
+ "mep_cand",
+ "mep_cand",
+ "mep_csubi3",
+ "mep_csubi3",
+ "mep_csubi",
+ "mep_csubi",
+ "mep_csub3",
+ "mep_csub3",
+ "mep_csub",
+ "mep_csub",
+ "mep_caddi3",
+ "mep_caddi3",
+ "mep_caddi",
+ "mep_caddi",
+ "mep_cadd3",
+ "mep_cadd3",
+ "mep_cadd",
+ "mep_cadd"
+};
+
+const struct cgen_insn cgen_insns[] = {
+ { 103,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbslla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 103,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbslla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 104,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbslua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 104,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbslua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 105,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbslla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 105,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbslla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 106,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbslua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 106,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbslua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 107,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadslla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 107,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadslla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 108,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadslua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 108,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadslua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 109,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadslla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 109,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadslla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 110,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadslua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 110,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadslua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 111,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulslla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 111,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulslla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 112,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulslua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 112,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulslua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 113,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulslla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 113,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulslla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 114,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulslua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 114,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulslua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 115,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 115,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 116,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 116,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 117,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 117,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 118,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmsbua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 118,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmsbua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 119,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 119,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 120,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 120,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 121,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 121,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 122,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsmadua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 122,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsmadua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 123,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 123,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 124,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 124,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 125,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbla1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 125,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbla1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 126,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbua1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 126,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbua1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 127,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 127,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 128,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmsbua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 128,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmsbua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 129,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 129,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 130,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 130,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 131,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadla1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 131,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadla1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 132,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadua1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 132,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadua1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 133,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 133,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 134,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmadua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 134,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmadua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 135,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmada1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 135,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmada1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 136,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmada1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 136,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmada1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 137,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 137,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 138,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 138,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 139,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulla1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 139,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulla1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 140,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulua1u_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 140,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulua1u_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 141,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 141,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 142,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmulua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 142,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmulua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 143,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmula1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 143,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmula1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 144,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmula1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 144,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmula1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 145,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssda1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 145,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssda1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 146,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssda1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 146,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssda1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 147,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssqa1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 147,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssqa1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 148,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssqa1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 148,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssqa1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 0,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadila1_h_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 1,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadiua1_h_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 2,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1_b_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 3,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1u_b_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 4,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulila1_h_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 5,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmuliua1_h_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 6,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1_b_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 7,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1u_b_P1,
+ 4,
+ 0,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 8,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamadila1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 9,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamadiua1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 10,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamadia1_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 11,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamadia1u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 12,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamulila1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 13,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamuliua1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 14,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamulia1_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 15,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpamulia1u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 16,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadila1s1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 17,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadiua1s1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 18,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1s1_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 19,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1s1u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 20,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulila1s1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 21,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmuliua1s1_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 22,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1s1_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 23,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1s1u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 24,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadila1s0_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 25,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadiua1s0_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 26,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1s0_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 27,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmadia1s0u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 28,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulila1s0_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 29,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmuliua1s0_h_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 30,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1s0_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 31,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfmulia1s0u_b_P1,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 149,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsllia1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 149,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsllia1_1_p1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 150,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsraia1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 150,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsraia1_1_p1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 151,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrlia1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 151,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrlia1_1_p1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 152,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslla1_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 152,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslla1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 153,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsraa1_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 153,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsraa1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 154,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrla1_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 154,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrla1_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 32,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacswp_P1,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 33,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaccpa1_P1,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 34,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacsuma1_P1,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 155,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovhla1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 155,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovhla1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 156,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovhua1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 156,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovhua1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 157,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppackla1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 157,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackla1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 158,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppackua1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 158,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackua1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 159,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppackla1_h_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 159,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackla1_h_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 160,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppackua1_h_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 160,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackua1_h_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 161,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppacka1_b_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 161,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppacka1_b_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 162,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppacka1u_b_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 } },
+ 4 },
+ { 162,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppacka1u_b_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 } },
+ 4 },
+ { 163,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovlla1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 163,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovlla1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 164,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovlua1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 164,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovlua1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 165,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovula1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 165,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovula1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 166,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovuua1_w_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 166,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovuua1_w_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 167,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovla1_h_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 167,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovla1_h_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 168,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovua1_h_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 168,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovua1_h_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 169,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmova1_b_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 169,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmova1_b_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 170,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsetla1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 170,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsetla1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 171,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsetua1_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 171,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsetua1_w_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 172,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpseta1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 172,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpseta1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 173,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsadla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 173,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 174,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsadua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 174,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 175,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsada1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 175,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsada1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 176,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsada1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 176,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsada1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 177,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 177,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 178,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 178,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 179,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsa1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 179,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsa1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 180,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsa1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 180,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsa1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 181,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubacla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 181,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubacla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 182,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubacua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 182,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubacua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 183,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubaca1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 183,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubaca1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 184,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubaca1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 184,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubaca1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 185,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 185,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 186,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsubua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 186,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 187,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsuba1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 187,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsuba1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 188,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsuba1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 188,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsuba1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 189,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddacla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 189,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddacla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 190,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddacua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 190,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddacua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 191,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddaca1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 191,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddaca1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 192,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddaca1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 192,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddaca1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 193,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddla1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 193,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddla1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 194,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddua1_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 194,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddua1_h_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 195,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpadda1_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 195,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadda1_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 196,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpadda1u_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 196,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadda1u_b_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 203,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovi_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 203,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovi_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 35,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_c1nop_P1,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 197,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdmovi_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 197,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdmovi_P0_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 198,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdmoviu_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 198,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdmoviu_P0_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 199,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovi_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 199,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovi_w_P0_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 200,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmoviu_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 200,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmoviu_w_P0_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 201,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovi_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 201,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovi_h_P0_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 204,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdclipi3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 204,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdclipi3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 205,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdclipiu3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 205,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdclipiu3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 206,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpclipi3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 206,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpclipi3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 207,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpclipiu3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 207,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpclipiu3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 208,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslai3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 208,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslai3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 209,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslai3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 209,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslai3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 210,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdslli3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 210,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdslli3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 211,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslli3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 211,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslli3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 212,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslli3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 212,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslli3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 213,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpslli3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 213,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslli3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 214,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsrai3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 214,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsrai3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 215,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrai3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 215,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrai3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 216,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrai3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 216,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrai3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 217,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrai3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 217,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrai3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 218,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsrli3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 218,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsrli3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 219,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrli3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 219,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrli3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 220,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrli3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 220,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrli3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 221,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrli3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 221,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrli3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 341,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsla3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 341,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsla3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 342,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsla3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 342,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsla3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 343,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsll3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 343,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsll3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 344,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssll3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 344,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssll3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 345,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsll3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 345,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsll3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 346,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssll3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 346,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssll3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 347,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsll3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 347,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsll3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 348,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssll3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 348,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssll3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 349,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsll3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 349,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsll3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 350,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsra3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 350,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsra3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 351,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssra3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 351,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssra3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 352,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsra3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 352,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsra3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 353,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssra3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 353,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssra3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 354,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsra3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 354,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsra3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 355,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssra3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 355,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssra3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 356,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsra3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 356,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsra3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 357,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsrl3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 357,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsrl3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 358,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssrl3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 358,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssrl3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 359,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrl3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 359,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrl3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 360,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssrl3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 360,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssrl3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 361,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrl3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 361,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrl3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 362,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssrl3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 362,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssrl3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 363,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsrl3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 363,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrl3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 308,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmin3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 308,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmin3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 309,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpminu3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 309,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpminu3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 310,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmin3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 310,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmin3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 311,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmin3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 311,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmin3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 312,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpminu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 312,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpminu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 313,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmax3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 313,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmax3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 314,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmaxu3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 314,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmaxu3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 315,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmax3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 315,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmax3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 316,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmax3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 316,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmax3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 317,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmaxu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 317,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmaxu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 364,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppack_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 364,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppack_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 365,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppack_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 365,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppack_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 366,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cppacku_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 366,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppacku_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 377,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpxor3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 377,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpxor3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 378,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpnor3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 378,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpnor3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 379,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpor3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 379,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpor3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 380,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpand3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 380,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpand3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_VECTOR, 1 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 }, { 0, 0, cgen_regnum_operand_type_VECTOR, 0 } },
+ 4 },
+ { 318,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabs3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 318,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabs3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 319,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabs3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 319,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabs3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 320,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 320,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 321,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 321,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 322,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 322,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 323,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 323,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddsr3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 324,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaddsru3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 324,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddsru3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 325,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpave3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 325,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpave3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 326,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpave3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 326,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpave3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 327,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpave3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 327,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpave3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 328,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpaveu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 328,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaveu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 329,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextlsub3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 329,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextlsub3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 330,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextlsubu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 330,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextlsubu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 331,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextusub3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 331,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextusub3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 332,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextusubu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 332,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextusubu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 333,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextladd3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 333,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextladd3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 334,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextladdu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 334,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextladdu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 335,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextuadd3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 335,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextuadd3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 336,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextuaddu3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 336,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextuaddu3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 337,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssub3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 337,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssub3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 338,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpssub3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 338,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpssub3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 339,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsadd3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 339,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadd3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 340,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsadd3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 340,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadd3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 381,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdsub3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 381,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdsub3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 382,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsub3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 382,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsub3_w_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 383,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsub3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 383,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsub3_h_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 384,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsub3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 384,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsub3_b_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 385,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdadd3_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 385,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdadd3_P0_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 222,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpge_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 222,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpge_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 223,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgeu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 223,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgeu_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 224,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpge_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 224,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpge_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 225,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpge_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 225,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpge_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 226,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgeu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 226,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgeu_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 227,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 227,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 228,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgtu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 228,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgtu_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 229,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 229,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 230,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 230,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgt_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 231,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpgtu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 231,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpgtu_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 232,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpne_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 232,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpne_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 233,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpne_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 233,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpne_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 234,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpne_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 234,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpne_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 235,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 235,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 236,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 236,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 237,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 237,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpocmpeq_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 238,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpge_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 238,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpge_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 239,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgeu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 239,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgeu_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 240,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpge_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 240,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpge_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 241,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpge_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 241,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpge_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 242,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgeu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 242,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgeu_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 243,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 243,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 244,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgtu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 244,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgtu_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 245,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 245,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 246,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 246,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgt_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 247,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpgtu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 247,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpgtu_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 248,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpne_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 248,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpne_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 249,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpne_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 249,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpne_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 250,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpne_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 250,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpne_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 251,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 251,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_w_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 252,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 252,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_h_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 253,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 253,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacmpeq_b_P0_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 375,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpfsftbi_C3,
+ 4,
+ 1,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 375,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbi_P0_P1,
+ 4,
+ 1,
+ { 0, 1, 2, 3 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 36,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfacla0s1_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 37,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfacua0s1_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 38,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfaca0s1_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 39,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfaca0s1u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 40,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbla0s1_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 41,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbua0s1_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 42,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftba0s1_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 43,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftba0s1u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 44,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfacla0s0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 45,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfacua0s0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 46,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfaca0s0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 47,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfaca0s0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 48,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbla0s0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 49,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbua0s0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 50,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftba0s0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 51,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftba0s0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 52,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsllia0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 53,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsraia0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 54,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrlia0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 55,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpslla0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 56,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsraa0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 57,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsrla0_P0S,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 58,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaccpa0_P0S,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 59,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpacsuma0_P0S,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 60,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovhla0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 61,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovhua0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 62,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackla0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 63,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackua0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 64,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackla0_h_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 65,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppackua0_h_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 66,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppacka0_b_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 67,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cppacka0u_b_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 } },
+ 4 },
+ { 68,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovlla0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 69,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovlua0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 70,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovula0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 71,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovuua0_w_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 } },
+ 4 },
+ { 72,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovla0_h_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 73,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovua0_h_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 } },
+ 4 },
+ { 74,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmova0_b_P0S,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 75,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsetla0_w_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 76,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsetua0_w_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 77,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpseta0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 78,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 79,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsadua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 80,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsada0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 81,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsada0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 82,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 83,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 84,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsa0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 85,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsa0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 86,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubacla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 87,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubacua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 88,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubaca0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 89,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubaca0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 90,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 91,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsubua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 92,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsuba0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 93,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsuba0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 94,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddacla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 95,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddacua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 96,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddaca0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 97,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddaca0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 98,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddla0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 99,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpaddua0_h_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 100,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadda0_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 101,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadda0u_b_P0S,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 254,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpge_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 254,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpge_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 255,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgeu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 255,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgeu_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 256,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpge_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 256,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpge_h_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 257,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpge_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 257,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpge_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 258,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgeu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 258,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgeu_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 259,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 259,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 260,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgtu_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 260,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgtu_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 261,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 261,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_h_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 262,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 262,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgt_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 263,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpgtu_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 263,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpgtu_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 264,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpne_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 264,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpne_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 265,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpne_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 265,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpne_h_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 266,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpne_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 266,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpne_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 267,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_w_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 267,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_w_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 268,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_h_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 268,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_h_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 269,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 269,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpeq_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 270,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcmpeqz_b_C3,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 270,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcmpeqz_b_P0S_P1,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 302,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovtocc_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 302,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovtocc_P0S_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 303,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovtocsar1_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 303,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovtocsar1_P0S_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 304,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovtocsar0_C3,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 304,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovtocsar0_P0S_P1,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 305,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovfrcc_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 305,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovfrcc_P0S_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 306,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovfrcsar1_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 306,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovfrcsar1_P0S_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 307,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmovfrcsar0_C3,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 307,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmovfrcsar0_P0S_P1,
+ 1,
+ 1,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 } },
+ 4 },
+ { 271,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdcastw_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 271,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdcastw_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 272,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cdcastuw_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 272,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cdcastuw_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 273,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcasth_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 273,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcasth_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 274,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcastuh_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 274,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcastuh_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 275,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcastb_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 275,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcastb_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 276,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcastub_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 276,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcastub_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 277,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcastb_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 277,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcastb_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 278,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpcastub_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 278,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpcastub_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 279,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextl_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 279,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextl_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 280,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextlu_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 280,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextlu_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 281,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextl_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 281,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextl_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 282,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextlu_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 282,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextlu_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 283,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextu_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 283,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextu_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 284,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextuu_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 284,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextuu_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 285,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextu_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 285,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextu_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 286,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpextuu_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 286,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpextuu_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 287,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpbcast_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 287,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpbcast_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 288,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpbcast_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 288,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpbcast_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 289,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpbcast_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 289,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpbcast_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 290,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpccadd_b_C3,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 290,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpccadd_b_P0S_P1,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 } },
+ 4 },
+ { 291,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cphadd_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 291,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cphadd_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 292,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cphadd_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 292,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cphadd_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 293,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cphadd_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 293,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cphadd_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 294,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cphaddu_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 294,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cphaddu_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 295,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpnorm_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 295,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpnorm_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 296,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpnorm_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 296,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpnorm_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 297,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpldz_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 297,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpldz_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 298,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpldz_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 298,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpldz_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 299,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsz_w_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 299,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsz_w_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 300,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsz_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 300,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsz_h_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 301,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpabsz_b_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 301,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpabsz_b_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 640,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmov_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 640,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpmov_P0S_P1,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 373,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpfsftbs1_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 373,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbs1_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 374,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpfsftbs0_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 374,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpfsftbs0_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 376,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpsel_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 376,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpsel_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 367,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpackl_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 367,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpackl_w_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 368,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpackl_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 368,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpackl_h_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 369,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpackl_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 369,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpackl_b_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 370,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpacku_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 1 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 370,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpacku_w_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2USI, 1 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 }, { 0, 0, cgen_regnum_operand_type_V2USI, 0 } },
+ 4 },
+ { 371,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpacku_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 371,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpacku_h_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 }, { 0, 0, cgen_regnum_operand_type_V4UHI, 0 } },
+ 4 },
+ { 372,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpunpacku_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 372,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpunpacku_b_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8UQI, 1 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 }, { 0, 0, cgen_regnum_operand_type_V8UQI, 0 } },
+ 4 },
+ { 386,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpadd3_w_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 386,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadd3_w_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V2SI, 1 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 }, { 0, 0, cgen_regnum_operand_type_V2SI, 0 } },
+ 4 },
+ { 387,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpadd3_h_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 387,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadd3_h_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V4HI, 1 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 }, { 0, 0, cgen_regnum_operand_type_V4HI, 0 } },
+ 4 },
+ { 388,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpadd3_b_C3,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 388,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cpadd3_b_P0S_P1,
+ 3,
+ 1,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_V8QI, 1 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 }, { 0, 0, cgen_regnum_operand_type_V8QI, 0 } },
+ 4 },
+ { 102,
+ ISA_EXT1|ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_c0nop_P0_P0S,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 4 },
+ { 202,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cpmoviu_h_C3,
+ 2,
+ 1,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_V4UHI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 632,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmovh_rn_crm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 632,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmovh_rn_crm_p0,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 633,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmovh_crn_rm,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 633,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmovh_crn_rm_p0,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 634,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmovc_rn_ccrm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 64, 80, cgen_regnum_operand_type_DEFAULT, 0 } },
+ 4 },
+ { 634,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmovc_rn_ccrm_p0,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 64, 80, cgen_regnum_operand_type_DEFAULT, 0 } },
+ 4 },
+ { 635,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmovc_ccrn_rm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 64, 80, cgen_regnum_operand_type_DEFAULT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 635,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmovc_ccrn_rm_p0,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 64, 80, cgen_regnum_operand_type_DEFAULT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 636,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmov_rn_crm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 636,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmov_rn_crm_p0,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 } },
+ 4 },
+ { 637,
+ ISA_EXT1,
+ GROUP_NORMAL,
+ CODE_FOR_cgen_intrinsic_cmov_crn_rm,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 637,
+ ISA_EXT1,
+ GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cmov_crn_rm_p0,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 389,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bsrv,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 390,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_jsrv,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 391,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_synccp,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 392,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bcpaf,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 393,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bcpat,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 394,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bcpne,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 395,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bcpeq,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 396,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 397,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcpm1,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 398,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 399,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcpm1,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 400,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhcpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 401,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_shcpm1,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 402,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbcpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 403,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sbcpm1,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 404,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 405,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcpm0,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 406,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 407,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcpm0,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 408,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhcpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 409,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_shcpm0,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 410,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbcpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 411,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sbcpm0,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 412,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 413,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcpa,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 414,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 415,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcpa,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 416,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhcpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 417,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_shcpa,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 418,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbcpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 419,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sbcpa,
+ 3,
+ 0,
+ { 1, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 420,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcp16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 421,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcp16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 422,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcp16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 423,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcp16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 424,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcpi,
+ 2,
+ 0,
+ { 0, 1, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 } },
+ 2 },
+ { 425,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcpi,
+ 2,
+ 0,
+ { 1, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 } },
+ 2 },
+ { 426,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcpi,
+ 2,
+ 0,
+ { 0, 1, 1 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 } },
+ 2 },
+ { 427,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcpi,
+ 2,
+ 0,
+ { 1, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 } },
+ 2 },
+ { 428,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lmcp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 429,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_smcp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_CP_DATA_BUS_INT, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 430,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lwcp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 431,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swcp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 432,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ssubu,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 433,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_saddu,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 434,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ssub,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 435,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sadd,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 436,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_clipu,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 437,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_clip,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 438,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_maxu,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 439,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_minu,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 440,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_max,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 441,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_min,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 442,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ave,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 443,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_abs,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 444,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldz,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 445,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_dbreak,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 446,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_dret,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 447,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_divu,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 448,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_div,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 449,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_maddru,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 450,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_maddr,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 451,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_maddu,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 452,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_madd,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 453,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_mulru,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 454,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_mulr,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 455,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_mulu,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 456,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_mul,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 457,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cache,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 458,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_tas,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 459,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_btstm,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 460,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bnotm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_POINTER, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 461,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bclrm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_POINTER, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 462,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bsetm,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_POINTER, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 463,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldcb,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 464,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stcb,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 465,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_syncm,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 466,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_break,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 467,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_swi,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 468,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sleep,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 469,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_halt,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 470,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_reti,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 471,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ei,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 472,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_di,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 473,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldc,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 32, 16, cgen_regnum_operand_type_DEFAULT, 0 } },
+ 2 },
+ { 474,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldc_lo,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 475,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldc_hi,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 476,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldc_lp,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 477,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stc,
+ 2,
+ 0,
+ { 1, 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 32, 16, cgen_regnum_operand_type_DEFAULT, 0 } },
+ 2 },
+ { 478,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stc_lo,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 479,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stc_hi,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 480,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stc_lp,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 481,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_erepeat,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 482,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_repeat,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 483,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ret,
+ 0,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_DEFAULT, 0} },
+ 2 },
+ { 484,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_jsr,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 485,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_jmp24,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 486,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_jmp,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 488,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bsr12,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 2 },
+ { 487,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bsr24,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 489,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bne,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 490,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_beq,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 491,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bgei,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 492,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_blti,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 493,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bnei,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 494,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_beqi,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 4 },
+ { 495,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bnez,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 2 },
+ { 496,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_beqz,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 2 },
+ { 497,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_bra,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LABEL, 0 } },
+ 2 },
+ { 498,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_fsft,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 499,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sll3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 500,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_slli,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 501,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_srli,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 502,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_srai,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 503,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sll,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 504,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_srl,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 505,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sra,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 506,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_xor3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 507,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_and3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 508,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_or3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 509,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_nor,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 510,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_xor,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 511,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_and,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 512,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_or,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 513,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sltu3x,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 514,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_slt3x,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 515,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_add3x,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 516,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sl2ad3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 517,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sl1ad3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 518,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sltu3i,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 519,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_slt3i,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 520,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sltu3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 521,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_slt3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 522,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_neg,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 523,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sbvck3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 524,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sub,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 525,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_advck3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 526,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_add3i,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 527,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_add,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 528,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_add3,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 529,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_movh,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 530,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_movu16,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 531,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_movu24,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 533,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_movi8,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 532,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_movi16,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 534,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_mov,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 535,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ssarb,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 536,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_extuh,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 537,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_extub,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 538,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_exth,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 539,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_extb,
+ 1,
+ 0,
+ { 0, 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 } },
+ 2 },
+ { 540,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lw24,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 541,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sw24,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 542,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhu16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 543,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbu16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 544,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lw16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 545,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lh16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 546,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lb16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 547,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sw16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 548,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sh16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 549,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sb16,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 550,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhu_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 551,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbu_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 552,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lw_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 553,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lh_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 554,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lb_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 555,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sw_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 556,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sh_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 557,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sb_tp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 558,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lw_sp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 559,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sw_sp,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 2 },
+ { 560,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhu,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 561,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbu,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 562,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lw,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 563,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lh,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 564,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lb,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 565,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sw,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 566,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sh,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 567,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sb,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 568,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_dsp1,
+ 2,
+ 0,
+ { 0, 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 569,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_dsp0,
+ 1,
+ 0,
+ { 0 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 570,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_dsp,
+ 3,
+ 0,
+ { 0, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 571,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_uci,
+ 3,
+ 0,
+ { 0, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 572,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhucpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 573,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbucpm1,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 574,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhucpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 575,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbucpm0,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 576,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhucpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 577,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbucpa,
+ 3,
+ 0,
+ { 0, 1, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 578,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhucp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 579,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lhcp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 580,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_shcp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 581,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbucp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 582,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_lbcp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 583,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_sbcp,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_SI, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 584,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_casw3,
+ 3,
+ 0,
+ { 0, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 585,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_cash3,
+ 3,
+ 0,
+ { 0, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 586,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_casb3,
+ 3,
+ 0,
+ { 0, 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 } },
+ 4 },
+ { 587,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_prefd,
+ 3,
+ 0,
+ { 0, 1, 2 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 4 },
+ { 588,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_pref,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 589,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_ldcb_r,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 1 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 },
+ { 590,
+ ISA_MEP|ISA_EXT1,
+ GROUP_NORMAL|GROUP_VLIW,
+ CODE_FOR_cgen_intrinsic_stcb_r,
+ 2,
+ 0,
+ { 0, 1 },
+ { { 0, 0, cgen_regnum_operand_type_LONG, 0 }, { 0, 0, cgen_regnum_operand_type_POINTER, 0 } },
+ 2 }
+};
+#endif
diff --git a/gcc/config/mep/mep-ivc2.cpu b/gcc/config/mep/mep-ivc2.cpu
new file mode 100644
index 000000000..1e0025185
--- /dev/null
+++ b/gcc/config/mep/mep-ivc2.cpu
@@ -0,0 +1,9776 @@
+; Toshiba MeP IVC2 Coprocessor description. -*- scheme -*-
+; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+; Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+;------------------------------------------------------------------------------
+; MeP-Integrator will redefine the isa pmacros below to allow the bit widths
+; specified below for each ME_MODULE using this coprocessor.
+; IVC2 uses the isas as follows:
+; C3 32
+; P0S 16
+; P0 48
+; P1 64
+;------------------------------------------------------------------------------
+; begin-isas
+(define-pmacro ivc2-core-isa () (ISA ext_core1))
+(define-pmacro ivc2-16-isa () (ISA ext_cop1_16))
+(define-pmacro ivc2-32-isa () (ISA ext_cop1_32))
+(define-pmacro ivc2-48-isa () (ISA ext_cop1_48))
+(define-pmacro ivc2-64-isa () (ISA ext_cop1_64))
+(define-pmacro all-ivc2-isas () (ISA ext_core1,ext_cop1_16,ext_cop1_32,ext_cop1_48,ext_cop1_64))
+(define-pmacro ivc2-p0s-isa () (ISA ext_cop1_16))
+(define-pmacro ivc2-p0-isa () (ISA ext_cop1_48))
+(define-pmacro ivc2-p0s-p0-isa () (ISA ext_cop1_16,ext_cop1_48))
+(define-pmacro ivc2-p1-isa () (ISA ext_cop1_64))
+(define-pmacro ivc2-p0s-p1-isa () (ISA ext_cop1_16,ext_cop1_64))
+(define-pmacro ivc2-p0-p1-isa () (ISA ext_cop1_48,ext_cop1_64))
+(define-pmacro ivc2-p0s-p0-p1-isa () (ISA ext_cop1_16,ext_cop1_48,ext_cop1_64))
+(define-pmacro ivc2-c3-isa () (ISA ext_cop1_32))
+; end-isas
+
+; register definitions
+; ---------------------
+; NOTE: This exists solely for the purpose of providing the proper register names for this coprocessor.
+; GDB will use the hardware table generated from this declaration. The operands use h-cr
+; from mep-core.cpu so that SID's semantic trace will be consistent between
+; the core and the coprocessor but use parse/print handlers which reference the hardware table
+; generated from this declarations
+(define-hardware
+ (name h-cr-ivc2)
+ (comment "64-bit coprocessor registers for ivc2 coprocessor")
+ (attrs VIRTUAL all-mep-core-isas (CDATA CP_DATA_BUS_INT))
+ (type register DI (64))
+ (set (index newval) (c-call VOID "h_cr64_set" index newval))
+ (get (index) (c-call DI "h_cr64_get" index))
+ (indices keyword "$c" (.map -reg-pair (.iota 8)))
+)
+
+; NOTE: This exists solely for the purpose of providing the proper register names for this coprocessor.
+; GDB will use the hardware table generated from this declaration. The operands use h-ccr
+; from mep-core.cpu so that SID's semantic trace will be consistent between
+; the core and the coprocessor but use parse/print handlers which reference the hardware table
+; generated from this declarations
+(define-hardware
+ (name h-ccr-ivc2)
+ (comment "Coprocessor control registers for ivc2 coprocessor")
+ (attrs VIRTUAL all-mep-isas)
+ (type register SI (32))
+ (set (index newval) (c-call VOID "h_ccr_set" index newval))
+ (get (index) (c-call SI "h_ccr_get" index))
+ (indices keyword ""
+ (.splice
+
+ ($csar0 0)
+ ($cc 1)
+ ($cofr0 4)
+ ($cofr1 5)
+ ($cofa0 6)
+ ($cofa1 7)
+
+ ($csar1 15)
+
+ ($acc0_0 16)
+ ($acc0_1 17)
+ ($acc0_2 18)
+ ($acc0_3 19)
+ ($acc0_4 20)
+ ($acc0_5 21)
+ ($acc0_6 22)
+ ($acc0_7 23)
+
+ ($acc1_0 24)
+ ($acc1_1 25)
+ ($acc1_2 26)
+ ($acc1_3 27)
+ ($acc1_4 28)
+ ($acc1_5 29)
+ ($acc1_6 30)
+ ($acc1_7 31)
+ (.unsplice (.map -ccr-reg-pair (.iota 32)))
+ )
+ )
+)
+
+(define-attr
+ (type bitset)
+ (for insn)
+ (name SLOTS)
+ (comment "slots for which this opcode is valid - c3, p0s, p0, p1")
+ (values CORE C3 P0S P0 P1)
+ (default CORE)
+ )
+
+;-----------------------------------------------------------------------------
+; macros for standard opcodes for each slot type
+
+; C3
+(dnf f-ivc2-2u4 "sub opcode field" (all-mep-isas) 4 2)
+(dnf f-ivc2-3u4 "sub opcode field" (all-mep-isas) 4 3)
+(dnf f-ivc2-8u4 "sub opcode field" (all-mep-isas) 4 8)
+(df f-ivc2-8s4 "sub opcode field" (all-mep-isas) 4 8 INT #f #f)
+(dnf f-ivc2-1u6 "sub opcode field" (all-mep-isas) 6 1)
+(dnf f-ivc2-2u6 "sub opcode field" (all-mep-isas) 6 2)
+(dnf f-ivc2-3u6 "sub opcode field" (all-mep-isas) 6 3)
+(dnf f-ivc2-6u6 "sub opcode field" (all-mep-isas) 6 6)
+(dnf f-ivc2-5u7 "sub opcode field" (all-mep-isas) 7 5)
+(dnf f-ivc2-4u8 "sub opcode field" (all-mep-isas) 8 4)
+(dnf f-ivc2-3u9 "sub opcode field" (all-mep-isas) 9 3)
+(dnf f-ivc2-5u16 "sub opcode field" (all-mep-isas) 16 5)
+(dnf f-ivc2-5u21 "sub opcode field" (all-mep-isas) 21 5)
+(dnf f-ivc2-5u26 "sub opcode field" (all-mep-isas) 26 5)
+(dnf f-ivc2-1u31 "sub opcode field" (all-mep-isas) 31 1)
+
+(dnf f-ivc2-4u16 "sub opcode field" (all-mep-isas) 16 4)
+(dnf f-ivc2-4u20 "sub opcode field" (all-mep-isas) 20 4)
+(dnf f-ivc2-4u24 "sub opcode field" (all-mep-isas) 24 4)
+(dnf f-ivc2-4u28 "sub opcode field" (all-mep-isas) 28 4)
+
+; P0S/P0/P1
+(dnf f-ivc2-2u0 "sub opcode field" (all-mep-isas) 0 2)
+(dnf f-ivc2-3u0 "sub opcode field" (all-mep-isas) 0 3)
+(dnf f-ivc2-4u0 "sub opcode field" (all-mep-isas) 0 4)
+(dnf f-ivc2-5u0 "sub opcode field" (all-mep-isas) 0 5)
+(dnf f-ivc2-8u0 "sub opcode field" (all-mep-isas) 0 8)
+(df f-ivc2-8s0 "sub opcode field" (all-mep-isas) 0 8 INT #f #f)
+(dnf f-ivc2-6u2 "sub opcode field" (all-mep-isas) 2 6)
+(dnf f-ivc2-5u3 "sub opcode field" (all-mep-isas) 3 5)
+(dnf f-ivc2-4u4 "sub opcode field" (all-mep-isas) 4 4)
+(dnf f-ivc2-3u5 "sub opcode field" (all-mep-isas) 5 3)
+(dnf f-ivc2-5u8 "sub opcode field" (all-mep-isas) 8 5)
+(dnf f-ivc2-4u10 "sub opcode field" (all-mep-isas) 10 4)
+(dnf f-ivc2-3u12 "sub opcode field" (all-mep-isas) 12 3)
+(dnf f-ivc2-5u13 "sub opcode field" (all-mep-isas) 13 5)
+(dnf f-ivc2-2u18 "sub opcode field" (all-mep-isas) 18 2)
+(dnf f-ivc2-5u18 "sub opcode field" (all-mep-isas) 18 5)
+(dnf f-ivc2-8u20 "sub opcode field" (all-mep-isas) 20 8)
+(df f-ivc2-8s20 "sub opcode field" (all-mep-isas) 20 8 INT #f #f)
+(dnf f-ivc2-5u23 "sub opcode field" (all-mep-isas) 23 5)
+(dnf f-ivc2-2u23 "sub opcode field" (all-mep-isas) 23 2)
+(dnf f-ivc2-3u25 "sub opcode field" (all-mep-isas) 25 3)
+
+(dnmf f-ivc2-imm16p0 "16-bit immediate in P0/P1" (all-mep-isas) UINT
+ (f-ivc2-8u0 f-ivc2-8u20)
+ (sequence () ; insert
+ (set (ifield f-ivc2-8u0) (and (srl (ifield f-ivc2-imm16p0) 8) #xff))
+ (set (ifield f-ivc2-8u20) (and (ifield f-ivc2-imm16p0) #xff))
+ )
+ (sequence () ; extract
+ (set (ifield f-ivc2-imm16p0) (or (ifield f-ivc2-8u20)
+ (sll (ifield f-ivc2-8u0) 8)))
+ )
+ )
+
+(dnmf f-ivc2-simm16p0 "16-bit immediate in P0/P1" (all-mep-isas) INT
+ (f-ivc2-8u0 f-ivc2-8u20)
+ (sequence () ; insert
+ (set (ifield f-ivc2-8u0) (and (srl (ifield f-ivc2-simm16p0) 8) #xff))
+ (set (ifield f-ivc2-8u20) (and (ifield f-ivc2-simm16p0) #xff))
+ )
+ (sequence () ; extract
+ (set (ifield f-ivc2-simm16p0) (or (ifield f-ivc2-8u20)
+ (sll (ifield f-ivc2-8u0) 8)))
+ )
+ )
+
+(dnop ivc2_csar0 "ivc2_csar0" (all-ivc2-isas) h-ccr-ivc2 0)
+(dnop ivc2_cc "ivc2_cc" (all-ivc2-isas) h-ccr-ivc2 1)
+(dnop ivc2_cofr0 "ivc2_cofr0" (all-ivc2-isas) h-ccr-ivc2 4)
+(dnop ivc2_cofr1 "ivc2_cofr1" (all-ivc2-isas) h-ccr-ivc2 5)
+(dnop ivc2_cofa0 "ivc2_cofa0" (all-ivc2-isas) h-ccr-ivc2 6)
+(dnop ivc2_cofa1 "ivc2_cofa1" (all-ivc2-isas) h-ccr-ivc2 7)
+
+(dnop ivc2_csar1 "ivc2_csar1" (all-ivc2-isas) h-ccr-ivc2 15)
+
+(dnop ivc2_acc0_0 "acc0_0" (all-ivc2-isas) h-ccr-ivc2 16)
+(dnop ivc2_acc0_1 "acc0_1" (all-ivc2-isas) h-ccr-ivc2 17)
+(dnop ivc2_acc0_2 "acc0_2" (all-ivc2-isas) h-ccr-ivc2 18)
+(dnop ivc2_acc0_3 "acc0_3" (all-ivc2-isas) h-ccr-ivc2 19)
+(dnop ivc2_acc0_4 "acc0_4" (all-ivc2-isas) h-ccr-ivc2 20)
+(dnop ivc2_acc0_5 "acc0_5" (all-ivc2-isas) h-ccr-ivc2 21)
+(dnop ivc2_acc0_6 "acc0_6" (all-ivc2-isas) h-ccr-ivc2 22)
+(dnop ivc2_acc0_7 "acc0_7" (all-ivc2-isas) h-ccr-ivc2 23)
+
+(dnop ivc2_acc1_0 "acc1_0" (all-ivc2-isas) h-ccr-ivc2 24)
+(dnop ivc2_acc1_1 "acc1_1" (all-ivc2-isas) h-ccr-ivc2 25)
+(dnop ivc2_acc1_2 "acc1_2" (all-ivc2-isas) h-ccr-ivc2 26)
+(dnop ivc2_acc1_3 "acc1_3" (all-ivc2-isas) h-ccr-ivc2 27)
+(dnop ivc2_acc1_4 "acc1_4" (all-ivc2-isas) h-ccr-ivc2 28)
+(dnop ivc2_acc1_5 "acc1_5" (all-ivc2-isas) h-ccr-ivc2 29)
+(dnop ivc2_acc1_6 "acc1_6" (all-ivc2-isas) h-ccr-ivc2 30)
+(dnop ivc2_acc1_7 "acc1_7" (all-ivc2-isas) h-ccr-ivc2 31)
+
+(dnop croc "$CRo C3" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u7)
+(dnop crqc "$CRq C3" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u21)
+(dnop crpc "$CRp C3" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u26)
+
+(dnop ivc-x-6-1 "filler" (all-mep-isas) h-uint f-ivc2-1u6)
+(dnop ivc-x-6-2 "filler" (all-mep-isas) h-uint f-ivc2-2u6)
+(dnop ivc-x-6-3 "filler" (all-mep-isas) h-uint f-ivc2-3u6)
+
+
+(dnop imm3p4 "Imm3p4" (all-mep-isas) h-uint f-ivc2-3u4)
+(dnop imm3p9 "Imm3p9" (all-mep-isas) h-uint f-ivc2-3u9)
+(dnop imm4p8 "Imm4p8" (all-mep-isas) h-uint f-ivc2-4u8)
+(dnop imm5p7 "Imm5p7" (all-mep-isas) h-uint f-ivc2-5u7)
+(dnop imm6p6 "Imm6p6" (all-mep-isas) h-uint f-ivc2-6u6)
+(dnop imm8p4 "Imm8p4" (all-mep-isas) h-uint f-ivc2-8u4)
+(dnop simm8p4 "sImm8p4" (all-mep-isas) h-sint f-ivc2-8s4)
+
+(dnop imm3p5 "Imm3p5" (all-mep-isas) h-uint f-ivc2-3u5)
+(dnop imm3p12 "Imm3p12" (all-mep-isas) h-uint f-ivc2-3u12)
+(dnop imm4p4 "Imm4p4" (all-mep-isas) h-uint f-ivc2-4u4)
+(dnop imm4p10 "Imm4p10" (all-mep-isas) h-uint f-ivc2-4u10)
+(dnop imm5p8 "Imm5p8" (all-mep-isas) h-uint f-ivc2-5u8)
+(dnop imm5p3 "Imm5p3" (all-mep-isas) h-uint f-ivc2-5u3)
+(dnop imm6p2 "Imm6p2" (all-mep-isas) h-uint f-ivc2-6u2)
+(dnop imm5p23 "Imm5p23" (all-mep-isas) h-uint f-ivc2-5u23)
+(dnop imm3p25 "Imm3p25" (all-mep-isas) h-uint f-ivc2-3u25)
+(dnop imm8p0 "Imm8p0" (all-mep-isas) h-uint f-ivc2-8u0)
+(dnop simm8p0 "sImm8p0" (all-mep-isas) h-sint f-ivc2-8s0)
+(dnop simm8p20 "sImm8p20" (all-mep-isas) h-sint f-ivc2-8s20)
+(dnop imm8p20 "Imm8p20" (all-mep-isas) h-uint f-ivc2-8u20)
+
+(dnop crop "$CRo Pn" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u23)
+(dnop crqp "$CRq Pn" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u13)
+(dnop crpp "$CRp Pn" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-5u18)
+
+(dnop ivc-x-0-2 "filler" (all-mep-isas) h-uint f-ivc2-2u0)
+(dnop ivc-x-0-3 "filler" (all-mep-isas) h-uint f-ivc2-3u0)
+(dnop ivc-x-0-4 "filler" (all-mep-isas) h-uint f-ivc2-4u0)
+(dnop ivc-x-0-5 "filler" (all-mep-isas) h-uint f-ivc2-5u0)
+
+(dpop imm16p0 "Imm16p0" (all-mep-isas) h-uint f-ivc2-imm16p0 "unsigned16_range")
+(dpop simm16p0 "sImm16p0" (all-mep-isas) h-sint f-ivc2-simm16p0 "signed16_range")
+
+
+(df f-ivc2-ccrn-c3hi "ccrn hi 2u28" (all-mep-isas) 28 2 UINT #f #f)
+(df f-ivc2-ccrn-c3lo "ccrn lo 4u4" (all-mep-isas) 4 4 UINT #f #f)
+
+(df f-ivc2-crn "ivc2 crn" (all-mep-isas) 0 4 UINT #f #f)
+(df f-ivc2-crm "ivc2 crm" (all-mep-isas) 4 4 UINT #f #f)
+(df f-ivc2-ccrn-h1 "ccrx hi 1u20" (all-mep-isas) 20 1 UINT #f #f)
+(df f-ivc2-ccrn-h2 "ccrx hi 2u20" (all-mep-isas) 20 2 UINT #f #f)
+(df f-ivc2-ccrn-lo "ccrx lo 4u0" (all-mep-isas) 0 4 UINT #f #f)
+(df f-ivc2-cmov1 "ivc2 cmov op1" (all-mep-isas) 8 12 UINT #f #f)
+(df f-ivc2-cmov2 "ivc2 cmov op2" (all-mep-isas) 22 6 UINT #f #f)
+(df f-ivc2-cmov3 "ivc2 cmov op2" (all-mep-isas) 28 4 UINT #f #f)
+
+(define-multi-ifield
+ (name f-ivc2-ccrn-c3)
+ (comment "Coprocessor register number field")
+ (attrs all-mep-isas)
+ (mode UINT)
+ (subfields f-ivc2-ccrn-c3hi f-ivc2-ccrn-c3lo)
+ (insert (sequence ()
+ (set (ifield f-ivc2-ccrn-c3hi) (and (srl (ifield f-ivc2-ccrn-c3) 4) #x3))
+ (set (ifield f-ivc2-ccrn-c3lo) (and (ifield f-ivc2-ccrn-c3) #xf))))
+ (extract (set (ifield f-ivc2-ccrn-c3)
+ (or (sll (ifield f-ivc2-ccrn-c3hi) 4)
+ (ifield f-ivc2-ccrn-c3lo))))
+ )
+
+(define-multi-ifield
+ (name f-ivc2-ccrn)
+ (comment "Coprocessor control register number field")
+ (attrs all-mep-isas)
+ (mode UINT)
+ (subfields f-ivc2-ccrn-h2 f-ivc2-ccrn-lo)
+ (insert (sequence ()
+ (set (ifield f-ivc2-ccrn-h2) (and (srl (ifield f-ivc2-ccrn) 4) #x3))
+ (set (ifield f-ivc2-ccrn-lo) (and (ifield f-ivc2-ccrn) #xf))))
+ (extract (set (ifield f-ivc2-ccrn)
+ (or (sll (ifield f-ivc2-ccrn-h2) 4)
+ (ifield f-ivc2-ccrn-lo))))
+ )
+
+(define-multi-ifield
+ (name f-ivc2-crnx)
+ (comment "Coprocessor register number field")
+ (attrs all-mep-isas)
+ (mode UINT)
+ (subfields f-ivc2-ccrn-h1 f-ivc2-ccrn-lo)
+ (insert (sequence ()
+ (set (ifield f-ivc2-ccrn-h1) (and (srl (ifield f-ivc2-crnx) 4) #x1))
+ (set (ifield f-ivc2-ccrn-lo) (and (ifield f-ivc2-crnx) #xf))))
+ (extract (set (ifield f-ivc2-crnx)
+ (or (sll (ifield f-ivc2-ccrn-h1) 4)
+ (ifield f-ivc2-ccrn-lo))))
+ )
+
+(dnop ivc2rm "reg Rm" (all-mep-isas) h-gpr f-ivc2-crm)
+(dnop ivc2crn "copro Rn (0-31, 64-bit" (all-mep-isas (CDATA CP_DATA_BUS_INT)) h-cr64 f-ivc2-crnx)
+(dnop ivc2ccrn "copro control reg CCRn" (all-mep-isas (CDATA REGNUM)) h-ccr-ivc2 f-ivc2-ccrn)
+(dnop ivc2c3ccrn "copro control reg CCRn" (all-mep-isas (CDATA REGNUM)) h-ccr-ivc2 f-ivc2-ccrn-c3)
+
+; [--][--] [--][--] [--][--] [--]
+; 0----+-- --1----+ ----2--- -+--
+; 01234567 89012345 67890123 4567
+
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N000 cmov =crn,rm
+(dni cmov-crn-rm
+ "cmov CRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmov1"))
+ "cmov $crnx64,$rm"
+ (+ MAJ_15 crnx64 rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 0) (f-ivc2-4u24 0) (f-29 0) (f-30 0) (f-31 0))
+ (set crnx64 (or (zext DI rm) (and DI crnx64 #xffffffff00000000)))
+ ()
+)
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N001 cmov =rm,crn
+(dni cmov-rn-crm
+ "cmov Rm,CRn"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmov2"))
+ "cmov $rm,$crnx64"
+ (+ MAJ_15 crnx64 rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 0) (f-ivc2-4u24 0) (f-29 0) (f-30 0) (f-31 1))
+ (set rm crnx64)
+ ()
+)
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N000 cmov =crn,rm
+(dni cmovc-ccrn-rm
+ "cmovc CCRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmovc1"))
+ "cmovc $ivc2c3ccrn,$rm"
+ (+ MAJ_15 ivc2c3ccrn rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 0) (f-ivc2-4u24 0) (f-30 1) (f-31 0))
+ (set ivc2c3ccrn rm)
+ ()
+)
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N001 cmov =rm,crn
+(dni cmovc-rn-ccrm
+ "cmovc Rm,CCRn"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmovc2"))
+ "cmovc $rm,$ivc2c3ccrn"
+ (+ MAJ_15 ivc2c3ccrn rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 0) (f-ivc2-4u24 0) (f-30 1) (f-31 1))
+ (set rm ivc2c3ccrn)
+ ()
+)
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N000 cmov =crn,rm
+(dni cmovh-crn-rm
+ "cmovh CRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmovh1"))
+ "cmovh $crnx64,$rm"
+ (+ MAJ_15 crnx64 rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 1) (f-ivc2-4u24 0) (f-29 0) (f-30 0) (f-31 0))
+ (set crnx64 (or (sll (zext DI rm) 32) (and DI crnx64 #xffffffff)))
+ ()
+)
+
+; 1111 nnnn mmmm 0111 1111 0000 0000 N001 cmov =rm,crn
+(dni cmovh-rn-crm
+ "cmovh Rm,CRn"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cmovh2"))
+ "cmovh $rm,$crnx64"
+ (+ MAJ_15 crnx64 rm (f-sub4 #x7)
+ (f-ivc2-4u16 #xF) (f-ivc2-4u20 1) (f-ivc2-4u24 0) (f-29 0) (f-30 0) (f-31 1))
+ (set rm (srl crnx64 32))
+ ()
+)
+
+; nnnnmmmm 11110000 0000N000 0000 cmov =crn,rm
+(dni cmov-crn-rm-p0
+ "cmov CRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmov1"))
+ "cmov $ivc2crn,$ivc2rm"
+ (+ ivc2crn ivc2rm (f-ivc2-cmov1 #xf00) (f-21 0) (f-ivc2-cmov2 #x00) (f-ivc2-cmov3 0))
+ (set ivc2crn ivc2rm)
+ ()
+)
+
+; nnnnmmmm 11110000 0000N001 0000 cmov =rm,crn
+(dni cmov-rn-crm-p0
+ "cmov Rm,CRn"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmov2"))
+ "cmov $ivc2rm,$ivc2crn"
+ (+ ivc2crn ivc2rm (f-ivc2-cmov1 #xf00) (f-21 0) (f-ivc2-cmov2 #x10) (f-ivc2-cmov3 0))
+ (set ivc2rm ivc2crn)
+ ()
+)
+
+; nnnnmmmm 11110000 0000NN10 0000 cmovc =ccrn,rm
+(dni cmovc-ccrn-rm-p0
+ "cmovc CCRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmovc1"))
+ "cmovc $ivc2ccrn,$ivc2rm"
+ (+ ivc2ccrn ivc2rm (f-ivc2-cmov1 #xf00) (f-ivc2-cmov2 #x20) (f-ivc2-cmov3 0))
+ (set ivc2ccrn ivc2rm)
+ ()
+)
+
+; nnnnmmmm 11110000 0000NN11 0000 cmovc =rm,ccrn
+(dni cmovc-rn-ccrm-p0
+ "cmovc Rm,CCRn"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmovc2"))
+ "cmovc $ivc2rm,$ivc2ccrn"
+ (+ ivc2ccrn ivc2rm (f-ivc2-cmov1 #xf00) (f-ivc2-cmov2 #x30) (f-ivc2-cmov3 0))
+ (set ivc2rm ivc2ccrn)
+ ()
+)
+
+; nnnnmmmm 11110001 0000N000 0000 cmovh =crn,rm
+(dni cmovh-crn-rm-p0
+ "cmovh CRn,Rm"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmovh1"))
+ "cmovh $ivc2crn,$ivc2rm"
+ (+ ivc2crn ivc2rm (f-ivc2-cmov1 #xf10) (f-21 0) (f-ivc2-cmov2 #x00) (f-ivc2-cmov3 0))
+ (set ivc2crn (or (sll (zext DI ivc2rm) 32) (and DI ivc2crn #xffffffff)))
+ ()
+)
+
+; nnnnmmmm 11110001 0000N001 0000 cmovh =rm,crn
+(dni cmovh-rn-crm-p0
+ "cmovh Rm,CRn"
+ (OPTIONAL_CP_INSN ivc2-p0-isa (SLOTS P0) (INTRINSIC "cmovh2"))
+ "cmovh $ivc2rm,$ivc2crn"
+ (+ ivc2crn ivc2rm (f-ivc2-cmov1 #xf10) (f-21 0) (f-ivc2-cmov2 #x10) (f-ivc2-cmov3 0))
+ (set ivc2rm (srl ivc2crn 32))
+ ()
+)
+
+
+; 1111 000 ooooo 0111 00000 qqqqq ppppp 0 cpadd3.b =croc,crqc,crpc (c3_1)
+(dni cpadd3_b_C3 "cpadd3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpadd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpadd3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpadd3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00000 qqqqq ppppp 0 cpadd3.h =croc,crqc,crpc (c3_1)
+(dni cpadd3_h_C3 "cpadd3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpadd3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpadd3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpadd3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00000 qqqqq ppppp 0 cpadd3.w =croc,crqc,crpc (c3_1)
+(dni cpadd3_w_C3 "cpadd3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpadd3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpadd3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpadd3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 00000 qqqqq ppppp 0 cdadd3 =croc,crqc,crpc (c3_1)
+(dni cdadd3_C3 "cdadd3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdadd3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdadd3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdadd3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00000 qqqqq ppppp 0 cpsub3.b =croc,crqc,crpc (c3_1)
+(dni cpsub3_b_C3 "cpsub3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsub3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsub3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00000 qqqqq ppppp 0 cpsub3.h =croc,crqc,crpc (c3_1)
+(dni cpsub3_h_C3 "cpsub3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsub3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsub3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsub3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00000 qqqqq ppppp 0 cpsub3.w =croc,crqc,crpc (c3_1)
+(dni cpsub3_w_C3 "cpsub3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsub3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsub3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsub3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 00000 qqqqq ppppp 0 cdsub3 =croc,crqc,crpc (c3_1)
+(dni cdsub3_C3 "cdsub3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsub3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsub3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdsub3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00001 qqqqq ppppp 0 cpand3 =croc,crqc,crpc (c3_1)
+(dni cpand3_C3 "cpand3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpand3") (CPTYPE VECT) (CRET FIRST))
+ "cpand3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpand3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00001 qqqqq ppppp 0 cpor3 =croc,crqc,crpc (c3_1)
+(dni cpor3_C3 "cpor3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpor3") (CPTYPE VECT) (CRET FIRST))
+ "cpor3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpor3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00001 qqqqq ppppp 0 cpnor3 =croc,crqc,crpc (c3_1)
+(dni cpnor3_C3 "cpnor3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpnor3") (CPTYPE VECT) (CRET FIRST))
+ "cpnor3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpnor3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 00001 qqqqq ppppp 0 cpxor3 =croc,crqc,crpc (c3_1)
+(dni cpxor3_C3 "cpxor3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpxor3") (CPTYPE VECT) (CRET FIRST))
+ "cpxor3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpxor3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00001 qqqqq ppppp 0 cpsel =croc,crqc,crpc (c3_1)
+(dni cpsel_C3 "cpsel $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsel") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpsel $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsel" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 iii ooooo 0111 11101 qqqqq ppppp 0 cpfsftbi =croc,crqc,crpc,imm3p4 (c3_1)
+(dni cpfsftbi_C3 "cpfsftbi $croc,$crqc,$crpc,imm3p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpfsftbi") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cpfsftbi $croc,$crqc,$crpc,$imm3p4"
+ (+ MAJ_15 imm3p4 croc (f-sub4 7)
+ (f-ivc2-5u16 #x1d) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpfsftbi" pc crqc crpc imm3p4)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00001 qqqqq ppppp 0 cpfsftbs0 =croc,crqc,crpc (c3_1)
+(dni cpfsftbs0_C3 "cpfsftbs0 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpfsftbs0") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpfsftbs0 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpfsftbs0" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 00001 qqqqq ppppp 0 cpfsftbs1 =croc,crqc,crpc (c3_1)
+(dni cpfsftbs1_C3 "cpfsftbs1 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpfsftbs1") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpfsftbs1 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpfsftbs1" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00010 qqqqq ppppp 0 cpunpacku.b =croc,crqc,crpc (c3_1)
+(dni cpunpacku_b_C3 "cpunpacku.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpacku_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpunpacku.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpacku_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00010 qqqqq ppppp 0 cpunpacku.h =croc,crqc,crpc (c3_1)
+(dni cpunpacku_h_C3 "cpunpacku.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpacku_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpunpacku.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpacku_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00010 qqqqq ppppp 0 cpunpacku.w =croc,crqc,crpc (c3_1)
+(dni cpunpacku_w_C3 "cpunpacku.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpacku_w") (CPTYPE V2USI) (CRET FIRST))
+ "cpunpacku.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpacku_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00010 qqqqq ppppp 0 cpunpackl.b =croc,crqc,crpc (c3_1)
+(dni cpunpackl_b_C3 "cpunpackl.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpackl_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpunpackl.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpackl_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00010 qqqqq ppppp 0 cpunpackl.h =croc,crqc,crpc (c3_1)
+(dni cpunpackl_h_C3 "cpunpackl.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpackl_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpunpackl.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpackl_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00010 qqqqq ppppp 0 cpunpackl.w =croc,crqc,crpc (c3_1)
+(dni cpunpackl_w_C3 "cpunpackl.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpunpackl_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpunpackl.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpunpackl_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00011 qqqqq ppppp 0 cppacku.b =croc,crqc,crpc (c3_1)
+(dni cppacku_b_C3 "cppacku.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppacku_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cppacku.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x3) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppacku_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00011 qqqqq ppppp 0 cppack.b =croc,crqc,crpc (c3_1)
+(dni cppack_b_C3 "cppack.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppack_b") (CPTYPE V8QI) (CRET FIRST))
+ "cppack.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x3) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppack_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 00011 qqqqq ppppp 0 cppack.h =croc,crqc,crpc (c3_1)
+(dni cppack_h_C3 "cppack.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppack_h") (CPTYPE V4HI) (CRET FIRST))
+ "cppack.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #x3) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppack_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 qqqqq ppppp 0 cpsrl3.b =croc,crqc,crpc (c3_1)
+(dni cpsrl3_b_C3 "cpsrl3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrl3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrl3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsrl3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00100 qqqqq ppppp 0 cpssrl3.b =croc,crqc,crpc (c3_1)
+(dni cpssrl3_b_C3 "cpssrl3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssrl3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssrl3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssrl3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00100 qqqqq ppppp 0 cpsrl3.h =croc,crqc,crpc (c3_1)
+(dni cpsrl3_h_C3 "cpsrl3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrl3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrl3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsrl3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 00100 qqqqq ppppp 0 cpssrl3.h =croc,crqc,crpc (c3_1)
+(dni cpssrl3_h_C3 "cpssrl3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssrl3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssrl3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssrl3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00100 qqqqq ppppp 0 cpsrl3.w =croc,crqc,crpc (c3_1)
+(dni cpsrl3_w_C3 "cpsrl3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrl3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrl3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsrl3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00100 qqqqq ppppp 0 cpssrl3.w =croc,crqc,crpc (c3_1)
+(dni cpssrl3_w_C3 "cpssrl3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssrl3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssrl3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssrl3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00100 qqqqq ppppp 0 cdsrl3 =croc,crqc,crpc (c3_1)
+(dni cdsrl3_C3 "cdsrl3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsrl3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrl3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdsrl3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00101 qqqqq ppppp 0 cpsra3.b =croc,crqc,crpc (c3_1)
+(dni cpsra3_b_C3 "cpsra3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsra3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsra3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsra3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00101 qqqqq ppppp 0 cpssra3.b =croc,crqc,crpc (c3_1)
+(dni cpssra3_b_C3 "cpssra3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssra3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssra3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssra3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00101 qqqqq ppppp 0 cpsra3.h =croc,crqc,crpc (c3_1)
+(dni cpsra3_h_C3 "cpsra3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsra3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsra3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsra3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 00101 qqqqq ppppp 0 cpssra3.h =croc,crqc,crpc (c3_1)
+(dni cpssra3_h_C3 "cpssra3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssra3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssra3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssra3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00101 qqqqq ppppp 0 cpsra3.w =croc,crqc,crpc (c3_1)
+(dni cpsra3_w_C3 "cpsra3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsra3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsra3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsra3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00101 qqqqq ppppp 0 cpssra3.w =croc,crqc,crpc (c3_1)
+(dni cpssra3_w_C3 "cpssra3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssra3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssra3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssra3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00101 qqqqq ppppp 0 cdsra3 =croc,crqc,crpc (c3_1)
+(dni cdsra3_C3 "cdsra3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsra3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsra3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x5) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdsra3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00110 qqqqq ppppp 0 cpsll3.b =croc,crqc,crpc (c3_1)
+(dni cpsll3_b_C3 "cpsll3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsll3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsll3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsll3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 00110 qqqqq ppppp 0 cpssll3.b =croc,crqc,crpc (c3_1)
+(dni cpssll3_b_C3 "cpssll3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssll3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssll3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssll3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00110 qqqqq ppppp 0 cpsll3.h =croc,crqc,crpc (c3_1)
+(dni cpsll3_h_C3 "cpsll3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsll3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsll3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsll3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 00110 qqqqq ppppp 0 cpssll3.h =croc,crqc,crpc (c3_1)
+(dni cpssll3_h_C3 "cpssll3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssll3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssll3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssll3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00110 qqqqq ppppp 0 cpsll3.w =croc,crqc,crpc (c3_1)
+(dni cpsll3_w_C3 "cpsll3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsll3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsll3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsll3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 00110 qqqqq ppppp 0 cpssll3.w =croc,crqc,crpc (c3_1)
+(dni cpssll3_w_C3 "cpssll3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssll3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssll3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpssll3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 00110 qqqqq ppppp 0 cdsll3 =croc,crqc,crpc (c3_1)
+(dni cdsll3_C3 "cdsll3 $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsll3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsll3 $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x6) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdsll3" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 00111 qqqqq ppppp 0 cpsla3.h =croc,crqc,crpc (c3_1)
+(dni cpsla3_h_C3 "cpsla3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsla3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpsla3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x7) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsla3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 00111 qqqqq ppppp 0 cpsla3.w =croc,crqc,crpc (c3_1)
+(dni cpsla3_w_C3 "cpsla3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsla3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpsla3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x7) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsla3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 01000 qqqqq ppppp 0 cpsadd3.h =croc,crqc,crpc (c3_1)
+(dni cpsadd3_h_C3 "cpsadd3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsadd3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpsadd3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x8) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsadd3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 01000 qqqqq ppppp 0 cpsadd3.w =croc,crqc,crpc (c3_1)
+(dni cpsadd3_w_C3 "cpsadd3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsadd3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpsadd3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x8) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpsadd3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 01000 qqqqq ppppp 0 cpssub3.h =croc,crqc,crpc (c3_1)
+(dni cpssub3_h_C3 "cpssub3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssub3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpssub3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x8) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cofr0 0)
+ (set croc (c-call DI "ivc2_cpssub3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 01000 qqqqq ppppp 0 cpssub3.w =croc,crqc,crpc (c3_1)
+(dni cpssub3_w_C3 "cpssub3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssub3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpssub3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #x8) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cofr0 0)
+ (set croc (c-call DI "ivc2_cpssub3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 01001 qqqqq ppppp 0 cpextuaddu3.b =croc,crqc,crpc (c3_1)
+(dni cpextuaddu3_b_C3 "cpextuaddu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextuaddu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextuaddu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextuaddu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 01001 qqqqq ppppp 0 cpextuadd3.b =croc,crqc,crpc (c3_1)
+(dni cpextuadd3_b_C3 "cpextuadd3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextuadd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextuadd3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextuadd3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 01001 qqqqq ppppp 0 cpextladdu3.b =croc,crqc,crpc (c3_1)
+(dni cpextladdu3_b_C3 "cpextladdu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextladdu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextladdu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextladdu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 01001 qqqqq ppppp 0 cpextladd3.b =croc,crqc,crpc (c3_1)
+(dni cpextladd3_b_C3 "cpextladd3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextladd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextladd3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextladd3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 01001 qqqqq ppppp 0 cpextusubu3.b =croc,crqc,crpc (c3_1)
+(dni cpextusubu3_b_C3 "cpextusubu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextusubu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextusubu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextusubu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 01001 qqqqq ppppp 0 cpextusub3.b =croc,crqc,crpc (c3_1)
+(dni cpextusub3_b_C3 "cpextusub3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextusub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextusub3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextusub3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 01001 qqqqq ppppp 0 cpextlsubu3.b =croc,crqc,crpc (c3_1)
+(dni cpextlsubu3_b_C3 "cpextlsubu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextlsubu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextlsubu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextlsubu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 01001 qqqqq ppppp 0 cpextlsub3.b =croc,crqc,crpc (c3_1)
+(dni cpextlsub3_b_C3 "cpextlsub3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextlsub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextlsub3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #x9) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextlsub3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 01010 qqqqq ppppp 0 cpaveu3.b =croc,crqc,crpc (c3_1)
+(dni cpaveu3_b_C3 "cpaveu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaveu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaveu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpaveu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 01010 qqqqq ppppp 0 cpave3.b =croc,crqc,crpc (c3_1)
+(dni cpave3_b_C3 "cpave3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpave3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpave3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpave3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 01010 qqqqq ppppp 0 cpave3.h =croc,crqc,crpc (c3_1)
+(dni cpave3_h_C3 "cpave3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpave3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpave3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpave3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 01010 qqqqq ppppp 0 cpave3.w =croc,crqc,crpc (c3_1)
+(dni cpave3_w_C3 "cpave3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpave3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpave3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpave3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 01010 qqqqq ppppp 0 cpaddsru3.b =croc,crqc,crpc (c3_1)
+(dni cpaddsru3_b_C3 "cpaddsru3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddsru3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaddsru3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpaddsru3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 01010 qqqqq ppppp 0 cpaddsr3.b =croc,crqc,crpc (c3_1)
+(dni cpaddsr3_b_C3 "cpaddsr3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddsr3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaddsr3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpaddsr3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 110 ooooo 0111 01010 qqqqq ppppp 0 cpaddsr3.h =croc,crqc,crpc (c3_1)
+(dni cpaddsr3_h_C3 "cpaddsr3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddsr3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpaddsr3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x6) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpaddsr3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 111 ooooo 0111 01010 qqqqq ppppp 0 cpaddsr3.w =croc,crqc,crpc (c3_1)
+(dni cpaddsr3_w_C3 "cpaddsr3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddsr3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpaddsr3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x7) croc (f-sub4 7)
+ (f-ivc2-5u16 #xa) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpaddsr3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 01011 qqqqq ppppp 0 cpabsu3.b =croc,crqc,crpc (c3_1)
+(dni cpabsu3_b_C3 "cpabsu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabsu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #xb) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabsu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 01011 qqqqq ppppp 0 cpabs3.b =croc,crqc,crpc (c3_1)
+(dni cpabs3_b_C3 "cpabs3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabs3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabs3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #xb) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabs3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 010 ooooo 0111 01011 qqqqq ppppp 0 cpabs3.h =croc,crqc,crpc (c3_1)
+(dni cpabs3_h_C3 "cpabs3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabs3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpabs3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) croc (f-sub4 7)
+ (f-ivc2-5u16 #xb) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabs3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 01100 qqqqq ppppp 0 cpmaxu3.b =croc,crqc,crpc (c3_1)
+(dni cpmaxu3_b_C3 "cpmaxu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmaxu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmaxu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #xc) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmaxu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 01100 qqqqq ppppp 0 cpmax3.b =croc,crqc,crpc (c3_1)
+(dni cpmax3_b_C3 "cpmax3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmax3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmax3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #xc) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmax3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 01100 qqqqq ppppp 0 cpmax3.h =croc,crqc,crpc (c3_1)
+(dni cpmax3_h_C3 "cpmax3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmax3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmax3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #xc) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmax3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 01100 qqqqq ppppp 0 cpmaxu3.w =croc,crqc,crpc (c3_1)
+(dni cpmaxu3_w_C3 "cpmaxu3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmaxu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmaxu3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #xc) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmaxu3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 01100 qqqqq ppppp 0 cpmax3.w =croc,crqc,crpc (c3_1)
+(dni cpmax3_w_C3 "cpmax3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmax3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmax3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #xc) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmax3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 01101 qqqqq ppppp 0 cpminu3.b =croc,crqc,crpc (c3_1)
+(dni cpminu3_b_C3 "cpminu3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpminu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpminu3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #xd) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpminu3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 001 ooooo 0111 01101 qqqqq ppppp 0 cpmin3.b =croc,crqc,crpc (c3_1)
+(dni cpmin3_b_C3 "cpmin3.b $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmin3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmin3.b $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) croc (f-sub4 7)
+ (f-ivc2-5u16 #xd) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmin3_b" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 011 ooooo 0111 01101 qqqqq ppppp 0 cpmin3.h =croc,crqc,crpc (c3_1)
+(dni cpmin3_h_C3 "cpmin3.h $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmin3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmin3.h $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) croc (f-sub4 7)
+ (f-ivc2-5u16 #xd) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmin3_h" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 100 ooooo 0111 01101 qqqqq ppppp 0 cpminu3.w =croc,crqc,crpc (c3_1)
+(dni cpminu3_w_C3 "cpminu3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpminu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpminu3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x4) croc (f-sub4 7)
+ (f-ivc2-5u16 #xd) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpminu3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 101 ooooo 0111 01101 qqqqq ppppp 0 cpmin3.w =croc,crqc,crpc (c3_1)
+(dni cpmin3_w_C3 "cpmin3.w $croc,$crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmin3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmin3.w $croc,$crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x5) croc (f-sub4 7)
+ (f-ivc2-5u16 #xd) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmin3_w" pc crqc crpc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10000 00000 00000 0 cpmovfrcsar0 =croc (c3_1)
+(dni cpmovfrcsar0_C3 "cpmovfrcsar0 $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovfrcsar0") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcsar0 $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x10) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovfrcsar0" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10000 00000 01111 0 cpmovfrcsar1 =croc (c3_1)
+(dni cpmovfrcsar1_C3 "cpmovfrcsar1 $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovfrcsar1") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcsar1 $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x10) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #xf) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovfrcsar1" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10000 00000 00001 0 cpmovfrcc =croc (c3_1)
+(dni cpmovfrcc_C3 "cpmovfrcc $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovfrcc") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcc $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x10) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x1) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovfrcc" pc)) )
+ ()
+ )
+
+; 1111 0000 0000 0111 10000 qqqqq 10000 0 cpmovtocsar0 crqc (c3_1)
+(dni cpmovtocsar0_C3 "cpmovtocsar0 $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovtocsar0") VOLATILE)
+ "cpmovtocsar0 $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x10) crqc (f-ivc2-5u26 #x10) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_csar0 0)
+ (c-call "ivc2_cpmovtocsar0" pc crqc) )
+ ()
+ )
+
+; 1111 0000 0000 0111 10000 qqqqq 11111 0 cpmovtocsar1 crqc (c3_1)
+(dni cpmovtocsar1_C3 "cpmovtocsar1 $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovtocsar1") VOLATILE)
+ "cpmovtocsar1 $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x10) crqc (f-ivc2-5u26 #x1f) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_csar1 0)
+ (c-call "ivc2_cpmovtocsar1" pc crqc) )
+ ()
+ )
+
+; 1111 0000 0000 0111 10000 qqqqq 10001 0 cpmovtocc crqc (c3_1)
+(dni cpmovtocc_C3 "cpmovtocc $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovtocc") VOLATILE)
+ "cpmovtocc $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x10) crqc (f-ivc2-5u26 #x11) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpmovtocc" pc crqc) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00000 0 cpmov =croc,crqc (c3_1)
+(dni cpmov_C3 "cpmov $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmov") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cpmov $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmov" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00001 0 cpabsz.b =croc,crqc (c3_1)
+(dni cpabsz_b_C3 "cpabsz.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsz_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabsz.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabsz_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00010 0 cpabsz.h =croc,crqc (c3_1)
+(dni cpabsz_h_C3 "cpabsz.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsz_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpabsz.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x2) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabsz_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00011 0 cpabsz.w =croc,crqc (c3_1)
+(dni cpabsz_w_C3 "cpabsz.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsz_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpabsz.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x3) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpabsz_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00100 0 cpldz.h =croc,crqc (c3_1)
+(dni cpldz_h_C3 "cpldz.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpldz_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpldz.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x4) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpldz_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00101 0 cpldz.w =croc,crqc (c3_1)
+(dni cpldz_w_C3 "cpldz.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpldz_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpldz.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x5) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpldz_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00110 0 cpnorm.h =croc,crqc (c3_1)
+(dni cpnorm_h_C3 "cpnorm.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpnorm_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpnorm.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x6) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpnorm_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 00111 0 cpnorm.w =croc,crqc (c3_1)
+(dni cpnorm_w_C3 "cpnorm.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpnorm_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpnorm.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x7) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpnorm_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01000 0 cphaddu.b =croc,crqc (c3_1)
+(dni cphaddu_b_C3 "cphaddu.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cphaddu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cphaddu.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x8) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cphaddu_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01001 0 cphadd.b =croc,crqc (c3_1)
+(dni cphadd_b_C3 "cphadd.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cphadd_b") (CPTYPE V8QI) (CRET FIRST))
+ "cphadd.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x9) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cphadd_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01010 0 cphadd.h =croc,crqc (c3_1)
+(dni cphadd_h_C3 "cphadd.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cphadd_h") (CPTYPE V4HI) (CRET FIRST))
+ "cphadd.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xa) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cphadd_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01011 0 cphadd.w =croc,crqc (c3_1)
+(dni cphadd_w_C3 "cphadd.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cphadd_w") (CPTYPE V2SI) (CRET FIRST))
+ "cphadd.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xb) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cphadd_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01100 0 cpccadd.b +crqc (c3_1)
+(dni cpccadd_b_C3 "cpccadd.b $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpccadd_b") (CPTYPE V8QI) (CRET FIRSTCOPY) VOLATILE)
+ "cpccadd.b $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xc) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpccadd_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01101 0 cpbcast.b =croc,crqc (c3_1)
+(dni cpbcast_b_C3 "cpbcast.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpbcast_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpbcast.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xd) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpbcast_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01110 0 cpbcast.h =croc,crqc (c3_1)
+(dni cpbcast_h_C3 "cpbcast.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpbcast_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpbcast.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xe) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpbcast_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 01111 0 cpbcast.w =croc,crqc (c3_1)
+(dni cpbcast_w_C3 "cpbcast.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpbcast_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpbcast.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #xf) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpbcast_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10000 0 cpextuu.b =croc,crqc (c3_1)
+(dni cpextuu_b_C3 "cpextuu.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextuu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextuu.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x10) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextuu_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10001 0 cpextu.b =croc,crqc (c3_1)
+(dni cpextu_b_C3 "cpextu.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextu.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x11) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextu_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10010 0 cpextuu.h =croc,crqc (c3_1)
+(dni cpextuu_h_C3 "cpextuu.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextuu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextuu.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x12) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextuu_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10011 0 cpextu.h =croc,crqc (c3_1)
+(dni cpextu_h_C3 "cpextu.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextu.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x13) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextu_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10100 0 cpextlu.b =croc,crqc (c3_1)
+(dni cpextlu_b_C3 "cpextlu.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextlu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextlu.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x14) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextlu_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10101 0 cpextl.b =croc,crqc (c3_1)
+(dni cpextl_b_C3 "cpextl.b $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextl_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextl.b $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x15) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextl_b" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10110 0 cpextlu.h =croc,crqc (c3_1)
+(dni cpextlu_h_C3 "cpextlu.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextlu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextlu.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x16) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextlu_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 10111 0 cpextl.h =croc,crqc (c3_1)
+(dni cpextl_h_C3 "cpextl.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpextl_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpextl.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x17) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpextl_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11000 0 cpcastub.h =croc,crqc (c3_1)
+(dni cpcastub_h_C3 "cpcastub.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcastub_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpcastub.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x18) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcastub_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11001 0 cpcastb.h =croc,crqc (c3_1)
+(dni cpcastb_h_C3 "cpcastb.h $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcastb_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpcastb.h $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x19) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcastb_h" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11100 0 cpcastub.w =croc,crqc (c3_1)
+(dni cpcastub_w_C3 "cpcastub.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcastub_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastub.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1c) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcastub_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11101 0 cpcastb.w =croc,crqc (c3_1)
+(dni cpcastb_w_C3 "cpcastb.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcastb_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastb.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1d) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcastb_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11110 0 cpcastuh.w =croc,crqc (c3_1)
+(dni cpcastuh_w_C3 "cpcastuh.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcastuh_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastuh.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1e) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcastuh_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11111 0 cpcasth.w =croc,crqc (c3_1)
+(dni cpcasth_w_C3 "cpcasth.w $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcasth_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcasth.w $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1f) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpcasth_w" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11010 0 cdcastuw =croc,crqc (c3_1)
+(dni cdcastuw_C3 "cdcastuw $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdcastuw") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdcastuw $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1a) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdcastuw" pc crqc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 10001 qqqqq 11011 0 cdcastw =croc,crqc (c3_1)
+(dni cdcastw_C3 "cdcastw $croc,$crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdcastw") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdcastw $croc,$crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x11) crqc (f-ivc2-5u26 #x1b) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cdcastw" pc crqc)) )
+ ()
+ )
+
+; 1111 0000 0000 0111 10010 qqqqq ppppp 0 cpcmpeqz.b crqc,crpc (c3_1)
+(dni cpcmpeqz_b_C3 "cpcmpeqz.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpeqz_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpeqz.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeqz_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0001 0111 10010 qqqqq ppppp 0 cpcmpeq.b crqc,crpc (c3_1)
+(dni cpcmpeq_b_C3 "cpcmpeq.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpeq_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpeq.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0011 0111 10010 qqqqq ppppp 0 cpcmpeq.h crqc,crpc (c3_1)
+(dni cpcmpeq_h_C3 "cpcmpeq.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpeq_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpeq.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x3) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0101 0111 10010 qqqqq ppppp 0 cpcmpeq.w crqc,crpc (c3_1)
+(dni cpcmpeq_w_C3 "cpcmpeq.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpeq_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpeq.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x5) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1001 0111 10010 qqqqq ppppp 0 cpcmpne.b crqc,crpc (c3_1)
+(dni cpcmpne_b_C3 "cpcmpne.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpne_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpne.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x9) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1011 0111 10010 qqqqq ppppp 0 cpcmpne.h crqc,crpc (c3_1)
+(dni cpcmpne_h_C3 "cpcmpne.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpne_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpne.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1101 0111 10010 qqqqq ppppp 0 cpcmpne.w crqc,crpc (c3_1)
+(dni cpcmpne_w_C3 "cpcmpne.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpne_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpne.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xd) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0000 0111 10010 qqqqq ppppp 0 cpcmpgtu.b crqc,crpc (c3_1)
+(dni cpcmpgtu_b_C3 "cpcmpgtu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgtu_b") (CPTYPE V8UQI) VOLATILE)
+ "cpcmpgtu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x10) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgtu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0001 0111 10010 qqqqq ppppp 0 cpcmpgt.b crqc,crpc (c3_1)
+(dni cpcmpgt_b_C3 "cpcmpgt.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgt_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpgt.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x11) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0011 0111 10010 qqqqq ppppp 0 cpcmpgt.h crqc,crpc (c3_1)
+(dni cpcmpgt_h_C3 "cpcmpgt.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgt_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpgt.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0100 0111 10010 qqqqq ppppp 0 cpcmpgtu.w crqc,crpc (c3_1)
+(dni cpcmpgtu_w_C3 "cpcmpgtu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgtu_w") (CPTYPE V2USI) VOLATILE)
+ "cpcmpgtu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x14) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgtu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0101 0111 10010 qqqqq ppppp 0 cpcmpgt.w crqc,crpc (c3_1)
+(dni cpcmpgt_w_C3 "cpcmpgt.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgt_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpgt.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x15) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1000 0111 10010 qqqqq ppppp 0 cpcmpgeu.b crqc,crpc (c3_1)
+(dni cpcmpgeu_b_C3 "cpcmpgeu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgeu_b") (CPTYPE V8UQI) VOLATILE)
+ "cpcmpgeu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x18) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgeu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1001 0111 10010 qqqqq ppppp 0 cpcmpge.b crqc,crpc (c3_1)
+(dni cpcmpge_b_C3 "cpcmpge.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpge_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpge.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x19) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1011 0111 10010 qqqqq ppppp 0 cpcmpge.h crqc,crpc (c3_1)
+(dni cpcmpge_h_C3 "cpcmpge.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpge_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpge.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1100 0111 10010 qqqqq ppppp 0 cpcmpgeu.w crqc,crpc (c3_1)
+(dni cpcmpgeu_w_C3 "cpcmpgeu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpgeu_w") (CPTYPE V2USI) VOLATILE)
+ "cpcmpgeu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1c) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgeu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1101 0111 10010 qqqqq ppppp 0 cpcmpge.w crqc,crpc (c3_1)
+(dni cpcmpge_w_C3 "cpcmpge.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpcmpge_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpge.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1d) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0001 0111 10010 qqqqq ppppp 0 cpacmpeq.b crqc,crpc (c3_1)
+(dni cpacmpeq_b_C3 "cpacmpeq.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpeq_b") (CPTYPE V8QI))
+ "cpacmpeq.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpeq_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0011 0111 10010 qqqqq ppppp 0 cpacmpeq.h crqc,crpc (c3_1)
+(dni cpacmpeq_h_C3 "cpacmpeq.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpeq_h") (CPTYPE V4HI))
+ "cpacmpeq.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x3) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpeq_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0101 0111 10010 qqqqq ppppp 0 cpacmpeq.w crqc,crpc (c3_1)
+(dni cpacmpeq_w_C3 "cpacmpeq.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpeq_w") (CPTYPE V2SI))
+ "cpacmpeq.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x5) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpeq_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 1001 0111 10010 qqqqq ppppp 0 cpacmpne.b crqc,crpc (c3_1)
+(dni cpacmpne_b_C3 "cpacmpne.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpne_b") (CPTYPE V8QI))
+ "cpacmpne.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x9) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpne_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 1011 0111 10010 qqqqq ppppp 0 cpacmpne.h crqc,crpc (c3_1)
+(dni cpacmpne_h_C3 "cpacmpne.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpne_h") (CPTYPE V4HI))
+ "cpacmpne.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpne_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 1101 0111 10010 qqqqq ppppp 0 cpacmpne.w crqc,crpc (c3_1)
+(dni cpacmpne_w_C3 "cpacmpne.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpne_w") (CPTYPE V2SI))
+ "cpacmpne.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #xd) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpne_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0000 0111 10010 qqqqq ppppp 0 cpacmpgtu.b crqc,crpc (c3_1)
+(dni cpacmpgtu_b_C3 "cpacmpgtu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgtu_b") (CPTYPE V8UQI))
+ "cpacmpgtu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x10) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgtu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0001 0111 10010 qqqqq ppppp 0 cpacmpgt.b crqc,crpc (c3_1)
+(dni cpacmpgt_b_C3 "cpacmpgt.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgt_b") (CPTYPE V8QI))
+ "cpacmpgt.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x11) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgt_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0011 0111 10010 qqqqq ppppp 0 cpacmpgt.h crqc,crpc (c3_1)
+(dni cpacmpgt_h_C3 "cpacmpgt.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgt_h") (CPTYPE V4HI))
+ "cpacmpgt.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgt_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0100 0111 10010 qqqqq ppppp 0 cpacmpgtu.w crqc,crpc (c3_1)
+(dni cpacmpgtu_w_C3 "cpacmpgtu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgtu_w") (CPTYPE V2USI))
+ "cpacmpgtu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x14) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgtu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0101 0111 10010 qqqqq ppppp 0 cpacmpgt.w crqc,crpc (c3_1)
+(dni cpacmpgt_w_C3 "cpacmpgt.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgt_w") (CPTYPE V2SI))
+ "cpacmpgt.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x15) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgt_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1000 0111 10010 qqqqq ppppp 0 cpacmpgeu.b crqc,crpc (c3_1)
+(dni cpacmpgeu_b_C3 "cpacmpgeu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgeu_b") (CPTYPE V8UQI))
+ "cpacmpgeu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x18) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgeu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1001 0111 10010 qqqqq ppppp 0 cpacmpge.b crqc,crpc (c3_1)
+(dni cpacmpge_b_C3 "cpacmpge.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpge_b") (CPTYPE V8QI))
+ "cpacmpge.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x19) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpge_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1011 0111 10010 qqqqq ppppp 0 cpacmpge.h crqc,crpc (c3_1)
+(dni cpacmpge_h_C3 "cpacmpge.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpge_h") (CPTYPE V4HI))
+ "cpacmpge.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpge_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1100 0111 10010 qqqqq ppppp 0 cpacmpgeu.w crqc,crpc (c3_1)
+(dni cpacmpgeu_w_C3 "cpacmpgeu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpgeu_w") (CPTYPE V2USI))
+ "cpacmpgeu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1c) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpgeu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1101 0111 10010 qqqqq ppppp 0 cpacmpge.w crqc,crpc (c3_1)
+(dni cpacmpge_w_C3 "cpacmpge.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpacmpge_w") (CPTYPE V2SI))
+ "cpacmpge.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1d) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpacmpge_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 0001 0111 10010 qqqqq ppppp 0 cpocmpeq.b crqc,crpc (c3_1)
+(dni cpocmpeq_b_C3 "cpocmpeq.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpeq_b") (CPTYPE V8QI))
+ "cpocmpeq.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpeq_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 0011 0111 10010 qqqqq ppppp 0 cpocmpeq.h crqc,crpc (c3_1)
+(dni cpocmpeq_h_C3 "cpocmpeq.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpeq_h") (CPTYPE V4HI))
+ "cpocmpeq.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x3) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpeq_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 0101 0111 10010 qqqqq ppppp 0 cpocmpeq.w crqc,crpc (c3_1)
+(dni cpocmpeq_w_C3 "cpocmpeq.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpeq_w") (CPTYPE V2SI))
+ "cpocmpeq.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x5) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpeq_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1001 0111 10010 qqqqq ppppp 0 cpocmpne.b crqc,crpc (c3_1)
+(dni cpocmpne_b_C3 "cpocmpne.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpne_b") (CPTYPE V8QI))
+ "cpocmpne.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x9) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpne_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1011 0111 10010 qqqqq ppppp 0 cpocmpne.h crqc,crpc (c3_1)
+(dni cpocmpne_h_C3 "cpocmpne.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpne_h") (CPTYPE V4HI))
+ "cpocmpne.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpne_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1101 0111 10010 qqqqq ppppp 0 cpocmpne.w crqc,crpc (c3_1)
+(dni cpocmpne_w_C3 "cpocmpne.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpne_w") (CPTYPE V2SI))
+ "cpocmpne.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xd) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpne_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 0000 0111 10010 qqqqq ppppp 0 cpocmpgtu.b crqc,crpc (c3_1)
+(dni cpocmpgtu_b_C3 "cpocmpgtu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgtu_b") (CPTYPE V8UQI))
+ "cpocmpgtu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x10) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgtu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 0001 0111 10010 qqqqq ppppp 0 cpocmpgt.b crqc,crpc (c3_1)
+(dni cpocmpgt_b_C3 "cpocmpgt.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgt_b") (CPTYPE V8QI))
+ "cpocmpgt.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x11) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgt_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 0011 0111 10010 qqqqq ppppp 0 cpocmpgt.h crqc,crpc (c3_1)
+(dni cpocmpgt_h_C3 "cpocmpgt.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgt_h") (CPTYPE V4HI))
+ "cpocmpgt.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgt_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 0100 0111 10010 qqqqq ppppp 0 cpocmpgtu.w crqc,crpc (c3_1)
+(dni cpocmpgtu_w_C3 "cpocmpgtu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgtu_w") (CPTYPE V2USI))
+ "cpocmpgtu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x14) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgtu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 0101 0111 10010 qqqqq ppppp 0 cpocmpgt.w crqc,crpc (c3_1)
+(dni cpocmpgt_w_C3 "cpocmpgt.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgt_w") (CPTYPE V2SI))
+ "cpocmpgt.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x15) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgt_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 1000 0111 10010 qqqqq ppppp 0 cpocmpgeu.b crqc,crpc (c3_1)
+(dni cpocmpgeu_b_C3 "cpocmpgeu.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgeu_b") (CPTYPE V8UQI))
+ "cpocmpgeu.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x18) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgeu_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 1001 0111 10010 qqqqq ppppp 0 cpocmpge.b crqc,crpc (c3_1)
+(dni cpocmpge_b_C3 "cpocmpge.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpge_b") (CPTYPE V8QI))
+ "cpocmpge.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x19) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpge_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 1011 0111 10010 qqqqq ppppp 0 cpocmpge.h crqc,crpc (c3_1)
+(dni cpocmpge_h_C3 "cpocmpge.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpge_h") (CPTYPE V4HI))
+ "cpocmpge.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpge_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 1100 0111 10010 qqqqq ppppp 0 cpocmpgeu.w crqc,crpc (c3_1)
+(dni cpocmpgeu_w_C3 "cpocmpgeu.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpgeu_w") (CPTYPE V2USI))
+ "cpocmpgeu.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x1c) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpgeu_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0101 1101 0111 10010 qqqqq ppppp 0 cpocmpge.w crqc,crpc (c3_1)
+(dni cpocmpge_w_C3 "cpocmpge.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpocmpge_w") (CPTYPE V2SI))
+ "cpocmpge.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #x1d) (f-sub4 7)
+ (f-ivc2-5u16 #x12) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpocmpge_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 00xx xiii 0111 10100 qqqqq ppppp 0 cpsrli3.b =crqc,crpc,imm3p9 (c3_imm)
+(dni cpsrli3_b_C3 "cpsrli3.b $crqc,$crpc,imm3p9 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrli3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrli3.b $crqc,$crpc,$imm3p9"
+ (+ MAJ_15 ivc-x-6-3 (f-ivc2-2u4 #x0) imm3p9 (f-sub4 7)
+ (f-ivc2-5u16 #x14) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrli3_b" pc crpc imm3p9)) )
+ ()
+ )
+
+; 1111 01xx iiii 0111 10100 qqqqq ppppp 0 cpsrli3.h =crqc,crpc,imm4p8 (c3_imm)
+(dni cpsrli3_h_C3 "cpsrli3.h $crqc,$crpc,imm4p8 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrli3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrli3.h $crqc,$crpc,$imm4p8"
+ (+ MAJ_15 ivc-x-6-2 (f-ivc2-2u4 #x1) imm4p8 (f-sub4 7)
+ (f-ivc2-5u16 #x14) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrli3_h" pc crpc imm4p8)) )
+ ()
+ )
+
+; 1111 10xi iiii 0111 10100 qqqqq ppppp 0 cpsrli3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpsrli3_w_C3 "cpsrli3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrli3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrli3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x2) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x14) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrli3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 11ii iiii 0111 10100 qqqqq ppppp 0 cdsrli3 =crqc,crpc,imm6p6 (c3_imm)
+(dni cdsrli3_C3 "cdsrli3 $crqc,$crpc,imm6p6 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsrli3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrli3 $crqc,$crpc,$imm6p6"
+ (+ MAJ_15 (f-ivc2-2u4 #x3) imm6p6 (f-sub4 7)
+ (f-ivc2-5u16 #x14) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdsrli3" pc crpc imm6p6)) )
+ ()
+ )
+
+; 1111 00xx xiii 0111 10101 qqqqq ppppp 0 cpsrai3.b =crqc,crpc,imm3p9 (c3_imm)
+(dni cpsrai3_b_C3 "cpsrai3.b $crqc,$crpc,imm3p9 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrai3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrai3.b $crqc,$crpc,$imm3p9"
+ (+ MAJ_15 ivc-x-6-3 (f-ivc2-2u4 #x0) imm3p9 (f-sub4 7)
+ (f-ivc2-5u16 #x15) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrai3_b" pc crpc imm3p9)) )
+ ()
+ )
+
+; 1111 01xx iiii 0111 10101 qqqqq ppppp 0 cpsrai3.h =crqc,crpc,imm4p8 (c3_imm)
+(dni cpsrai3_h_C3 "cpsrai3.h $crqc,$crpc,imm4p8 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrai3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrai3.h $crqc,$crpc,$imm4p8"
+ (+ MAJ_15 ivc-x-6-2 (f-ivc2-2u4 #x1) imm4p8 (f-sub4 7)
+ (f-ivc2-5u16 #x15) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrai3_h" pc crpc imm4p8)) )
+ ()
+ )
+
+; 1111 10xi iiii 0111 10101 qqqqq ppppp 0 cpsrai3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpsrai3_w_C3 "cpsrai3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrai3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrai3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x2) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x15) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpsrai3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 11ii iiii 0111 10101 qqqqq ppppp 0 cdsrai3 =crqc,crpc,imm6p6 (c3_imm)
+(dni cdsrai3_C3 "cdsrai3 $crqc,$crpc,imm6p6 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdsrai3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrai3 $crqc,$crpc,$imm6p6"
+ (+ MAJ_15 (f-ivc2-2u4 #x3) imm6p6 (f-sub4 7)
+ (f-ivc2-5u16 #x15) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdsrai3" pc crpc imm6p6)) )
+ ()
+ )
+
+; 1111 00xx xiii 0111 10110 qqqqq ppppp 0 cpslli3.b =crqc,crpc,imm3p9 (c3_imm)
+(dni cpslli3_b_C3 "cpslli3.b $crqc,$crpc,imm3p9 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslli3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpslli3.b $crqc,$crpc,$imm3p9"
+ (+ MAJ_15 ivc-x-6-3 (f-ivc2-2u4 #x0) imm3p9 (f-sub4 7)
+ (f-ivc2-5u16 #x16) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpslli3_b" pc crpc imm3p9)) )
+ ()
+ )
+
+; 1111 01xx iiii 0111 10110 qqqqq ppppp 0 cpslli3.h =crqc,crpc,imm4p8 (c3_imm)
+(dni cpslli3_h_C3 "cpslli3.h $crqc,$crpc,imm4p8 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslli3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpslli3.h $crqc,$crpc,$imm4p8"
+ (+ MAJ_15 ivc-x-6-2 (f-ivc2-2u4 #x1) imm4p8 (f-sub4 7)
+ (f-ivc2-5u16 #x16) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpslli3_h" pc crpc imm4p8)) )
+ ()
+ )
+
+; 1111 10xi iiii 0111 10110 qqqqq ppppp 0 cpslli3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpslli3_w_C3 "cpslli3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslli3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpslli3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x2) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x16) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpslli3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 11ii iiii 0111 10110 qqqqq ppppp 0 cdslli3 =crqc,crpc,imm6p6 (c3_imm)
+(dni cdslli3_C3 "cdslli3 $crqc,$crpc,imm6p6 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdslli3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdslli3 $crqc,$crpc,$imm6p6"
+ (+ MAJ_15 (f-ivc2-2u4 #x3) imm6p6 (f-sub4 7)
+ (f-ivc2-5u16 #x16) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdslli3" pc crpc imm6p6)) )
+ ()
+ )
+
+; 1111 01xx iiii 0111 10111 qqqqq ppppp 0 cpslai3.h =crqc,crpc,imm4p8 (c3_imm)
+(dni cpslai3_h_C3 "cpslai3.h $crqc,$crpc,imm4p8 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslai3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpslai3.h $crqc,$crpc,$imm4p8"
+ (+ MAJ_15 ivc-x-6-2 (f-ivc2-2u4 #x1) imm4p8 (f-sub4 7)
+ (f-ivc2-5u16 #x17) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpslai3_h" pc crpc imm4p8)) )
+ ()
+ )
+
+; 1111 10xi iiii 0111 10111 qqqqq ppppp 0 cpslai3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpslai3_w_C3 "cpslai3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslai3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpslai3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x2) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x17) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpslai3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 00xi iiii 0111 11000 qqqqq ppppp 0 cpclipiu3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpclipiu3_w_C3 "cpclipiu3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpclipiu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpclipiu3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x0) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x18) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpclipiu3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 01xi iiii 0111 11000 qqqqq ppppp 0 cpclipi3.w =crqc,crpc,imm5p7 (c3_imm)
+(dni cpclipi3_w_C3 "cpclipi3.w $crqc,$crpc,imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpclipi3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpclipi3.w $crqc,$crpc,$imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x1) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x18) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpclipi3_w" pc crpc imm5p7)) )
+ ()
+ )
+
+; 1111 10ii iiii 0111 11000 qqqqq ppppp 0 cdclipiu3 =crqc,crpc,imm6p6 (c3_imm)
+(dni cdclipiu3_C3 "cdclipiu3 $crqc,$crpc,imm6p6 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdclipiu3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdclipiu3 $crqc,$crpc,$imm6p6"
+ (+ MAJ_15 (f-ivc2-2u4 #x2) imm6p6 (f-sub4 7)
+ (f-ivc2-5u16 #x18) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdclipiu3" pc crpc imm6p6)) )
+ ()
+ )
+
+; 1111 11ii iiii 0111 11000 qqqqq ppppp 0 cdclipi3 =crqc,crpc,imm6p6 (c3_imm)
+(dni cdclipi3_C3 "cdclipi3 $crqc,$crpc,imm6p6 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdclipi3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdclipi3 $crqc,$crpc,$imm6p6"
+ (+ MAJ_15 (f-ivc2-2u4 #x3) imm6p6 (f-sub4 7)
+ (f-ivc2-5u16 #x18) crqc crpc (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdclipi3" pc crpc imm6p6)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00000 0 cpmovi.b =crqc,simm8p4 (c3_imm)
+(dni cpmovi_b_C3 "cpmovi.b $crqc,simm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovi_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmovi.b $crqc,$simm8p4"
+ (+ MAJ_15 simm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpmovi_b" pc simm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00010 0 cpmoviu.h =crqc,imm8p4 (c3_imm)
+(dni cpmoviu_h_C3 "cpmoviu.h $crqc,imm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmoviu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpmoviu.h $crqc,$imm8p4"
+ (+ MAJ_15 imm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x2) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpmoviu_h" pc imm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00011 0 cpmovi.h =crqc,simm8p4 (c3_imm)
+(dni cpmovi_h_C3 "cpmovi.h $crqc,simm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovi_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmovi.h $crqc,$simm8p4"
+ (+ MAJ_15 simm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x3) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpmovi_h" pc simm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00100 0 cpmoviu.w =crqc,imm8p4 (c3_imm)
+(dni cpmoviu_w_C3 "cpmoviu.w $crqc,imm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmoviu_w") (CPTYPE V2USI) (CRET FIRST))
+ "cpmoviu.w $crqc,$imm8p4"
+ (+ MAJ_15 imm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x4) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpmoviu_w" pc imm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00101 0 cpmovi.w =crqc,simm8p4 (c3_imm)
+(dni cpmovi_w_C3 "cpmovi.w $crqc,simm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovi_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmovi.w $crqc,$simm8p4"
+ (+ MAJ_15 simm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x5) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cpmovi_w" pc simm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00110 0 cdmoviu =crqc,imm8p4 (c3_imm)
+(dni cdmoviu_C3 "cdmoviu $crqc,imm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdmoviu") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdmoviu $crqc,$imm8p4"
+ (+ MAJ_15 imm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x6) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdmoviu" pc imm8p4)) )
+ ()
+ )
+
+; 1111 iiii iiii 0111 11001 qqqqq 00111 0 cdmovi =crqc,simm8p4 (c3_imm)
+(dni cdmovi_C3 "cdmovi $crqc,simm8p4 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cdmovi") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdmovi $crqc,$simm8p4"
+ (+ MAJ_15 simm8p4 (f-sub4 7)
+ (f-ivc2-5u16 #x19) crqc (f-ivc2-5u26 #x7) (f-ivc2-1u31 #x0) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqc (c-call DI "ivc2_cdmovi" pc simm8p4)) )
+ ()
+ )
+
+; 1111 0000 0000 0111 00000 qqqqq ppppp 1 cpadda1u.b crqc,crpc (c3_1)
+(dni cpadda1u_b_C3 "cpadda1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpadda1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpadda1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpadda1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0001 0111 00000 qqqqq ppppp 1 cpadda1.b crqc,crpc (c3_1)
+(dni cpadda1_b_C3 "cpadda1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpadda1_b") (CPTYPE V8QI) VOLATILE)
+ "cpadda1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpadda1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0010 0111 00000 qqqqq ppppp 1 cpaddua1.h crqc,crpc (c3_1)
+(dni cpaddua1_h_C3 "cpaddua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x2) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpaddua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0011 0111 00000 qqqqq ppppp 1 cpaddla1.h crqc,crpc (c3_1)
+(dni cpaddla1_h_C3 "cpaddla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x3) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpaddla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0100 0111 00000 qqqqq ppppp 1 cpaddaca1u.b crqc,crpc (c3_1)
+(dni cpaddaca1u_b_C3 "cpaddaca1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddaca1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpaddaca1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x4) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddaca1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0101 0111 00000 qqqqq ppppp 1 cpaddaca1.b crqc,crpc (c3_1)
+(dni cpaddaca1_b_C3 "cpaddaca1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddaca1_b") (CPTYPE V8QI) VOLATILE)
+ "cpaddaca1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x5) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddaca1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0110 0111 00000 qqqqq ppppp 1 cpaddacua1.h crqc,crpc (c3_1)
+(dni cpaddacua1_h_C3 "cpaddacua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddacua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x6) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddacua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0111 0111 00000 qqqqq ppppp 1 cpaddacla1.h crqc,crpc (c3_1)
+(dni cpaddacla1_h_C3 "cpaddacla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpaddacla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x7) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddacla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1000 0111 00000 qqqqq ppppp 1 cpsuba1u.b crqc,crpc (c3_1)
+(dni cpsuba1u_b_C3 "cpsuba1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsuba1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsuba1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x8) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsuba1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1001 0111 00000 qqqqq ppppp 1 cpsuba1.b crqc,crpc (c3_1)
+(dni cpsuba1_b_C3 "cpsuba1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsuba1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsuba1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x9) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsuba1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1010 0111 00000 qqqqq ppppp 1 cpsubua1.h crqc,crpc (c3_1)
+(dni cpsubua1_h_C3 "cpsubua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xa) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsubua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1011 0111 00000 qqqqq ppppp 1 cpsubla1.h crqc,crpc (c3_1)
+(dni cpsubla1_h_C3 "cpsubla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpsubla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1100 0111 00000 qqqqq ppppp 1 cpsubaca1u.b crqc,crpc (c3_1)
+(dni cpsubaca1u_b_C3 "cpsubaca1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubaca1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsubaca1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xc) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubaca1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1101 0111 00000 qqqqq ppppp 1 cpsubaca1.b crqc,crpc (c3_1)
+(dni cpsubaca1_b_C3 "cpsubaca1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubaca1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsubaca1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xd) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubaca1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1110 0111 00000 qqqqq ppppp 1 cpsubacua1.h crqc,crpc (c3_1)
+(dni cpsubacua1_h_C3 "cpsubacua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubacua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xe) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubacua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1111 0111 00000 qqqqq ppppp 1 cpsubacla1.h crqc,crpc (c3_1)
+(dni cpsubacla1_h_C3 "cpsubacla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsubacla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xf) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubacla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0000 0111 00000 qqqqq ppppp 1 cpabsa1u.b crqc,crpc (c3_1)
+(dni cpabsa1u_b_C3 "cpabsa1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsa1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpabsa1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x10) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsa1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0001 0111 00000 qqqqq ppppp 1 cpabsa1.b crqc,crpc (c3_1)
+(dni cpabsa1_b_C3 "cpabsa1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsa1_b") (CPTYPE V8QI) VOLATILE)
+ "cpabsa1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x11) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsa1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0010 0111 00000 qqqqq ppppp 1 cpabsua1.h crqc,crpc (c3_1)
+(dni cpabsua1_h_C3 "cpabsua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x12) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0011 0111 00000 qqqqq ppppp 1 cpabsla1.h crqc,crpc (c3_1)
+(dni cpabsla1_h_C3 "cpabsla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpabsla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpabsla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0100 0111 00000 qqqqq ppppp 1 cpsada1u.b crqc,crpc (c3_1)
+(dni cpsada1u_b_C3 "cpsada1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsada1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsada1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x14) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsada1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0101 0111 00000 qqqqq ppppp 1 cpsada1.b crqc,crpc (c3_1)
+(dni cpsada1_b_C3 "cpsada1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsada1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsada1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x15) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsada1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0110 0111 00000 qqqqq ppppp 1 cpsadua1.h crqc,crpc (c3_1)
+(dni cpsadua1_h_C3 "cpsadua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x16) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsadua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0111 0111 00000 qqqqq ppppp 1 cpsadla1.h crqc,crpc (c3_1)
+(dni cpsadla1_h_C3 "cpsadla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x17) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsadla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0000 0111 00000 qqqqq ppppp 1 cpseta1.h crqc,crpc (c3_1)
+(dni cpseta1_h_C3 "cpseta1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpseta1_h") (CPTYPE V4HI) VOLATILE)
+ "cpseta1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpseta1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0010 0111 00000 qqqqq ppppp 1 cpsetua1.w crqc,crpc (c3_1)
+(dni cpsetua1_w_C3 "cpsetua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsetua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x2) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsetua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0010 0011 0111 00000 qqqqq ppppp 1 cpsetla1.w crqc,crpc (c3_1)
+(dni cpsetla1_w_C3 "cpsetla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsetla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x3) (f-sub4 7)
+ (f-ivc2-5u16 #x0) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpsetla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00000 1 cpmova1.b =croc (c3_1)
+(dni cpmova1_b_C3 "cpmova1.b $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmova1_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cpmova1.b $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmova1_b" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00010 1 cpmovua1.h =croc (c3_1)
+(dni cpmovua1_h_C3 "cpmovua1.h $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovua1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovua1.h $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x2) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovua1_h" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00011 1 cpmovla1.h =croc (c3_1)
+(dni cpmovla1_h_C3 "cpmovla1.h $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovla1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovla1.h $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x3) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovla1_h" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00100 1 cpmovuua1.w =croc (c3_1)
+(dni cpmovuua1_w_C3 "cpmovuua1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovuua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovuua1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x4) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovuua1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00101 1 cpmovula1.w =croc (c3_1)
+(dni cpmovula1_w_C3 "cpmovula1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovula1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovula1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x5) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovula1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00110 1 cpmovlua1.w =croc (c3_1)
+(dni cpmovlua1_w_C3 "cpmovlua1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovlua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlua1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x6) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovlua1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 00111 1 cpmovlla1.w =croc (c3_1)
+(dni cpmovlla1_w_C3 "cpmovlla1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovlla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlla1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x7) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovlla1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10000 1 cppacka1u.b =croc (c3_1)
+(dni cppacka1u_b_C3 "cppacka1u.b $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppacka1u_b") (CPTYPE V8UQI) (CRET FIRST) VOLATILE)
+ "cppacka1u.b $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x10) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppacka1u_b" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10001 1 cppacka1.b =croc (c3_1)
+(dni cppacka1_b_C3 "cppacka1.b $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppacka1_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cppacka1.b $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x11) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppacka1_b" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10010 1 cppackua1.h =croc (c3_1)
+(dni cppackua1_h_C3 "cppackua1.h $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppackua1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackua1.h $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x12) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppackua1_h" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10011 1 cppackla1.h =croc (c3_1)
+(dni cppackla1_h_C3 "cppackla1.h $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppackla1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackla1.h $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x13) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppackla1_h" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10100 1 cppackua1.w =croc (c3_1)
+(dni cppackua1_w_C3 "cppackua1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppackua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackua1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x14) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppackua1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10101 1 cppackla1.w =croc (c3_1)
+(dni cppackla1_w_C3 "cppackla1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cppackla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackla1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x15) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cppackla1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10110 1 cpmovhua1.w =croc (c3_1)
+(dni cpmovhua1_w_C3 "cpmovhua1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovhua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhua1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x16) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovhua1_w" pc)) )
+ ()
+ )
+
+; 1111 000 ooooo 0111 00100 00000 10111 1 cpmovhla1.w =croc (c3_1)
+(dni cpmovhla1_w_C3 "cpmovhla1.w $croc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmovhla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhla1.w $croc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) croc (f-sub4 7)
+ (f-ivc2-5u16 #x4) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x17) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set croc (c-call DI "ivc2_cpmovhla1_w" pc)) )
+ ()
+ )
+
+; 1111 0000 0000 0111 00010 qqqqq 00000 1 cpsrla1 crqc (c3_1)
+(dni cpsrla1_C3 "cpsrla1 $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrla1") VOLATILE)
+ "cpsrla1 $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsrla1" pc crqc) )
+ ()
+ )
+
+; 1111 0000 0001 0111 00010 qqqqq 00000 1 cpsraa1 crqc (c3_1)
+(dni cpsraa1_C3 "cpsraa1 $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsraa1") VOLATILE)
+ "cpsraa1 $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsraa1" pc crqc) )
+ ()
+ )
+
+; 1111 0000 0010 0111 00010 qqqqq 00000 1 cpslla1 crqc (c3_1)
+(dni cpslla1_C3 "cpslla1 $crqc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpslla1") VOLATILE)
+ "cpslla1 $crqc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x2) (f-sub4 7)
+ (f-ivc2-5u16 #x2) crqc (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpslla1" pc crqc) )
+ ()
+ )
+
+; 1111 00xi iiii 0111 00011 00000 00000 1 cpsrlia1 imm5p7 (c3_imm)
+(dni cpsrlia1_P1 "cpsrlia1 imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsrlia1") VOLATILE)
+ "cpsrlia1 $imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x0) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x3) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsrlia1" pc imm5p7) )
+ ()
+ )
+
+; 1111 01xi iiii 0111 00011 00000 00000 1 cpsraia1 imm5p7 (c3_imm)
+(dni cpsraia1_P1 "cpsraia1 imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsraia1") VOLATILE)
+ "cpsraia1 $imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x1) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x3) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsraia1" pc imm5p7) )
+ ()
+ )
+
+; 1111 10xi iiii 0111 00011 00000 00000 1 cpsllia1 imm5p7 (c3_imm)
+(dni cpsllia1_P1 "cpsllia1 imm5p7 C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsllia1") VOLATILE)
+ "cpsllia1 $imm5p7"
+ (+ MAJ_15 ivc-x-6-1 (f-ivc2-2u4 #x2) imm5p7 (f-sub4 7)
+ (f-ivc2-5u16 #x3) (f-ivc2-5u21 #x0) (f-ivc2-5u26 #x0) (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsllia1" pc imm5p7) )
+ ()
+ )
+
+; 1111 0000 0000 0111 00001 qqqqq ppppp 1 cpssqa1u.b crqc,crpc (c3_1)
+(dni cpssqa1u_b_C3 "cpssqa1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssqa1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpssqa1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x0) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssqa1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0001 0111 00001 qqqqq ppppp 1 cpssqa1.b crqc,crpc (c3_1)
+(dni cpssqa1_b_C3 "cpssqa1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssqa1_b") (CPTYPE V8QI) VOLATILE)
+ "cpssqa1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssqa1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0100 0111 00001 qqqqq ppppp 1 cpssda1u.b crqc,crpc (c3_1)
+(dni cpssda1u_b_C3 "cpssda1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssda1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpssda1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x4) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpssda1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 0101 0111 00001 qqqqq ppppp 1 cpssda1.b crqc,crpc (c3_1)
+(dni cpssda1_b_C3 "cpssda1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpssda1_b") (CPTYPE V8QI) VOLATILE)
+ "cpssda1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x5) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpssda1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1000 0111 00001 qqqqq ppppp 1 cpmula1u.b crqc,crpc (c3_1)
+(dni cpmula1u_b_C3 "cpmula1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmula1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpmula1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x8) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmula1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1001 0111 00001 qqqqq ppppp 1 cpmula1.b crqc,crpc (c3_1)
+(dni cpmula1_b_C3 "cpmula1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmula1_b") (CPTYPE V8QI) VOLATILE)
+ "cpmula1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x9) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmula1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1010 0111 00001 qqqqq ppppp 1 cpmulua1.h crqc,crpc (c3_1)
+(dni cpmulua1_h_C3 "cpmulua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xa) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1011 0111 00001 qqqqq ppppp 1 cpmulla1.h crqc,crpc (c3_1)
+(dni cpmulla1_h_C3 "cpmulla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1100 0111 00001 qqqqq ppppp 1 cpmulua1u.w crqc,crpc (c3_1)
+(dni cpmulua1u_w_C3 "cpmulua1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmulua1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xc) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1101 0111 00001 qqqqq ppppp 1 cpmulla1u.w crqc,crpc (c3_1)
+(dni cpmulla1u_w_C3 "cpmulla1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmulla1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xd) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1110 0111 00001 qqqqq ppppp 1 cpmulua1.w crqc,crpc (c3_1)
+(dni cpmulua1_w_C3 "cpmulua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xe) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0000 1111 0111 00001 qqqqq ppppp 1 cpmulla1.w crqc,crpc (c3_1)
+(dni cpmulla1_w_C3 "cpmulla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #xf) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0000 0111 00001 qqqqq ppppp 1 cpmada1u.b crqc,crpc (c3_1)
+(dni cpmada1u_b_C3 "cpmada1u.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmada1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpmada1u.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x10) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmada1u_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0001 0111 00001 qqqqq ppppp 1 cpmada1.b crqc,crpc (c3_1)
+(dni cpmada1_b_C3 "cpmada1.b $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmada1_b") (CPTYPE V8QI) VOLATILE)
+ "cpmada1.b $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x11) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmada1_b" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0010 0111 00001 qqqqq ppppp 1 cpmadua1.h crqc,crpc (c3_1)
+(dni cpmadua1_h_C3 "cpmadua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmadua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x12) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0011 0111 00001 qqqqq ppppp 1 cpmadla1.h crqc,crpc (c3_1)
+(dni cpmadla1_h_C3 "cpmadla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmadla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0100 0111 00001 qqqqq ppppp 1 cpmadua1u.w crqc,crpc (c3_1)
+(dni cpmadua1u_w_C3 "cpmadua1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmadua1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x14) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0101 0111 00001 qqqqq ppppp 1 cpmadla1u.w crqc,crpc (c3_1)
+(dni cpmadla1u_w_C3 "cpmadla1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmadla1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x15) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0110 0111 00001 qqqqq ppppp 1 cpmadua1.w crqc,crpc (c3_1)
+(dni cpmadua1_w_C3 "cpmadua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmadua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x16) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 0111 0111 00001 qqqqq ppppp 1 cpmadla1.w crqc,crpc (c3_1)
+(dni cpmadla1_w_C3 "cpmadla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmadla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmadla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x17) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1010 0111 00001 qqqqq ppppp 1 cpmsbua1.h crqc,crpc (c3_1)
+(dni cpmsbua1_h_C3 "cpmsbua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmsbua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1a) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1011 0111 00001 qqqqq ppppp 1 cpmsbla1.h crqc,crpc (c3_1)
+(dni cpmsbla1_h_C3 "cpmsbla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmsbla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1100 0111 00001 qqqqq ppppp 1 cpmsbua1u.w crqc,crpc (c3_1)
+(dni cpmsbua1u_w_C3 "cpmsbua1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmsbua1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1c) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1101 0111 00001 qqqqq ppppp 1 cpmsbla1u.w crqc,crpc (c3_1)
+(dni cpmsbla1u_w_C3 "cpmsbla1u.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmsbla1u.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1d) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1u_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1110 0111 00001 qqqqq ppppp 1 cpmsbua1.w crqc,crpc (c3_1)
+(dni cpmsbua1_w_C3 "cpmsbua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmsbua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1e) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0001 1111 0111 00001 qqqqq ppppp 1 cpmsbla1.w crqc,crpc (c3_1)
+(dni cpmsbla1_w_C3 "cpmsbla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmsbla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmsbla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x0) (f-ivc2-5u7 #x1f) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0010 0111 00001 qqqqq ppppp 1 cpsmadua1.h crqc,crpc (c3_1)
+(dni cpsmadua1_h_C3 "cpsmadua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x12) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0011 0111 00001 qqqqq ppppp 1 cpsmadla1.h crqc,crpc (c3_1)
+(dni cpsmadla1_h_C3 "cpsmadla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0110 0111 00001 qqqqq ppppp 1 cpsmadua1.w crqc,crpc (c3_1)
+(dni cpsmadua1_w_C3 "cpsmadua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x16) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 0111 0111 00001 qqqqq ppppp 1 cpsmadla1.w crqc,crpc (c3_1)
+(dni cpsmadla1_w_C3 "cpsmadla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x17) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1010 0111 00001 qqqqq ppppp 1 cpsmsbua1.h crqc,crpc (c3_1)
+(dni cpsmsbua1_h_C3 "cpsmsbua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1a) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1011 0111 00001 qqqqq ppppp 1 cpsmsbla1.h crqc,crpc (c3_1)
+(dni cpsmsbla1_h_C3 "cpsmsbla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1110 0111 00001 qqqqq ppppp 1 cpsmsbua1.w crqc,crpc (c3_1)
+(dni cpsmsbua1_w_C3 "cpsmsbua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1e) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0011 1111 0111 00001 qqqqq ppppp 1 cpsmsbla1.w crqc,crpc (c3_1)
+(dni cpsmsbla1_w_C3 "cpsmsbla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x1) (f-ivc2-5u7 #x1f) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1010 0111 00001 qqqqq ppppp 1 cpmulslua1.h crqc,crpc (c3_1)
+(dni cpmulslua1_h_C3 "cpmulslua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulslua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xa) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1011 0111 00001 qqqqq ppppp 1 cpmulslla1.h crqc,crpc (c3_1)
+(dni cpmulslla1_h_C3 "cpmulslla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulslla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xb) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1110 0111 00001 qqqqq ppppp 1 cpmulslua1.w crqc,crpc (c3_1)
+(dni cpmulslua1_w_C3 "cpmulslua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulslua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xe) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0100 1111 0111 00001 qqqqq ppppp 1 cpmulslla1.w crqc,crpc (c3_1)
+(dni cpmulslla1_w_C3 "cpmulslla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpmulslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulslla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x2) (f-ivc2-5u7 #xf) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 0010 0111 00001 qqqqq ppppp 1 cpsmadslua1.h crqc,crpc (c3_1)
+(dni cpsmadslua1_h_C3 "cpsmadslua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadslua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x12) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 0011 0111 00001 qqqqq ppppp 1 cpsmadslla1.h crqc,crpc (c3_1)
+(dni cpsmadslla1_h_C3 "cpsmadslla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadslla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x13) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 0110 0111 00001 qqqqq ppppp 1 cpsmadslua1.w crqc,crpc (c3_1)
+(dni cpsmadslua1_w_C3 "cpsmadslua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadslua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x16) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 0111 0111 00001 qqqqq ppppp 1 cpsmadslla1.w crqc,crpc (c3_1)
+(dni cpsmadslla1_w_C3 "cpsmadslla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmadslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadslla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x17) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 1010 0111 00001 qqqqq ppppp 1 cpsmsbslua1.h crqc,crpc (c3_1)
+(dni cpsmsbslua1_h_C3 "cpsmsbslua1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbslua1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x1a) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslua1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 1011 0111 00001 qqqqq ppppp 1 cpsmsbslla1.h crqc,crpc (c3_1)
+(dni cpsmsbslla1_h_C3 "cpsmsbslla1.h $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbslla1.h $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x1b) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslla1_h" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 1110 0111 00001 qqqqq ppppp 1 cpsmsbslua1.w crqc,crpc (c3_1)
+(dni cpsmsbslua1_w_C3 "cpsmsbslua1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbslua1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x1e) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslua1_w" pc crqc crpc) )
+ ()
+ )
+
+; 1111 0111 1111 0111 00001 qqqqq ppppp 1 cpsmsbslla1.w crqc,crpc (c3_1)
+(dni cpsmsbslla1_w_C3 "cpsmsbslla1.w $crqc,$crpc C3"
+ (OPTIONAL_CP_INSN ivc2-c3-isa (SLOTS C3) (INTRINSIC "cpsmsbslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbslla1.w $crqc,$crpc"
+ (+ MAJ_15 (f-ivc2-3u4 #x3) (f-ivc2-5u7 #x1f) (f-sub4 7)
+ (f-ivc2-5u16 #x1) crqc crpc (f-ivc2-1u31 #x1) )
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslla1_w" pc crqc crpc) )
+ ()
+ )
+
+; 00000 00000 00000 00000 c0nop (p0_1)
+(dni c0nop_P0_P0S "c0nop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p0-isa (SLOTS P0,P0S) (INTRINSIC "c0nop"))
+ "c0nop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x0) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x0) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_c0nop" pc) )
+ ()
+ )
+
+; 00001 qqqqq ppppp ooooo cpadd3.b =crop,crqp,crpp (p0_1)
+(dni cpadd3_b_P0S_P1 "cpadd3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpadd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpadd3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpadd3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010 qqqqq ppppp ooooo cpadd3.h =crop,crqp,crpp (p0_1)
+(dni cpadd3_h_P0S_P1 "cpadd3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpadd3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpadd3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x2) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpadd3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00011 qqqqq ppppp ooooo cpadd3.w =crop,crqp,crpp (p0_1)
+(dni cpadd3_w_P0S_P1 "cpadd3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpadd3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpadd3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x3) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpadd3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00101 qqqqq ppppp ooooo cpunpacku.b =crop,crqp,crpp (p0_1)
+(dni cpunpacku_b_P0S_P1 "cpunpacku.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpacku_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpunpacku.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x5) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpacku_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00110 qqqqq ppppp ooooo cpunpacku.h =crop,crqp,crpp (p0_1)
+(dni cpunpacku_h_P0S_P1 "cpunpacku.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpacku_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpunpacku.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x6) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpacku_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00111 qqqqq ppppp ooooo cpunpacku.w =crop,crqp,crpp (p0_1)
+(dni cpunpacku_w_P0S_P1 "cpunpacku.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpacku_w") (CPTYPE V2USI) (CRET FIRST))
+ "cpunpacku.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x7) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpacku_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01001 qqqqq ppppp ooooo cpunpackl.b =crop,crqp,crpp (p0_1)
+(dni cpunpackl_b_P0S_P1 "cpunpackl.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpackl_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpunpackl.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x9) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpackl_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01010 qqqqq ppppp ooooo cpunpackl.h =crop,crqp,crpp (p0_1)
+(dni cpunpackl_h_P0S_P1 "cpunpackl.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpackl_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpunpackl.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #xa) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpackl_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01011 qqqqq ppppp ooooo cpunpackl.w =crop,crqp,crpp (p0_1)
+(dni cpunpackl_w_P0S_P1 "cpunpackl.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpunpackl_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpunpackl.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #xb) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpunpackl_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00100 qqqqq ppppp ooooo cpsel =crop,crqp,crpp (p0_1)
+(dni cpsel_P0S_P1 "cpsel $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpsel") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpsel $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x4) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsel" pc crqp crpp)) )
+ ()
+ )
+
+; 01100 qqqqq ppppp ooooo cpfsftbs0 =crop,crqp,crpp (p0_1)
+(dni cpfsftbs0_P0S_P1 "cpfsftbs0 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpfsftbs0") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpfsftbs0 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #xc) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpfsftbs0" pc crqp crpp)) )
+ ()
+ )
+
+; 01101 qqqqq ppppp ooooo cpfsftbs1 =crop,crqp,crpp (p0_1)
+(dni cpfsftbs1_P0S_P1 "cpfsftbs1 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpfsftbs1") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpfsftbs1 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #xd) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpfsftbs1" pc crqp crpp)) )
+ ()
+ )
+
+; 10000 qqqqq 00000 ooooo cpmov =crop,crqp (p0_1)
+(dni cpmov_P0S_P1 "cpmov $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmov") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cpmov $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x0) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmov" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00001 ooooo cpabsz.b =crop,crqp (p0_1)
+(dni cpabsz_b_P0S_P1 "cpabsz.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpabsz_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabsz.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabsz_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00010 ooooo cpabsz.h =crop,crqp (p0_1)
+(dni cpabsz_h_P0S_P1 "cpabsz.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpabsz_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpabsz.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x2) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabsz_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00011 ooooo cpabsz.w =crop,crqp (p0_1)
+(dni cpabsz_w_P0S_P1 "cpabsz.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpabsz_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpabsz.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x3) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabsz_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00100 ooooo cpldz.h =crop,crqp (p0_1)
+(dni cpldz_h_P0S_P1 "cpldz.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpldz_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpldz.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x4) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpldz_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00101 ooooo cpldz.w =crop,crqp (p0_1)
+(dni cpldz_w_P0S_P1 "cpldz.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpldz_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpldz.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x5) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpldz_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00110 ooooo cpnorm.h =crop,crqp (p0_1)
+(dni cpnorm_h_P0S_P1 "cpnorm.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpnorm_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpnorm.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x6) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpnorm_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 00111 ooooo cpnorm.w =crop,crqp (p0_1)
+(dni cpnorm_w_P0S_P1 "cpnorm.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpnorm_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpnorm.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x7) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpnorm_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01000 ooooo cphaddu.b =crop,crqp (p0_1)
+(dni cphaddu_b_P0S_P1 "cphaddu.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cphaddu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cphaddu.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x8) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cphaddu_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01001 ooooo cphadd.b =crop,crqp (p0_1)
+(dni cphadd_b_P0S_P1 "cphadd.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cphadd_b") (CPTYPE V8QI) (CRET FIRST))
+ "cphadd.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x9) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cphadd_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01010 ooooo cphadd.h =crop,crqp (p0_1)
+(dni cphadd_h_P0S_P1 "cphadd.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cphadd_h") (CPTYPE V4HI) (CRET FIRST))
+ "cphadd.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xa) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cphadd_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01011 ooooo cphadd.w =crop,crqp (p0_1)
+(dni cphadd_w_P0S_P1 "cphadd.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cphadd_w") (CPTYPE V2SI) (CRET FIRST))
+ "cphadd.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xb) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cphadd_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01100 00000 cpccadd.b +crqp (p0_1)
+(dni cpccadd_b_P0S_P1 "cpccadd.b $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpccadd_b") (CPTYPE V8QI) (CRET FIRSTCOPY) VOLATILE)
+ "cpccadd.b $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xc) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cpccadd_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01101 ooooo cpbcast.b =crop,crqp (p0_1)
+(dni cpbcast_b_P0S_P1 "cpbcast.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpbcast_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpbcast.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xd) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpbcast_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01110 ooooo cpbcast.h =crop,crqp (p0_1)
+(dni cpbcast_h_P0S_P1 "cpbcast.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpbcast_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpbcast.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xe) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpbcast_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 01111 ooooo cpbcast.w =crop,crqp (p0_1)
+(dni cpbcast_w_P0S_P1 "cpbcast.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpbcast_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpbcast.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #xf) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpbcast_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10000 ooooo cpextuu.b =crop,crqp (p0_1)
+(dni cpextuu_b_P0S_P1 "cpextuu.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextuu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextuu.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x10) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextuu_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10001 ooooo cpextu.b =crop,crqp (p0_1)
+(dni cpextu_b_P0S_P1 "cpextu.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextu.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x11) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextu_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10010 ooooo cpextuu.h =crop,crqp (p0_1)
+(dni cpextuu_h_P0S_P1 "cpextuu.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextuu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextuu.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x12) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextuu_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10011 ooooo cpextu.h =crop,crqp (p0_1)
+(dni cpextu_h_P0S_P1 "cpextu.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextu.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x13) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextu_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10100 ooooo cpextlu.b =crop,crqp (p0_1)
+(dni cpextlu_b_P0S_P1 "cpextlu.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextlu_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cpextlu.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x14) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextlu_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10101 ooooo cpextl.b =crop,crqp (p0_1)
+(dni cpextl_b_P0S_P1 "cpextl.b $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextl_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextl.b $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x15) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextl_b" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10110 ooooo cpextlu.h =crop,crqp (p0_1)
+(dni cpextlu_h_P0S_P1 "cpextlu.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextlu_h") (CPTYPE V4UHI) (CRET FIRST))
+ "cpextlu.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x16) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextlu_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 10111 ooooo cpextl.h =crop,crqp (p0_1)
+(dni cpextl_h_P0S_P1 "cpextl.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpextl_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpextl.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x17) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextl_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11000 ooooo cpcastub.h =crop,crqp (p0_1)
+(dni cpcastub_h_P0S_P1 "cpcastub.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcastub_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpcastub.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x18) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcastub_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11001 ooooo cpcastb.h =crop,crqp (p0_1)
+(dni cpcastb_h_P0S_P1 "cpcastb.h $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcastb_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpcastb.h $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x19) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcastb_h" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11100 ooooo cpcastub.w =crop,crqp (p0_1)
+(dni cpcastub_w_P0S_P1 "cpcastub.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcastub_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastub.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1c) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcastub_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11101 ooooo cpcastb.w =crop,crqp (p0_1)
+(dni cpcastb_w_P0S_P1 "cpcastb.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcastb_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastb.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1d) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcastb_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11110 ooooo cpcastuh.w =crop,crqp (p0_1)
+(dni cpcastuh_w_P0S_P1 "cpcastuh.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcastuh_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcastuh.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1e) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcastuh_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11111 ooooo cpcasth.w =crop,crqp (p0_1)
+(dni cpcasth_w_P0S_P1 "cpcasth.w $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcasth_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpcasth.w $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1f) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpcasth_w" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11010 ooooo cdcastuw =crop,crqp (p0_1)
+(dni cdcastuw_P0S_P1 "cdcastuw $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cdcastuw") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdcastuw $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1a) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdcastuw" pc crqp)) )
+ ()
+ )
+
+; 10000 qqqqq 11011 ooooo cdcastw =crop,crqp (p0_1)
+(dni cdcastw_P0S_P1 "cdcastw $crop,$crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cdcastw") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdcastw $crop,$crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x10) crqp (f-ivc2-5u18 #x1b) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdcastw" pc crqp)) )
+ ()
+ )
+
+; 10001 00000 00000 ooooo cpmovfrcsar0 =crop (p0_1)
+(dni cpmovfrcsar0_P0S_P1 "cpmovfrcsar0 $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovfrcsar0") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcsar0 $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x0) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovfrcsar0" pc)) )
+ ()
+ )
+
+; 10001 00000 01111 ooooo cpmovfrcsar1 =crop (p0_1)
+(dni cpmovfrcsar1_P0S_P1 "cpmovfrcsar1 $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovfrcsar1") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcsar1 $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xf) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovfrcsar1" pc)) )
+ ()
+ )
+
+; 10001 00000 00001 ooooo cpmovfrcc =crop (p0_1)
+(dni cpmovfrcc_P0S_P1 "cpmovfrcc $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovfrcc") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST) VOLATILE)
+ "cpmovfrcc $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovfrcc" pc)) )
+ ()
+ )
+
+; 10001 qqqqq 10000 00000 cpmovtocsar0 crqp (p0_1)
+(dni cpmovtocsar0_P0S_P1 "cpmovtocsar0 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovtocsar0") VOLATILE)
+ "cpmovtocsar0 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) crqp (f-ivc2-5u18 #x10) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_csar0 0)
+ (c-call "ivc2_cpmovtocsar0" pc crqp) )
+ ()
+ )
+
+; 10001 qqqqq 11111 00000 cpmovtocsar1 crqp (p0_1)
+(dni cpmovtocsar1_P0S_P1 "cpmovtocsar1 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovtocsar1") VOLATILE)
+ "cpmovtocsar1 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) crqp (f-ivc2-5u18 #x1f) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_csar1 0)
+ (c-call "ivc2_cpmovtocsar1" pc crqp) )
+ ()
+ )
+
+; 10001 qqqqq 10001 00000 cpmovtocc crqp (p0_1)
+(dni cpmovtocc_P0S_P1 "cpmovtocc $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovtocc") VOLATILE)
+ "cpmovtocc $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x11) crqp (f-ivc2-5u18 #x11) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpmovtocc" pc crqp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 00000 cpcmpeqz.b crqp,crpp (p0_1)
+(dni cpcmpeqz_b_P0S_P1 "cpcmpeqz.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpeqz_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpeqz.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeqz_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 00001 cpcmpeq.b crqp,crpp (p0_1)
+(dni cpcmpeq_b_P0S_P1 "cpcmpeq.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpeq_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpeq.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 00011 cpcmpeq.h crqp,crpp (p0_1)
+(dni cpcmpeq_h_P0S_P1 "cpcmpeq.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpeq_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpeq.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_h" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 00101 cpcmpeq.w crqp,crpp (p0_1)
+(dni cpcmpeq_w_P0S_P1 "cpcmpeq.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpeq_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpeq.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpeq_w" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 01001 cpcmpne.b crqp,crpp (p0_1)
+(dni cpcmpne_b_P0S_P1 "cpcmpne.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpne_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpne.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 01011 cpcmpne.h crqp,crpp (p0_1)
+(dni cpcmpne_h_P0S_P1 "cpcmpne.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpne_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpne.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_h" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 01101 cpcmpne.w crqp,crpp (p0_1)
+(dni cpcmpne_w_P0S_P1 "cpcmpne.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpne_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpne.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpne_w" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 10000 cpcmpgtu.b crqp,crpp (p0_1)
+(dni cpcmpgtu_b_P0S_P1 "cpcmpgtu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgtu_b") (CPTYPE V8UQI) VOLATILE)
+ "cpcmpgtu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgtu_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 10001 cpcmpgt.b crqp,crpp (p0_1)
+(dni cpcmpgt_b_P0S_P1 "cpcmpgt.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgt_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpgt.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 10011 cpcmpgt.h crqp,crpp (p0_1)
+(dni cpcmpgt_h_P0S_P1 "cpcmpgt.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgt_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpgt.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_h" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 10100 cpcmpgtu.w crqp,crpp (p0_1)
+(dni cpcmpgtu_w_P0S_P1 "cpcmpgtu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgtu_w") (CPTYPE V2USI) VOLATILE)
+ "cpcmpgtu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgtu_w" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 10101 cpcmpgt.w crqp,crpp (p0_1)
+(dni cpcmpgt_w_P0S_P1 "cpcmpgt.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgt_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpgt.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgt_w" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 11000 cpcmpgeu.b crqp,crpp (p0_1)
+(dni cpcmpgeu_b_P0S_P1 "cpcmpgeu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgeu_b") (CPTYPE V8UQI) VOLATILE)
+ "cpcmpgeu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x18) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgeu_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 11001 cpcmpge.b crqp,crpp (p0_1)
+(dni cpcmpge_b_P0S_P1 "cpcmpge.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpge_b") (CPTYPE V8QI) VOLATILE)
+ "cpcmpge.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x19) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_b" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 11011 cpcmpge.h crqp,crpp (p0_1)
+(dni cpcmpge_h_P0S_P1 "cpcmpge.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpge_h") (CPTYPE V4HI) VOLATILE)
+ "cpcmpge.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_h" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 11100 cpcmpgeu.w crqp,crpp (p0_1)
+(dni cpcmpgeu_w_P0S_P1 "cpcmpgeu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpgeu_w") (CPTYPE V2USI) VOLATILE)
+ "cpcmpgeu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpgeu_w" pc crqp crpp) )
+ ()
+ )
+
+; 10010 qqqqq ppppp 11101 cpcmpge.w crqp,crpp (p0_1)
+(dni cpcmpge_w_P0S_P1 "cpcmpge.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpcmpge_w") (CPTYPE V2SI) VOLATILE)
+ "cpcmpge.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x12) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cc 0)
+ (c-call "ivc2_cpcmpge_w" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00000 cpadda0u.b crqp,crpp (p0_1)
+(dni cpadda0u_b_P0S "cpadda0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpadda0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpadda0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpadda0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00001 cpadda0.b crqp,crpp (p0_1)
+(dni cpadda0_b_P0S "cpadda0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpadda0_b") (CPTYPE V8QI) VOLATILE)
+ "cpadda0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpadda0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00010 cpaddua0.h crqp,crpp (p0_1)
+(dni cpaddua0_h_P0S "cpaddua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x2) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpaddua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00011 cpaddla0.h crqp,crpp (p0_1)
+(dni cpaddla0_h_P0S "cpaddla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpaddla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00100 cpaddaca0u.b crqp,crpp (p0_1)
+(dni cpaddaca0u_b_P0S "cpaddaca0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddaca0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpaddaca0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x4) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpaddaca0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00101 cpaddaca0.b crqp,crpp (p0_1)
+(dni cpaddaca0_b_P0S "cpaddaca0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddaca0_b") (CPTYPE V8QI) VOLATILE)
+ "cpaddaca0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpaddaca0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00110 cpaddacua0.h crqp,crpp (p0_1)
+(dni cpaddacua0_h_P0S "cpaddacua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddacua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x6) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpaddacua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 00111 cpaddacla0.h crqp,crpp (p0_1)
+(dni cpaddacla0_h_P0S "cpaddacla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaddacla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x7) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpaddacla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01000 cpsuba0u.b crqp,crpp (p0_1)
+(dni cpsuba0u_b_P0S "cpsuba0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsuba0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsuba0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x8) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsuba0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01001 cpsuba0.b crqp,crpp (p0_1)
+(dni cpsuba0_b_P0S "cpsuba0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsuba0_b") (CPTYPE V8QI) VOLATILE)
+ "cpsuba0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsuba0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01010 cpsubua0.h crqp,crpp (p0_1)
+(dni cpsubua0_h_P0S "cpsubua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsubua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01011 cpsubla0.h crqp,crpp (p0_1)
+(dni cpsubla0_h_P0S "cpsubla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpsubla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01100 cpsubaca0u.b crqp,crpp (p0_1)
+(dni cpsubaca0u_b_P0S "cpsubaca0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubaca0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsubaca0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xc) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsubaca0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01101 cpsubaca0.b crqp,crpp (p0_1)
+(dni cpsubaca0_b_P0S "cpsubaca0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubaca0_b") (CPTYPE V8QI) VOLATILE)
+ "cpsubaca0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsubaca0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01110 cpsubacua0.h crqp,crpp (p0_1)
+(dni cpsubacua0_h_P0S "cpsubacua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubacua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsubacua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 01111 cpsubacla0.h crqp,crpp (p0_1)
+(dni cpsubacla0_h_P0S "cpsubacla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsubacla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsubacla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10000 cpabsa0u.b crqp,crpp (p0_1)
+(dni cpabsa0u_b_P0S "cpabsa0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpabsa0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpabsa0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpabsa0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10001 cpabsa0.b crqp,crpp (p0_1)
+(dni cpabsa0_b_P0S "cpabsa0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpabsa0_b") (CPTYPE V8QI) VOLATILE)
+ "cpabsa0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpabsa0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10010 cpabsua0.h crqp,crpp (p0_1)
+(dni cpabsua0_h_P0S "cpabsua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpabsua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpabsua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10011 cpabsla0.h crqp,crpp (p0_1)
+(dni cpabsla0_h_P0S "cpabsla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpabsla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpabsla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10100 cpsada0u.b crqp,crpp (p0_1)
+(dni cpsada0u_b_P0S "cpsada0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsada0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsada0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsada0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10101 cpsada0.b crqp,crpp (p0_1)
+(dni cpsada0_b_P0S "cpsada0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsada0_b") (CPTYPE V8QI) VOLATILE)
+ "cpsada0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsada0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10110 cpsadua0.h crqp,crpp (p0_1)
+(dni cpsadua0_h_P0S "cpsadua0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsadua0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadua0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsadua0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 10111 cpsadla0.h crqp,crpp (p0_1)
+(dni cpsadla0_h_P0S "cpsadla0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsadla0_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadla0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpsadla0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 11011 cpseta0.h crqp,crpp (p0_1)
+(dni cpseta0_h_P0S "cpseta0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpseta0_h") (CPTYPE V4HI) VOLATILE)
+ "cpseta0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpseta0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 11100 cpsetua0.w crqp,crpp (p0_1)
+(dni cpsetua0_w_P0S "cpsetua0.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsetua0_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetua0.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsetua0_w" pc crqp crpp) )
+ ()
+ )
+
+; 11000 qqqqq ppppp 11101 cpsetla0.w crqp,crpp (p0_1)
+(dni cpsetla0_w_P0S "cpsetla0.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsetla0_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetla0.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpsetla0_w" pc crqp crpp) )
+ ()
+ )
+
+; 11001 00000 00001 ooooo cpmova0.b =crop (p0_1)
+(dni cpmova0_b_P0S "cpmova0.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmova0_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cpmova0.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmova0_b" pc)) )
+ ()
+ )
+
+; 11001 00000 00010 ooooo cpmovua0.h =crop (p0_1)
+(dni cpmovua0_h_P0S "cpmovua0.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovua0_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovua0.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x2) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovua0_h" pc)) )
+ ()
+ )
+
+; 11001 00000 00011 ooooo cpmovla0.h =crop (p0_1)
+(dni cpmovla0_h_P0S "cpmovla0.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovla0_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovla0.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x3) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovla0_h" pc)) )
+ ()
+ )
+
+; 11001 00000 00100 ooooo cpmovuua0.w =crop (p0_1)
+(dni cpmovuua0_w_P0S "cpmovuua0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovuua0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovuua0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x4) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovuua0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 00101 ooooo cpmovula0.w =crop (p0_1)
+(dni cpmovula0_w_P0S "cpmovula0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovula0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovula0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x5) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovula0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 00110 ooooo cpmovlua0.w =crop (p0_1)
+(dni cpmovlua0_w_P0S "cpmovlua0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovlua0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlua0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x6) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovlua0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 00111 ooooo cpmovlla0.w =crop (p0_1)
+(dni cpmovlla0_w_P0S "cpmovlla0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovlla0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlla0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x7) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovlla0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 01000 ooooo cppacka0u.b =crop (p0_1)
+(dni cppacka0u_b_P0S "cppacka0u.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppacka0u_b") (CPTYPE V8UQI) (CRET FIRST) VOLATILE)
+ "cppacka0u.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x8) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppacka0u_b" pc)) )
+ ()
+ )
+
+; 11001 00000 01001 ooooo cppacka0.b =crop (p0_1)
+(dni cppacka0_b_P0S "cppacka0.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppacka0_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cppacka0.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x9) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppacka0_b" pc)) )
+ ()
+ )
+
+; 11001 00000 01010 ooooo cppackua0.h =crop (p0_1)
+(dni cppackua0_h_P0S "cppackua0.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppackua0_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackua0.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xa) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackua0_h" pc)) )
+ ()
+ )
+
+; 11001 00000 01011 ooooo cppackla0.h =crop (p0_1)
+(dni cppackla0_h_P0S "cppackla0.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppackla0_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackla0.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xb) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackla0_h" pc)) )
+ ()
+ )
+
+; 11001 00000 01100 ooooo cppackua0.w =crop (p0_1)
+(dni cppackua0_w_P0S "cppackua0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppackua0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackua0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xc) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackua0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 01101 ooooo cppackla0.w =crop (p0_1)
+(dni cppackla0_w_P0S "cppackla0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cppackla0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackla0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xd) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackla0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 01110 ooooo cpmovhua0.w =crop (p0_1)
+(dni cpmovhua0_w_P0S "cpmovhua0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovhua0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhua0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xe) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovhua0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 01111 ooooo cpmovhla0.w =crop (p0_1)
+(dni cpmovhla0_w_P0S "cpmovhla0.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpmovhla0_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhla0.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xf) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovhla0_w" pc)) )
+ ()
+ )
+
+; 11001 00000 10000 00000 cpacsuma0 (p0_1)
+(dni cpacsuma0_P0S "cpacsuma0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpacsuma0") VOLATILE)
+ "cpacsuma0"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x10) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpacsuma0" pc) )
+ ()
+ )
+
+; 11001 00000 10001 00000 cpaccpa0 (p0_1)
+(dni cpaccpa0_P0S "cpaccpa0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpaccpa0") VOLATILE)
+ "cpaccpa0"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x11) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpaccpa0" pc) )
+ ()
+ )
+
+; 11001 qqqqq 11000 00000 cpsrla0 crqp (p0_1)
+(dni cpsrla0_P0S "cpsrla0 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsrla0") VOLATILE)
+ "cpsrla0 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x18) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsrla0" pc crqp) )
+ ()
+ )
+
+; 11001 qqqqq 11001 00000 cpsraa0 crqp (p0_1)
+(dni cpsraa0_P0S "cpsraa0 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsraa0") VOLATILE)
+ "cpsraa0 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x19) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsraa0" pc crqp) )
+ ()
+ )
+
+; 11001 qqqqq 11010 00000 cpslla0 crqp (p0_1)
+(dni cpslla0_P0S "cpslla0 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpslla0") VOLATILE)
+ "cpslla0 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x1a) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpslla0" pc crqp) )
+ ()
+ )
+
+; 11001 00000 11100 iiiii cpsrlia0 imm5p23 (p0_1)
+(dni cpsrlia0_P0S "cpsrlia0 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsrlia0") VOLATILE)
+ "cpsrlia0 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1c) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsrlia0" pc imm5p23) )
+ ()
+ )
+
+; 11001 00000 11101 iiiii cpsraia0 imm5p23 (p0_1)
+(dni cpsraia0_P0S "cpsraia0 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsraia0") VOLATILE)
+ "cpsraia0 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1d) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsraia0" pc imm5p23) )
+ ()
+ )
+
+; 11001 00000 11110 iiiii cpsllia0 imm5p23 (p0_1)
+(dni cpsllia0_P0S "cpsllia0 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpsllia0") VOLATILE)
+ "cpsllia0 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1e) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpsllia0" pc imm5p23) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00000 cpfsftba0s0u.b crqp,crpp (p0_1)
+(dni cpfsftba0s0u_b_P0S "cpfsftba0s0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftba0s0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfsftba0s0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftba0s0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00001 cpfsftba0s0.b crqp,crpp (p0_1)
+(dni cpfsftba0s0_b_P0S "cpfsftba0s0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftba0s0_b") (CPTYPE V8QI) VOLATILE)
+ "cpfsftba0s0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftba0s0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00010 cpfsftbua0s0.h crqp,crpp (p0_1)
+(dni cpfsftbua0s0_h_P0S "cpfsftbua0s0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftbua0s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfsftbua0s0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x2) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftbua0s0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00011 cpfsftbla0s0.h crqp,crpp (p0_1)
+(dni cpfsftbla0s0_h_P0S "cpfsftbla0s0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftbla0s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfsftbla0s0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpfsftbla0s0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00100 cpfaca0s0u.b crqp,crpp (p0_1)
+(dni cpfaca0s0u_b_P0S "cpfaca0s0u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfaca0s0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfaca0s0u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x4) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfaca0s0u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00101 cpfaca0s0.b crqp,crpp (p0_1)
+(dni cpfaca0s0_b_P0S "cpfaca0s0.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfaca0s0_b") (CPTYPE V8QI) VOLATILE)
+ "cpfaca0s0.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfaca0s0_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00110 cpfacua0s0.h crqp,crpp (p0_1)
+(dni cpfacua0s0_h_P0S "cpfacua0s0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfacua0s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfacua0s0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x6) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfacua0s0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 00111 cpfacla0s0.h crqp,crpp (p0_1)
+(dni cpfacla0s0_h_P0S "cpfacla0s0.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfacla0s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfacla0s0.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x7) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfacla0s0_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01000 cpfsftba0s1u.b crqp,crpp (p0_1)
+(dni cpfsftba0s1u_b_P0S "cpfsftba0s1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftba0s1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfsftba0s1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x8) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftba0s1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01001 cpfsftba0s1.b crqp,crpp (p0_1)
+(dni cpfsftba0s1_b_P0S "cpfsftba0s1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftba0s1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfsftba0s1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftba0s1_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01010 cpfsftbua0s1.h crqp,crpp (p0_1)
+(dni cpfsftbua0s1_h_P0S "cpfsftbua0s1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftbua0s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfsftbua0s1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (c-call "ivc2_cpfsftbua0s1_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01011 cpfsftbla0s1.h crqp,crpp (p0_1)
+(dni cpfsftbla0s1_h_P0S "cpfsftbla0s1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfsftbla0s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfsftbla0s1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (c-call "ivc2_cpfsftbla0s1_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01100 cpfaca0s1u.b crqp,crpp (p0_1)
+(dni cpfaca0s1u_b_P0S "cpfaca0s1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfaca0s1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfaca0s1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xc) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfaca0s1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01101 cpfaca0s1.b crqp,crpp (p0_1)
+(dni cpfaca0s1_b_P0S "cpfaca0s1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfaca0s1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfaca0s1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfaca0s1_b" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01110 cpfacua0s1.h crqp,crpp (p0_1)
+(dni cpfacua0s1_h_P0S "cpfacua0s1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfacua0s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfacua0s1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfacua0s1_h" pc crqp crpp) )
+ ()
+ )
+
+; 11111 qqqqq ppppp 01111 cpfacla0s1.h crqp,crpp (p0_1)
+(dni cpfacla0s1_h_P0S "cpfacla0s1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-isa (SLOTS P0S) (INTRINSIC "cpfacla0s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfacla0s1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_cofa0 0)
+ (c-call "ivc2_cpfacla0s1_h" pc crqp crpp) )
+ ()
+ )
+
+; xxxxxiii 01000 qqqqq ppppp ooooo cpfsftbi =crop,crqp,crpp,imm3p5 (p0_1)
+(dni cpfsftbi_P0_P1 "cpfsftbi $crop,$crqp,$crpp,imm3p5 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpfsftbi") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cpfsftbi $crop,$crqp,$crpp,$imm3p5"
+ (+ ivc-x-0-5 imm3p5 (f-ivc2-5u8 #x8) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpfsftbi" pc crqp crpp imm3p5)) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 00001 cpacmpeq.b crqp,crpp (p0_1)
+(dni cpacmpeq_b_P0_P1 "cpacmpeq.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpeq_b") (CPTYPE V8QI))
+ "cpacmpeq.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpeq_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 00011 cpacmpeq.h crqp,crpp (p0_1)
+(dni cpacmpeq_h_P0_P1 "cpacmpeq.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpeq_h") (CPTYPE V4HI))
+ "cpacmpeq.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpeq_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 00101 cpacmpeq.w crqp,crpp (p0_1)
+(dni cpacmpeq_w_P0_P1 "cpacmpeq.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpeq_w") (CPTYPE V2SI))
+ "cpacmpeq.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpeq_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 01001 cpacmpne.b crqp,crpp (p0_1)
+(dni cpacmpne_b_P0_P1 "cpacmpne.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpne_b") (CPTYPE V8QI))
+ "cpacmpne.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpne_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 01011 cpacmpne.h crqp,crpp (p0_1)
+(dni cpacmpne_h_P0_P1 "cpacmpne.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpne_h") (CPTYPE V4HI))
+ "cpacmpne.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpne_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 01101 cpacmpne.w crqp,crpp (p0_1)
+(dni cpacmpne_w_P0_P1 "cpacmpne.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpne_w") (CPTYPE V2SI))
+ "cpacmpne.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpne_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 10000 cpacmpgtu.b crqp,crpp (p0_1)
+(dni cpacmpgtu_b_P0_P1 "cpacmpgtu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgtu_b") (CPTYPE V8UQI))
+ "cpacmpgtu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgtu_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 10001 cpacmpgt.b crqp,crpp (p0_1)
+(dni cpacmpgt_b_P0_P1 "cpacmpgt.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgt_b") (CPTYPE V8QI))
+ "cpacmpgt.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgt_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 10011 cpacmpgt.h crqp,crpp (p0_1)
+(dni cpacmpgt_h_P0_P1 "cpacmpgt.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgt_h") (CPTYPE V4HI))
+ "cpacmpgt.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgt_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 10100 cpacmpgtu.w crqp,crpp (p0_1)
+(dni cpacmpgtu_w_P0_P1 "cpacmpgtu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgtu_w") (CPTYPE V2USI))
+ "cpacmpgtu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgtu_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 10101 cpacmpgt.w crqp,crpp (p0_1)
+(dni cpacmpgt_w_P0_P1 "cpacmpgt.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgt_w") (CPTYPE V2SI))
+ "cpacmpgt.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgt_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 11000 cpacmpgeu.b crqp,crpp (p0_1)
+(dni cpacmpgeu_b_P0_P1 "cpacmpgeu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgeu_b") (CPTYPE V8UQI))
+ "cpacmpgeu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x18) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgeu_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 11001 cpacmpge.b crqp,crpp (p0_1)
+(dni cpacmpge_b_P0_P1 "cpacmpge.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpge_b") (CPTYPE V8QI))
+ "cpacmpge.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x19) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpge_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 11011 cpacmpge.h crqp,crpp (p0_1)
+(dni cpacmpge_h_P0_P1 "cpacmpge.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpge_h") (CPTYPE V4HI))
+ "cpacmpge.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpge_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 11100 cpacmpgeu.w crqp,crpp (p0_1)
+(dni cpacmpgeu_w_P0_P1 "cpacmpgeu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpgeu_w") (CPTYPE V2USI))
+ "cpacmpgeu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpgeu_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 10011 qqqqq ppppp 11101 cpacmpge.w crqp,crpp (p0_1)
+(dni cpacmpge_w_P0_P1 "cpacmpge.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpacmpge_w") (CPTYPE V2SI))
+ "cpacmpge.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpacmpge_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 00001 cpocmpeq.b crqp,crpp (p0_1)
+(dni cpocmpeq_b_P0_P1 "cpocmpeq.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpeq_b") (CPTYPE V8QI))
+ "cpocmpeq.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpeq_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 00011 cpocmpeq.h crqp,crpp (p0_1)
+(dni cpocmpeq_h_P0_P1 "cpocmpeq.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpeq_h") (CPTYPE V4HI))
+ "cpocmpeq.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpeq_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 00101 cpocmpeq.w crqp,crpp (p0_1)
+(dni cpocmpeq_w_P0_P1 "cpocmpeq.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpeq_w") (CPTYPE V2SI))
+ "cpocmpeq.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpeq_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 01001 cpocmpne.b crqp,crpp (p0_1)
+(dni cpocmpne_b_P0_P1 "cpocmpne.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpne_b") (CPTYPE V8QI))
+ "cpocmpne.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpne_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 01011 cpocmpne.h crqp,crpp (p0_1)
+(dni cpocmpne_h_P0_P1 "cpocmpne.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpne_h") (CPTYPE V4HI))
+ "cpocmpne.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpne_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 01101 cpocmpne.w crqp,crpp (p0_1)
+(dni cpocmpne_w_P0_P1 "cpocmpne.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpne_w") (CPTYPE V2SI))
+ "cpocmpne.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpne_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 10000 cpocmpgtu.b crqp,crpp (p0_1)
+(dni cpocmpgtu_b_P0_P1 "cpocmpgtu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgtu_b") (CPTYPE V8UQI))
+ "cpocmpgtu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgtu_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 10001 cpocmpgt.b crqp,crpp (p0_1)
+(dni cpocmpgt_b_P0_P1 "cpocmpgt.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgt_b") (CPTYPE V8QI))
+ "cpocmpgt.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgt_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 10011 cpocmpgt.h crqp,crpp (p0_1)
+(dni cpocmpgt_h_P0_P1 "cpocmpgt.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgt_h") (CPTYPE V4HI))
+ "cpocmpgt.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgt_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 10100 cpocmpgtu.w crqp,crpp (p0_1)
+(dni cpocmpgtu_w_P0_P1 "cpocmpgtu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgtu_w") (CPTYPE V2USI))
+ "cpocmpgtu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgtu_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 10101 cpocmpgt.w crqp,crpp (p0_1)
+(dni cpocmpgt_w_P0_P1 "cpocmpgt.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgt_w") (CPTYPE V2SI))
+ "cpocmpgt.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgt_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 11000 cpocmpgeu.b crqp,crpp (p0_1)
+(dni cpocmpgeu_b_P0_P1 "cpocmpgeu.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgeu_b") (CPTYPE V8UQI))
+ "cpocmpgeu.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x18) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgeu_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 11001 cpocmpge.b crqp,crpp (p0_1)
+(dni cpocmpge_b_P0_P1 "cpocmpge.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpge_b") (CPTYPE V8QI))
+ "cpocmpge.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x19) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpge_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 11011 cpocmpge.h crqp,crpp (p0_1)
+(dni cpocmpge_h_P0_P1 "cpocmpge.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpge_h") (CPTYPE V4HI))
+ "cpocmpge.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpge_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 11100 cpocmpgeu.w crqp,crpp (p0_1)
+(dni cpocmpgeu_w_P0_P1 "cpocmpgeu.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpgeu_w") (CPTYPE V2USI))
+ "cpocmpgeu.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpgeu_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 10011 qqqqq ppppp 11101 cpocmpge.w crqp,crpp (p0_1)
+(dni cpocmpge_w_P0_P1 "cpocmpge.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpocmpge_w") (CPTYPE V2SI))
+ "cpocmpge.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x13) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_cpocmpge_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 10100 qqqqq ppppp ooooo cdadd3 =crop,crqp,crpp (p0_1)
+(dni cdadd3_P0_P1 "cdadd3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdadd3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdadd3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdadd3" pc crqp crpp)) )
+ ()
+ )
+
+; 00000100 10100 qqqqq ppppp ooooo cpsub3.b =crop,crqp,crpp (p0_1)
+(dni cpsub3_b_P0_P1 "cpsub3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsub3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsub3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00000101 10100 qqqqq ppppp ooooo cpsub3.h =crop,crqp,crpp (p0_1)
+(dni cpsub3_h_P0_P1 "cpsub3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsub3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsub3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x5) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsub3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00000110 10100 qqqqq ppppp ooooo cpsub3.w =crop,crqp,crpp (p0_1)
+(dni cpsub3_w_P0_P1 "cpsub3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsub3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsub3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x6) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsub3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00000111 10100 qqqqq ppppp ooooo cdsub3 =crop,crqp,crpp (p0_1)
+(dni cdsub3_P0_P1 "cdsub3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsub3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsub3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x7) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsub3" pc crqp crpp)) )
+ ()
+ )
+
+; 00001010 10100 qqqqq ppppp ooooo cpsadd3.h =crop,crqp,crpp (p0_1)
+(dni cpsadd3_h_P0_P1 "cpsadd3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsadd3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpsadd3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #xa) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsadd3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00001011 10100 qqqqq ppppp ooooo cpsadd3.w =crop,crqp,crpp (p0_1)
+(dni cpsadd3_w_P0_P1 "cpsadd3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsadd3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpsadd3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #xb) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsadd3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00001110 10100 qqqqq ppppp ooooo cpssub3.h =crop,crqp,crpp (p0_1)
+(dni cpssub3_h_P0_P1 "cpssub3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssub3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpssub3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #xe) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cofr0 0)
+ (set crop (c-call DI "ivc2_cpssub3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00001111 10100 qqqqq ppppp ooooo cpssub3.w =crop,crqp,crpp (p0_1)
+(dni cpssub3_w_P0_P1 "cpssub3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssub3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpssub3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #xf) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_cofr0 0)
+ (set crop (c-call DI "ivc2_cpssub3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00010000 10100 qqqqq ppppp ooooo cpextuaddu3.b =crop,crqp,crpp (p0_1)
+(dni cpextuaddu3_b_P0_P1 "cpextuaddu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextuaddu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextuaddu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x10) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextuaddu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010001 10100 qqqqq ppppp ooooo cpextuadd3.b =crop,crqp,crpp (p0_1)
+(dni cpextuadd3_b_P0_P1 "cpextuadd3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextuadd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextuadd3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x11) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextuadd3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010010 10100 qqqqq ppppp ooooo cpextladdu3.b =crop,crqp,crpp (p0_1)
+(dni cpextladdu3_b_P0_P1 "cpextladdu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextladdu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextladdu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x12) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextladdu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010011 10100 qqqqq ppppp ooooo cpextladd3.b =crop,crqp,crpp (p0_1)
+(dni cpextladd3_b_P0_P1 "cpextladd3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextladd3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextladd3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x13) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextladd3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010100 10100 qqqqq ppppp ooooo cpextusubu3.b =crop,crqp,crpp (p0_1)
+(dni cpextusubu3_b_P0_P1 "cpextusubu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextusubu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextusubu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x14) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextusubu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010101 10100 qqqqq ppppp ooooo cpextusub3.b =crop,crqp,crpp (p0_1)
+(dni cpextusub3_b_P0_P1 "cpextusub3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextusub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextusub3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x15) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextusub3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010110 10100 qqqqq ppppp ooooo cpextlsubu3.b =crop,crqp,crpp (p0_1)
+(dni cpextlsubu3_b_P0_P1 "cpextlsubu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextlsubu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextlsubu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x16) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextlsubu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00010111 10100 qqqqq ppppp ooooo cpextlsub3.b =crop,crqp,crpp (p0_1)
+(dni cpextlsub3_b_P0_P1 "cpextlsub3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpextlsub3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpextlsub3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x17) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpextlsub3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00011000 10100 qqqqq ppppp ooooo cpaveu3.b =crop,crqp,crpp (p0_1)
+(dni cpaveu3_b_P0_P1 "cpaveu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpaveu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaveu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x18) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpaveu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00011001 10100 qqqqq ppppp ooooo cpave3.b =crop,crqp,crpp (p0_1)
+(dni cpave3_b_P0_P1 "cpave3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpave3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpave3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x19) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpave3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00011010 10100 qqqqq ppppp ooooo cpave3.h =crop,crqp,crpp (p0_1)
+(dni cpave3_h_P0_P1 "cpave3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpave3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpave3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1a) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpave3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00011011 10100 qqqqq ppppp ooooo cpave3.w =crop,crqp,crpp (p0_1)
+(dni cpave3_w_P0_P1 "cpave3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpave3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpave3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1b) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpave3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00011100 10100 qqqqq ppppp ooooo cpaddsru3.b =crop,crqp,crpp (p0_1)
+(dni cpaddsru3_b_P0_P1 "cpaddsru3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpaddsru3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaddsru3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1c) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpaddsru3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00011101 10100 qqqqq ppppp ooooo cpaddsr3.b =crop,crqp,crpp (p0_1)
+(dni cpaddsr3_b_P0_P1 "cpaddsr3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpaddsr3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpaddsr3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1d) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpaddsr3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00011110 10100 qqqqq ppppp ooooo cpaddsr3.h =crop,crqp,crpp (p0_1)
+(dni cpaddsr3_h_P0_P1 "cpaddsr3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpaddsr3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpaddsr3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1e) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpaddsr3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00011111 10100 qqqqq ppppp ooooo cpaddsr3.w =crop,crqp,crpp (p0_1)
+(dni cpaddsr3_w_P0_P1 "cpaddsr3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpaddsr3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpaddsr3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1f) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpaddsr3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00100000 10100 qqqqq ppppp ooooo cpabsu3.b =crop,crqp,crpp (p0_1)
+(dni cpabsu3_b_P0_P1 "cpabsu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpabsu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabsu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x20) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabsu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00100001 10100 qqqqq ppppp ooooo cpabs3.b =crop,crqp,crpp (p0_1)
+(dni cpabs3_b_P0_P1 "cpabs3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpabs3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpabs3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x21) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabs3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00100010 10100 qqqqq ppppp ooooo cpabs3.h =crop,crqp,crpp (p0_1)
+(dni cpabs3_h_P0_P1 "cpabs3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpabs3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpabs3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x22) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpabs3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00100100 10100 qqqqq ppppp ooooo cpand3 =crop,crqp,crpp (p0_1)
+(dni cpand3_P0_P1 "cpand3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpand3") (CPTYPE VECT) (CRET FIRST))
+ "cpand3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x24) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpand3" pc crqp crpp)) )
+ ()
+ )
+
+; 00100101 10100 qqqqq ppppp ooooo cpor3 =crop,crqp,crpp (p0_1)
+(dni cpor3_P0_P1 "cpor3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpor3") (CPTYPE VECT) (CRET FIRST))
+ "cpor3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x25) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpor3" pc crqp crpp)) )
+ ()
+ )
+
+; 00100110 10100 qqqqq ppppp ooooo cpnor3 =crop,crqp,crpp (p0_1)
+(dni cpnor3_P0_P1 "cpnor3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpnor3") (CPTYPE VECT) (CRET FIRST))
+ "cpnor3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x26) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpnor3" pc crqp crpp)) )
+ ()
+ )
+
+; 00100111 10100 qqqqq ppppp ooooo cpxor3 =crop,crqp,crpp (p0_1)
+(dni cpxor3_P0_P1 "cpxor3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpxor3") (CPTYPE VECT) (CRET FIRST))
+ "cpxor3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x27) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpxor3" pc crqp crpp)) )
+ ()
+ )
+
+; 00101100 10100 qqqqq ppppp ooooo cppacku.b =crop,crqp,crpp (p0_1)
+(dni cppacku_b_P0_P1 "cppacku.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cppacku_b") (CPTYPE V8UQI) (CRET FIRST))
+ "cppacku.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2c) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppacku_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00101101 10100 qqqqq ppppp ooooo cppack.b =crop,crqp,crpp (p0_1)
+(dni cppack_b_P0_P1 "cppack.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cppack_b") (CPTYPE V8QI) (CRET FIRST))
+ "cppack.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2d) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppack_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00101111 10100 qqqqq ppppp ooooo cppack.h =crop,crqp,crpp (p0_1)
+(dni cppack_h_P0_P1 "cppack.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cppack_h") (CPTYPE V4HI) (CRET FIRST))
+ "cppack.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2f) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppack_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00110000 10100 qqqqq ppppp ooooo cpmaxu3.b =crop,crqp,crpp (p0_1)
+(dni cpmaxu3_b_P0_P1 "cpmaxu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmaxu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmaxu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x30) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmaxu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00110001 10100 qqqqq ppppp ooooo cpmax3.b =crop,crqp,crpp (p0_1)
+(dni cpmax3_b_P0_P1 "cpmax3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmax3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmax3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x31) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmax3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00110011 10100 qqqqq ppppp ooooo cpmax3.h =crop,crqp,crpp (p0_1)
+(dni cpmax3_h_P0_P1 "cpmax3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmax3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmax3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x33) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmax3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00110100 10100 qqqqq ppppp ooooo cpmaxu3.w =crop,crqp,crpp (p0_1)
+(dni cpmaxu3_w_P0_P1 "cpmaxu3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmaxu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmaxu3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x34) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmaxu3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00110101 10100 qqqqq ppppp ooooo cpmax3.w =crop,crqp,crpp (p0_1)
+(dni cpmax3_w_P0_P1 "cpmax3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmax3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmax3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x35) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmax3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00111000 10100 qqqqq ppppp ooooo cpminu3.b =crop,crqp,crpp (p0_1)
+(dni cpminu3_b_P0_P1 "cpminu3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpminu3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpminu3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x38) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpminu3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00111001 10100 qqqqq ppppp ooooo cpmin3.b =crop,crqp,crpp (p0_1)
+(dni cpmin3_b_P0_P1 "cpmin3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmin3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmin3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x39) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmin3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 00111011 10100 qqqqq ppppp ooooo cpmin3.h =crop,crqp,crpp (p0_1)
+(dni cpmin3_h_P0_P1 "cpmin3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmin3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmin3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3b) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmin3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 00111100 10100 qqqqq ppppp ooooo cpminu3.w =crop,crqp,crpp (p0_1)
+(dni cpminu3_w_P0_P1 "cpminu3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpminu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpminu3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3c) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpminu3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 00111101 10100 qqqqq ppppp ooooo cpmin3.w =crop,crqp,crpp (p0_1)
+(dni cpmin3_w_P0_P1 "cpmin3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmin3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmin3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3d) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmin3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01000000 10100 qqqqq ppppp ooooo cpsrl3.b =crop,crqp,crpp (p0_1)
+(dni cpsrl3_b_P0_P1 "cpsrl3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrl3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrl3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x40) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrl3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01000001 10100 qqqqq ppppp ooooo cpssrl3.b =crop,crqp,crpp (p0_1)
+(dni cpssrl3_b_P0_P1 "cpssrl3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssrl3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssrl3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x41) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssrl3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01000010 10100 qqqqq ppppp ooooo cpsrl3.h =crop,crqp,crpp (p0_1)
+(dni cpsrl3_h_P0_P1 "cpsrl3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrl3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrl3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x42) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrl3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01000011 10100 qqqqq ppppp ooooo cpssrl3.h =crop,crqp,crpp (p0_1)
+(dni cpssrl3_h_P0_P1 "cpssrl3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssrl3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssrl3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x43) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssrl3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01000100 10100 qqqqq ppppp ooooo cpsrl3.w =crop,crqp,crpp (p0_1)
+(dni cpsrl3_w_P0_P1 "cpsrl3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrl3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrl3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x44) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrl3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01000101 10100 qqqqq ppppp ooooo cpssrl3.w =crop,crqp,crpp (p0_1)
+(dni cpssrl3_w_P0_P1 "cpssrl3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssrl3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssrl3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x45) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssrl3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01000110 10100 qqqqq ppppp ooooo cdsrl3 =crop,crqp,crpp (p0_1)
+(dni cdsrl3_P0_P1 "cdsrl3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsrl3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrl3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x46) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsrl3" pc crqp crpp)) )
+ ()
+ )
+
+; 01001000 10100 qqqqq ppppp ooooo cpsra3.b =crop,crqp,crpp (p0_1)
+(dni cpsra3_b_P0_P1 "cpsra3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsra3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsra3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x48) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsra3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01001001 10100 qqqqq ppppp ooooo cpssra3.b =crop,crqp,crpp (p0_1)
+(dni cpssra3_b_P0_P1 "cpssra3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssra3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssra3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x49) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssra3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01001010 10100 qqqqq ppppp ooooo cpsra3.h =crop,crqp,crpp (p0_1)
+(dni cpsra3_h_P0_P1 "cpsra3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsra3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsra3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4a) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsra3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01001011 10100 qqqqq ppppp ooooo cpssra3.h =crop,crqp,crpp (p0_1)
+(dni cpssra3_h_P0_P1 "cpssra3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssra3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssra3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4b) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssra3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01001100 10100 qqqqq ppppp ooooo cpsra3.w =crop,crqp,crpp (p0_1)
+(dni cpsra3_w_P0_P1 "cpsra3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsra3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsra3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4c) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsra3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01001101 10100 qqqqq ppppp ooooo cpssra3.w =crop,crqp,crpp (p0_1)
+(dni cpssra3_w_P0_P1 "cpssra3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssra3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssra3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4d) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssra3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01001110 10100 qqqqq ppppp ooooo cdsra3 =crop,crqp,crpp (p0_1)
+(dni cdsra3_P0_P1 "cdsra3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsra3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsra3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x4e) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsra3" pc crqp crpp)) )
+ ()
+ )
+
+; 01010000 10100 qqqqq ppppp ooooo cpsll3.b =crop,crqp,crpp (p0_1)
+(dni cpsll3_b_P0_P1 "cpsll3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsll3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsll3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x50) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsll3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01010001 10100 qqqqq ppppp ooooo cpssll3.b =crop,crqp,crpp (p0_1)
+(dni cpssll3_b_P0_P1 "cpssll3.b $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssll3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpssll3.b $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x51) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssll3_b" pc crqp crpp)) )
+ ()
+ )
+
+; 01010010 10100 qqqqq ppppp ooooo cpsll3.h =crop,crqp,crpp (p0_1)
+(dni cpsll3_h_P0_P1 "cpsll3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsll3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsll3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x52) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsll3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01010011 10100 qqqqq ppppp ooooo cpssll3.h =crop,crqp,crpp (p0_1)
+(dni cpssll3_h_P0_P1 "cpssll3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssll3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpssll3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x53) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssll3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01010100 10100 qqqqq ppppp ooooo cpsll3.w =crop,crqp,crpp (p0_1)
+(dni cpsll3_w_P0_P1 "cpsll3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsll3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsll3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x54) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsll3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01010101 10100 qqqqq ppppp ooooo cpssll3.w =crop,crqp,crpp (p0_1)
+(dni cpssll3_w_P0_P1 "cpssll3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpssll3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpssll3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x55) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpssll3_w" pc crqp crpp)) )
+ ()
+ )
+
+; 01010110 10100 qqqqq ppppp ooooo cdsll3 =crop,crqp,crpp (p0_1)
+(dni cdsll3_P0_P1 "cdsll3 $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsll3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsll3 $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x56) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsll3" pc crqp crpp)) )
+ ()
+ )
+
+; 01011010 10100 qqqqq ppppp ooooo cpsla3.h =crop,crqp,crpp (p0_1)
+(dni cpsla3_h_P0_P1 "cpsla3.h $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsla3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpsla3.h $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x5a) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsla3_h" pc crqp crpp)) )
+ ()
+ )
+
+; 01011100 10100 qqqqq ppppp ooooo cpsla3.w =crop,crqp,crpp (p0_1)
+(dni cpsla3_w_P0_P1 "cpsla3.w $crop,$crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsla3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpsla3.w $crop,$crqp,$crpp"
+ (+ (f-ivc2-8u0 #x5c) (f-ivc2-5u8 #x14) crqp crpp crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsla3_w" pc crqp crpp)) )
+ ()
+ )
+
+; xxxxxiii 10101 qqqqq 00000 ooooo cpsrli3.b =crop,crqp,imm3p5 (p0_1)
+(dni cpsrli3_b_P0_P1 "cpsrli3.b $crop,$crqp,imm3p5 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrli3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrli3.b $crop,$crqp,$imm3p5"
+ (+ ivc-x-0-5 imm3p5 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x0) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrli3_b" pc crqp imm3p5)) )
+ ()
+ )
+
+; xxxxiiii 10101 qqqqq 00001 ooooo cpsrli3.h =crop,crqp,imm4p4 (p0_1)
+(dni cpsrli3_h_P0_P1 "cpsrli3.h $crop,$crqp,imm4p4 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrli3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrli3.h $crop,$crqp,$imm4p4"
+ (+ ivc-x-0-4 imm4p4 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x1) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrli3_h" pc crqp imm4p4)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 00010 ooooo cpsrli3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpsrli3_w_P0_P1 "cpsrli3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrli3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrli3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x2) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrli3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxiiiiii 10101 qqqqq 00011 ooooo cdsrli3 =crop,crqp,imm6p2 (p0_1)
+(dni cdsrli3_P0_P1 "cdsrli3 $crop,$crqp,imm6p2 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsrli3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrli3 $crop,$crqp,$imm6p2"
+ (+ ivc-x-0-2 imm6p2 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x3) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsrli3" pc crqp imm6p2)) )
+ ()
+ )
+
+; xxxxxiii 10101 qqqqq 00100 ooooo cpsrai3.b =crop,crqp,imm3p5 (p0_1)
+(dni cpsrai3_b_P0_P1 "cpsrai3.b $crop,$crqp,imm3p5 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrai3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpsrai3.b $crop,$crqp,$imm3p5"
+ (+ ivc-x-0-5 imm3p5 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x4) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrai3_b" pc crqp imm3p5)) )
+ ()
+ )
+
+; xxxxiiii 10101 qqqqq 00101 ooooo cpsrai3.h =crop,crqp,imm4p4 (p0_1)
+(dni cpsrai3_h_P0_P1 "cpsrai3.h $crop,$crqp,imm4p4 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrai3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpsrai3.h $crop,$crqp,$imm4p4"
+ (+ ivc-x-0-4 imm4p4 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x5) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrai3_h" pc crqp imm4p4)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 00110 ooooo cpsrai3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpsrai3_w_P0_P1 "cpsrai3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpsrai3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpsrai3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x6) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpsrai3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxiiiiii 10101 qqqqq 00111 ooooo cdsrai3 =crop,crqp,imm6p2 (p0_1)
+(dni cdsrai3_P0_P1 "cdsrai3 $crop,$crqp,imm6p2 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdsrai3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdsrai3 $crop,$crqp,$imm6p2"
+ (+ ivc-x-0-2 imm6p2 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x7) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdsrai3" pc crqp imm6p2)) )
+ ()
+ )
+
+; xxxxxiii 10101 qqqqq 01000 ooooo cpslli3.b =crop,crqp,imm3p5 (p0_1)
+(dni cpslli3_b_P0_P1 "cpslli3.b $crop,$crqp,imm3p5 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpslli3_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpslli3.b $crop,$crqp,$imm3p5"
+ (+ ivc-x-0-5 imm3p5 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x8) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpslli3_b" pc crqp imm3p5)) )
+ ()
+ )
+
+; xxxxiiii 10101 qqqqq 01001 ooooo cpslli3.h =crop,crqp,imm4p4 (p0_1)
+(dni cpslli3_h_P0_P1 "cpslli3.h $crop,$crqp,imm4p4 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpslli3_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpslli3.h $crop,$crqp,$imm4p4"
+ (+ ivc-x-0-4 imm4p4 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x9) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpslli3_h" pc crqp imm4p4)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 01010 ooooo cpslli3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpslli3_w_P0_P1 "cpslli3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpslli3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpslli3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #xa) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpslli3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxiiiiii 10101 qqqqq 01011 ooooo cdslli3 =crop,crqp,imm6p2 (p0_1)
+(dni cdslli3_P0_P1 "cdslli3 $crop,$crqp,imm6p2 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdslli3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdslli3 $crop,$crqp,$imm6p2"
+ (+ ivc-x-0-2 imm6p2 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #xb) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdslli3" pc crqp imm6p2)) )
+ ()
+ )
+
+; xxxxiiii 10101 qqqqq 01101 ooooo cpslai3.h =crop,crqp,imm4p4 (p0_1)
+(dni cpslai3_h_P0_P1 "cpslai3.h $crop,$crqp,imm4p4 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpslai3_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpslai3.h $crop,$crqp,$imm4p4"
+ (+ ivc-x-0-4 imm4p4 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #xd) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpslai3_h" pc crqp imm4p4)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 01110 ooooo cpslai3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpslai3_w_P0_P1 "cpslai3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpslai3_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpslai3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #xe) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpslai3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 10000 ooooo cpclipiu3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpclipiu3_w_P0_P1 "cpclipiu3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpclipiu3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpclipiu3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x10) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpclipiu3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxxiiiii 10101 qqqqq 10001 ooooo cpclipi3.w =crop,crqp,imm5p3 (p0_1)
+(dni cpclipi3_w_P0_P1 "cpclipi3.w $crop,$crqp,imm5p3 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpclipi3_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpclipi3.w $crop,$crqp,$imm5p3"
+ (+ ivc-x-0-3 imm5p3 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x11) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpclipi3_w" pc crqp imm5p3)) )
+ ()
+ )
+
+; xxiiiiii 10101 qqqqq 10010 ooooo cdclipiu3 =crop,crqp,imm6p2 (p0_1)
+(dni cdclipiu3_P0_P1 "cdclipiu3 $crop,$crqp,imm6p2 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdclipiu3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdclipiu3 $crop,$crqp,$imm6p2"
+ (+ ivc-x-0-2 imm6p2 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x12) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdclipiu3" pc crqp imm6p2)) )
+ ()
+ )
+
+; xxiiiiii 10101 qqqqq 10011 ooooo cdclipi3 =crop,crqp,imm6p2 (p0_1)
+(dni cdclipi3_P0_P1 "cdclipi3 $crop,$crqp,imm6p2 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdclipi3") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdclipi3 $crop,$crqp,$imm6p2"
+ (+ ivc-x-0-2 imm6p2 (f-ivc2-5u8 #x15) crqp (f-ivc2-5u18 #x13) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cdclipi3" pc crqp imm6p2)) )
+ ()
+ )
+
+; iiiiiiii 10110 qqqqq 01iii iiiii cpmovi.h =crqp,simm16p0 (p0_i)
+(dni cpmovi_h_P0_P1 "cpmovi.h $crqp,simm16p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmovi_h") (CPTYPE V4HI) (CRET FIRST))
+ "cpmovi.h $crqp,$simm16p0"
+ (+ (f-ivc2-5u8 #x16) crqp (f-ivc2-2u18 #x1) simm16p0(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cpmovi_h16" pc simm16p0)) )
+ ()
+ )
+
+; iiiiiiii 10111 qqqqq 00iii iiiii cpmoviu.w =crqp,imm16p0 (p0_i)
+(dni cpmoviu_w_P0_P1 "cpmoviu.w $crqp,imm16p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmoviu_w") (CPTYPE V2USI) (CRET FIRST))
+ "cpmoviu.w $crqp,$imm16p0"
+ (+ (f-ivc2-5u8 #x17) crqp (f-ivc2-2u18 #x0) imm16p0(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cpmoviu_w16" pc imm16p0)) )
+ ()
+ )
+
+; iiiiiiii 10111 qqqqq 01iii iiiii cpmovi.w =crqp,simm16p0 (p0_i)
+(dni cpmovi_w_P0_P1 "cpmovi.w $crqp,simm16p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cpmovi_w") (CPTYPE V2SI) (CRET FIRST))
+ "cpmovi.w $crqp,$simm16p0"
+ (+ (f-ivc2-5u8 #x17) crqp (f-ivc2-2u18 #x1) simm16p0(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cpmovi_w16" pc simm16p0)) )
+ ()
+ )
+
+; iiiiiiii 10111 qqqqq 10iii iiiii cdmoviu =crqp,imm16p0 (p0_i)
+(dni cdmoviu_P0_P1 "cdmoviu $crqp,imm16p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdmoviu") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdmoviu $crqp,$imm16p0"
+ (+ (f-ivc2-5u8 #x17) crqp (f-ivc2-2u18 #x2) imm16p0(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cdmoviu16" pc imm16p0)) )
+ ()
+ )
+
+; iiiiiiii 10111 qqqqq 11iii iiiii cdmovi =crqp,simm16p0 (p0_i)
+(dni cdmovi_P0_P1 "cdmovi $crqp,simm16p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0-p1-isa (SLOTS P0,P1) (INTRINSIC "cdmovi") (CPTYPE CP_DATA_BUS_INT) (CRET FIRST))
+ "cdmovi $crqp,$simm16p0"
+ (+ (f-ivc2-5u8 #x17) crqp (f-ivc2-2u18 #x3) simm16p0(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cdmovi16" pc simm16p0)) )
+ ()
+ )
+
+; 00000000 00000 00000 00000 00000 c1nop (p0_1)
+(dni c1nop_P1 "c1nop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "c1nop"))
+ "c1nop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x0) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x0) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (c-call "ivc2_c1nop" pc) )
+ ()
+ )
+
+; 00000000 10110 qqqqq 00iii iiiii cpmovi.b =crqp,simm8p20 (p0_i)
+(dni cpmovi_b_P0S_P1 "cpmovi.b $crqp,simm8p20 Pn"
+ (OPTIONAL_CP_INSN ivc2-p0s-p1-isa (SLOTS P0S,P1) (INTRINSIC "cpmovi_b") (CPTYPE V8QI) (CRET FIRST))
+ "cpmovi.b $crqp,$simm8p20"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x16) crqp (f-ivc2-2u18 #x0) imm8p20(f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crqp (c-call DI "ivc2_cpmovi_b" pc simm8p20)) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00000 cpadda1u.b crqp,crpp (p0_1)
+(dni cpadda1u_b_P1 "cpadda1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpadda1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpadda1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpadda1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00001 cpadda1.b crqp,crpp (p0_1)
+(dni cpadda1_b_P1 "cpadda1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpadda1_b") (CPTYPE V8QI) VOLATILE)
+ "cpadda1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpadda1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00010 cpaddua1.h crqp,crpp (p0_1)
+(dni cpaddua1_h_P1 "cpaddua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x2) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpaddua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00011 cpaddla1.h crqp,crpp (p0_1)
+(dni cpaddla1_h_P1 "cpaddla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpaddla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00100 cpaddaca1u.b crqp,crpp (p0_1)
+(dni cpaddaca1u_b_P1 "cpaddaca1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddaca1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpaddaca1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x4) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddaca1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00101 cpaddaca1.b crqp,crpp (p0_1)
+(dni cpaddaca1_b_P1 "cpaddaca1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddaca1_b") (CPTYPE V8QI) VOLATILE)
+ "cpaddaca1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddaca1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00110 cpaddacua1.h crqp,crpp (p0_1)
+(dni cpaddacua1_h_P1 "cpaddacua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddacua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x6) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddacua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 00111 cpaddacla1.h crqp,crpp (p0_1)
+(dni cpaddacla1_h_P1 "cpaddacla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaddacla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpaddacla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x7) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpaddacla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01000 cpsuba1u.b crqp,crpp (p0_1)
+(dni cpsuba1u_b_P1 "cpsuba1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsuba1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsuba1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x8) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsuba1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01001 cpsuba1.b crqp,crpp (p0_1)
+(dni cpsuba1_b_P1 "cpsuba1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsuba1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsuba1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsuba1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01010 cpsubua1.h crqp,crpp (p0_1)
+(dni cpsubua1_h_P1 "cpsubua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsubua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01011 cpsubla1.h crqp,crpp (p0_1)
+(dni cpsubla1_h_P1 "cpsubla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpsubla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01100 cpsubaca1u.b crqp,crpp (p0_1)
+(dni cpsubaca1u_b_P1 "cpsubaca1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubaca1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsubaca1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xc) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubaca1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01101 cpsubaca1.b crqp,crpp (p0_1)
+(dni cpsubaca1_b_P1 "cpsubaca1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubaca1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsubaca1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubaca1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01110 cpsubacua1.h crqp,crpp (p0_1)
+(dni cpsubacua1_h_P1 "cpsubacua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubacua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubacua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 01111 cpsubacla1.h crqp,crpp (p0_1)
+(dni cpsubacla1_h_P1 "cpsubacla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsubacla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsubacla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsubacla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10000 cpabsa1u.b crqp,crpp (p0_1)
+(dni cpabsa1u_b_P1 "cpabsa1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpabsa1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpabsa1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsa1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10001 cpabsa1.b crqp,crpp (p0_1)
+(dni cpabsa1_b_P1 "cpabsa1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpabsa1_b") (CPTYPE V8QI) VOLATILE)
+ "cpabsa1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsa1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10010 cpabsua1.h crqp,crpp (p0_1)
+(dni cpabsua1_h_P1 "cpabsua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpabsua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpabsua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10011 cpabsla1.h crqp,crpp (p0_1)
+(dni cpabsla1_h_P1 "cpabsla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpabsla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpabsla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpabsla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10100 cpsada1u.b crqp,crpp (p0_1)
+(dni cpsada1u_b_P1 "cpsada1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsada1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpsada1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsada1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10101 cpsada1.b crqp,crpp (p0_1)
+(dni cpsada1_b_P1 "cpsada1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsada1_b") (CPTYPE V8QI) VOLATILE)
+ "cpsada1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsada1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10110 cpsadua1.h crqp,crpp (p0_1)
+(dni cpsadua1_h_P1 "cpsadua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsadua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 10111 cpsadla1.h crqp,crpp (p0_1)
+(dni cpsadla1_h_P1 "cpsadla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsadla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsadla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 11011 cpseta1.h crqp,crpp (p0_1)
+(dni cpseta1_h_P1 "cpseta1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpseta1_h") (CPTYPE V4HI) VOLATILE)
+ "cpseta1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpseta1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 11100 cpsetua1.w crqp,crpp (p0_1)
+(dni cpsetua1_w_P1 "cpsetua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsetua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsetua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11000 qqqqq ppppp 11101 cpsetla1.w crqp,crpp (p0_1)
+(dni cpsetla1_w_P1 "cpsetla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsetla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsetla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x18) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpsetla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11001 00000 00001 ooooo cpmova1.b =crop (p0_1)
+(dni cpmova1_b_P1 "cpmova1.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmova1_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cpmova1.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmova1_b" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00010 ooooo cpmovua1.h =crop (p0_1)
+(dni cpmovua1_h_P1 "cpmovua1.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovua1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovua1.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x2) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovua1_h" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00011 ooooo cpmovla1.h =crop (p0_1)
+(dni cpmovla1_h_P1 "cpmovla1.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovla1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cpmovla1.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x3) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovla1_h" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00100 ooooo cpmovuua1.w =crop (p0_1)
+(dni cpmovuua1_w_P1 "cpmovuua1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovuua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovuua1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x4) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovuua1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00101 ooooo cpmovula1.w =crop (p0_1)
+(dni cpmovula1_w_P1 "cpmovula1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovula1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovula1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x5) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovula1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00110 ooooo cpmovlua1.w =crop (p0_1)
+(dni cpmovlua1_w_P1 "cpmovlua1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovlua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlua1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x6) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovlua1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 00111 ooooo cpmovlla1.w =crop (p0_1)
+(dni cpmovlla1_w_P1 "cpmovlla1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovlla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovlla1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x7) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovlla1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01000 ooooo cppacka1u.b =crop (p0_1)
+(dni cppacka1u_b_P1 "cppacka1u.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppacka1u_b") (CPTYPE V8UQI) (CRET FIRST) VOLATILE)
+ "cppacka1u.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x8) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppacka1u_b" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01001 ooooo cppacka1.b =crop (p0_1)
+(dni cppacka1_b_P1 "cppacka1.b $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppacka1_b") (CPTYPE V8QI) (CRET FIRST) VOLATILE)
+ "cppacka1.b $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x9) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppacka1_b" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01010 ooooo cppackua1.h =crop (p0_1)
+(dni cppackua1_h_P1 "cppackua1.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppackua1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackua1.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xa) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackua1_h" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01011 ooooo cppackla1.h =crop (p0_1)
+(dni cppackla1_h_P1 "cppackla1.h $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppackla1_h") (CPTYPE V4HI) (CRET FIRST) VOLATILE)
+ "cppackla1.h $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xb) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackla1_h" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01100 ooooo cppackua1.w =crop (p0_1)
+(dni cppackua1_w_P1 "cppackua1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppackua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackua1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xc) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackua1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01101 ooooo cppackla1.w =crop (p0_1)
+(dni cppackla1_w_P1 "cppackla1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cppackla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cppackla1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xd) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cppackla1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01110 ooooo cpmovhua1.w =crop (p0_1)
+(dni cpmovhua1_w_P1 "cpmovhua1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovhua1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhua1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xe) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovhua1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 01111 ooooo cpmovhla1.w =crop (p0_1)
+(dni cpmovhla1_w_P1 "cpmovhla1.w $crop Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmovhla1_w") (CPTYPE V2SI) (CRET FIRST) VOLATILE)
+ "cpmovhla1.w $crop"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #xf) crop (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set crop (c-call DI "ivc2_cpmovhla1_w" pc)) )
+ ()
+ )
+
+; 00000000 11001 00000 10000 00000 cpacsuma1 (p0_1)
+(dni cpacsuma1_P1 "cpacsuma1 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpacsuma1") VOLATILE)
+ "cpacsuma1"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x10) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpacsuma1" pc) )
+ ()
+ )
+
+; 00000000 11001 00000 10001 00000 cpaccpa1 (p0_1)
+(dni cpaccpa1_P1 "cpaccpa1 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpaccpa1") VOLATILE)
+ "cpaccpa1"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x11) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpaccpa1" pc) )
+ ()
+ )
+
+; 00000000 11001 00000 10010 00000 cpacswp (p0_1)
+(dni cpacswp_P1 "cpacswp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpacswp") VOLATILE)
+ "cpacswp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x12) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc0_0 0)
+ (set ivc2_acc0_1 0)
+ (set ivc2_acc0_2 0)
+ (set ivc2_acc0_3 0)
+ (set ivc2_acc0_4 0)
+ (set ivc2_acc0_5 0)
+ (set ivc2_acc0_6 0)
+ (set ivc2_acc0_7 0)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpacswp" pc) )
+ ()
+ )
+
+; 00000000 11001 qqqqq 11000 00000 cpsrla1 crqp (p0_1)
+(dni cpsrla1_P1 "cpsrla1 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsrla1") VOLATILE)
+ "cpsrla1 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x18) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsrla1" pc crqp) )
+ ()
+ )
+
+; 00000000 11001 qqqqq 11001 00000 cpsraa1 crqp (p0_1)
+(dni cpsraa1_P1 "cpsraa1 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsraa1") VOLATILE)
+ "cpsraa1 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x19) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsraa1" pc crqp) )
+ ()
+ )
+
+; 00000000 11001 qqqqq 11010 00000 cpslla1 crqp (p0_1)
+(dni cpslla1_P1 "cpslla1 $crqp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpslla1") VOLATILE)
+ "cpslla1 $crqp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) crqp (f-ivc2-5u18 #x1a) (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpslla1" pc crqp) )
+ ()
+ )
+
+; 00000000 11001 00000 11100 iiiii cpsrlia1 imm5p23 (p0_1)
+(dni cpsrlia1_1_p1 "cpsrlia1 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsrlia1") VOLATILE)
+ "cpsrlia1 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1c) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsrlia1" pc imm5p23) )
+ ()
+ )
+
+; 00000000 11001 00000 11101 iiiii cpsraia1 imm5p23 (p0_1)
+(dni cpsraia1_1_p1 "cpsraia1 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsraia1") VOLATILE)
+ "cpsraia1 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1d) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsraia1" pc imm5p23) )
+ ()
+ )
+
+; 00000000 11001 00000 11110 iiiii cpsllia1 imm5p23 (p0_1)
+(dni cpsllia1_1_p1 "cpsllia1 imm5p23 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsllia1") VOLATILE)
+ "cpsllia1 $imm5p23"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x19) (f-ivc2-5u13 #x0) (f-ivc2-5u18 #x1e) imm5p23 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpsllia1" pc imm5p23) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00000 cpfmulia1s0u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulia1s0u_b_P1 "cpfmulia1s0u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1s0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmulia1s0u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1s0u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00001 cpfmulia1s0.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulia1s0_b_P1 "cpfmulia1s0.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1s0_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmulia1s0.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1s0_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00010 cpfmuliua1s0.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmuliua1s0_h_P1 "cpfmuliua1s0.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmuliua1s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmuliua1s0.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x2) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmuliua1s0_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00011 cpfmulila1s0.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulila1s0_h_P1 "cpfmulila1s0.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulila1s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmulila1s0.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x3) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpfmulila1s0_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00100 cpfmadia1s0u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadia1s0u_b_P1 "cpfmadia1s0u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1s0u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmadia1s0u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x4) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1s0u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00101 cpfmadia1s0.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadia1s0_b_P1 "cpfmadia1s0.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1s0_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmadia1s0.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1s0_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00110 cpfmadiua1s0.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadiua1s0_h_P1 "cpfmadiua1s0.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadiua1s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadiua1s0.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x6) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadiua1s0_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 00111 cpfmadila1s0.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadila1s0_h_P1 "cpfmadila1s0.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadila1s0_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadila1s0.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x7) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadila1s0_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01000 cpfmulia1s1u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulia1s1u_b_P1 "cpfmulia1s1u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1s1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmulia1s1u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x8) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1s1u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01001 cpfmulia1s1.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulia1s1_b_P1 "cpfmulia1s1.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1s1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmulia1s1.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1s1_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01010 cpfmuliua1s1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmuliua1s1_h_P1 "cpfmuliua1s1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmuliua1s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmuliua1s1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmuliua1s1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01011 cpfmulila1s1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmulila1s1_h_P1 "cpfmulila1s1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulila1s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmulila1s1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpfmulila1s1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01100 cpfmadia1s1u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadia1s1u_b_P1 "cpfmadia1s1u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1s1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmadia1s1u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xc) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1s1u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01101 cpfmadia1s1.b crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadia1s1_b_P1 "cpfmadia1s1.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1s1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmadia1s1.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1s1_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01110 cpfmadiua1s1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadiua1s1_h_P1 "cpfmadiua1s1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadiua1s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadiua1s1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadiua1s1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 01111 cpfmadila1s1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpfmadila1s1_h_P1 "cpfmadila1s1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadila1s1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadila1s1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadila1s1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10000 cpamulia1u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpamulia1u_b_P1 "cpamulia1u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamulia1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpamulia1u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpamulia1u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10001 cpamulia1.b crqp,crpp,simm8p0 (p0_1)
+(dni cpamulia1_b_P1 "cpamulia1.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamulia1_b") (CPTYPE V8QI) VOLATILE)
+ "cpamulia1.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpamulia1_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10010 cpamuliua1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpamuliua1_h_P1 "cpamuliua1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamuliua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpamuliua1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpamuliua1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10011 cpamulila1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpamulila1_h_P1 "cpamulila1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamulila1_h") (CPTYPE V4HI) VOLATILE)
+ "cpamulila1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpamulila1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10100 cpamadia1u.b crqp,crpp,simm8p0 (p0_1)
+(dni cpamadia1u_b_P1 "cpamadia1u.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamadia1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpamadia1u.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpamadia1u_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10101 cpamadia1.b crqp,crpp,simm8p0 (p0_1)
+(dni cpamadia1_b_P1 "cpamadia1.b $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamadia1_b") (CPTYPE V8QI) VOLATILE)
+ "cpamadia1.b $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpamadia1_b" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10110 cpamadiua1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpamadiua1_h_P1 "cpamadiua1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamadiua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpamadiua1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpamadiua1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11111 qqqqq ppppp 10111 cpamadila1.h crqp,crpp,simm8p0 (p0_1)
+(dni cpamadila1_h_P1 "cpamadila1.h $crqp,$crpp,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpamadila1_h") (CPTYPE V4HI) VOLATILE)
+ "cpamadila1.h $crqp,$crpp,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1f) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpamadila1_h" pc crqp crpp simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11100 qqqqq ppppp 00 III cpfmulia1u.b crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmulia1u_b_P1 "cpfmulia1u.b $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmulia1u.b $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1c) crqp crpp (f-ivc2-2u23 #x0) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1u_b" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11100 qqqqq ppppp 01 III cpfmulia1.b crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmulia1_b_P1 "cpfmulia1.b $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulia1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmulia1.b $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1c) crqp crpp (f-ivc2-2u23 #x1) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmulia1_b" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11100 qqqqq ppppp 10 III cpfmuliua1.h crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmuliua1_h_P1 "cpfmuliua1.h $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmuliua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmuliua1.h $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1c) crqp crpp (f-ivc2-2u23 #x2) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpfmuliua1_h" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11100 qqqqq ppppp 11 III cpfmulila1.h crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmulila1_h_P1 "cpfmulila1.h $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmulila1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmulila1.h $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1c) crqp crpp (f-ivc2-2u23 #x3) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpfmulila1_h" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11101 qqqqq ppppp 00 III cpfmadia1u.b crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmadia1u_b_P1 "cpfmadia1u.b $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpfmadia1u.b $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1d) crqp crpp (f-ivc2-2u23 #x0) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1u_b" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11101 qqqqq ppppp 01 III cpfmadia1.b crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmadia1_b_P1 "cpfmadia1.b $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadia1_b") (CPTYPE V8QI) VOLATILE)
+ "cpfmadia1.b $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1d) crqp crpp (f-ivc2-2u23 #x1) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadia1_b" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11101 qqqqq ppppp 10 III cpfmadiua1.h crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmadiua1_h_P1 "cpfmadiua1.h $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadiua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadiua1.h $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1d) crqp crpp (f-ivc2-2u23 #x2) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadiua1_h" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; iiiiiiii 11101 qqqqq ppppp 11 III cpfmadila1.h crqp,crpp,imm3p25,simm8p0 (cpfm)
+(dni cpfmadila1_h_P1 "cpfmadila1.h $crqp,$crpp,imm3p25,simm8p0 Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpfmadila1_h") (CPTYPE V4HI) VOLATILE)
+ "cpfmadila1.h $crqp,$crpp,$imm3p25,$simm8p0"
+ (+ simm8p0 (f-ivc2-5u8 #x1d) crqp crpp (f-ivc2-2u23 #x3) imm3p25 (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpfmadila1_h" pc crqp crpp imm3p25 simm8p0) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 00000 cpssqa1u.b crqp,crpp (p0_1)
+(dni cpssqa1u_b_P1 "cpssqa1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpssqa1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpssqa1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x0) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssqa1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 00001 cpssqa1.b crqp,crpp (p0_1)
+(dni cpssqa1_b_P1 "cpssqa1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpssqa1_b") (CPTYPE V8QI) VOLATILE)
+ "cpssqa1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssqa1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 00100 cpssda1u.b crqp,crpp (p0_1)
+(dni cpssda1u_b_P1 "cpssda1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpssda1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpssda1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x4) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssda1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 00101 cpssda1.b crqp,crpp (p0_1)
+(dni cpssda1_b_P1 "cpssda1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpssda1_b") (CPTYPE V8QI) VOLATILE)
+ "cpssda1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x5) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpssda1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01000 cpmula1u.b crqp,crpp (p0_1)
+(dni cpmula1u_b_P1 "cpmula1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmula1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpmula1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x8) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmula1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01001 cpmula1.b crqp,crpp (p0_1)
+(dni cpmula1_b_P1 "cpmula1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmula1_b") (CPTYPE V8QI) VOLATILE)
+ "cpmula1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x9) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmula1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01010 cpmulua1.h crqp,crpp (p0_1)
+(dni cpmulua1_h_P1 "cpmulua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01011 cpmulla1.h crqp,crpp (p0_1)
+(dni cpmulla1_h_P1 "cpmulla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01100 cpmulua1u.w crqp,crpp (p0_1)
+(dni cpmulua1u_w_P1 "cpmulua1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmulua1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xc) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01101 cpmulla1u.w crqp,crpp (p0_1)
+(dni cpmulla1u_w_P1 "cpmulla1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmulla1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xd) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01110 cpmulua1.w crqp,crpp (p0_1)
+(dni cpmulua1_w_P1 "cpmulua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (c-call "ivc2_cpmulua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 01111 cpmulla1.w crqp,crpp (p0_1)
+(dni cpmulla1_w_P1 "cpmulla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (c-call "ivc2_cpmulla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10000 cpmada1u.b crqp,crpp (p0_1)
+(dni cpmada1u_b_P1 "cpmada1u.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmada1u_b") (CPTYPE V8UQI) VOLATILE)
+ "cpmada1u.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x10) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmada1u_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10001 cpmada1.b crqp,crpp (p0_1)
+(dni cpmada1_b_P1 "cpmada1.b $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmada1_b") (CPTYPE V8QI) VOLATILE)
+ "cpmada1.b $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x11) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmada1_b" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10010 cpmadua1.h crqp,crpp (p0_1)
+(dni cpmadua1_h_P1 "cpmadua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmadua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10011 cpmadla1.h crqp,crpp (p0_1)
+(dni cpmadla1_h_P1 "cpmadla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmadla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10100 cpmadua1u.w crqp,crpp (p0_1)
+(dni cpmadua1u_w_P1 "cpmadua1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmadua1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x14) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10101 cpmadla1u.w crqp,crpp (p0_1)
+(dni cpmadla1u_w_P1 "cpmadla1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmadla1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x15) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10110 cpmadua1.w crqp,crpp (p0_1)
+(dni cpmadua1_w_P1 "cpmadua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmadua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 10111 cpmadla1.w crqp,crpp (p0_1)
+(dni cpmadla1_w_P1 "cpmadla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmadla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmadla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmadla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11010 cpmsbua1.h crqp,crpp (p0_1)
+(dni cpmsbua1_h_P1 "cpmsbua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmsbua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1a) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11011 cpmsbla1.h crqp,crpp (p0_1)
+(dni cpmsbla1_h_P1 "cpmsbla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmsbla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11100 cpmsbua1u.w crqp,crpp (p0_1)
+(dni cpmsbua1u_w_P1 "cpmsbua1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbua1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmsbua1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1c) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11101 cpmsbla1u.w crqp,crpp (p0_1)
+(dni cpmsbla1u_w_P1 "cpmsbla1u.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbla1u_w") (CPTYPE V2USI) VOLATILE)
+ "cpmsbla1u.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1d) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1u_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11110 cpmsbua1.w crqp,crpp (p0_1)
+(dni cpmsbua1_w_P1 "cpmsbua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmsbua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1e) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000000 11110 qqqqq ppppp 11111 cpmsbla1.w crqp,crpp (p0_1)
+(dni cpmsbla1_w_P1 "cpmsbla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmsbla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmsbla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x0) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1f) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmsbla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 10010 cpsmadua1.h crqp,crpp (p0_1)
+(dni cpsmadua1_h_P1 "cpsmadua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 10011 cpsmadla1.h crqp,crpp (p0_1)
+(dni cpsmadla1_h_P1 "cpsmadla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 10110 cpsmadua1.w crqp,crpp (p0_1)
+(dni cpsmadua1_w_P1 "cpsmadua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 10111 cpsmadla1.w crqp,crpp (p0_1)
+(dni cpsmadla1_w_P1 "cpsmadla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 11010 cpsmsbua1.h crqp,crpp (p0_1)
+(dni cpsmsbua1_h_P1 "cpsmsbua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1a) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 11011 cpsmsbla1.h crqp,crpp (p0_1)
+(dni cpsmsbla1_h_P1 "cpsmsbla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 11110 cpsmsbua1.w crqp,crpp (p0_1)
+(dni cpsmsbua1_w_P1 "cpsmsbua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1e) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000001 11110 qqqqq ppppp 11111 cpsmsbla1.w crqp,crpp (p0_1)
+(dni cpsmsbla1_w_P1 "cpsmsbla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x1) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1f) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000010 11110 qqqqq ppppp 01010 cpmulslua1.h crqp,crpp (p0_1)
+(dni cpmulslua1_h_P1 "cpmulslua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulslua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xa) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000010 11110 qqqqq ppppp 01011 cpmulslla1.h crqp,crpp (p0_1)
+(dni cpmulslla1_h_P1 "cpmulslla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpmulslla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xb) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000010 11110 qqqqq ppppp 01110 cpmulslua1.w crqp,crpp (p0_1)
+(dni cpmulslua1_w_P1 "cpmulslua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulslua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xe) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000010 11110 qqqqq ppppp 01111 cpmulslla1.w crqp,crpp (p0_1)
+(dni cpmulslla1_w_P1 "cpmulslla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpmulslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpmulslla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x2) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #xf) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpmulslla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 10010 cpsmadslua1.h crqp,crpp (p0_1)
+(dni cpsmadslua1_h_P1 "cpsmadslua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadslua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x12) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 10011 cpsmadslla1.h crqp,crpp (p0_1)
+(dni cpsmadslla1_h_P1 "cpsmadslla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmadslla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x13) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 10110 cpsmadslua1.w crqp,crpp (p0_1)
+(dni cpsmadslua1_w_P1 "cpsmadslua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadslua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x16) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 10111 cpsmadslla1.w crqp,crpp (p0_1)
+(dni cpsmadslla1_w_P1 "cpsmadslla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmadslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmadslla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x17) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmadslla1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 11010 cpsmsbslua1.h crqp,crpp (p0_1)
+(dni cpsmsbslua1_h_P1 "cpsmsbslua1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbslua1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbslua1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1a) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslua1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 11011 cpsmsbslla1.h crqp,crpp (p0_1)
+(dni cpsmsbslla1_h_P1 "cpsmsbslla1.h $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbslla1_h") (CPTYPE V4HI) VOLATILE)
+ "cpsmsbslla1.h $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1b) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslla1_h" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 11110 cpsmsbslua1.w crqp,crpp (p0_1)
+(dni cpsmsbslua1_w_P1 "cpsmsbslua1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbslua1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbslua1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1e) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_4 0)
+ (set ivc2_acc1_5 0)
+ (set ivc2_acc1_6 0)
+ (set ivc2_acc1_7 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslua1_w" pc crqp crpp) )
+ ()
+ )
+
+; 00000011 11110 qqqqq ppppp 11111 cpsmsbslla1.w crqp,crpp (p0_1)
+(dni cpsmsbslla1_w_P1 "cpsmsbslla1.w $crqp,$crpp Pn"
+ (OPTIONAL_CP_INSN ivc2-p1-isa (SLOTS P1) (INTRINSIC "cpsmsbslla1_w") (CPTYPE V2SI) VOLATILE)
+ "cpsmsbslla1.w $crqp,$crpp"
+ (+ (f-ivc2-8u0 #x3) (f-ivc2-5u8 #x1e) crqp crpp (f-ivc2-5u23 #x1f) (f-ivc2-4u28 0))
+ (sequence ()
+ (c-call "check_option_cp" pc)
+ (set ivc2_acc1_0 0)
+ (set ivc2_acc1_1 0)
+ (set ivc2_acc1_2 0)
+ (set ivc2_acc1_3 0)
+ (set ivc2_cofa1 0)
+ (c-call "ivc2_cpsmsbslla1_w" pc crqp crpp) )
+ ()
+ )
+
diff --git a/gcc/config/mep/mep-lib1.asm b/gcc/config/mep/mep-lib1.asm
new file mode 100644
index 000000000..0a18913f9
--- /dev/null
+++ b/gcc/config/mep/mep-lib1.asm
@@ -0,0 +1,125 @@
+/* libgcc routines for Toshiba Media Processor.
+ Copyright (C) 2001, 2002, 2005, 2009 Free Software Foundation, Inc.
+
+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 of the License, 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
+<http://www.gnu.org/licenses/>. */
+
+#define SAVEALL \
+ add3 $sp, $sp, -16*4 ; \
+ sw $0, ($sp) ; \
+ sw $1, 4($sp) ; \
+ sw $2, 8($sp) ; \
+ sw $3, 12($sp) ; \
+ sw $4, 16($sp) ; \
+ sw $5, 20($sp) ; \
+ sw $6, 24($sp) ; \
+ sw $7, 28($sp) ; \
+ sw $8, 32($sp) ; \
+ sw $9, 36($sp) ; \
+ sw $10, 40($sp) ; \
+ sw $11, 44($sp) ; \
+ sw $12, 48($sp) ; \
+ sw $13, 52($sp) ; \
+ sw $14, 56($sp) ; \
+ ldc $5, $lp ; \
+ add $5, 3 ; \
+ mov $6, -4 ; \
+ and $5, $6
+
+#define RESTOREALL \
+ stc $5, $lp ; \
+ lw $14, 56($sp) ; \
+ lw $13, 52($sp) ; \
+ lw $12, 48($sp) ; \
+ lw $11, 44($sp) ; \
+ lw $10, 40($sp) ; \
+ lw $9, 36($sp) ; \
+ lw $8, 32($sp) ; \
+ lw $7, 28($sp) ; \
+ lw $6, 24($sp) ; \
+ lw $5, 20($sp) ; \
+ lw $4, 16($sp) ; \
+ lw $3, 12($sp) ; \
+ lw $2, 8($sp) ; \
+ lw $1, 4($sp) ; \
+ lw $0, ($sp) ; \
+ add3 $sp, $sp, 16*4 ; \
+ ret
+
+#ifdef L_mep_profile
+ .text
+ .global __mep_mcount
+__mep_mcount:
+ SAVEALL
+ ldc $1, $lp
+ mov $2, $0
+ bsr __mep_mcount_2
+ RESTOREALL
+#endif
+
+#ifdef L_mep_bb_init_trace
+ .text
+ .global __mep_bb_init_trace_func
+__mep_bb_init_trace_func:
+ SAVEALL
+ lw $1, ($5)
+ lw $2, 4($5)
+ add $5, 8
+ bsr __bb_init_trace_func
+ RESTOREALL
+#endif
+
+#ifdef L_mep_bb_init
+ .text
+ .global __mep_bb_init_func
+__mep_bb_init_func:
+ SAVEALL
+ lw $1, ($5)
+ add $5, 4
+ bsr __bb_init_func
+ RESTOREALL
+#endif
+
+#ifdef L_mep_bb_trace
+ .text
+ .global __mep_bb_trace_func
+__mep_bb_trace_func:
+ SAVEALL
+ movu $3, __bb
+ lw $1, ($5)
+ sw $1, ($3)
+ lw $2, 4($5)
+ sw $2, 4($3)
+ add $5, 8
+ bsr __bb_trace_func
+ RESTOREALL
+#endif
+
+#ifdef L_mep_bb_increment
+ .text
+ .global __mep_bb_increment_func
+__mep_bb_increment_func:
+ SAVEALL
+ lw $1, ($5)
+ lw $0, ($1)
+ add $0, 1
+ sw $0, ($1)
+ add $5, 4
+ RESTOREALL
+#endif
diff --git a/gcc/config/mep/mep-lib2.c b/gcc/config/mep/mep-lib2.c
new file mode 100644
index 000000000..1dbf57d95
--- /dev/null
+++ b/gcc/config/mep/mep-lib2.c
@@ -0,0 +1,139 @@
+/* libgcc routines for MeP.
+ Copyright 2001, 2002, 2009 Free Software Foundation, Inc
+
+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 of the License, 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
+<http://www.gnu.org/licenses/>. */
+
+typedef int SItype __attribute__ ((mode (SI)));
+typedef unsigned int USItype __attribute__ ((mode (SI)));
+
+typedef int word_type __attribute__ ((mode (__word__)));
+
+USItype
+__mulsi3 (USItype a, USItype b)
+{
+ USItype c = 0;
+
+ while (a != 0)
+ {
+ if (a & 1)
+ c += b;
+ a >>= 1;
+ b <<= 1;
+ }
+
+ return c;
+}
+
+
+
+USItype
+udivmodsi4(USItype num, USItype den, word_type modwanted)
+{
+ USItype bit = 1;
+ USItype res = 0;
+
+ while (den < num && bit && !(den & (1L<<31)))
+ {
+ den <<=1;
+ bit <<=1;
+ }
+ while (bit)
+ {
+ if (num >= den)
+ {
+ num -= den;
+ res |= bit;
+ }
+ bit >>=1;
+ den >>=1;
+ }
+ if (modwanted) return num;
+ return res;
+}
+
+
+
+SItype
+__divsi3 (SItype a, SItype b)
+{
+ word_type neg = 0;
+ SItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = !neg;
+ }
+
+ if (b < 0)
+ {
+ b = -b;
+ neg = !neg;
+ }
+
+ res = udivmodsi4 (a, b, 0);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+
+SItype
+__modsi3 (SItype a, SItype b)
+{
+ word_type neg = 0;
+ SItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = 1;
+ }
+
+ if (b < 0)
+ b = -b;
+
+ res = udivmodsi4 (a, b, 1);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+
+
+SItype
+__udivsi3 (SItype a, SItype b)
+{
+ return udivmodsi4 (a, b, 0);
+}
+
+
+
+SItype
+__umodsi3 (SItype a, SItype b)
+{
+ return udivmodsi4 (a, b, 1);
+}
diff --git a/gcc/config/mep/mep-pragma.c b/gcc/config/mep/mep-pragma.c
new file mode 100644
index 000000000..d9457ed6c
--- /dev/null
+++ b/gcc/config/mep/mep-pragma.c
@@ -0,0 +1,404 @@
+/* Definitions of Toshiba Media Processor
+ Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2009, 2010 Free
+ Software Foundation, Inc. Contributed by Red Hat, Inc.
+
+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
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "diagnostic-core.h"
+#include "c-family/c-pragma.h"
+#include "cpplib.h"
+#include "hard-reg-set.h"
+#include "output.h"
+#include "mep-protos.h"
+#include "function.h"
+#define MAX_RECOG_OPERANDS 10
+#include "reload.h"
+#include "target.h"
+
+enum cw_which { CW_AVAILABLE, CW_CALL_SAVED };
+
+/* This is normally provided by rtl.h but we can't include that file
+ here. It's safe to copy the definition here because we're only
+ using it internally; the value isn't passed to functions outside
+ this file. */
+#ifndef INVALID_REGNUM
+#define INVALID_REGNUM (~(unsigned int) 0)
+#endif
+
+static enum cpp_ttype
+mep_pragma_lex (tree *valp)
+{
+ enum cpp_ttype t = pragma_lex (valp);
+ if (t == CPP_EOF)
+ t = CPP_PRAGMA_EOL;
+ return t;
+}
+
+static void
+mep_pragma_io_volatile (cpp_reader *reader ATTRIBUTE_UNUSED)
+{
+ /* On off. */
+ tree val;
+ enum cpp_ttype type;
+ const char * str;
+
+ type = mep_pragma_lex (&val);
+ if (type == CPP_NAME)
+ {
+ str = IDENTIFIER_POINTER (val);
+
+ type = mep_pragma_lex (&val);
+ if (type != CPP_PRAGMA_EOL)
+ warning (0, "junk at end of #pragma io_volatile");
+
+ if (strcmp (str, "on") == 0)
+ {
+ target_flags |= MASK_IO_VOLATILE;
+ return;
+ }
+ if (strcmp (str, "off") == 0)
+ {
+ target_flags &= ~ MASK_IO_VOLATILE;
+ return;
+ }
+ }
+
+ error ("#pragma io_volatile takes only on or off");
+}
+
+static unsigned int
+parse_cr_reg (const char * str)
+{
+ unsigned int regno;
+
+ regno = decode_reg_name (str);
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ return INVALID_REGNUM;
+
+ /* Verify that the regno is in CR_REGS. */
+ if (! TEST_HARD_REG_BIT (reg_class_contents[CR_REGS], regno))
+ return INVALID_REGNUM;
+ return regno;
+}
+
+static bool
+parse_cr_set (HARD_REG_SET * set)
+{
+ tree val;
+ enum cpp_ttype type;
+ unsigned int last_regno = INVALID_REGNUM;
+ bool do_range = false;
+
+ CLEAR_HARD_REG_SET (*set);
+
+ while ((type = mep_pragma_lex (&val)) != CPP_PRAGMA_EOL)
+ {
+ if (type == CPP_COMMA)
+ {
+ last_regno = INVALID_REGNUM;
+ do_range = false;
+ }
+ else if (type == CPP_ELLIPSIS)
+ {
+ if (last_regno == INVALID_REGNUM)
+ {
+ error ("invalid coprocessor register range");
+ return false;
+ }
+ do_range = true;
+ }
+ else if (type == CPP_NAME || type == CPP_STRING)
+ {
+ const char *str;
+ unsigned int regno, i;
+
+ if (TREE_CODE (val) == IDENTIFIER_NODE)
+ str = IDENTIFIER_POINTER (val);
+ else if (TREE_CODE (val) == STRING_CST)
+ str = TREE_STRING_POINTER (val);
+ else
+ gcc_unreachable ();
+
+ regno = parse_cr_reg (str);
+ if (regno == INVALID_REGNUM)
+ {
+ error ("invalid coprocessor register %qE", val);
+ return false;
+ }
+
+ if (do_range)
+ {
+ if (last_regno > regno)
+ i = regno, regno = last_regno;
+ else
+ i = last_regno;
+ do_range = false;
+ }
+ else
+ last_regno = i = regno;
+
+ while (i <= regno)
+ {
+ SET_HARD_REG_BIT (*set, i);
+ i++;
+ }
+ }
+ else
+ {
+ error ("malformed coprocessor register");
+ return false;
+ }
+ }
+ return true;
+}
+
+static void
+mep_pragma_coprocessor_which (enum cw_which cw_which)
+{
+ HARD_REG_SET set;
+
+ /* Process the balance of the pragma and turn it into a hard reg set. */
+ if (! parse_cr_set (&set))
+ return;
+
+ /* Process the collected hard reg set. */
+ switch (cw_which)
+ {
+ case CW_AVAILABLE:
+ {
+ int i;
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; ++i)
+ if (TEST_HARD_REG_BIT (set, i))
+ fixed_regs[i] = 0;
+ }
+ break;
+
+ case CW_CALL_SAVED:
+ {
+ int i;
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; ++i)
+ if (TEST_HARD_REG_BIT (set, i))
+ fixed_regs[i] = call_used_regs[i] = 0;
+ }
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ /* Fix up register class hierarchy. */
+ mep_save_register_info ();
+ mep_reinit_regs ();
+
+ if (cfun == 0)
+ {
+ init_dummy_function_start ();
+ init_caller_save ();
+ expand_dummy_function_end ();
+ }
+ else
+ {
+ init_caller_save ();
+ }
+}
+
+static void
+mep_pragma_coprocessor_width (void)
+{
+ tree val;
+ enum cpp_ttype type;
+ HOST_WIDE_INT i;
+
+ type = mep_pragma_lex (&val);
+ switch (type)
+ {
+ case CPP_NUMBER:
+ if (! host_integerp (val, 1))
+ break;
+ i = tree_low_cst (val, 1);
+ /* This pragma no longer has any effect. */
+#if 0
+ if (i == 32)
+ target_flags &= ~MASK_64BIT_CR_REGS;
+ else if (i == 64)
+ target_flags |= MASK_64BIT_CR_REGS;
+ else
+ break;
+ targetm.init_builtins ();
+#else
+ if (i != 32 && i != 64)
+ break;
+#endif
+
+ type = mep_pragma_lex (&val);
+ if (type != CPP_PRAGMA_EOL)
+ warning (0, "junk at end of #pragma GCC coprocessor width");
+ return;
+
+ default:
+ break;
+ }
+
+ error ("#pragma GCC coprocessor width takes only 32 or 64");
+}
+
+static void
+mep_pragma_coprocessor_subclass (void)
+{
+ tree val;
+ enum cpp_ttype type;
+ HARD_REG_SET set;
+ int class_letter;
+ enum reg_class rclass;
+
+ type = mep_pragma_lex (&val);
+ if (type != CPP_CHAR)
+ goto syntax_error;
+ class_letter = tree_low_cst (val, 1);
+ if (class_letter >= 'A' && class_letter <= 'D')
+ switch (class_letter)
+ {
+ case 'A':
+ rclass = USER0_REGS;
+ break;
+ case 'B':
+ rclass = USER1_REGS;
+ break;
+ case 'C':
+ rclass = USER2_REGS;
+ break;
+ case 'D':
+ rclass = USER3_REGS;
+ break;
+ }
+ else
+ {
+ error ("#pragma GCC coprocessor subclass letter must be in [ABCD]");
+ return;
+ }
+ if (reg_class_size[rclass] > 0)
+ {
+ error ("#pragma GCC coprocessor subclass '%c' already defined",
+ class_letter);
+ return;
+ }
+
+ type = mep_pragma_lex (&val);
+ if (type != CPP_EQ)
+ goto syntax_error;
+
+ if (! parse_cr_set (&set))
+ return;
+
+ /* Fix up register class hierarchy. */
+ COPY_HARD_REG_SET (reg_class_contents[rclass], set);
+ mep_init_regs ();
+ return;
+
+ syntax_error:
+ error ("malformed #pragma GCC coprocessor subclass");
+}
+
+static void
+mep_pragma_disinterrupt (cpp_reader *reader ATTRIBUTE_UNUSED)
+{
+ tree val;
+ enum cpp_ttype type;
+ int saw_one = 0;
+
+ for (;;)
+ {
+ type = mep_pragma_lex (&val);
+ if (type == CPP_COMMA)
+ continue;
+ if (type != CPP_NAME)
+ break;
+ mep_note_pragma_disinterrupt (IDENTIFIER_POINTER (val));
+ saw_one = 1;
+ }
+ if (!saw_one || type != CPP_PRAGMA_EOL)
+ {
+ error ("malformed #pragma disinterrupt");
+ return;
+ }
+}
+
+static void
+mep_pragma_coprocessor (cpp_reader *reader ATTRIBUTE_UNUSED)
+{
+ tree val;
+ enum cpp_ttype type;
+
+ type = mep_pragma_lex (&val);
+ if (type != CPP_NAME)
+ {
+ error ("malformed #pragma GCC coprocessor");
+ return;
+ }
+
+ if (!TARGET_COP)
+ error ("coprocessor not enabled");
+
+ if (strcmp (IDENTIFIER_POINTER (val), "available") == 0)
+ mep_pragma_coprocessor_which (CW_AVAILABLE);
+ else if (strcmp (IDENTIFIER_POINTER (val), "call_saved") == 0)
+ mep_pragma_coprocessor_which (CW_CALL_SAVED);
+ else if (strcmp (IDENTIFIER_POINTER (val), "width") == 0)
+ mep_pragma_coprocessor_width ();
+ else if (strcmp (IDENTIFIER_POINTER (val), "subclass") == 0)
+ mep_pragma_coprocessor_subclass ();
+ else
+ error ("unknown #pragma GCC coprocessor %E", val);
+}
+
+static void
+mep_pragma_call (cpp_reader *reader ATTRIBUTE_UNUSED)
+{
+ tree val;
+ enum cpp_ttype type;
+ int saw_one = 0;
+
+ for (;;)
+ {
+ type = mep_pragma_lex (&val);
+ if (type == CPP_COMMA)
+ continue;
+ if (type != CPP_NAME)
+ break;
+ mep_note_pragma_call (IDENTIFIER_POINTER (val));
+ saw_one = 1;
+ }
+ if (!saw_one || type != CPP_PRAGMA_EOL)
+ {
+ error ("malformed #pragma call");
+ return;
+ }
+}
+
+void
+mep_register_pragmas (void)
+{
+ c_register_pragma ("custom", "io_volatile", mep_pragma_io_volatile);
+ c_register_pragma ("GCC", "coprocessor", mep_pragma_coprocessor);
+ c_register_pragma (0, "disinterrupt", mep_pragma_disinterrupt);
+ c_register_pragma (0, "call", mep_pragma_call);
+}
diff --git a/gcc/config/mep/mep-protos.h b/gcc/config/mep/mep-protos.h
new file mode 100644
index 000000000..12cef58a8
--- /dev/null
+++ b/gcc/config/mep/mep-protos.h
@@ -0,0 +1,133 @@
+/* Prototypes for exported functions defined in mep.c
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free
+ Software Foundation, Inc.
+ Contributed by Red Hat Inc (dj@redhat.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
+<http://www.gnu.org/licenses/>. */
+
+extern int mep_regno_reg_class (int);
+extern int mep_reg_class_from_constraint (int, const char *);
+extern bool mep_const_ok_for_letter_p (HOST_WIDE_INT, int);
+extern bool mep_extra_constraint (rtx, int);
+extern rtx mep_mulr_source (rtx, rtx, rtx, rtx);
+extern bool mep_reuse_lo_p (rtx, rtx, rtx, bool);
+extern bool mep_use_post_modify_p (rtx, rtx, rtx);
+extern bool mep_allow_clip (rtx, rtx, int);
+extern bool mep_bit_position_p (rtx, bool);
+extern bool mep_split_mov (rtx *, int);
+extern bool mep_vliw_mode_match (rtx);
+extern bool mep_vliw_jmp_match (rtx);
+extern bool mep_multi_slot (rtx);
+extern bool mep_legitimate_address (enum machine_mode, rtx, int);
+extern int mep_legitimize_address (rtx *, rtx, enum machine_mode);
+extern int mep_legitimize_reload_address (rtx *, enum machine_mode, int, /*enum reload_type*/ int, int);
+extern int mep_core_address_length (rtx, int);
+extern int mep_cop_address_length (rtx, int);
+extern bool mep_expand_mov (rtx *, enum machine_mode);
+extern bool mep_mov_ok (rtx *, enum machine_mode);
+extern void mep_split_wide_move (rtx *, enum machine_mode);
+#ifdef RTX_CODE
+extern bool mep_expand_setcc (rtx *);
+extern rtx mep_expand_cbranch (rtx *);
+extern bool mep_legitimate_constant_p (rtx);
+#endif
+extern const char *mep_emit_cbranch (rtx *, int);
+extern void mep_expand_call (rtx *, int);
+extern rtx mep_find_base_term (rtx);
+extern enum reg_class mep_secondary_input_reload_class (enum reg_class, enum machine_mode, rtx);
+extern enum reg_class mep_secondary_output_reload_class (enum reg_class, enum machine_mode, rtx);
+extern bool mep_secondary_memory_needed (enum reg_class, enum reg_class,
+ enum machine_mode);
+extern void mep_expand_reload (rtx *, enum machine_mode);
+extern enum reg_class mep_preferred_reload_class (rtx, enum reg_class);
+extern int mep_register_move_cost (enum machine_mode, enum reg_class, enum reg_class);
+extern void mep_init_expanders (void);
+extern rtx mep_return_addr_rtx (int);
+extern bool mep_epilogue_uses (int);
+extern int mep_elimination_offset (int, int);
+extern void mep_expand_prologue (void);
+extern void mep_expand_epilogue (void);
+extern void mep_expand_eh_return (rtx *);
+extern void mep_emit_eh_epilogue (rtx *);
+extern void mep_expand_sibcall_epilogue (void);
+extern rtx mep_return_stackadj_rtx (void);
+extern rtx mep_return_handler_rtx (void);
+extern void mep_function_profiler (FILE *);
+extern const char *mep_emit_bb_trace_ret (void);
+extern void mep_print_operand_address (FILE *, rtx);
+extern void mep_print_operand (FILE *, rtx, int);
+extern void mep_final_prescan_insn (rtx, rtx *, int);
+extern void mep_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree);
+extern bool mep_return_in_memory (const_tree, const_tree);
+extern rtx mep_function_value (const_tree, const_tree);
+extern rtx mep_libcall_value (enum machine_mode);
+extern void mep_asm_output_opcode (FILE *, const char *);
+extern void mep_note_pragma_disinterrupt (const char *);
+extern void mep_note_pragma_call (const char *);
+extern void mep_file_cleanups (void);
+extern const char *mep_strip_name_encoding (const char *);
+extern void mep_output_aligned_common (FILE *, tree, const char *,
+ int, int, int);
+extern void mep_emit_doloop (rtx *, int);
+extern bool mep_vliw_function_p (tree);
+extern bool mep_store_data_bypass_p (rtx, rtx);
+extern bool mep_mul_hilo_bypass_p (rtx, rtx);
+extern bool mep_ipipe_ldc_p (rtx);
+extern bool mep_emit_intrinsic (int, const rtx *);
+extern bool mep_expand_unary_intrinsic (int, rtx *);
+extern bool mep_expand_binary_intrinsic (int, int, int, int, rtx *);
+extern int mep_intrinsic_length (int);
+
+extern void mep_register_pragmas (void);
+extern int mep_section_tag (rtx);
+extern bool mep_lookup_pragma_call (const char *);
+extern bool mep_have_core_copro_moves_p;
+extern bool mep_have_copro_copro_moves_p;
+
+extern bool mep_cannot_change_mode_class (enum machine_mode, enum machine_mode,
+ enum reg_class);
+
+/* These are called from mep-pragmas (front end) and then call into
+ the RTL layer to re-initialize the register tables once we're done
+ changing them via pragmas. */
+extern void mep_save_register_info (void);
+extern void mep_reinit_regs (void);
+extern void mep_init_regs (void);
+
+
+extern int cgen_h_uint_6a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_7a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_8a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_6a2_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_22a4_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_2a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_24a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_6a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_5a4_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_2a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_16a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_3a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_5a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_16a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_8a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_7a2_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_6a4_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_5a8_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_4a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_10a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_sint_12a1_immediate (rtx, enum machine_mode);
+extern int cgen_h_uint_20a1_immediate (rtx, enum machine_mode);
diff --git a/gcc/config/mep/mep-tramp.c b/gcc/config/mep/mep-tramp.c
new file mode 100644
index 000000000..bf484ca4e
--- /dev/null
+++ b/gcc/config/mep/mep-tramp.c
@@ -0,0 +1,103 @@
+/* Trampoline support for MeP
+ Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+ Contributed by Red Hat Inc.
+
+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 of the License, 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
+<http://www.gnu.org/licenses/>. */
+
+/*
+ 7a0a ldc $10,$pc
+ c0ae000a lw $0,10($10)
+ caae000e lw $10,14($10)
+ 10ae jmp $10
+ 00000000 static chain
+ 00000000 function address
+*/
+
+static inline int
+cache_config_register(void) {
+ int rv;
+ asm ("ldc\t%0, $ccfg" : "=r" (rv));
+ return rv;
+}
+
+#define ICACHE_SIZE ((cache_config_register() >> 16) & 0x7f)
+#define DCACHE_SIZE (cache_config_register() & 0x7f)
+
+#define ICACHE_DATA_BASE 0x00300000
+#define ICACHE_TAG_BASE 0x00310000
+#define DCACHE_DATA_BASE 0x00320000
+#define DCACHE_TAG_BASE 0x00330000
+
+static inline void
+flush_dcache (int addr)
+{
+ asm volatile ("cache\t0, (%0)" : : "r" (addr));
+}
+
+void
+__mep_trampoline_helper (unsigned long *tramp,
+ int function_address,
+ int static_chain);
+
+void
+__mep_trampoline_helper (unsigned long *tramp,
+ int function_address,
+ int static_chain)
+{
+ int dsize, isize;
+
+#ifdef __LITTLE_ENDIAN__
+ tramp[0] = 0xc0ae7a0a;
+ tramp[1] = 0xcaae000a;
+ tramp[2] = 0x10ae000e;
+#else
+ tramp[0] = 0x7a0ac0ae;
+ tramp[1] = 0x000acaae;
+ tramp[2] = 0x000e10ae;
+#endif
+ tramp[3] = static_chain;
+ tramp[4] = function_address;
+
+ dsize = DCACHE_SIZE;
+ isize = ICACHE_SIZE;
+
+ if (dsize)
+ {
+ flush_dcache ((int)tramp);
+ flush_dcache ((int)tramp+16);
+ }
+
+ if (isize)
+ {
+ int imask = (isize * 1024) - 1;
+ int tmask = ~imask;
+ unsigned int i;
+ volatile unsigned int *tags;
+
+ imask &= 0xffe0;
+
+ for (i=(unsigned int)tramp; i<(unsigned int)tramp+20; i+=16)
+ {
+ tags = (unsigned int *)(ICACHE_TAG_BASE + (i & imask));
+ if ((*tags & tmask) == (i & tmask))
+ *tags &= ~1;
+ }
+ }
+}
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
new file mode 100644
index 000000000..913a30a75
--- /dev/null
+++ b/gcc/config/mep/mep.c
@@ -0,0 +1,7464 @@
+/* Definitions for Toshiba Media Processor
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
+ Contributed by Red Hat, Inc.
+
+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
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "rtl.h"
+#include "tree.h"
+#include "regs.h"
+#include "hard-reg-set.h"
+#include "insn-config.h"
+#include "conditions.h"
+#include "insn-flags.h"
+#include "output.h"
+#include "insn-attr.h"
+#include "flags.h"
+#include "recog.h"
+#include "obstack.h"
+#include "tree.h"
+#include "expr.h"
+#include "except.h"
+#include "function.h"
+#include "optabs.h"
+#include "reload.h"
+#include "tm_p.h"
+#include "ggc.h"
+#include "diagnostic-core.h"
+#include "integrate.h"
+#include "target.h"
+#include "target-def.h"
+#include "langhooks.h"
+#include "df.h"
+#include "gimple.h"
+
+/* Structure of this file:
+
+ + Command Line Option Support
+ + Pattern support - constraints, predicates, expanders
+ + Reload Support
+ + Costs
+ + Functions to save and restore machine-specific function data.
+ + Frame/Epilog/Prolog Related
+ + Operand Printing
+ + Function args in registers
+ + Handle pipeline hazards
+ + Handle attributes
+ + Trampolines
+ + Machine-dependent Reorg
+ + Builtins. */
+
+/* Symbol encodings:
+
+ Symbols are encoded as @ <char> . <name> where <char> is one of these:
+
+ b - based
+ t - tiny
+ n - near
+ f - far
+ i - io, near
+ I - io, far
+ c - cb (control bus) */
+
+struct GTY(()) machine_function
+{
+ int mep_frame_pointer_needed;
+
+ /* For varargs. */
+ int arg_regs_to_save;
+ int regsave_filler;
+ int frame_filler;
+ int frame_locked;
+
+ /* Records __builtin_return address. */
+ rtx eh_stack_adjust;
+
+ int reg_save_size;
+ int reg_save_slot[FIRST_PSEUDO_REGISTER];
+ unsigned char reg_saved[FIRST_PSEUDO_REGISTER];
+
+ /* 2 if the current function has an interrupt attribute, 1 if not, 0
+ if unknown. This is here because resource.c uses EPILOGUE_USES
+ which needs it. */
+ int interrupt_handler;
+
+ /* Likewise, for disinterrupt attribute. */
+ int disable_interrupts;
+
+ /* Number of doloop tags used so far. */
+ int doloop_tags;
+
+ /* True if the last tag was allocated to a doloop_end. */
+ bool doloop_tag_from_end;
+
+ /* True if reload changes $TP. */
+ bool reload_changes_tp;
+
+ /* 2 if there are asm()s without operands, 1 if not, 0 if unknown.
+ We only set this if the function is an interrupt handler. */
+ int asms_without_operands;
+};
+
+#define MEP_CONTROL_REG(x) \
+ (GET_CODE (x) == REG && ANY_CONTROL_REGNO_P (REGNO (x)))
+
+static GTY(()) section * based_section;
+static GTY(()) section * tinybss_section;
+static GTY(()) section * far_section;
+static GTY(()) section * farbss_section;
+static GTY(()) section * frodata_section;
+static GTY(()) section * srodata_section;
+
+static GTY(()) section * vtext_section;
+static GTY(()) section * vftext_section;
+static GTY(()) section * ftext_section;
+
+static void mep_set_leaf_registers (int);
+static bool symbol_p (rtx);
+static bool symbolref_p (rtx);
+static void encode_pattern_1 (rtx);
+static void encode_pattern (rtx);
+static bool const_in_range (rtx, int, int);
+static void mep_rewrite_mult (rtx, rtx);
+static void mep_rewrite_mulsi3 (rtx, rtx, rtx, rtx);
+static void mep_rewrite_maddsi3 (rtx, rtx, rtx, rtx, rtx);
+static bool mep_reuse_lo_p_1 (rtx, rtx, rtx, bool);
+static bool move_needs_splitting (rtx, rtx, enum machine_mode);
+static bool mep_expand_setcc_1 (enum rtx_code, rtx, rtx, rtx);
+static bool mep_nongeneral_reg (rtx);
+static bool mep_general_copro_reg (rtx);
+static bool mep_nonregister (rtx);
+static struct machine_function* mep_init_machine_status (void);
+static rtx mep_tp_rtx (void);
+static rtx mep_gp_rtx (void);
+static bool mep_interrupt_p (void);
+static bool mep_disinterrupt_p (void);
+static bool mep_reg_set_p (rtx, rtx);
+static bool mep_reg_set_in_function (int);
+static bool mep_interrupt_saved_reg (int);
+static bool mep_call_saves_register (int);
+static rtx F (rtx);
+static void add_constant (int, int, int, int);
+static rtx maybe_dead_move (rtx, rtx, bool);
+static void mep_reload_pointer (int, const char *);
+static void mep_start_function (FILE *, HOST_WIDE_INT);
+static bool mep_function_ok_for_sibcall (tree, tree);
+static int unique_bit_in (HOST_WIDE_INT);
+static int bit_size_for_clip (HOST_WIDE_INT);
+static int bytesize (const_tree, enum machine_mode);
+static tree mep_validate_based_tiny (tree *, tree, tree, int, bool *);
+static tree mep_validate_near_far (tree *, tree, tree, int, bool *);
+static tree mep_validate_disinterrupt (tree *, tree, tree, int, bool *);
+static tree mep_validate_interrupt (tree *, tree, tree, int, bool *);
+static tree mep_validate_io_cb (tree *, tree, tree, int, bool *);
+static tree mep_validate_vliw (tree *, tree, tree, int, bool *);
+static bool mep_function_attribute_inlinable_p (const_tree);
+static bool mep_can_inline_p (tree, tree);
+static bool mep_lookup_pragma_disinterrupt (const char *);
+static int mep_multiple_address_regions (tree, bool);
+static int mep_attrlist_to_encoding (tree, tree);
+static void mep_insert_attributes (tree, tree *);
+static void mep_encode_section_info (tree, rtx, int);
+static section * mep_select_section (tree, int, unsigned HOST_WIDE_INT);
+static void mep_unique_section (tree, int);
+static unsigned int mep_section_type_flags (tree, const char *, int);
+static void mep_asm_named_section (const char *, unsigned int, tree);
+static bool mep_mentioned_p (rtx, rtx, int);
+static void mep_reorg_regmove (rtx);
+static rtx mep_insert_repeat_label_last (rtx, rtx, bool, bool);
+static void mep_reorg_repeat (rtx);
+static bool mep_invertable_branch_p (rtx);
+static void mep_invert_branch (rtx, rtx);
+static void mep_reorg_erepeat (rtx);
+static void mep_jmp_return_reorg (rtx);
+static void mep_reorg_addcombine (rtx);
+static void mep_reorg (void);
+static void mep_init_intrinsics (void);
+static void mep_init_builtins (void);
+static void mep_intrinsic_unavailable (int);
+static bool mep_get_intrinsic_insn (int, const struct cgen_insn **);
+static bool mep_get_move_insn (int, const struct cgen_insn **);
+static rtx mep_convert_arg (enum machine_mode, rtx);
+static rtx mep_convert_regnum (const struct cgen_regnum_operand *, rtx);
+static rtx mep_legitimize_arg (const struct insn_operand_data *, rtx, int);
+static void mep_incompatible_arg (const struct insn_operand_data *, rtx, int, tree);
+static rtx mep_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
+static int mep_adjust_cost (rtx, rtx, rtx, int);
+static int mep_issue_rate (void);
+static rtx mep_find_ready_insn (rtx *, int, enum attr_slot, int);
+static void mep_move_ready_insn (rtx *, int, rtx);
+static int mep_sched_reorder (FILE *, int, rtx *, int *, int);
+static rtx mep_make_bundle (rtx, rtx);
+static void mep_bundle_insns (rtx);
+static bool mep_rtx_cost (rtx, int, int, int *, bool);
+static int mep_address_cost (rtx, bool);
+static void mep_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
+ tree, int *, int);
+static bool mep_pass_by_reference (CUMULATIVE_ARGS * cum, enum machine_mode,
+ const_tree, bool);
+static rtx mep_function_arg (CUMULATIVE_ARGS *, enum machine_mode,
+ const_tree, bool);
+static void mep_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
+ const_tree, bool);
+static bool mep_vector_mode_supported_p (enum machine_mode);
+static bool mep_handle_option (size_t, const char *, int);
+static rtx mep_allocate_initial_value (rtx);
+static void mep_asm_init_sections (void);
+static int mep_comp_type_attributes (const_tree, const_tree);
+static bool mep_narrow_volatile_bitfield (void);
+static rtx mep_expand_builtin_saveregs (void);
+static tree mep_build_builtin_va_list (void);
+static void mep_expand_va_start (tree, rtx);
+static tree mep_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *);
+static bool mep_can_eliminate (const int, const int);
+static void mep_conditional_register_usage (void);
+static void mep_trampoline_init (rtx, tree, rtx);
+
+#define WANT_GCC_DEFINITIONS
+#include "mep-intrin.h"
+#undef WANT_GCC_DEFINITIONS
+
+
+/* Command Line Option Support. */
+
+char mep_leaf_registers [FIRST_PSEUDO_REGISTER];
+
+/* True if we can use cmov instructions to move values back and forth
+ between core and coprocessor registers. */
+bool mep_have_core_copro_moves_p;
+
+/* True if we can use cmov instructions (or a work-alike) to move
+ values between coprocessor registers. */
+bool mep_have_copro_copro_moves_p;
+
+/* A table of all coprocessor instructions that can act like
+ a coprocessor-to-coprocessor cmov. */
+static const int mep_cmov_insns[] = {
+ mep_cmov,
+ mep_cpmov,
+ mep_fmovs,
+ mep_caddi3,
+ mep_csubi3,
+ mep_candi3,
+ mep_cori3,
+ mep_cxori3,
+ mep_cand3,
+ mep_cor3
+};
+
+static int option_mtiny_specified = 0;
+
+
+static void
+mep_set_leaf_registers (int enable)
+{
+ int i;
+
+ if (mep_leaf_registers[0] != enable)
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+ mep_leaf_registers[i] = enable;
+}
+
+static void
+mep_conditional_register_usage (void)
+{
+ int i;
+
+ if (!TARGET_OPT_MULT && !TARGET_OPT_DIV)
+ {
+ fixed_regs[HI_REGNO] = 1;
+ fixed_regs[LO_REGNO] = 1;
+ call_used_regs[HI_REGNO] = 1;
+ call_used_regs[LO_REGNO] = 1;
+ }
+
+ for (i = FIRST_SHADOW_REGISTER; i <= LAST_SHADOW_REGISTER; i++)
+ global_regs[i] = 1;
+}
+
+
+static const struct default_options mep_option_optimization_table[] =
+ {
+ /* The first scheduling pass often increases register pressure and
+ tends to result in more spill code. Only run it when
+ specifically asked. */
+ { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 },
+
+ /* Using $fp doesn't gain us much, even when debugging is
+ important. */
+ { OPT_LEVELS_ALL, OPT_fomit_frame_pointer, NULL, 1 },
+
+ { OPT_LEVELS_NONE, 0, NULL, 0 }
+ };
+
+static void
+mep_option_override (void)
+{
+ if (flag_pic == 1)
+ warning (OPT_fpic, "-fpic is not supported");
+ if (flag_pic == 2)
+ warning (OPT_fPIC, "-fPIC is not supported");
+ if (TARGET_S && TARGET_M)
+ error ("only one of -ms and -mm may be given");
+ if (TARGET_S && TARGET_L)
+ error ("only one of -ms and -ml may be given");
+ if (TARGET_M && TARGET_L)
+ error ("only one of -mm and -ml may be given");
+ if (TARGET_S && option_mtiny_specified)
+ error ("only one of -ms and -mtiny= may be given");
+ if (TARGET_M && option_mtiny_specified)
+ error ("only one of -mm and -mtiny= may be given");
+ if (TARGET_OPT_CLIP && ! TARGET_OPT_MINMAX)
+ warning (0, "-mclip currently has no effect without -mminmax");
+
+ if (mep_const_section)
+ {
+ if (strcmp (mep_const_section, "tiny") != 0
+ && strcmp (mep_const_section, "near") != 0
+ && strcmp (mep_const_section, "far") != 0)
+ error ("-mc= must be -mc=tiny, -mc=near, or -mc=far");
+ }
+
+ if (TARGET_S)
+ mep_tiny_cutoff = 65536;
+ if (TARGET_M)
+ mep_tiny_cutoff = 0;
+ if (TARGET_L && ! option_mtiny_specified)
+ mep_tiny_cutoff = 0;
+
+ if (TARGET_64BIT_CR_REGS)
+ flag_split_wide_types = 0;
+
+ init_machine_status = mep_init_machine_status;
+ mep_init_intrinsics ();
+}
+
+/* Pattern Support - constraints, predicates, expanders. */
+
+/* MEP has very few instructions that can refer to the span of
+ addresses used by symbols, so it's common to check for them. */
+
+static bool
+symbol_p (rtx x)
+{
+ int c = GET_CODE (x);
+
+ return (c == CONST_INT
+ || c == CONST
+ || c == SYMBOL_REF);
+}
+
+static bool
+symbolref_p (rtx x)
+{
+ int c;
+
+ if (GET_CODE (x) != MEM)
+ return false;
+
+ c = GET_CODE (XEXP (x, 0));
+ return (c == CONST_INT
+ || c == CONST
+ || c == SYMBOL_REF);
+}
+
+/* static const char *reg_class_names[] = REG_CLASS_NAMES; */
+
+#define GEN_REG(R, STRICT) \
+ (GR_REGNO_P (R) \
+ || (!STRICT \
+ && ((R) == ARG_POINTER_REGNUM \
+ || (R) >= FIRST_PSEUDO_REGISTER)))
+
+static char pattern[12], *patternp;
+static GTY(()) rtx patternr[12];
+#define RTX_IS(x) (strcmp (pattern, x) == 0)
+
+static void
+encode_pattern_1 (rtx x)
+{
+ int i;
+
+ if (patternp == pattern + sizeof (pattern) - 2)
+ {
+ patternp[-1] = '?';
+ return;
+ }
+
+ patternr[patternp-pattern] = x;
+
+ switch (GET_CODE (x))
+ {
+ case REG:
+ *patternp++ = 'r';
+ break;
+ case MEM:
+ *patternp++ = 'm';
+ case CONST:
+ encode_pattern_1 (XEXP(x, 0));
+ break;
+ case PLUS:
+ *patternp++ = '+';
+ encode_pattern_1 (XEXP(x, 0));
+ encode_pattern_1 (XEXP(x, 1));
+ break;
+ case LO_SUM:
+ *patternp++ = 'L';
+ encode_pattern_1 (XEXP(x, 0));
+ encode_pattern_1 (XEXP(x, 1));
+ break;
+ case HIGH:
+ *patternp++ = 'H';
+ encode_pattern_1 (XEXP(x, 0));
+ break;
+ case SYMBOL_REF:
+ *patternp++ = 's';
+ break;
+ case LABEL_REF:
+ *patternp++ = 'l';
+ break;
+ case CONST_INT:
+ case CONST_DOUBLE:
+ *patternp++ = 'i';
+ break;
+ case UNSPEC:
+ *patternp++ = 'u';
+ *patternp++ = '0' + XCINT(x, 1, UNSPEC);
+ for (i=0; i<XVECLEN (x, 0); i++)
+ encode_pattern_1 (XVECEXP (x, 0, i));
+ break;
+ case USE:
+ *patternp++ = 'U';
+ break;
+ default:
+ *patternp++ = '?';
+#if 0
+ fprintf (stderr, "can't encode pattern %s\n", GET_RTX_NAME(GET_CODE(x)));
+ debug_rtx (x);
+ gcc_unreachable ();
+#endif
+ break;
+ }
+}
+
+static void
+encode_pattern (rtx x)
+{
+ patternp = pattern;
+ encode_pattern_1 (x);
+ *patternp = 0;
+}
+
+int
+mep_section_tag (rtx x)
+{
+ const char *name;
+
+ while (1)
+ {
+ switch (GET_CODE (x))
+ {
+ case MEM:
+ case CONST:
+ x = XEXP (x, 0);
+ break;
+ case UNSPEC:
+ x = XVECEXP (x, 0, 0);
+ break;
+ case PLUS:
+ if (GET_CODE (XEXP (x, 1)) != CONST_INT)
+ return 0;
+ x = XEXP (x, 0);
+ break;
+ default:
+ goto done;
+ }
+ }
+ done:
+ if (GET_CODE (x) != SYMBOL_REF)
+ return 0;
+ name = XSTR (x, 0);
+ if (name[0] == '@' && name[2] == '.')
+ {
+ if (name[1] == 'i' || name[1] == 'I')
+ {
+ if (name[1] == 'I')
+ return 'f'; /* near */
+ return 'n'; /* far */
+ }
+ return name[1];
+ }
+ return 0;
+}
+
+int
+mep_regno_reg_class (int regno)
+{
+ switch (regno)
+ {
+ case SP_REGNO: return SP_REGS;
+ case TP_REGNO: return TP_REGS;
+ case GP_REGNO: return GP_REGS;
+ case 0: return R0_REGS;
+ case HI_REGNO: return HI_REGS;
+ case LO_REGNO: return LO_REGS;
+ case ARG_POINTER_REGNUM: return GENERAL_REGS;
+ }
+
+ if (GR_REGNO_P (regno))
+ return regno < FIRST_GR_REGNO + 8 ? TPREL_REGS : GENERAL_REGS;
+ if (CONTROL_REGNO_P (regno))
+ return CONTROL_REGS;
+
+ if (CR_REGNO_P (regno))
+ {
+ int i, j;
+
+ /* Search for the register amongst user-defined subclasses of
+ the coprocessor registers. */
+ for (i = USER0_REGS; i <= USER3_REGS; ++i)
+ {
+ if (! TEST_HARD_REG_BIT (reg_class_contents[i], regno))
+ continue;
+ for (j = 0; j < N_REG_CLASSES; ++j)
+ {
+ enum reg_class sub = reg_class_subclasses[i][j];
+
+ if (sub == LIM_REG_CLASSES)
+ return i;
+ if (TEST_HARD_REG_BIT (reg_class_contents[sub], regno))
+ break;
+ }
+ }
+
+ return LOADABLE_CR_REGNO_P (regno) ? LOADABLE_CR_REGS : CR_REGS;
+ }
+
+ if (CCR_REGNO_P (regno))
+ return CCR_REGS;
+
+ gcc_assert (regno >= FIRST_SHADOW_REGISTER && regno <= LAST_SHADOW_REGISTER);
+ return NO_REGS;
+}
+
+#if 0
+int
+mep_reg_class_from_constraint (int c, const char *str)
+{
+ switch (c)
+ {
+ case 'a':
+ return SP_REGS;
+ case 'b':
+ return TP_REGS;
+ case 'c':
+ return CONTROL_REGS;
+ case 'd':
+ return HILO_REGS;
+ case 'e':
+ {
+ switch (str[1])
+ {
+ case 'm':
+ return LOADABLE_CR_REGS;
+ case 'x':
+ return mep_have_copro_copro_moves_p ? CR_REGS : NO_REGS;
+ case 'r':
+ return mep_have_core_copro_moves_p ? CR_REGS : NO_REGS;
+ default:
+ return NO_REGS;
+ }
+ }
+ case 'h':
+ return HI_REGS;
+ case 'j':
+ return RPC_REGS;
+ case 'l':
+ return LO_REGS;
+ case 't':
+ return TPREL_REGS;
+ case 'v':
+ return GP_REGS;
+ case 'x':
+ return CR_REGS;
+ case 'y':
+ return CCR_REGS;
+ case 'z':
+ return R0_REGS;
+
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ {
+ enum reg_class which = c - 'A' + USER0_REGS;
+ return (reg_class_size[which] > 0 ? which : NO_REGS);
+ }
+
+ default:
+ return NO_REGS;
+ }
+}
+
+bool
+mep_const_ok_for_letter_p (HOST_WIDE_INT value, int c)
+{
+ switch (c)
+ {
+ case 'I': return value >= -32768 && value < 32768;
+ case 'J': return value >= 0 && value < 65536;
+ case 'K': return value >= 0 && value < 0x01000000;
+ case 'L': return value >= -32 && value < 32;
+ case 'M': return value >= 0 && value < 32;
+ case 'N': return value >= 0 && value < 16;
+ case 'O':
+ if (value & 0xffff)
+ return false;
+ return value >= -2147483647-1 && value <= 2147483647;
+ default:
+ gcc_unreachable ();
+ }
+}
+
+bool
+mep_extra_constraint (rtx value, int c)
+{
+ encode_pattern (value);
+
+ switch (c)
+ {
+ case 'R':
+ /* For near symbols, like what call uses. */
+ if (GET_CODE (value) == REG)
+ return 0;
+ return mep_call_address_operand (value, GET_MODE (value));
+
+ case 'S':
+ /* For signed 8-bit immediates. */
+ return (GET_CODE (value) == CONST_INT
+ && INTVAL (value) >= -128
+ && INTVAL (value) <= 127);
+
+ case 'T':
+ /* For tp/gp relative symbol values. */
+ return (RTX_IS ("u3s") || RTX_IS ("u2s")
+ || RTX_IS ("+u3si") || RTX_IS ("+u2si"));
+
+ case 'U':
+ /* Non-absolute memories. */
+ return GET_CODE (value) == MEM && ! CONSTANT_P (XEXP (value, 0));
+
+ case 'W':
+ /* %hi(sym) */
+ return RTX_IS ("Hs");
+
+ case 'Y':
+ /* Register indirect. */
+ return RTX_IS ("mr");
+
+ case 'Z':
+ return mep_section_tag (value) == 'c' && RTX_IS ("ms");
+ }
+
+ return false;
+}
+#endif
+
+#undef PASS
+#undef FAIL
+
+static bool
+const_in_range (rtx x, int minv, int maxv)
+{
+ return (GET_CODE (x) == CONST_INT
+ && INTVAL (x) >= minv
+ && INTVAL (x) <= maxv);
+}
+
+/* Given three integer registers DEST, SRC1 and SRC2, return an rtx X
+ such that "mulr DEST,X" will calculate DEST = SRC1 * SRC2. If a move
+ is needed, emit it before INSN if INSN is nonnull, otherwise emit it
+ at the end of the insn stream. */
+
+rtx
+mep_mulr_source (rtx insn, rtx dest, rtx src1, rtx src2)
+{
+ if (rtx_equal_p (dest, src1))
+ return src2;
+ else if (rtx_equal_p (dest, src2))
+ return src1;
+ else
+ {
+ if (insn == 0)
+ emit_insn (gen_movsi (copy_rtx (dest), src1));
+ else
+ emit_insn_before (gen_movsi (copy_rtx (dest), src1), insn);
+ return src2;
+ }
+}
+
+/* Replace INSN's pattern with PATTERN, a multiplication PARALLEL.
+ Change the last element of PATTERN from (clobber (scratch:SI))
+ to (clobber (reg:SI HI_REGNO)). */
+
+static void
+mep_rewrite_mult (rtx insn, rtx pattern)
+{
+ rtx hi_clobber;
+
+ hi_clobber = XVECEXP (pattern, 0, XVECLEN (pattern, 0) - 1);
+ XEXP (hi_clobber, 0) = gen_rtx_REG (SImode, HI_REGNO);
+ PATTERN (insn) = pattern;
+ INSN_CODE (insn) = -1;
+}
+
+/* Subroutine of mep_reuse_lo_p. Rewrite instruction INSN so that it
+ calculates SRC1 * SRC2 and stores the result in $lo. Also make it
+ store the result in DEST if nonnull. */
+
+static void
+mep_rewrite_mulsi3 (rtx insn, rtx dest, rtx src1, rtx src2)
+{
+ rtx lo, pattern;
+
+ lo = gen_rtx_REG (SImode, LO_REGNO);
+ if (dest)
+ pattern = gen_mulsi3r (lo, dest, copy_rtx (dest),
+ mep_mulr_source (insn, dest, src1, src2));
+ else
+ pattern = gen_mulsi3_lo (lo, src1, src2);
+ mep_rewrite_mult (insn, pattern);
+}
+
+/* Like mep_rewrite_mulsi3, but calculate SRC1 * SRC2 + SRC3. First copy
+ SRC3 into $lo, then use either madd or maddr. The move into $lo will
+ be deleted by a peephole2 if SRC3 is already in $lo. */
+
+static void
+mep_rewrite_maddsi3 (rtx insn, rtx dest, rtx src1, rtx src2, rtx src3)
+{
+ rtx lo, pattern;
+
+ lo = gen_rtx_REG (SImode, LO_REGNO);
+ emit_insn_before (gen_movsi (copy_rtx (lo), src3), insn);
+ if (dest)
+ pattern = gen_maddsi3r (lo, dest, copy_rtx (dest),
+ mep_mulr_source (insn, dest, src1, src2),
+ copy_rtx (lo));
+ else
+ pattern = gen_maddsi3_lo (lo, src1, src2, copy_rtx (lo));
+ mep_rewrite_mult (insn, pattern);
+}
+
+/* Return true if $lo has the same value as integer register GPR when
+ instruction INSN is reached. If necessary, rewrite the instruction
+ that sets $lo so that it uses a proper SET, not a CLOBBER. LO is an
+ rtx for (reg:SI LO_REGNO).
+
+ This function is intended to be used by the peephole2 pass. Since
+ that pass goes from the end of a basic block to the beginning, and
+ propagates liveness information on the way, there is no need to
+ update register notes here.
+
+ If GPR_DEAD_P is true on entry, and this function returns true,
+ then the caller will replace _every_ use of GPR in and after INSN
+ with LO. This means that if the instruction that sets $lo is a
+ mulr- or maddr-type instruction, we can rewrite it to use mul or
+ madd instead. In combination with the copy progagation pass,
+ this allows us to replace sequences like:
+
+ mov GPR,R1
+ mulr GPR,R2
+
+ with:
+
+ mul R1,R2
+
+ if GPR is no longer used. */
+
+static bool
+mep_reuse_lo_p_1 (rtx lo, rtx gpr, rtx insn, bool gpr_dead_p)
+{
+ do
+ {
+ insn = PREV_INSN (insn);
+ if (INSN_P (insn))
+ switch (recog_memoized (insn))
+ {
+ case CODE_FOR_mulsi3_1:
+ extract_insn (insn);
+ if (rtx_equal_p (recog_data.operand[0], gpr))
+ {
+ mep_rewrite_mulsi3 (insn,
+ gpr_dead_p ? NULL : recog_data.operand[0],
+ recog_data.operand[1],
+ recog_data.operand[2]);
+ return true;
+ }
+ return false;
+
+ case CODE_FOR_maddsi3:
+ extract_insn (insn);
+ if (rtx_equal_p (recog_data.operand[0], gpr))
+ {
+ mep_rewrite_maddsi3 (insn,
+ gpr_dead_p ? NULL : recog_data.operand[0],
+ recog_data.operand[1],
+ recog_data.operand[2],
+ recog_data.operand[3]);
+ return true;
+ }
+ return false;
+
+ case CODE_FOR_mulsi3r:
+ case CODE_FOR_maddsi3r:
+ extract_insn (insn);
+ return rtx_equal_p (recog_data.operand[1], gpr);
+
+ default:
+ if (reg_set_p (lo, insn)
+ || reg_set_p (gpr, insn)
+ || volatile_insn_p (PATTERN (insn)))
+ return false;
+
+ if (gpr_dead_p && reg_referenced_p (gpr, PATTERN (insn)))
+ gpr_dead_p = false;
+ break;
+ }
+ }
+ while (!NOTE_INSN_BASIC_BLOCK_P (insn));
+ return false;
+}
+
+/* A wrapper around mep_reuse_lo_p_1 that preserves recog_data. */
+
+bool
+mep_reuse_lo_p (rtx lo, rtx gpr, rtx insn, bool gpr_dead_p)
+{
+ bool result = mep_reuse_lo_p_1 (lo, gpr, insn, gpr_dead_p);
+ extract_insn (insn);
+ return result;
+}
+
+/* Return true if SET can be turned into a post-modify load or store
+ that adds OFFSET to GPR. In other words, return true if SET can be
+ changed into:
+
+ (parallel [SET (set GPR (plus:SI GPR OFFSET))]).
+
+ It's OK to change SET to an equivalent operation in order to
+ make it match. */
+
+static bool
+mep_use_post_modify_for_set_p (rtx set, rtx gpr, rtx offset)
+{
+ rtx *reg, *mem;
+ unsigned int reg_bytes, mem_bytes;
+ enum machine_mode reg_mode, mem_mode;
+
+ /* Only simple SETs can be converted. */
+ if (GET_CODE (set) != SET)
+ return false;
+
+ /* Point REG to what we hope will be the register side of the set and
+ MEM to what we hope will be the memory side. */
+ if (GET_CODE (SET_DEST (set)) == MEM)
+ {
+ mem = &SET_DEST (set);
+ reg = &SET_SRC (set);
+ }
+ else
+ {
+ reg = &SET_DEST (set);
+ mem = &SET_SRC (set);
+ if (GET_CODE (*mem) == SIGN_EXTEND)
+ mem = &XEXP (*mem, 0);
+ }
+
+ /* Check that *REG is a suitable coprocessor register. */
+ if (GET_CODE (*reg) != REG || !LOADABLE_CR_REGNO_P (REGNO (*reg)))
+ return false;
+
+ /* Check that *MEM is a suitable memory reference. */
+ if (GET_CODE (*mem) != MEM || !rtx_equal_p (XEXP (*mem, 0), gpr))
+ return false;
+
+ /* Get the number of bytes in each operand. */
+ mem_bytes = GET_MODE_SIZE (GET_MODE (*mem));
+ reg_bytes = GET_MODE_SIZE (GET_MODE (*reg));
+
+ /* Check that OFFSET is suitably aligned. */
+ if (INTVAL (offset) & (mem_bytes - 1))
+ return false;
+
+ /* Convert *MEM to a normal integer mode. */
+ mem_mode = mode_for_size (mem_bytes * BITS_PER_UNIT, MODE_INT, 0);
+ *mem = change_address (*mem, mem_mode, NULL);
+
+ /* Adjust *REG as well. */
+ *reg = shallow_copy_rtx (*reg);
+ if (reg == &SET_DEST (set) && reg_bytes < UNITS_PER_WORD)
+ {
+ /* SET is a subword load. Convert it to an explicit extension. */
+ PUT_MODE (*reg, SImode);
+ *mem = gen_rtx_SIGN_EXTEND (SImode, *mem);
+ }
+ else
+ {
+ reg_mode = mode_for_size (reg_bytes * BITS_PER_UNIT, MODE_INT, 0);
+ PUT_MODE (*reg, reg_mode);
+ }
+ return true;
+}
+
+/* Return the effect of frame-related instruction INSN. */
+
+static rtx
+mep_frame_expr (rtx insn)
+{
+ rtx note, expr;
+
+ note = find_reg_note (insn, REG_FRAME_RELATED_EXPR, 0);
+ expr = (note != 0 ? XEXP (note, 0) : copy_rtx (PATTERN (insn)));
+ RTX_FRAME_RELATED_P (expr) = 1;
+ return expr;
+}
+
+/* Merge instructions INSN1 and INSN2 using a PARALLEL. Store the
+ new pattern in INSN1; INSN2 will be deleted by the caller. */
+
+static void
+mep_make_parallel (rtx insn1, rtx insn2)
+{
+ rtx expr;
+
+ if (RTX_FRAME_RELATED_P (insn2))
+ {
+ expr = mep_frame_expr (insn2);
+ if (RTX_FRAME_RELATED_P (insn1))
+ expr = gen_rtx_SEQUENCE (VOIDmode,
+ gen_rtvec (2, mep_frame_expr (insn1), expr));
+ set_unique_reg_note (insn1, REG_FRAME_RELATED_EXPR, expr);
+ RTX_FRAME_RELATED_P (insn1) = 1;
+ }
+
+ PATTERN (insn1) = gen_rtx_PARALLEL (VOIDmode,
+ gen_rtvec (2, PATTERN (insn1),
+ PATTERN (insn2)));
+ INSN_CODE (insn1) = -1;
+}
+
+/* SET_INSN is an instruction that adds OFFSET to REG. Go back through
+ the basic block to see if any previous load or store instruction can
+ be persuaded to do SET_INSN as a side-effect. Return true if so. */
+
+static bool
+mep_use_post_modify_p_1 (rtx set_insn, rtx reg, rtx offset)
+{
+ rtx insn;
+
+ insn = set_insn;
+ do
+ {
+ insn = PREV_INSN (insn);
+ if (INSN_P (insn))
+ {
+ if (mep_use_post_modify_for_set_p (PATTERN (insn), reg, offset))
+ {
+ mep_make_parallel (insn, set_insn);
+ return true;
+ }
+
+ if (reg_set_p (reg, insn)
+ || reg_referenced_p (reg, PATTERN (insn))
+ || volatile_insn_p (PATTERN (insn)))
+ return false;
+ }
+ }
+ while (!NOTE_INSN_BASIC_BLOCK_P (insn));
+ return false;
+}
+
+/* A wrapper around mep_use_post_modify_p_1 that preserves recog_data. */
+
+bool
+mep_use_post_modify_p (rtx insn, rtx reg, rtx offset)
+{
+ bool result = mep_use_post_modify_p_1 (insn, reg, offset);
+ extract_insn (insn);
+ return result;
+}
+
+bool
+mep_allow_clip (rtx ux, rtx lx, int s)
+{
+ HOST_WIDE_INT u = INTVAL (ux);
+ HOST_WIDE_INT l = INTVAL (lx);
+ int i;
+
+ if (!TARGET_OPT_CLIP)
+ return false;
+
+ if (s)
+ {
+ for (i = 0; i < 30; i ++)
+ if ((u == ((HOST_WIDE_INT) 1 << i) - 1)
+ && (l == - ((HOST_WIDE_INT) 1 << i)))
+ return true;
+ }
+ else
+ {
+ if (l != 0)
+ return false;
+
+ for (i = 0; i < 30; i ++)
+ if ((u == ((HOST_WIDE_INT) 1 << i) - 1))
+ return true;
+ }
+ return false;
+}
+
+bool
+mep_bit_position_p (rtx x, bool looking_for)
+{
+ if (GET_CODE (x) != CONST_INT)
+ return false;
+ switch ((int) INTVAL(x) & 0xff)
+ {
+ case 0x01: case 0x02: case 0x04: case 0x08:
+ case 0x10: case 0x20: case 0x40: case 0x80:
+ return looking_for;
+ case 0xfe: case 0xfd: case 0xfb: case 0xf7:
+ case 0xef: case 0xdf: case 0xbf: case 0x7f:
+ return !looking_for;
+ }
+ return false;
+}
+
+static bool
+move_needs_splitting (rtx dest, rtx src,
+ enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ int s = mep_section_tag (src);
+
+ while (1)
+ {
+ if (GET_CODE (src) == CONST
+ || GET_CODE (src) == MEM)
+ src = XEXP (src, 0);
+ else if (GET_CODE (src) == SYMBOL_REF
+ || GET_CODE (src) == LABEL_REF
+ || GET_CODE (src) == PLUS)
+ break;
+ else
+ return false;
+ }
+ if (s == 'f'
+ || (GET_CODE (src) == PLUS
+ && GET_CODE (XEXP (src, 1)) == CONST_INT
+ && (INTVAL (XEXP (src, 1)) < -65536
+ || INTVAL (XEXP (src, 1)) > 0xffffff))
+ || (GET_CODE (dest) == REG
+ && REGNO (dest) > 7 && REGNO (dest) < FIRST_PSEUDO_REGISTER))
+ return true;
+ return false;
+}
+
+bool
+mep_split_mov (rtx *operands, int symbolic)
+{
+ if (symbolic)
+ {
+ if (move_needs_splitting (operands[0], operands[1], SImode))
+ return true;
+ return false;
+ }
+
+ if (GET_CODE (operands[1]) != CONST_INT)
+ return false;
+
+ if (constraint_satisfied_p (operands[1], CONSTRAINT_I)
+ || constraint_satisfied_p (operands[1], CONSTRAINT_J)
+ || constraint_satisfied_p (operands[1], CONSTRAINT_O))
+ return false;
+
+ if (((!reload_completed && !reload_in_progress)
+ || (REG_P (operands[0]) && REGNO (operands[0]) < 8))
+ && constraint_satisfied_p (operands[1], CONSTRAINT_K))
+ return false;
+
+ return true;
+}
+
+/* Irritatingly, the "jsrv" insn *toggles* PSW.OM rather than set
+ it to one specific value. So the insn chosen depends on whether
+ the source and destination modes match. */
+
+bool
+mep_vliw_mode_match (rtx tgt)
+{
+ bool src_vliw = mep_vliw_function_p (cfun->decl);
+ bool tgt_vliw = INTVAL (tgt);
+
+ return src_vliw == tgt_vliw;
+}
+
+/* Like the above, but also test for near/far mismatches. */
+
+bool
+mep_vliw_jmp_match (rtx tgt)
+{
+ bool src_vliw = mep_vliw_function_p (cfun->decl);
+ bool tgt_vliw = INTVAL (tgt);
+
+ if (mep_section_tag (DECL_RTL (cfun->decl)) == 'f')
+ return false;
+
+ return src_vliw == tgt_vliw;
+}
+
+bool
+mep_multi_slot (rtx x)
+{
+ return get_attr_slot (x) == SLOT_MULTI;
+}
+
+
+bool
+mep_legitimate_constant_p (rtx x)
+{
+ /* We can't convert symbol values to gp- or tp-rel values after
+ reload, as reload might have used $gp or $tp for other
+ purposes. */
+ if (GET_CODE (x) == SYMBOL_REF && (reload_in_progress || reload_completed))
+ {
+ char e = mep_section_tag (x);
+ return (e != 't' && e != 'b');
+ }
+ return 1;
+}
+
+/* Be careful not to use macros that need to be compiled one way for
+ strict, and another way for not-strict, like REG_OK_FOR_BASE_P. */
+
+bool
+mep_legitimate_address (enum machine_mode mode, rtx x, int strict)
+{
+ int the_tag;
+
+#define DEBUG_LEGIT 0
+#if DEBUG_LEGIT
+ fprintf (stderr, "legit: mode %s strict %d ", mode_name[mode], strict);
+ debug_rtx (x);
+#endif
+
+ if (GET_CODE (x) == LO_SUM
+ && GET_CODE (XEXP (x, 0)) == REG
+ && GEN_REG (REGNO (XEXP (x, 0)), strict)
+ && CONSTANT_P (XEXP (x, 1)))
+ {
+ if (GET_MODE_SIZE (mode) > 4)
+ {
+ /* We will end up splitting this, and lo_sums are not
+ offsettable for us. */
+#if DEBUG_LEGIT
+ fprintf(stderr, " - nope, %%lo(sym)[reg] not splittable\n");
+#endif
+ return false;
+ }
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, %%lo(sym)[reg]\n");
+#endif
+ return true;
+ }
+
+ if (GET_CODE (x) == REG
+ && GEN_REG (REGNO (x), strict))
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, [reg]\n");
+#endif
+ return true;
+ }
+
+ if (GET_CODE (x) == PLUS
+ && GET_CODE (XEXP (x, 0)) == REG
+ && GEN_REG (REGNO (XEXP (x, 0)), strict)
+ && const_in_range (XEXP (x, 1), -32768, 32767))
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, [reg+const]\n");
+#endif
+ return true;
+ }
+
+ if (GET_CODE (x) == PLUS
+ && GET_CODE (XEXP (x, 0)) == REG
+ && GEN_REG (REGNO (XEXP (x, 0)), strict)
+ && GET_CODE (XEXP (x, 1)) == CONST
+ && (GET_CODE (XEXP (XEXP (x, 1), 0)) == UNSPEC
+ || (GET_CODE (XEXP (XEXP (x, 1), 0)) == PLUS
+ && GET_CODE (XEXP (XEXP (XEXP (x, 1), 0), 0)) == UNSPEC
+ && GET_CODE (XEXP (XEXP (XEXP (x, 1), 0), 1)) == CONST_INT)))
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, [reg+unspec]\n");
+#endif
+ return true;
+ }
+
+ the_tag = mep_section_tag (x);
+
+ if (the_tag == 'f')
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - nope, [far]\n");
+#endif
+ return false;
+ }
+
+ if (mode == VOIDmode
+ && GET_CODE (x) == SYMBOL_REF)
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, call [symbol]\n");
+#endif
+ return true;
+ }
+
+ if ((mode == SImode || mode == SFmode)
+ && CONSTANT_P (x)
+ && LEGITIMATE_CONSTANT_P (x)
+ && the_tag != 't' && the_tag != 'b')
+ {
+ if (GET_CODE (x) != CONST_INT
+ || (INTVAL (x) <= 0xfffff
+ && INTVAL (x) >= 0
+ && (INTVAL (x) % 4) == 0))
+ {
+#if DEBUG_LEGIT
+ fprintf (stderr, " - yup, [const]\n");
+#endif
+ return true;
+ }
+ }
+
+#if DEBUG_LEGIT
+ fprintf (stderr, " - nope.\n");
+#endif
+ return false;
+}
+
+int
+mep_legitimize_reload_address (rtx *x, enum machine_mode mode, int opnum,
+ int type_i,
+ int ind_levels ATTRIBUTE_UNUSED)
+{
+ enum reload_type type = (enum reload_type) type_i;
+
+ if (GET_CODE (*x) == PLUS
+ && GET_CODE (XEXP (*x, 0)) == MEM
+ && GET_CODE (XEXP (*x, 1)) == REG)
+ {
+ /* GCC will by default copy the MEM into a REG, which results in
+ an invalid address. For us, the best thing to do is move the
+ whole expression to a REG. */
+ push_reload (*x, NULL_RTX, x, NULL,
+ GENERAL_REGS, mode, VOIDmode,
+ 0, 0, opnum, type);
+ return 1;
+ }
+
+ if (GET_CODE (*x) == PLUS
+ && GET_CODE (XEXP (*x, 0)) == SYMBOL_REF
+ && GET_CODE (XEXP (*x, 1)) == CONST_INT)
+ {
+ char e = mep_section_tag (XEXP (*x, 0));
+
+ if (e != 't' && e != 'b')
+ {
+ /* GCC thinks that (sym+const) is a valid address. Well,
+ sometimes it is, this time it isn't. The best thing to
+ do is reload the symbol to a register, since reg+int
+ tends to work, and we can't just add the symbol and
+ constant anyway. */
+ push_reload (XEXP (*x, 0), NULL_RTX, &(XEXP(*x, 0)), NULL,
+ GENERAL_REGS, mode, VOIDmode,
+ 0, 0, opnum, type);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+int
+mep_core_address_length (rtx insn, int opn)
+{
+ rtx set = single_set (insn);
+ rtx mem = XEXP (set, opn);
+ rtx other = XEXP (set, 1-opn);
+ rtx addr = XEXP (mem, 0);
+
+ if (register_operand (addr, Pmode))
+ return 2;
+ if (GET_CODE (addr) == PLUS)
+ {
+ rtx addend = XEXP (addr, 1);
+
+ gcc_assert (REG_P (XEXP (addr, 0)));
+
+ switch (REGNO (XEXP (addr, 0)))
+ {
+ case STACK_POINTER_REGNUM:
+ if (GET_MODE_SIZE (GET_MODE (mem)) == 4
+ && mep_imm7a4_operand (addend, VOIDmode))
+ return 2;
+ break;
+
+ case 13: /* TP */
+ gcc_assert (REG_P (other));
+
+ if (REGNO (other) >= 8)
+ break;
+
+ if (GET_CODE (addend) == CONST
+ && GET_CODE (XEXP (addend, 0)) == UNSPEC
+ && XINT (XEXP (addend, 0), 1) == UNS_TPREL)
+ return 2;
+
+ if (GET_CODE (addend) == CONST_INT
+ && INTVAL (addend) >= 0
+ && INTVAL (addend) <= 127
+ && INTVAL (addend) % GET_MODE_SIZE (GET_MODE (mem)) == 0)
+ return 2;
+ break;
+ }
+ }
+
+ return 4;
+}
+
+int
+mep_cop_address_length (rtx insn, int opn)
+{
+ rtx set = single_set (insn);
+ rtx mem = XEXP (set, opn);
+ rtx addr = XEXP (mem, 0);
+
+ if (GET_CODE (mem) != MEM)
+ return 2;
+ if (register_operand (addr, Pmode))
+ return 2;
+ if (GET_CODE (addr) == POST_INC)
+ return 2;
+
+ return 4;
+}
+
+#define DEBUG_EXPAND_MOV 0
+bool
+mep_expand_mov (rtx *operands, enum machine_mode mode)
+{
+ int i, t;
+ int tag[2];
+ rtx tpsym, tpoffs;
+ int post_reload = 0;
+
+ tag[0] = mep_section_tag (operands[0]);
+ tag[1] = mep_section_tag (operands[1]);
+
+ if (!reload_in_progress
+ && !reload_completed
+ && GET_CODE (operands[0]) != REG
+ && GET_CODE (operands[0]) != SUBREG
+ && GET_CODE (operands[1]) != REG
+ && GET_CODE (operands[1]) != SUBREG)
+ operands[1] = copy_to_mode_reg (mode, operands[1]);
+
+#if DEBUG_EXPAND_MOV
+ fprintf(stderr, "expand move %s %d\n", mode_name[mode],
+ reload_in_progress || reload_completed);
+ debug_rtx (operands[0]);
+ debug_rtx (operands[1]);
+#endif
+
+ if (mode == DImode || mode == DFmode)
+ return false;
+
+ if (reload_in_progress || reload_completed)
+ {
+ rtx r;
+
+ if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) == TP_REGNO)
+ cfun->machine->reload_changes_tp = true;
+
+ if (tag[0] == 't' || tag[1] == 't')
+ {
+ r = has_hard_reg_initial_val (Pmode, GP_REGNO);
+ if (!r || GET_CODE (r) != REG || REGNO (r) != GP_REGNO)
+ post_reload = 1;
+ }
+ if (tag[0] == 'b' || tag[1] == 'b')
+ {
+ r = has_hard_reg_initial_val (Pmode, TP_REGNO);
+ if (!r || GET_CODE (r) != REG || REGNO (r) != TP_REGNO)
+ post_reload = 1;
+ }
+ if (cfun->machine->reload_changes_tp == true)
+ post_reload = 1;
+ }
+
+ if (!post_reload)
+ {
+ rtx n;
+ if (symbol_p (operands[1]))
+ {
+ t = mep_section_tag (operands[1]);
+ if (t == 'b' || t == 't')
+ {
+
+ if (GET_CODE (operands[1]) == SYMBOL_REF)
+ {
+ tpsym = operands[1];
+ n = gen_rtx_UNSPEC (mode,
+ gen_rtvec (1, operands[1]),
+ t == 'b' ? UNS_TPREL : UNS_GPREL);
+ n = gen_rtx_CONST (mode, n);
+ }
+ else if (GET_CODE (operands[1]) == CONST
+ && GET_CODE (XEXP (operands[1], 0)) == PLUS
+ && GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == SYMBOL_REF
+ && GET_CODE (XEXP (XEXP (operands[1], 0), 1)) == CONST_INT)
+ {
+ tpsym = XEXP (XEXP (operands[1], 0), 0);
+ tpoffs = XEXP (XEXP (operands[1], 0), 1);
+ n = gen_rtx_UNSPEC (mode,
+ gen_rtvec (1, tpsym),
+ t == 'b' ? UNS_TPREL : UNS_GPREL);
+ n = gen_rtx_PLUS (mode, n, tpoffs);
+ n = gen_rtx_CONST (mode, n);
+ }
+ else if (GET_CODE (operands[1]) == CONST
+ && GET_CODE (XEXP (operands[1], 0)) == UNSPEC)
+ return false;
+ else
+ {
+ error ("unusual TP-relative address");
+ return false;
+ }
+
+ n = gen_rtx_PLUS (mode, (t == 'b' ? mep_tp_rtx ()
+ : mep_gp_rtx ()), n);
+ n = emit_insn (gen_rtx_SET (mode, operands[0], n));
+#if DEBUG_EXPAND_MOV
+ fprintf(stderr, "mep_expand_mov emitting ");
+ debug_rtx(n);
+#endif
+ return true;
+ }
+ }
+
+ for (i=0; i < 2; i++)
+ {
+ t = mep_section_tag (operands[i]);
+ if (GET_CODE (operands[i]) == MEM && (t == 'b' || t == 't'))
+ {
+ rtx sym, n, r;
+ int u;
+
+ sym = XEXP (operands[i], 0);
+ if (GET_CODE (sym) == CONST
+ && GET_CODE (XEXP (sym, 0)) == UNSPEC)
+ sym = XVECEXP (XEXP (sym, 0), 0, 0);
+
+ if (t == 'b')
+ {
+ r = mep_tp_rtx ();
+ u = UNS_TPREL;
+ }
+ else
+ {
+ r = mep_gp_rtx ();
+ u = UNS_GPREL;
+ }
+
+ n = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, sym), u);
+ n = gen_rtx_CONST (Pmode, n);
+ n = gen_rtx_PLUS (Pmode, r, n);
+ operands[i] = replace_equiv_address (operands[i], n);
+ }
+ }
+ }
+
+ if ((GET_CODE (operands[1]) != REG
+ && MEP_CONTROL_REG (operands[0]))
+ || (GET_CODE (operands[0]) != REG
+ && MEP_CONTROL_REG (operands[1])))
+ {
+ rtx temp;
+#if DEBUG_EXPAND_MOV
+ fprintf (stderr, "cr-mem, forcing op1 to reg\n");
+#endif
+ temp = gen_reg_rtx (mode);
+ emit_move_insn (temp, operands[1]);
+ operands[1] = temp;
+ }
+
+ if (symbolref_p (operands[0])
+ && (mep_section_tag (XEXP (operands[0], 0)) == 'f'
+ || (GET_MODE_SIZE (mode) != 4)))
+ {
+ rtx temp;
+
+ gcc_assert (!reload_in_progress && !reload_completed);
+
+ temp = force_reg (Pmode, XEXP (operands[0], 0));
+ operands[0] = replace_equiv_address (operands[0], temp);
+ emit_move_insn (operands[0], operands[1]);
+ return true;
+ }
+
+ if (!post_reload && (tag[1] == 't' || tag[1] == 'b'))
+ tag[1] = 0;
+
+ if (symbol_p (operands[1])
+ && (tag[1] == 'f' || tag[1] == 't' || tag[1] == 'b'))
+ {
+ emit_insn (gen_movsi_topsym_s (operands[0], operands[1]));
+ emit_insn (gen_movsi_botsym_s (operands[0], operands[0], operands[1]));
+ return true;
+ }
+
+ if (symbolref_p (operands[1])
+ && (tag[1] == 'f' || tag[1] == 't' || tag[1] == 'b'))
+ {
+ rtx temp;
+
+ if (reload_in_progress || reload_completed)
+ temp = operands[0];
+ else
+ temp = gen_reg_rtx (Pmode);
+
+ emit_insn (gen_movsi_topsym_s (temp, operands[1]));
+ emit_insn (gen_movsi_botsym_s (temp, temp, operands[1]));
+ emit_move_insn (operands[0], replace_equiv_address (operands[1], temp));
+ return true;
+ }
+
+ return false;
+}
+
+/* Cases where the pattern can't be made to use at all. */
+
+bool
+mep_mov_ok (rtx *operands, enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ int i;
+
+#define DEBUG_MOV_OK 0
+#if DEBUG_MOV_OK
+ fprintf (stderr, "mep_mov_ok %s %c=%c\n", mode_name[mode], mep_section_tag (operands[0]),
+ mep_section_tag (operands[1]));
+ debug_rtx (operands[0]);
+ debug_rtx (operands[1]);
+#endif
+
+ /* We want the movh patterns to get these. */
+ if (GET_CODE (operands[1]) == HIGH)
+ return false;
+
+ /* We can't store a register to a far variable without using a
+ scratch register to hold the address. Using far variables should
+ be split by mep_emit_mov anyway. */
+ if (mep_section_tag (operands[0]) == 'f'
+ || mep_section_tag (operands[1]) == 'f')
+ {
+#if DEBUG_MOV_OK
+ fprintf (stderr, " - no, f\n");
+#endif
+ return false;
+ }
+ i = mep_section_tag (operands[1]);
+ if ((i == 'b' || i == 't') && !reload_completed && !reload_in_progress)
+ /* These are supposed to be generated with adds of the appropriate
+ register. During and after reload, however, we allow them to
+ be accessed as normal symbols because adding a dependency on
+ the base register now might cause problems. */
+ {
+#if DEBUG_MOV_OK
+ fprintf (stderr, " - no, bt\n");
+#endif
+ return false;
+ }
+
+ /* The only moves we can allow involve at least one general
+ register, so require it. */
+ for (i = 0; i < 2; i ++)
+ {
+ /* Allow subregs too, before reload. */
+ rtx x = operands[i];
+
+ if (GET_CODE (x) == SUBREG)
+ x = XEXP (x, 0);
+ if (GET_CODE (x) == REG
+ && ! MEP_CONTROL_REG (x))
+ {
+#if DEBUG_MOV_OK
+ fprintf (stderr, " - ok\n");
+#endif
+ return true;
+ }
+ }
+#if DEBUG_MOV_OK
+ fprintf (stderr, " - no, no gen reg\n");
+#endif
+ return false;
+}
+
+#define DEBUG_SPLIT_WIDE_MOVE 0
+void
+mep_split_wide_move (rtx *operands, enum machine_mode mode)
+{
+ int i;
+
+#if DEBUG_SPLIT_WIDE_MOVE
+ fprintf (stderr, "\n\033[34mmep_split_wide_move\033[0m mode %s\n", mode_name[mode]);
+ debug_rtx (operands[0]);
+ debug_rtx (operands[1]);
+#endif
+
+ for (i = 0; i <= 1; i++)
+ {
+ rtx op = operands[i], hi, lo;
+
+ switch (GET_CODE (op))
+ {
+ case REG:
+ {
+ unsigned int regno = REGNO (op);
+
+ if (TARGET_64BIT_CR_REGS && CR_REGNO_P (regno))
+ {
+ rtx i32;
+
+ lo = gen_rtx_REG (SImode, regno);
+ i32 = GEN_INT (32);
+ hi = gen_rtx_ZERO_EXTRACT (SImode,
+ gen_rtx_REG (DImode, regno),
+ i32, i32);
+ }
+ else
+ {
+ hi = gen_rtx_REG (SImode, regno + TARGET_LITTLE_ENDIAN);
+ lo = gen_rtx_REG (SImode, regno + TARGET_BIG_ENDIAN);
+ }
+ }
+ break;
+
+ case CONST_INT:
+ case CONST_DOUBLE:
+ case MEM:
+ hi = operand_subword (op, TARGET_LITTLE_ENDIAN, 0, mode);
+ lo = operand_subword (op, TARGET_BIG_ENDIAN, 0, mode);
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ /* The high part of CR <- GPR moves must be done after the low part. */
+ operands [i + 4] = lo;
+ operands [i + 2] = hi;
+ }
+
+ if (reg_mentioned_p (operands[2], operands[5])
+ || GET_CODE (operands[2]) == ZERO_EXTRACT
+ || GET_CODE (operands[4]) == ZERO_EXTRACT)
+ {
+ rtx tmp;
+
+ /* Overlapping register pairs -- make sure we don't
+ early-clobber ourselves. */
+ tmp = operands[2];
+ operands[2] = operands[4];
+ operands[4] = tmp;
+ tmp = operands[3];
+ operands[3] = operands[5];
+ operands[5] = tmp;
+ }
+
+#if DEBUG_SPLIT_WIDE_MOVE
+ fprintf(stderr, "\033[34m");
+ debug_rtx (operands[2]);
+ debug_rtx (operands[3]);
+ debug_rtx (operands[4]);
+ debug_rtx (operands[5]);
+ fprintf(stderr, "\033[0m");
+#endif
+}
+
+/* Emit a setcc instruction in its entirity. */
+
+static bool
+mep_expand_setcc_1 (enum rtx_code code, rtx dest, rtx op1, rtx op2)
+{
+ rtx tmp;
+
+ switch (code)
+ {
+ case GT:
+ case GTU:
+ tmp = op1, op1 = op2, op2 = tmp;
+ code = swap_condition (code);
+ /* FALLTHRU */
+
+ case LT:
+ case LTU:
+ op1 = force_reg (SImode, op1);
+ emit_insn (gen_rtx_SET (VOIDmode, dest,
+ gen_rtx_fmt_ee (code, SImode, op1, op2)));
+ return true;
+
+ case EQ:
+ if (op2 != const0_rtx)
+ op1 = expand_binop (SImode, sub_optab, op1, op2, NULL, 1, OPTAB_WIDEN);
+ mep_expand_setcc_1 (LTU, dest, op1, const1_rtx);
+ return true;
+
+ case NE:
+ /* Branchful sequence:
+ mov dest, 0 16-bit
+ beq op1, op2, Lover 16-bit (op2 < 16), 32-bit otherwise
+ mov dest, 1 16-bit
+
+ Branchless sequence:
+ add3 tmp, op1, -op2 32-bit (or mov + sub)
+ sltu3 tmp, tmp, 1 16-bit
+ xor3 dest, tmp, 1 32-bit
+ */
+ if (optimize_size && op2 != const0_rtx)
+ return false;
+
+ if (op2 != const0_rtx)
+ op1 = expand_binop (SImode, sub_optab, op1, op2, NULL, 1, OPTAB_WIDEN);
+
+ op2 = gen_reg_rtx (SImode);
+ mep_expand_setcc_1 (LTU, op2, op1, const1_rtx);
+
+ emit_insn (gen_rtx_SET (VOIDmode, dest,
+ gen_rtx_XOR (SImode, op2, const1_rtx)));
+ return true;
+
+ case LE:
+ if (GET_CODE (op2) != CONST_INT
+ || INTVAL (op2) == 0x7ffffff)
+ return false;
+ op2 = GEN_INT (INTVAL (op2) + 1);
+ return mep_expand_setcc_1 (LT, dest, op1, op2);
+
+ case LEU:
+ if (GET_CODE (op2) != CONST_INT
+ || INTVAL (op2) == -1)
+ return false;
+ op2 = GEN_INT (trunc_int_for_mode (INTVAL (op2) + 1, SImode));
+ return mep_expand_setcc_1 (LTU, dest, op1, op2);
+
+ case GE:
+ if (GET_CODE (op2) != CONST_INT
+ || INTVAL (op2) == trunc_int_for_mode (0x80000000, SImode))
+ return false;
+ op2 = GEN_INT (INTVAL (op2) - 1);
+ return mep_expand_setcc_1 (GT, dest, op1, op2);
+
+ case GEU:
+ if (GET_CODE (op2) != CONST_INT
+ || op2 == const0_rtx)
+ return false;
+ op2 = GEN_INT (trunc_int_for_mode (INTVAL (op2) - 1, SImode));
+ return mep_expand_setcc_1 (GTU, dest, op1, op2);
+
+ default:
+ gcc_unreachable ();
+ }
+}
+
+bool
+mep_expand_setcc (rtx *operands)
+{
+ rtx dest = operands[0];
+ enum rtx_code code = GET_CODE (operands[1]);
+ rtx op0 = operands[2];
+ rtx op1 = operands[3];
+
+ return mep_expand_setcc_1 (code, dest, op0, op1);
+}
+
+rtx
+mep_expand_cbranch (rtx *operands)
+{
+ enum rtx_code code = GET_CODE (operands[0]);
+ rtx op0 = operands[1];
+ rtx op1 = operands[2];
+ rtx tmp;
+
+ restart:
+ switch (code)
+ {
+ case LT:
+ if (mep_imm4_operand (op1, SImode))
+ break;
+
+ tmp = gen_reg_rtx (SImode);
+ gcc_assert (mep_expand_setcc_1 (LT, tmp, op0, op1));
+ code = NE;
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case GE:
+ if (mep_imm4_operand (op1, SImode))
+ break;
+
+ tmp = gen_reg_rtx (SImode);
+ gcc_assert (mep_expand_setcc_1 (LT, tmp, op0, op1));
+
+ code = EQ;
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case EQ:
+ case NE:
+ if (! mep_reg_or_imm4_operand (op1, SImode))
+ op1 = force_reg (SImode, op1);
+ break;
+
+ case LE:
+ case GT:
+ if (GET_CODE (op1) == CONST_INT
+ && INTVAL (op1) != 0x7fffffff)
+ {
+ op1 = GEN_INT (INTVAL (op1) + 1);
+ code = (code == LE ? LT : GE);
+ goto restart;
+ }
+
+ tmp = gen_reg_rtx (SImode);
+ gcc_assert (mep_expand_setcc_1 (LT, tmp, op1, op0));
+
+ code = (code == LE ? EQ : NE);
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case LTU:
+ if (op1 == const1_rtx)
+ {
+ code = EQ;
+ op1 = const0_rtx;
+ break;
+ }
+
+ tmp = gen_reg_rtx (SImode);
+ gcc_assert (mep_expand_setcc_1 (LTU, tmp, op0, op1));
+ code = NE;
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case LEU:
+ tmp = gen_reg_rtx (SImode);
+ if (mep_expand_setcc_1 (LEU, tmp, op0, op1))
+ code = NE;
+ else if (mep_expand_setcc_1 (LTU, tmp, op1, op0))
+ code = EQ;
+ else
+ gcc_unreachable ();
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case GTU:
+ tmp = gen_reg_rtx (SImode);
+ gcc_assert (mep_expand_setcc_1 (GTU, tmp, op0, op1)
+ || mep_expand_setcc_1 (LTU, tmp, op1, op0));
+ code = NE;
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ case GEU:
+ tmp = gen_reg_rtx (SImode);
+ if (mep_expand_setcc_1 (GEU, tmp, op0, op1))
+ code = NE;
+ else if (mep_expand_setcc_1 (LTU, tmp, op0, op1))
+ code = EQ;
+ else
+ gcc_unreachable ();
+ op0 = tmp;
+ op1 = const0_rtx;
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ return gen_rtx_fmt_ee (code, VOIDmode, op0, op1);
+}
+
+const char *
+mep_emit_cbranch (rtx *operands, int ne)
+{
+ if (GET_CODE (operands[1]) == REG)
+ return ne ? "bne\t%0, %1, %l2" : "beq\t%0, %1, %l2";
+ else if (INTVAL (operands[1]) == 0 && !mep_vliw_function_p(cfun->decl))
+ return ne ? "bnez\t%0, %l2" : "beqz\t%0, %l2";
+ else
+ return ne ? "bnei\t%0, %1, %l2" : "beqi\t%0, %1, %l2";
+}
+
+void
+mep_expand_call (rtx *operands, int returns_value)
+{
+ rtx addr = operands[returns_value];
+ rtx tp = mep_tp_rtx ();
+ rtx gp = mep_gp_rtx ();
+
+ gcc_assert (GET_CODE (addr) == MEM);
+
+ addr = XEXP (addr, 0);
+
+ if (! mep_call_address_operand (addr, VOIDmode))
+ addr = force_reg (SImode, addr);
+
+ if (! operands[returns_value+2])
+ operands[returns_value+2] = const0_rtx;
+
+ if (returns_value)
+ emit_call_insn (gen_call_value_internal (operands[0], addr, operands[2],
+ operands[3], tp, gp));
+ else
+ emit_call_insn (gen_call_internal (addr, operands[1],
+ operands[2], tp, gp));
+}
+
+/* Aliasing Support. */
+
+/* If X is a machine specific address (i.e. a symbol or label being
+ referenced as a displacement from the GOT implemented using an
+ UNSPEC), then return the base term. Otherwise return X. */
+
+rtx
+mep_find_base_term (rtx x)
+{
+ rtx base, term;
+ int unspec;
+
+ if (GET_CODE (x) != PLUS)
+ return x;
+ base = XEXP (x, 0);
+ term = XEXP (x, 1);
+
+ if (has_hard_reg_initial_val(Pmode, TP_REGNO)
+ && base == mep_tp_rtx ())
+ unspec = UNS_TPREL;
+ else if (has_hard_reg_initial_val(Pmode, GP_REGNO)
+ && base == mep_gp_rtx ())
+ unspec = UNS_GPREL;
+ else
+ return x;
+
+ if (GET_CODE (term) != CONST)
+ return x;
+ term = XEXP (term, 0);
+
+ if (GET_CODE (term) != UNSPEC
+ || XINT (term, 1) != unspec)
+ return x;
+
+ return XVECEXP (term, 0, 0);
+}
+
+/* Reload Support. */
+
+/* Return true if the registers in CLASS cannot represent the change from
+ modes FROM to TO. */
+
+bool
+mep_cannot_change_mode_class (enum machine_mode from, enum machine_mode to,
+ enum reg_class regclass)
+{
+ if (from == to)
+ return false;
+
+ /* 64-bit COP regs must remain 64-bit COP regs. */
+ if (TARGET_64BIT_CR_REGS
+ && (regclass == CR_REGS
+ || regclass == LOADABLE_CR_REGS)
+ && (GET_MODE_SIZE (to) < 8
+ || GET_MODE_SIZE (from) < 8))
+ return true;
+
+ return false;
+}
+
+#define MEP_NONGENERAL_CLASS(C) (!reg_class_subset_p (C, GENERAL_REGS))
+
+static bool
+mep_general_reg (rtx x)
+{
+ while (GET_CODE (x) == SUBREG)
+ x = XEXP (x, 0);
+ return GET_CODE (x) == REG && GR_REGNO_P (REGNO (x));
+}
+
+static bool
+mep_nongeneral_reg (rtx x)
+{
+ while (GET_CODE (x) == SUBREG)
+ x = XEXP (x, 0);
+ return (GET_CODE (x) == REG
+ && !GR_REGNO_P (REGNO (x)) && REGNO (x) < FIRST_PSEUDO_REGISTER);
+}
+
+static bool
+mep_general_copro_reg (rtx x)
+{
+ while (GET_CODE (x) == SUBREG)
+ x = XEXP (x, 0);
+ return (GET_CODE (x) == REG && CR_REGNO_P (REGNO (x)));
+}
+
+static bool
+mep_nonregister (rtx x)
+{
+ while (GET_CODE (x) == SUBREG)
+ x = XEXP (x, 0);
+ return (GET_CODE (x) != REG || REGNO (x) >= FIRST_PSEUDO_REGISTER);
+}
+
+#define DEBUG_RELOAD 0
+
+/* Return the secondary reload class needed for moving value X to or
+ from a register in coprocessor register class CLASS. */
+
+static enum reg_class
+mep_secondary_copro_reload_class (enum reg_class rclass, rtx x)
+{
+ if (mep_general_reg (x))
+ /* We can do the move directly if mep_have_core_copro_moves_p,
+ otherwise we need to go through memory. Either way, no secondary
+ register is needed. */
+ return NO_REGS;
+
+ if (mep_general_copro_reg (x))
+ {
+ /* We can do the move directly if mep_have_copro_copro_moves_p. */
+ if (mep_have_copro_copro_moves_p)
+ return NO_REGS;
+
+ /* Otherwise we can use a temporary if mep_have_core_copro_moves_p. */
+ if (mep_have_core_copro_moves_p)
+ return GENERAL_REGS;
+
+ /* Otherwise we need to do it through memory. No secondary
+ register is needed. */
+ return NO_REGS;
+ }
+
+ if (reg_class_subset_p (rclass, LOADABLE_CR_REGS)
+ && constraint_satisfied_p (x, CONSTRAINT_U))
+ /* X is a memory value that we can access directly. */
+ return NO_REGS;
+
+ /* We have to move X into a GPR first and then copy it to
+ the coprocessor register. The move from the GPR to the
+ coprocessor might be done directly or through memory,
+ depending on mep_have_core_copro_moves_p. */
+ return GENERAL_REGS;
+}
+
+/* Copying X to register in RCLASS. */
+
+enum reg_class
+mep_secondary_input_reload_class (enum reg_class rclass,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ rtx x)
+{
+ int rv = NO_REGS;
+
+#if DEBUG_RELOAD
+ fprintf (stderr, "secondary input reload copy to %s %s from ", reg_class_names[rclass], mode_name[mode]);
+ debug_rtx (x);
+#endif
+
+ if (reg_class_subset_p (rclass, CR_REGS))
+ rv = mep_secondary_copro_reload_class (rclass, x);
+ else if (MEP_NONGENERAL_CLASS (rclass)
+ && (mep_nonregister (x) || mep_nongeneral_reg (x)))
+ rv = GENERAL_REGS;
+
+#if DEBUG_RELOAD
+ fprintf (stderr, " - requires %s\n", reg_class_names[rv]);
+#endif
+ return (enum reg_class) rv;
+}
+
+/* Copying register in RCLASS to X. */
+
+enum reg_class
+mep_secondary_output_reload_class (enum reg_class rclass,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ rtx x)
+{
+ int rv = NO_REGS;
+
+#if DEBUG_RELOAD
+ fprintf (stderr, "secondary output reload copy from %s %s to ", reg_class_names[rclass], mode_name[mode]);
+ debug_rtx (x);
+#endif
+
+ if (reg_class_subset_p (rclass, CR_REGS))
+ rv = mep_secondary_copro_reload_class (rclass, x);
+ else if (MEP_NONGENERAL_CLASS (rclass)
+ && (mep_nonregister (x) || mep_nongeneral_reg (x)))
+ rv = GENERAL_REGS;
+
+#if DEBUG_RELOAD
+ fprintf (stderr, " - requires %s\n", reg_class_names[rv]);
+#endif
+
+ return (enum reg_class) rv;
+}
+
+/* Implement SECONDARY_MEMORY_NEEDED. */
+
+bool
+mep_secondary_memory_needed (enum reg_class rclass1, enum reg_class rclass2,
+ enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ if (!mep_have_core_copro_moves_p)
+ {
+ if (reg_classes_intersect_p (rclass1, CR_REGS)
+ && reg_classes_intersect_p (rclass2, GENERAL_REGS))
+ return true;
+ if (reg_classes_intersect_p (rclass2, CR_REGS)
+ && reg_classes_intersect_p (rclass1, GENERAL_REGS))
+ return true;
+ if (!mep_have_copro_copro_moves_p
+ && reg_classes_intersect_p (rclass1, CR_REGS)
+ && reg_classes_intersect_p (rclass2, CR_REGS))
+ return true;
+ }
+ return false;
+}
+
+void
+mep_expand_reload (rtx *operands, enum machine_mode mode)
+{
+ /* There are three cases for each direction:
+ register, farsym
+ control, farsym
+ control, nearsym */
+
+ int s0 = mep_section_tag (operands[0]) == 'f';
+ int s1 = mep_section_tag (operands[1]) == 'f';
+ int c0 = mep_nongeneral_reg (operands[0]);
+ int c1 = mep_nongeneral_reg (operands[1]);
+ int which = (s0 ? 20:0) + (c0 ? 10:0) + (s1 ? 2:0) + (c1 ? 1:0);
+
+#if DEBUG_RELOAD
+ fprintf (stderr, "expand_reload %s\n", mode_name[mode]);
+ debug_rtx (operands[0]);
+ debug_rtx (operands[1]);
+#endif
+
+ switch (which)
+ {
+ case 00: /* Don't know why this gets here. */
+ case 02: /* general = far */
+ emit_move_insn (operands[0], operands[1]);
+ return;
+
+ case 10: /* cr = mem */
+ case 11: /* cr = cr */
+ case 01: /* mem = cr */
+ case 12: /* cr = far */
+ emit_move_insn (operands[2], operands[1]);
+ emit_move_insn (operands[0], operands[2]);
+ return;
+
+ case 20: /* far = general */
+ emit_move_insn (operands[2], XEXP (operands[1], 0));
+ emit_move_insn (operands[0], gen_rtx_MEM (mode, operands[2]));
+ return;
+
+ case 21: /* far = cr */
+ case 22: /* far = far */
+ default:
+ fprintf (stderr, "unsupported expand reload case %02d for mode %s\n",
+ which, mode_name[mode]);
+ debug_rtx (operands[0]);
+ debug_rtx (operands[1]);
+ gcc_unreachable ();
+ }
+}
+
+/* Implement PREFERRED_RELOAD_CLASS. See whether X is a constant that
+ can be moved directly into registers 0 to 7, but not into the rest.
+ If so, and if the required class includes registers 0 to 7, restrict
+ it to those registers. */
+
+enum reg_class
+mep_preferred_reload_class (rtx x, enum reg_class rclass)
+{
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+ if (INTVAL (x) >= 0x10000
+ && INTVAL (x) < 0x01000000
+ && (INTVAL (x) & 0xffff) != 0
+ && reg_class_subset_p (TPREL_REGS, rclass))
+ rclass = TPREL_REGS;
+ break;
+
+ case CONST:
+ case SYMBOL_REF:
+ case LABEL_REF:
+ if (mep_section_tag (x) != 'f'
+ && reg_class_subset_p (TPREL_REGS, rclass))
+ rclass = TPREL_REGS;
+ break;
+
+ default:
+ break;
+ }
+ return rclass;
+}
+
+/* Implement REGISTER_MOVE_COST. Return 2 for direct single-register
+ moves, 4 for direct double-register moves, and 1000 for anything
+ that requires a temporary register or temporary stack slot. */
+
+int
+mep_register_move_cost (enum machine_mode mode, enum reg_class from, enum reg_class to)
+{
+ if (mep_have_copro_copro_moves_p
+ && reg_class_subset_p (from, CR_REGS)
+ && reg_class_subset_p (to, CR_REGS))
+ {
+ if (TARGET_32BIT_CR_REGS && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
+ return 4;
+ return 2;
+ }
+ if (reg_class_subset_p (from, CR_REGS)
+ && reg_class_subset_p (to, CR_REGS))
+ {
+ if (TARGET_32BIT_CR_REGS && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
+ return 8;
+ return 4;
+ }
+ if (reg_class_subset_p (from, CR_REGS)
+ || reg_class_subset_p (to, CR_REGS))
+ {
+ if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
+ return 4;
+ return 2;
+ }
+ if (mep_secondary_memory_needed (from, to, mode))
+ return 1000;
+ if (MEP_NONGENERAL_CLASS (from) && MEP_NONGENERAL_CLASS (to))
+ return 1000;
+
+ if (GET_MODE_SIZE (mode) > 4)
+ return 4;
+
+ return 2;
+}
+
+
+/* Functions to save and restore machine-specific function data. */
+
+static struct machine_function *
+mep_init_machine_status (void)
+{
+ return ggc_alloc_cleared_machine_function ();
+}
+
+static rtx
+mep_allocate_initial_value (rtx reg)
+{
+ int rss;
+
+ if (GET_CODE (reg) != REG)
+ return NULL_RTX;
+
+ if (REGNO (reg) >= FIRST_PSEUDO_REGISTER)
+ return NULL_RTX;
+
+ /* In interrupt functions, the "initial" values of $gp and $tp are
+ provided by the prologue. They are not necessarily the same as
+ the values that the caller was using. */
+ if (REGNO (reg) == TP_REGNO || REGNO (reg) == GP_REGNO)
+ if (mep_interrupt_p ())
+ return NULL_RTX;
+
+ if (! cfun->machine->reg_save_slot[REGNO(reg)])
+ {
+ cfun->machine->reg_save_size += 4;
+ cfun->machine->reg_save_slot[REGNO(reg)] = cfun->machine->reg_save_size;
+ }
+
+ rss = cfun->machine->reg_save_slot[REGNO(reg)];
+ return gen_rtx_MEM (SImode, plus_constant (arg_pointer_rtx, -rss));
+}
+
+rtx
+mep_return_addr_rtx (int count)
+{
+ if (count != 0)
+ return const0_rtx;
+
+ return get_hard_reg_initial_val (Pmode, LP_REGNO);
+}
+
+static rtx
+mep_tp_rtx (void)
+{
+ return get_hard_reg_initial_val (Pmode, TP_REGNO);
+}
+
+static rtx
+mep_gp_rtx (void)
+{
+ return get_hard_reg_initial_val (Pmode, GP_REGNO);
+}
+
+static bool
+mep_interrupt_p (void)
+{
+ if (cfun->machine->interrupt_handler == 0)
+ {
+ int interrupt_handler
+ = (lookup_attribute ("interrupt",
+ DECL_ATTRIBUTES (current_function_decl))
+ != NULL_TREE);
+ cfun->machine->interrupt_handler = interrupt_handler ? 2 : 1;
+ }
+ return cfun->machine->interrupt_handler == 2;
+}
+
+static bool
+mep_disinterrupt_p (void)
+{
+ if (cfun->machine->disable_interrupts == 0)
+ {
+ int disable_interrupts
+ = (lookup_attribute ("disinterrupt",
+ DECL_ATTRIBUTES (current_function_decl))
+ != NULL_TREE);
+ cfun->machine->disable_interrupts = disable_interrupts ? 2 : 1;
+ }
+ return cfun->machine->disable_interrupts == 2;
+}
+
+
+/* Frame/Epilog/Prolog Related. */
+
+static bool
+mep_reg_set_p (rtx reg, rtx insn)
+{
+ /* Similar to reg_set_p in rtlanal.c, but we ignore calls */
+ if (INSN_P (insn))
+ {
+ if (FIND_REG_INC_NOTE (insn, reg))
+ return true;
+ insn = PATTERN (insn);
+ }
+
+ if (GET_CODE (insn) == SET
+ && GET_CODE (XEXP (insn, 0)) == REG
+ && GET_CODE (XEXP (insn, 1)) == REG
+ && REGNO (XEXP (insn, 0)) == REGNO (XEXP (insn, 1)))
+ return false;
+
+ return set_of (reg, insn) != NULL_RTX;
+}
+
+
+#define MEP_SAVES_UNKNOWN 0
+#define MEP_SAVES_YES 1
+#define MEP_SAVES_MAYBE 2
+#define MEP_SAVES_NO 3
+
+static bool
+mep_reg_set_in_function (int regno)
+{
+ rtx reg, insn;
+
+ if (mep_interrupt_p () && df_regs_ever_live_p(regno))
+ return true;
+
+ if (regno == LP_REGNO && (profile_arc_flag > 0 || profile_flag > 0))
+ return true;
+
+ push_topmost_sequence ();
+ insn = get_insns ();
+ pop_topmost_sequence ();
+
+ if (!insn)
+ return false;
+
+ reg = gen_rtx_REG (SImode, regno);
+
+ for (insn = NEXT_INSN (insn); insn; insn = NEXT_INSN (insn))
+ if (INSN_P (insn) && mep_reg_set_p (reg, insn))
+ return true;
+ return false;
+}
+
+static bool
+mep_asm_without_operands_p (void)
+{
+ if (cfun->machine->asms_without_operands == 0)
+ {
+ rtx insn;
+
+ push_topmost_sequence ();
+ insn = get_insns ();
+ pop_topmost_sequence ();
+
+ cfun->machine->asms_without_operands = 1;
+ while (insn)
+ {
+ if (INSN_P (insn)
+ && GET_CODE (PATTERN (insn)) == ASM_INPUT)
+ {
+ cfun->machine->asms_without_operands = 2;
+ break;
+ }
+ insn = NEXT_INSN (insn);
+ }
+
+ }
+ return cfun->machine->asms_without_operands == 2;
+}
+
+/* Interrupt functions save/restore every call-preserved register, and
+ any call-used register it uses (or all if it calls any function,
+ since they may get clobbered there too). Here we check to see
+ which call-used registers need saving. */
+
+#define IVC2_ISAVED_REG(r) (TARGET_IVC2 \
+ && (r == FIRST_CCR_REGNO + 1 \
+ || (r >= FIRST_CCR_REGNO + 8 && r <= FIRST_CCR_REGNO + 11) \
+ || (r >= FIRST_CCR_REGNO + 16 && r <= FIRST_CCR_REGNO + 31)))
+
+static bool
+mep_interrupt_saved_reg (int r)
+{
+ if (!mep_interrupt_p ())
+ return false;
+ if (r == REGSAVE_CONTROL_TEMP
+ || (TARGET_64BIT_CR_REGS && TARGET_COP && r == REGSAVE_CONTROL_TEMP+1))
+ return true;
+ if (mep_asm_without_operands_p ()
+ && (!fixed_regs[r]
+ || (r == RPB_REGNO || r == RPE_REGNO || r == RPC_REGNO || r == LP_REGNO)
+ || IVC2_ISAVED_REG (r)))
+ return true;
+ if (!current_function_is_leaf)
+ /* Function calls mean we need to save $lp. */
+ if (r == LP_REGNO || IVC2_ISAVED_REG (r))
+ return true;
+ if (!current_function_is_leaf || cfun->machine->doloop_tags > 0)
+ /* The interrupt handler might use these registers for repeat blocks,
+ or it might call a function that does so. */
+ if (r == RPB_REGNO || r == RPE_REGNO || r == RPC_REGNO)
+ return true;
+ if (current_function_is_leaf && call_used_regs[r] && !df_regs_ever_live_p(r))
+ return false;
+ /* Functions we call might clobber these. */
+ if (call_used_regs[r] && !fixed_regs[r])
+ return true;
+ /* Additional registers that need to be saved for IVC2. */
+ if (IVC2_ISAVED_REG (r))
+ return true;
+
+ return false;
+}
+
+static bool
+mep_call_saves_register (int r)
+{
+ if (! cfun->machine->frame_locked)
+ {
+ int rv = MEP_SAVES_NO;
+
+ if (cfun->machine->reg_save_slot[r])
+ rv = MEP_SAVES_YES;
+ else if (r == LP_REGNO && (profile_arc_flag > 0 || profile_flag > 0))
+ rv = MEP_SAVES_YES;
+ else if (r == FRAME_POINTER_REGNUM && frame_pointer_needed)
+ rv = MEP_SAVES_YES;
+ else if ((!call_used_regs[r] || r == LP_REGNO) && df_regs_ever_live_p(r))
+ rv = MEP_SAVES_YES;
+ else if (crtl->calls_eh_return && (r == 10 || r == 11))
+ /* We need these to have stack slots so that they can be set during
+ unwinding. */
+ rv = MEP_SAVES_YES;
+ else if (mep_interrupt_saved_reg (r))
+ rv = MEP_SAVES_YES;
+ cfun->machine->reg_saved[r] = rv;
+ }
+ return cfun->machine->reg_saved[r] == MEP_SAVES_YES;
+}
+
+/* Return true if epilogue uses register REGNO. */
+
+bool
+mep_epilogue_uses (int regno)
+{
+ /* Since $lp is a call-saved register, the generic code will normally
+ mark it used in the epilogue if it needs to be saved and restored.
+ However, when profiling is enabled, the profiling code will implicitly
+ clobber $11. This case has to be handled specially both here and in
+ mep_call_saves_register. */
+ if (regno == LP_REGNO && (profile_arc_flag > 0 || profile_flag > 0))
+ return true;
+ /* Interrupt functions save/restore pretty much everything. */
+ return (reload_completed && mep_interrupt_saved_reg (regno));
+}
+
+static int
+mep_reg_size (int regno)
+{
+ if (CR_REGNO_P (regno) && TARGET_64BIT_CR_REGS)
+ return 8;
+ return 4;
+}
+
+/* Worker function for TARGET_CAN_ELIMINATE. */
+
+bool
+mep_can_eliminate (const int from, const int to)
+{
+ return (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM
+ ? ! frame_pointer_needed
+ : true);
+}
+
+int
+mep_elimination_offset (int from, int to)
+{
+ int reg_save_size;
+ int i;
+ int frame_size = get_frame_size () + crtl->outgoing_args_size;
+ int total_size;
+
+ if (!cfun->machine->frame_locked)
+ memset (cfun->machine->reg_saved, 0, sizeof (cfun->machine->reg_saved));
+
+ /* We don't count arg_regs_to_save in the arg pointer offset, because
+ gcc thinks the arg pointer has moved along with the saved regs.
+ However, we do count it when we adjust $sp in the prologue. */
+ reg_save_size = 0;
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+ if (mep_call_saves_register (i))
+ reg_save_size += mep_reg_size (i);
+
+ if (reg_save_size % 8)
+ cfun->machine->regsave_filler = 8 - (reg_save_size % 8);
+ else
+ cfun->machine->regsave_filler = 0;
+
+ /* This is what our total stack adjustment looks like. */
+ total_size = (reg_save_size + frame_size + cfun->machine->regsave_filler);
+
+ if (total_size % 8)
+ cfun->machine->frame_filler = 8 - (total_size % 8);
+ else
+ cfun->machine->frame_filler = 0;
+
+
+ if (from == ARG_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
+ return reg_save_size + cfun->machine->regsave_filler;
+
+ if (from == FRAME_POINTER_REGNUM && to == STACK_POINTER_REGNUM)
+ return cfun->machine->frame_filler + frame_size;
+
+ if (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM)
+ return reg_save_size + cfun->machine->regsave_filler + cfun->machine->frame_filler + frame_size;
+
+ gcc_unreachable ();
+}
+
+static rtx
+F (rtx x)
+{
+ RTX_FRAME_RELATED_P (x) = 1;
+ return x;
+}
+
+/* Since the prologue/epilogue code is generated after optimization,
+ we can't rely on gcc to split constants for us. So, this code
+ captures all the ways to add a constant to a register in one logic
+ chunk, including optimizing away insns we just don't need. This
+ makes the prolog/epilog code easier to follow. */
+static void
+add_constant (int dest, int src, int value, int mark_frame)
+{
+ rtx insn;
+ int hi, lo;
+
+ if (src == dest && value == 0)
+ return;
+
+ if (value == 0)
+ {
+ insn = emit_move_insn (gen_rtx_REG (SImode, dest),
+ gen_rtx_REG (SImode, src));
+ if (mark_frame)
+ RTX_FRAME_RELATED_P(insn) = 1;
+ return;
+ }
+
+ if (value >= -32768 && value <= 32767)
+ {
+ insn = emit_insn (gen_addsi3 (gen_rtx_REG (SImode, dest),
+ gen_rtx_REG (SImode, src),
+ GEN_INT (value)));
+ if (mark_frame)
+ RTX_FRAME_RELATED_P(insn) = 1;
+ return;
+ }
+
+ /* Big constant, need to use a temp register. We use
+ REGSAVE_CONTROL_TEMP because it's call clobberable (the reg save
+ area is always small enough to directly add to). */
+
+ hi = trunc_int_for_mode (value & 0xffff0000, SImode);
+ lo = value & 0xffff;
+
+ insn = emit_move_insn (gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ GEN_INT (hi));
+
+ if (lo)
+ {
+ insn = emit_insn (gen_iorsi3 (gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ GEN_INT (lo)));
+ }
+
+ insn = emit_insn (gen_addsi3 (gen_rtx_REG (SImode, dest),
+ gen_rtx_REG (SImode, src),
+ gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP)));
+ if (mark_frame)
+ {
+ RTX_FRAME_RELATED_P(insn) = 1;
+ add_reg_note (insn, REG_FRAME_RELATED_EXPR,
+ gen_rtx_SET (SImode,
+ gen_rtx_REG (SImode, dest),
+ gen_rtx_PLUS (SImode,
+ gen_rtx_REG (SImode, dest),
+ GEN_INT (value))));
+ }
+}
+
+/* Move SRC to DEST. Mark the move as being potentially dead if
+ MAYBE_DEAD_P. */
+
+static rtx
+maybe_dead_move (rtx dest, rtx src, bool ATTRIBUTE_UNUSED maybe_dead_p)
+{
+ rtx insn = emit_move_insn (dest, src);
+#if 0
+ if (maybe_dead_p)
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, const0_rtx, NULL);
+#endif
+ return insn;
+}
+
+/* Used for interrupt functions, which can't assume that $tp and $gp
+ contain the correct pointers. */
+
+static void
+mep_reload_pointer (int regno, const char *symbol)
+{
+ rtx reg, sym;
+
+ if (!df_regs_ever_live_p(regno) && current_function_is_leaf)
+ return;
+
+ reg = gen_rtx_REG (SImode, regno);
+ sym = gen_rtx_SYMBOL_REF (SImode, symbol);
+ emit_insn (gen_movsi_topsym_s (reg, sym));
+ emit_insn (gen_movsi_botsym_s (reg, reg, sym));
+}
+
+/* Assign save slots for any register not already saved. DImode
+ registers go at the end of the reg save area; the rest go at the
+ beginning. This is for alignment purposes. Returns true if a frame
+ is really needed. */
+static bool
+mep_assign_save_slots (int reg_save_size)
+{
+ bool really_need_stack_frame = false;
+ int di_ofs = 0;
+ int i;
+
+ for (i=0; i<FIRST_PSEUDO_REGISTER; i++)
+ if (mep_call_saves_register(i))
+ {
+ int regsize = mep_reg_size (i);
+
+ if ((i != TP_REGNO && i != GP_REGNO && i != LP_REGNO)
+ || mep_reg_set_in_function (i))
+ really_need_stack_frame = true;
+
+ if (cfun->machine->reg_save_slot[i])
+ continue;
+
+ if (regsize < 8)
+ {
+ cfun->machine->reg_save_size += regsize;
+ cfun->machine->reg_save_slot[i] = cfun->machine->reg_save_size;
+ }
+ else
+ {
+ cfun->machine->reg_save_slot[i] = reg_save_size - di_ofs;
+ di_ofs += 8;
+ }
+ }
+ cfun->machine->frame_locked = 1;
+ return really_need_stack_frame;
+}
+
+void
+mep_expand_prologue (void)
+{
+ int i, rss, sp_offset = 0;
+ int reg_save_size;
+ int frame_size;
+ int really_need_stack_frame;
+
+ /* We must not allow register renaming in interrupt functions,
+ because that invalidates the correctness of the set of call-used
+ registers we're going to save/restore. */
+ mep_set_leaf_registers (mep_interrupt_p () ? 0 : 1);
+
+ if (mep_disinterrupt_p ())
+ emit_insn (gen_mep_disable_int ());
+
+ cfun->machine->mep_frame_pointer_needed = frame_pointer_needed;
+
+ reg_save_size = mep_elimination_offset (ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM);
+ frame_size = mep_elimination_offset (FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM);
+ really_need_stack_frame = frame_size;
+
+ really_need_stack_frame |= mep_assign_save_slots (reg_save_size);
+
+ sp_offset = reg_save_size;
+ if (sp_offset + frame_size < 128)
+ sp_offset += frame_size ;
+
+ add_constant (SP_REGNO, SP_REGNO, -sp_offset, 1);
+
+ for (i=0; i<FIRST_PSEUDO_REGISTER; i++)
+ if (mep_call_saves_register(i))
+ {
+ rtx mem;
+ bool maybe_dead_p;
+ enum machine_mode rmode;
+
+ rss = cfun->machine->reg_save_slot[i];
+
+ if ((i == TP_REGNO || i == GP_REGNO || i == LP_REGNO)
+ && (!mep_reg_set_in_function (i)
+ && !mep_interrupt_p ()))
+ continue;
+
+ if (mep_reg_size (i) == 8)
+ rmode = DImode;
+ else
+ rmode = SImode;
+
+ /* If there is a pseudo associated with this register's initial value,
+ reload might have already spilt it to the stack slot suggested by
+ ALLOCATE_INITIAL_VALUE. The moves emitted here can then be safely
+ deleted as dead. */
+ mem = gen_rtx_MEM (rmode,
+ plus_constant (stack_pointer_rtx, sp_offset - rss));
+ maybe_dead_p = rtx_equal_p (mem, has_hard_reg_initial_val (rmode, i));
+
+ if (GR_REGNO_P (i) || LOADABLE_CR_REGNO_P (i))
+ F(maybe_dead_move (mem, gen_rtx_REG (rmode, i), maybe_dead_p));
+ else if (rmode == DImode)
+ {
+ rtx insn;
+ int be = TARGET_BIG_ENDIAN ? 4 : 0;
+
+ mem = gen_rtx_MEM (SImode,
+ plus_constant (stack_pointer_rtx, sp_offset - rss + be));
+
+ maybe_dead_move (gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ gen_rtx_REG (SImode, i),
+ maybe_dead_p);
+ maybe_dead_move (gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP+1),
+ gen_rtx_ZERO_EXTRACT (SImode,
+ gen_rtx_REG (DImode, i),
+ GEN_INT (32),
+ GEN_INT (32)),
+ maybe_dead_p);
+ insn = maybe_dead_move (mem,
+ gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ maybe_dead_p);
+ RTX_FRAME_RELATED_P (insn) = 1;
+
+ add_reg_note (insn, REG_FRAME_RELATED_EXPR,
+ gen_rtx_SET (VOIDmode,
+ copy_rtx (mem),
+ gen_rtx_REG (rmode, i)));
+ mem = gen_rtx_MEM (SImode,
+ plus_constant (stack_pointer_rtx, sp_offset - rss + (4-be)));
+ insn = maybe_dead_move (mem,
+ gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP+1),
+ maybe_dead_p);
+ }
+ else
+ {
+ rtx insn;
+ maybe_dead_move (gen_rtx_REG (rmode, REGSAVE_CONTROL_TEMP),
+ gen_rtx_REG (rmode, i),
+ maybe_dead_p);
+ insn = maybe_dead_move (mem,
+ gen_rtx_REG (rmode, REGSAVE_CONTROL_TEMP),
+ maybe_dead_p);
+ RTX_FRAME_RELATED_P (insn) = 1;
+
+ add_reg_note (insn, REG_FRAME_RELATED_EXPR,
+ gen_rtx_SET (VOIDmode,
+ copy_rtx (mem),
+ gen_rtx_REG (rmode, i)));
+ }
+ }
+
+ if (frame_pointer_needed)
+ {
+ /* We've already adjusted down by sp_offset. Total $sp change
+ is reg_save_size + frame_size. We want a net change here of
+ just reg_save_size. */
+ add_constant (FP_REGNO, SP_REGNO, sp_offset - reg_save_size, 1);
+ }
+
+ add_constant (SP_REGNO, SP_REGNO, sp_offset-(reg_save_size+frame_size), 1);
+
+ if (mep_interrupt_p ())
+ {
+ mep_reload_pointer(GP_REGNO, "__sdabase");
+ mep_reload_pointer(TP_REGNO, "__tpbase");
+ }
+}
+
+static void
+mep_start_function (FILE *file, HOST_WIDE_INT hwi_local)
+{
+ int local = hwi_local;
+ int frame_size = local + crtl->outgoing_args_size;
+ int reg_save_size;
+ int ffill;
+ int i, sp, skip;
+ int sp_offset;
+ int slot_map[FIRST_PSEUDO_REGISTER], si, sj;
+
+ reg_save_size = mep_elimination_offset (ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM);
+ frame_size = mep_elimination_offset (FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM);
+ sp_offset = reg_save_size + frame_size;
+
+ ffill = cfun->machine->frame_filler;
+
+ if (cfun->machine->mep_frame_pointer_needed)
+ reg_names[FP_REGNO] = "$fp";
+ else
+ reg_names[FP_REGNO] = "$8";
+
+ if (sp_offset == 0)
+ return;
+
+ if (debug_info_level == DINFO_LEVEL_NONE)
+ {
+ fprintf (file, "\t# frame: %d", sp_offset);
+ if (reg_save_size)
+ fprintf (file, " %d regs", reg_save_size);
+ if (local)
+ fprintf (file, " %d locals", local);
+ if (crtl->outgoing_args_size)
+ fprintf (file, " %d args", crtl->outgoing_args_size);
+ fprintf (file, "\n");
+ return;
+ }
+
+ fprintf (file, "\t#\n");
+ fprintf (file, "\t# Initial Frame Information:\n");
+ if (sp_offset || !frame_pointer_needed)
+ fprintf (file, "\t# Entry ---------- 0\n");
+
+ /* Sort registers by save slots, so they're printed in the order
+ they appear in memory, not the order they're saved in. */
+ for (si=0; si<FIRST_PSEUDO_REGISTER; si++)
+ slot_map[si] = si;
+ for (si=0; si<FIRST_PSEUDO_REGISTER-1; si++)
+ for (sj=si+1; sj<FIRST_PSEUDO_REGISTER; sj++)
+ if (cfun->machine->reg_save_slot[slot_map[si]]
+ > cfun->machine->reg_save_slot[slot_map[sj]])
+ {
+ int t = slot_map[si];
+ slot_map[si] = slot_map[sj];
+ slot_map[sj] = t;
+ }
+
+ sp = 0;
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+ {
+ int rsize;
+ int r = slot_map[i];
+ int rss = cfun->machine->reg_save_slot[r];
+
+ if (!mep_call_saves_register (r))
+ continue;
+
+ if ((r == TP_REGNO || r == GP_REGNO || r == LP_REGNO)
+ && (!mep_reg_set_in_function (r)
+ && !mep_interrupt_p ()))
+ continue;
+
+ rsize = mep_reg_size(r);
+ skip = rss - (sp+rsize);
+ if (skip)
+ fprintf (file, "\t# %3d bytes for alignment\n", skip);
+ fprintf (file, "\t# %3d bytes for saved %-3s %3d($sp)\n",
+ rsize, reg_names[r], sp_offset - rss);
+ sp = rss;
+ }
+
+ skip = reg_save_size - sp;
+ if (skip)
+ fprintf (file, "\t# %3d bytes for alignment\n", skip);
+
+ if (frame_pointer_needed)
+ fprintf (file, "\t# FP ---> ---------- %d (sp-%d)\n", reg_save_size, sp_offset-reg_save_size);
+ if (local)
+ fprintf (file, "\t# %3d bytes for local vars\n", local);
+ if (ffill)
+ fprintf (file, "\t# %3d bytes for alignment\n", ffill);
+ if (crtl->outgoing_args_size)
+ fprintf (file, "\t# %3d bytes for outgoing args\n",
+ crtl->outgoing_args_size);
+ fprintf (file, "\t# SP ---> ---------- %d\n", sp_offset);
+ fprintf (file, "\t#\n");
+}
+
+
+static int mep_prevent_lp_restore = 0;
+static int mep_sibcall_epilogue = 0;
+
+void
+mep_expand_epilogue (void)
+{
+ int i, sp_offset = 0;
+ int reg_save_size = 0;
+ int frame_size;
+ int lp_temp = LP_REGNO, lp_slot = -1;
+ int really_need_stack_frame = get_frame_size() + crtl->outgoing_args_size;
+ int interrupt_handler = mep_interrupt_p ();
+
+ if (profile_arc_flag == 2)
+ emit_insn (gen_mep_bb_trace_ret ());
+
+ reg_save_size = mep_elimination_offset (ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM);
+ frame_size = mep_elimination_offset (FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM);
+
+ really_need_stack_frame |= mep_assign_save_slots (reg_save_size);
+
+ if (frame_pointer_needed)
+ {
+ /* If we have a frame pointer, we won't have a reliable stack
+ pointer (alloca, you know), so rebase SP from FP */
+ emit_move_insn (gen_rtx_REG (SImode, SP_REGNO),
+ gen_rtx_REG (SImode, FP_REGNO));
+ sp_offset = reg_save_size;
+ }
+ else
+ {
+ /* SP is right under our local variable space. Adjust it if
+ needed. */
+ sp_offset = reg_save_size + frame_size;
+ if (sp_offset >= 128)
+ {
+ add_constant (SP_REGNO, SP_REGNO, frame_size, 0);
+ sp_offset -= frame_size;
+ }
+ }
+
+ /* This is backwards so that we restore the control and coprocessor
+ registers before the temporary registers we use to restore
+ them. */
+ for (i=FIRST_PSEUDO_REGISTER-1; i>=1; i--)
+ if (mep_call_saves_register (i))
+ {
+ enum machine_mode rmode;
+ int rss = cfun->machine->reg_save_slot[i];
+
+ if (mep_reg_size (i) == 8)
+ rmode = DImode;
+ else
+ rmode = SImode;
+
+ if ((i == TP_REGNO || i == GP_REGNO || i == LP_REGNO)
+ && !(mep_reg_set_in_function (i) || interrupt_handler))
+ continue;
+ if (mep_prevent_lp_restore && i == LP_REGNO)
+ continue;
+ if (!mep_prevent_lp_restore
+ && !interrupt_handler
+ && (i == 10 || i == 11))
+ continue;
+
+ if (GR_REGNO_P (i) || LOADABLE_CR_REGNO_P (i))
+ emit_move_insn (gen_rtx_REG (rmode, i),
+ gen_rtx_MEM (rmode,
+ plus_constant (stack_pointer_rtx,
+ sp_offset-rss)));
+ else
+ {
+ if (i == LP_REGNO && !mep_sibcall_epilogue && !interrupt_handler)
+ /* Defer this one so we can jump indirect rather than
+ copying the RA to $lp and "ret". EH epilogues
+ automatically skip this anyway. */
+ lp_slot = sp_offset-rss;
+ else
+ {
+ emit_move_insn (gen_rtx_REG (rmode, REGSAVE_CONTROL_TEMP),
+ gen_rtx_MEM (rmode,
+ plus_constant (stack_pointer_rtx,
+ sp_offset-rss)));
+ emit_move_insn (gen_rtx_REG (rmode, i),
+ gen_rtx_REG (rmode, REGSAVE_CONTROL_TEMP));
+ }
+ }
+ }
+ if (lp_slot != -1)
+ {
+ /* Restore this one last so we know it will be in the temp
+ register when we return by jumping indirectly via the temp. */
+ emit_move_insn (gen_rtx_REG (SImode, REGSAVE_CONTROL_TEMP),
+ gen_rtx_MEM (SImode,
+ plus_constant (stack_pointer_rtx,
+ lp_slot)));
+ lp_temp = REGSAVE_CONTROL_TEMP;
+ }
+
+
+ add_constant (SP_REGNO, SP_REGNO, sp_offset, 0);
+
+ if (crtl->calls_eh_return && mep_prevent_lp_restore)
+ emit_insn (gen_addsi3 (gen_rtx_REG (SImode, SP_REGNO),
+ gen_rtx_REG (SImode, SP_REGNO),
+ cfun->machine->eh_stack_adjust));
+
+ if (mep_sibcall_epilogue)
+ return;
+
+ if (mep_disinterrupt_p ())
+ emit_insn (gen_mep_enable_int ());
+
+ if (mep_prevent_lp_restore)
+ {
+ emit_jump_insn (gen_eh_return_internal ());
+ emit_barrier ();
+ }
+ else if (interrupt_handler)
+ emit_jump_insn (gen_mep_reti ());
+ else
+ emit_jump_insn (gen_return_internal (gen_rtx_REG (SImode, lp_temp)));
+}
+
+void
+mep_expand_eh_return (rtx *operands)
+{
+ if (GET_CODE (operands[0]) != REG || REGNO (operands[0]) != LP_REGNO)
+ {
+ rtx ra = gen_rtx_REG (Pmode, LP_REGNO);
+ emit_move_insn (ra, operands[0]);
+ operands[0] = ra;
+ }
+
+ emit_insn (gen_eh_epilogue (operands[0]));
+}
+
+void
+mep_emit_eh_epilogue (rtx *operands ATTRIBUTE_UNUSED)
+{
+ cfun->machine->eh_stack_adjust = gen_rtx_REG (Pmode, 0);
+ mep_prevent_lp_restore = 1;
+ mep_expand_epilogue ();
+ mep_prevent_lp_restore = 0;
+}
+
+void
+mep_expand_sibcall_epilogue (void)
+{
+ mep_sibcall_epilogue = 1;
+ mep_expand_epilogue ();
+ mep_sibcall_epilogue = 0;
+}
+
+static bool
+mep_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
+{
+ if (decl == NULL)
+ return false;
+
+ if (mep_section_tag (DECL_RTL (decl)) == 'f')
+ return false;
+
+ /* Can't call to a sibcall from an interrupt or disinterrupt function. */
+ if (mep_interrupt_p () || mep_disinterrupt_p ())
+ return false;
+
+ return true;
+}
+
+rtx
+mep_return_stackadj_rtx (void)
+{
+ return gen_rtx_REG (SImode, 10);
+}
+
+rtx
+mep_return_handler_rtx (void)
+{
+ return gen_rtx_REG (SImode, LP_REGNO);
+}
+
+void
+mep_function_profiler (FILE *file)
+{
+ /* Always right at the beginning of the function. */
+ fprintf (file, "\t# mep function profiler\n");
+ fprintf (file, "\tadd\t$sp, -8\n");
+ fprintf (file, "\tsw\t$0, ($sp)\n");
+ fprintf (file, "\tldc\t$0, $lp\n");
+ fprintf (file, "\tsw\t$0, 4($sp)\n");
+ fprintf (file, "\tbsr\t__mep_mcount\n");
+ fprintf (file, "\tlw\t$0, 4($sp)\n");
+ fprintf (file, "\tstc\t$0, $lp\n");
+ fprintf (file, "\tlw\t$0, ($sp)\n");
+ fprintf (file, "\tadd\t$sp, 8\n\n");
+}
+
+const char *
+mep_emit_bb_trace_ret (void)
+{
+ fprintf (asm_out_file, "\t# end of block profiling\n");
+ fprintf (asm_out_file, "\tadd\t$sp, -8\n");
+ fprintf (asm_out_file, "\tsw\t$0, ($sp)\n");
+ fprintf (asm_out_file, "\tldc\t$0, $lp\n");
+ fprintf (asm_out_file, "\tsw\t$0, 4($sp)\n");
+ fprintf (asm_out_file, "\tbsr\t__bb_trace_ret\n");
+ fprintf (asm_out_file, "\tlw\t$0, 4($sp)\n");
+ fprintf (asm_out_file, "\tstc\t$0, $lp\n");
+ fprintf (asm_out_file, "\tlw\t$0, ($sp)\n");
+ fprintf (asm_out_file, "\tadd\t$sp, 8\n\n");
+ return "";
+}
+
+#undef SAVE
+#undef RESTORE
+
+/* Operand Printing. */
+
+void
+mep_print_operand_address (FILE *stream, rtx address)
+{
+ if (GET_CODE (address) == MEM)
+ address = XEXP (address, 0);
+ else
+ /* cf: gcc.dg/asm-4.c. */
+ gcc_assert (GET_CODE (address) == REG);
+
+ mep_print_operand (stream, address, 0);
+}
+
+static struct
+{
+ char code;
+ const char *pattern;
+ const char *format;
+}
+const conversions[] =
+{
+ { 0, "r", "0" },
+ { 0, "m+ri", "3(2)" },
+ { 0, "mr", "(1)" },
+ { 0, "ms", "(1)" },
+ { 0, "ml", "(1)" },
+ { 0, "mLrs", "%lo(3)(2)" },
+ { 0, "mLr+si", "%lo(4+5)(2)" },
+ { 0, "m+ru2s", "%tpoff(5)(2)" },
+ { 0, "m+ru3s", "%sdaoff(5)(2)" },
+ { 0, "m+r+u2si", "%tpoff(6+7)(2)" },
+ { 0, "m+ru2+si", "%tpoff(6+7)(2)" },
+ { 0, "m+r+u3si", "%sdaoff(6+7)(2)" },
+ { 0, "m+ru3+si", "%sdaoff(6+7)(2)" },
+ { 0, "mi", "(1)" },
+ { 0, "m+si", "(2+3)" },
+ { 0, "m+li", "(2+3)" },
+ { 0, "i", "0" },
+ { 0, "s", "0" },
+ { 0, "+si", "1+2" },
+ { 0, "+u2si", "%tpoff(3+4)" },
+ { 0, "+u3si", "%sdaoff(3+4)" },
+ { 0, "l", "0" },
+ { 'b', "i", "0" },
+ { 'B', "i", "0" },
+ { 'U', "i", "0" },
+ { 'h', "i", "0" },
+ { 'h', "Hs", "%hi(1)" },
+ { 'I', "i", "0" },
+ { 'I', "u2s", "%tpoff(2)" },
+ { 'I', "u3s", "%sdaoff(2)" },
+ { 'I', "+u2si", "%tpoff(3+4)" },
+ { 'I', "+u3si", "%sdaoff(3+4)" },
+ { 'J', "i", "0" },
+ { 'P', "mr", "(1\\+),\\0" },
+ { 'x', "i", "0" },
+ { 0, 0, 0 }
+};
+
+static int
+unique_bit_in (HOST_WIDE_INT i)
+{
+ switch (i & 0xff)
+ {
+ case 0x01: case 0xfe: return 0;
+ case 0x02: case 0xfd: return 1;
+ case 0x04: case 0xfb: return 2;
+ case 0x08: case 0xf7: return 3;
+ case 0x10: case 0x7f: return 4;
+ case 0x20: case 0xbf: return 5;
+ case 0x40: case 0xdf: return 6;
+ case 0x80: case 0xef: return 7;
+ default:
+ gcc_unreachable ();
+ }
+}
+
+static int
+bit_size_for_clip (HOST_WIDE_INT i)
+{
+ int rv;
+
+ for (rv = 0; rv < 31; rv ++)
+ if (((HOST_WIDE_INT) 1 << rv) > i)
+ return rv + 1;
+ gcc_unreachable ();
+}
+
+/* Print an operand to a assembler instruction. */
+
+void
+mep_print_operand (FILE *file, rtx x, int code)
+{
+ int i, j;
+ const char *real_name;
+
+ if (code == '<')
+ {
+ /* Print a mnemonic to do CR <- CR moves. Find out which intrinsic
+ we're using, then skip over the "mep_" part of its name. */
+ const struct cgen_insn *insn;
+
+ if (mep_get_move_insn (mep_cmov, &insn))
+ fputs (cgen_intrinsics[insn->intrinsic] + 4, file);
+ else
+ mep_intrinsic_unavailable (mep_cmov);
+ return;
+ }
+ if (code == 'L')
+ {
+ switch (GET_CODE (x))
+ {
+ case AND:
+ fputs ("clr", file);
+ return;
+ case IOR:
+ fputs ("set", file);
+ return;
+ case XOR:
+ fputs ("not", file);
+ return;
+ default:
+ output_operand_lossage ("invalid %%L code");
+ }
+ }
+ if (code == 'M')
+ {
+ /* Print the second operand of a CR <- CR move. If we're using
+ a two-operand instruction (i.e., a real cmov), then just print
+ the operand normally. If we're using a "reg, reg, immediate"
+ instruction such as caddi3, print the operand followed by a
+ zero field. If we're using a three-register instruction,
+ print the operand twice. */
+ const struct cgen_insn *insn;
+
+ mep_print_operand (file, x, 0);
+ if (mep_get_move_insn (mep_cmov, &insn)
+ && insn_data[insn->icode].n_operands == 3)
+ {
+ fputs (", ", file);
+ if (insn_data[insn->icode].operand[2].predicate (x, VOIDmode))
+ mep_print_operand (file, x, 0);
+ else
+ mep_print_operand (file, const0_rtx, 0);
+ }
+ return;
+ }
+
+ encode_pattern (x);
+ for (i = 0; conversions[i].pattern; i++)
+ if (conversions[i].code == code
+ && strcmp(conversions[i].pattern, pattern) == 0)
+ {
+ for (j = 0; conversions[i].format[j]; j++)
+ if (conversions[i].format[j] == '\\')
+ {
+ fputc (conversions[i].format[j+1], file);
+ j++;
+ }
+ else if (ISDIGIT(conversions[i].format[j]))
+ {
+ rtx r = patternr[conversions[i].format[j] - '0'];
+ switch (GET_CODE (r))
+ {
+ case REG:
+ fprintf (file, "%s", reg_names [REGNO (r)]);
+ break;
+ case CONST_INT:
+ switch (code)
+ {
+ case 'b':
+ fprintf (file, "%d", unique_bit_in (INTVAL (r)));
+ break;
+ case 'B':
+ fprintf (file, "%d", bit_size_for_clip (INTVAL (r)));
+ break;
+ case 'h':
+ fprintf (file, "0x%x", ((int) INTVAL (r) >> 16) & 0xffff);
+ break;
+ case 'U':
+ fprintf (file, "%d", bit_size_for_clip (INTVAL (r)) - 1);
+ break;
+ case 'J':
+ fprintf (file, "0x%x", (int) INTVAL (r) & 0xffff);
+ break;
+ case 'x':
+ if (INTVAL (r) & ~(HOST_WIDE_INT)0xff
+ && !(INTVAL (r) & 0xff))
+ fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL(r));
+ else
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL(r));
+ break;
+ case 'I':
+ if (INTVAL (r) & ~(HOST_WIDE_INT)0xff
+ && conversions[i].format[j+1] == 0)
+ {
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (r));
+ fprintf (file, " # 0x%x", (int) INTVAL(r) & 0xffff);
+ }
+ else
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL(r));
+ break;
+ default:
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL(r));
+ break;
+ }
+ break;
+ case CONST_DOUBLE:
+ fprintf(file, "[const_double 0x%lx]",
+ (unsigned long) CONST_DOUBLE_HIGH(r));
+ break;
+ case SYMBOL_REF:
+ real_name = targetm.strip_name_encoding (XSTR (r, 0));
+ assemble_name (file, real_name);
+ break;
+ case LABEL_REF:
+ output_asm_label (r);
+ break;
+ default:
+ fprintf (stderr, "don't know how to print this operand:");
+ debug_rtx (r);
+ gcc_unreachable ();
+ }
+ }
+ else
+ {
+ if (conversions[i].format[j] == '+'
+ && (!code || code == 'I')
+ && ISDIGIT (conversions[i].format[j+1])
+ && GET_CODE (patternr[conversions[i].format[j+1] - '0']) == CONST_INT
+ && INTVAL (patternr[conversions[i].format[j+1] - '0']) < 0)
+ continue;
+ fputc(conversions[i].format[j], file);
+ }
+ break;
+ }
+ if (!conversions[i].pattern)
+ {
+ error ("unconvertible operand %c %qs", code?code:'-', pattern);
+ debug_rtx(x);
+ }
+
+ return;
+}
+
+void
+mep_final_prescan_insn (rtx insn, rtx *operands ATTRIBUTE_UNUSED,
+ int noperands ATTRIBUTE_UNUSED)
+{
+ /* Despite the fact that MeP is perfectly capable of branching and
+ doing something else in the same bundle, gcc does jump
+ optimization *after* scheduling, so we cannot trust the bundling
+ flags on jump instructions. */
+ if (GET_MODE (insn) == BImode
+ && get_attr_slots (insn) != SLOTS_CORE)
+ fputc ('+', asm_out_file);
+}
+
+/* Function args in registers. */
+
+static void
+mep_setup_incoming_varargs (CUMULATIVE_ARGS *cum,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ tree type ATTRIBUTE_UNUSED, int *pretend_size,
+ int second_time ATTRIBUTE_UNUSED)
+{
+ int nsave = 4 - (cum->nregs + 1);
+
+ if (nsave > 0)
+ cfun->machine->arg_regs_to_save = nsave;
+ *pretend_size = nsave * 4;
+}
+
+static int
+bytesize (const_tree type, enum machine_mode mode)
+{
+ if (mode == BLKmode)
+ return int_size_in_bytes (type);
+ return GET_MODE_SIZE (mode);
+}
+
+static rtx
+mep_expand_builtin_saveregs (void)
+{
+ int bufsize, i, ns;
+ rtx regbuf;
+
+ ns = cfun->machine->arg_regs_to_save;
+ if (TARGET_IVC2)
+ {
+ bufsize = 8 * ((ns + 1) / 2) + 8 * ns;
+ regbuf = assign_stack_local (SImode, bufsize, 64);
+ }
+ else
+ {
+ bufsize = ns * 4;
+ regbuf = assign_stack_local (SImode, bufsize, 32);
+ }
+
+ move_block_from_reg (5-ns, regbuf, ns);
+
+ if (TARGET_IVC2)
+ {
+ rtx tmp = gen_rtx_MEM (DImode, XEXP (regbuf, 0));
+ int ofs = 8 * ((ns+1)/2);
+
+ for (i=0; i<ns; i++)
+ {
+ int rn = (4-ns) + i + 49;
+ rtx ptr;
+
+ ptr = offset_address (tmp, GEN_INT (ofs), 2);
+ emit_move_insn (ptr, gen_rtx_REG (DImode, rn));
+ ofs += 8;
+ }
+ }
+ return XEXP (regbuf, 0);
+}
+
+#define VECTOR_TYPE_P(t) (TREE_CODE(t) == VECTOR_TYPE)
+
+static tree
+mep_build_builtin_va_list (void)
+{
+ tree f_next_gp, f_next_gp_limit, f_next_cop, f_next_stack;
+ tree record;
+
+
+ record = (*lang_hooks.types.make_type) (RECORD_TYPE);
+
+ f_next_gp = build_decl (BUILTINS_LOCATION, FIELD_DECL,
+ get_identifier ("__va_next_gp"), ptr_type_node);
+ f_next_gp_limit = build_decl (BUILTINS_LOCATION, FIELD_DECL,
+ get_identifier ("__va_next_gp_limit"),
+ ptr_type_node);
+ f_next_cop = build_decl (BUILTINS_LOCATION, FIELD_DECL, get_identifier ("__va_next_cop"),
+ ptr_type_node);
+ f_next_stack = build_decl (BUILTINS_LOCATION, FIELD_DECL, get_identifier ("__va_next_stack"),
+ ptr_type_node);
+
+ DECL_FIELD_CONTEXT (f_next_gp) = record;
+ DECL_FIELD_CONTEXT (f_next_gp_limit) = record;
+ DECL_FIELD_CONTEXT (f_next_cop) = record;
+ DECL_FIELD_CONTEXT (f_next_stack) = record;
+
+ TYPE_FIELDS (record) = f_next_gp;
+ DECL_CHAIN (f_next_gp) = f_next_gp_limit;
+ DECL_CHAIN (f_next_gp_limit) = f_next_cop;
+ DECL_CHAIN (f_next_cop) = f_next_stack;
+
+ layout_type (record);
+
+ return record;
+}
+
+static void
+mep_expand_va_start (tree valist, rtx nextarg)
+{
+ tree f_next_gp, f_next_gp_limit, f_next_cop, f_next_stack;
+ tree next_gp, next_gp_limit, next_cop, next_stack;
+ tree t, u;
+ int ns;
+
+ ns = cfun->machine->arg_regs_to_save;
+
+ f_next_gp = TYPE_FIELDS (va_list_type_node);
+ f_next_gp_limit = DECL_CHAIN (f_next_gp);
+ f_next_cop = DECL_CHAIN (f_next_gp_limit);
+ f_next_stack = DECL_CHAIN (f_next_cop);
+
+ next_gp = build3 (COMPONENT_REF, TREE_TYPE (f_next_gp), valist, f_next_gp,
+ NULL_TREE);
+ next_gp_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_gp_limit),
+ valist, f_next_gp_limit, NULL_TREE);
+ next_cop = build3 (COMPONENT_REF, TREE_TYPE (f_next_cop), valist, f_next_cop,
+ NULL_TREE);
+ next_stack = build3 (COMPONENT_REF, TREE_TYPE (f_next_stack),
+ valist, f_next_stack, NULL_TREE);
+
+ /* va_list.next_gp = expand_builtin_saveregs (); */
+ u = make_tree (sizetype, expand_builtin_saveregs ());
+ u = fold_convert (ptr_type_node, u);
+ t = build2 (MODIFY_EXPR, ptr_type_node, next_gp, u);
+ TREE_SIDE_EFFECTS (t) = 1;
+ expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
+
+ /* va_list.next_gp_limit = va_list.next_gp + 4 * ns; */
+ u = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, u,
+ size_int (4 * ns));
+ t = build2 (MODIFY_EXPR, ptr_type_node, next_gp_limit, u);
+ TREE_SIDE_EFFECTS (t) = 1;
+ expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
+
+ u = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, u,
+ size_int (8 * ((ns+1)/2)));
+ /* va_list.next_cop = ROUND_UP(va_list.next_gp_limit,8); */
+ t = build2 (MODIFY_EXPR, ptr_type_node, next_cop, u);
+ TREE_SIDE_EFFECTS (t) = 1;
+ expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
+
+ /* va_list.next_stack = nextarg; */
+ u = make_tree (ptr_type_node, nextarg);
+ t = build2 (MODIFY_EXPR, ptr_type_node, next_stack, u);
+ TREE_SIDE_EFFECTS (t) = 1;
+ expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
+}
+
+static tree
+mep_gimplify_va_arg_expr (tree valist, tree type,
+ gimple_seq *pre_p,
+ gimple_seq *post_p ATTRIBUTE_UNUSED)
+{
+ HOST_WIDE_INT size, rsize;
+ bool by_reference, ivc2_vec;
+ tree f_next_gp, f_next_gp_limit, f_next_cop, f_next_stack;
+ tree next_gp, next_gp_limit, next_cop, next_stack;
+ tree label_sover, label_selse;
+ tree tmp, res_addr;
+
+ ivc2_vec = TARGET_IVC2 && VECTOR_TYPE_P (type);
+
+ size = int_size_in_bytes (type);
+ by_reference = (size > (ivc2_vec ? 8 : 4)) || (size <= 0);
+
+ if (by_reference)
+ {
+ type = build_pointer_type (type);
+ size = 4;
+ }
+ rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD;
+
+ f_next_gp = TYPE_FIELDS (va_list_type_node);
+ f_next_gp_limit = DECL_CHAIN (f_next_gp);
+ f_next_cop = DECL_CHAIN (f_next_gp_limit);
+ f_next_stack = DECL_CHAIN (f_next_cop);
+
+ next_gp = build3 (COMPONENT_REF, TREE_TYPE (f_next_gp), valist, f_next_gp,
+ NULL_TREE);
+ next_gp_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_gp_limit),
+ valist, f_next_gp_limit, NULL_TREE);
+ next_cop = build3 (COMPONENT_REF, TREE_TYPE (f_next_cop), valist, f_next_cop,
+ NULL_TREE);
+ next_stack = build3 (COMPONENT_REF, TREE_TYPE (f_next_stack),
+ valist, f_next_stack, NULL_TREE);
+
+ /* if f_next_gp < f_next_gp_limit
+ IF (VECTOR_P && IVC2)
+ val = *f_next_cop;
+ ELSE
+ val = *f_next_gp;
+ f_next_gp += 4;
+ f_next_cop += 8;
+ else
+ label_selse:
+ val = *f_next_stack;
+ f_next_stack += rsize;
+ label_sover:
+ */
+
+ label_sover = create_artificial_label (UNKNOWN_LOCATION);
+ label_selse = create_artificial_label (UNKNOWN_LOCATION);
+ res_addr = create_tmp_var (ptr_type_node, NULL);
+
+ tmp = build2 (GE_EXPR, boolean_type_node, next_gp,
+ unshare_expr (next_gp_limit));
+ tmp = build3 (COND_EXPR, void_type_node, tmp,
+ build1 (GOTO_EXPR, void_type_node,
+ unshare_expr (label_selse)),
+ NULL_TREE);
+ gimplify_and_add (tmp, pre_p);
+
+ if (ivc2_vec)
+ {
+ tmp = build2 (MODIFY_EXPR, void_type_node, res_addr, next_cop);
+ gimplify_and_add (tmp, pre_p);
+ }
+ else
+ {
+ tmp = build2 (MODIFY_EXPR, void_type_node, res_addr, next_gp);
+ gimplify_and_add (tmp, pre_p);
+ }
+
+ tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node,
+ unshare_expr (next_gp), size_int (4));
+ gimplify_assign (unshare_expr (next_gp), tmp, pre_p);
+
+ tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node,
+ unshare_expr (next_cop), size_int (8));
+ gimplify_assign (unshare_expr (next_cop), tmp, pre_p);
+
+ tmp = build1 (GOTO_EXPR, void_type_node, unshare_expr (label_sover));
+ gimplify_and_add (tmp, pre_p);
+
+ /* - - */
+
+ tmp = build1 (LABEL_EXPR, void_type_node, unshare_expr (label_selse));
+ gimplify_and_add (tmp, pre_p);
+
+ tmp = build2 (MODIFY_EXPR, void_type_node, res_addr, unshare_expr (next_stack));
+ gimplify_and_add (tmp, pre_p);
+
+ tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node,
+ unshare_expr (next_stack), size_int (rsize));
+ gimplify_assign (unshare_expr (next_stack), tmp, pre_p);
+
+ /* - - */
+
+ tmp = build1 (LABEL_EXPR, void_type_node, unshare_expr (label_sover));
+ gimplify_and_add (tmp, pre_p);
+
+ res_addr = fold_convert (build_pointer_type (type), res_addr);
+
+ if (by_reference)
+ res_addr = build_va_arg_indirect_ref (res_addr);
+
+ return build_va_arg_indirect_ref (res_addr);
+}
+
+void
+mep_init_cumulative_args (CUMULATIVE_ARGS *pcum, tree fntype,
+ rtx libname ATTRIBUTE_UNUSED,
+ tree fndecl ATTRIBUTE_UNUSED)
+{
+ pcum->nregs = 0;
+
+ if (fntype && lookup_attribute ("vliw", TYPE_ATTRIBUTES (fntype)))
+ pcum->vliw = 1;
+ else
+ pcum->vliw = 0;
+}
+
+/* The ABI is thus: Arguments are in $1, $2, $3, $4, stack. Arguments
+ larger than 4 bytes are passed indirectly. Return value in 0,
+ unless bigger than 4 bytes, then the caller passes a pointer as the
+ first arg. For varargs, we copy $1..$4 to the stack. */
+
+static rtx
+mep_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ const_tree type ATTRIBUTE_UNUSED,
+ bool named ATTRIBUTE_UNUSED)
+{
+ /* VOIDmode is a signal for the backend to pass data to the call
+ expander via the second operand to the call pattern. We use
+ this to determine whether to use "jsr" or "jsrv". */
+ if (mode == VOIDmode)
+ return GEN_INT (cum->vliw);
+
+ /* If we havn't run out of argument registers, return the next. */
+ if (cum->nregs < 4)
+ {
+ if (type && TARGET_IVC2 && VECTOR_TYPE_P (type))
+ return gen_rtx_REG (mode, cum->nregs + 49);
+ else
+ return gen_rtx_REG (mode, cum->nregs + 1);
+ }
+
+ /* Otherwise the argument goes on the stack. */
+ return NULL_RTX;
+}
+
+static bool
+mep_pass_by_reference (CUMULATIVE_ARGS * cum ATTRIBUTE_UNUSED,
+ enum machine_mode mode,
+ const_tree type,
+ bool named ATTRIBUTE_UNUSED)
+{
+ int size = bytesize (type, mode);
+
+ /* This is non-obvious, but yes, large values passed after we've run
+ out of registers are *still* passed by reference - we put the
+ address of the parameter on the stack, as well as putting the
+ parameter itself elsewhere on the stack. */
+
+ if (size <= 0 || size > 8)
+ return true;
+ if (size <= 4)
+ return false;
+ if (TARGET_IVC2 && cum->nregs < 4 && type != NULL_TREE && VECTOR_TYPE_P (type))
+ return false;
+ return true;
+}
+
+static void
+mep_function_arg_advance (CUMULATIVE_ARGS *pcum,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ const_tree type ATTRIBUTE_UNUSED,
+ bool named ATTRIBUTE_UNUSED)
+{
+ pcum->nregs += 1;
+}
+
+bool
+mep_return_in_memory (const_tree type, const_tree decl ATTRIBUTE_UNUSED)
+{
+ int size = bytesize (type, BLKmode);
+ if (TARGET_IVC2 && VECTOR_TYPE_P (type))
+ return size > 0 && size <= 8 ? 0 : 1;
+ return size > 0 && size <= 4 ? 0 : 1;
+}
+
+static bool
+mep_narrow_volatile_bitfield (void)
+{
+ return true;
+ return false;
+}
+
+/* Implement FUNCTION_VALUE. All values are returned in $0. */
+
+rtx
+mep_function_value (const_tree type, const_tree func ATTRIBUTE_UNUSED)
+{
+ if (TARGET_IVC2 && VECTOR_TYPE_P (type))
+ return gen_rtx_REG (TYPE_MODE (type), 48);
+ return gen_rtx_REG (TYPE_MODE (type), RETURN_VALUE_REGNUM);
+}
+
+/* Implement LIBCALL_VALUE, using the same rules as mep_function_value. */
+
+rtx
+mep_libcall_value (enum machine_mode mode)
+{
+ return gen_rtx_REG (mode, RETURN_VALUE_REGNUM);
+}
+
+/* Handle pipeline hazards. */
+
+typedef enum { op_none, op_stc, op_fsft, op_ret } op_num;
+static const char *opnames[] = { "", "stc", "fsft", "ret" };
+
+static int prev_opcode = 0;
+
+/* This isn't as optimal as it could be, because we don't know what
+ control register the STC opcode is storing in. We only need to add
+ the nop if it's the relevent register, but we add it for irrelevent
+ registers also. */
+
+void
+mep_asm_output_opcode (FILE *file, const char *ptr)
+{
+ int this_opcode = op_none;
+ const char *hazard = 0;
+
+ switch (*ptr)
+ {
+ case 'f':
+ if (strncmp (ptr, "fsft", 4) == 0 && !ISGRAPH (ptr[4]))
+ this_opcode = op_fsft;
+ break;
+ case 'r':
+ if (strncmp (ptr, "ret", 3) == 0 && !ISGRAPH (ptr[3]))
+ this_opcode = op_ret;
+ break;
+ case 's':
+ if (strncmp (ptr, "stc", 3) == 0 && !ISGRAPH (ptr[3]))
+ this_opcode = op_stc;
+ break;
+ }
+
+ if (prev_opcode == op_stc && this_opcode == op_fsft)
+ hazard = "nop";
+ if (prev_opcode == op_stc && this_opcode == op_ret)
+ hazard = "nop";
+
+ if (hazard)
+ fprintf(file, "%s\t# %s-%s hazard\n\t",
+ hazard, opnames[prev_opcode], opnames[this_opcode]);
+
+ prev_opcode = this_opcode;
+}
+
+/* Handle attributes. */
+
+static tree
+mep_validate_based_tiny (tree *node, tree name, tree args,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ if (TREE_CODE (*node) != VAR_DECL
+ && TREE_CODE (*node) != POINTER_TYPE
+ && TREE_CODE (*node) != TYPE_DECL)
+ {
+ warning (0, "%qE attribute only applies to variables", name);
+ *no_add = true;
+ }
+ else if (args == NULL_TREE && TREE_CODE (*node) == VAR_DECL)
+ {
+ if (! (TREE_PUBLIC (*node) || TREE_STATIC (*node)))
+ {
+ warning (0, "address region attributes not allowed with auto storage class");
+ *no_add = true;
+ }
+ /* Ignore storage attribute of pointed to variable: char __far * x; */
+ if (TREE_TYPE (*node) && TREE_CODE (TREE_TYPE (*node)) == POINTER_TYPE)
+ {
+ warning (0, "address region attributes on pointed-to types ignored");
+ *no_add = true;
+ }
+ }
+
+ return NULL_TREE;
+}
+
+static int
+mep_multiple_address_regions (tree list, bool check_section_attr)
+{
+ tree a;
+ int count_sections = 0;
+ int section_attr_count = 0;
+
+ for (a = list; a; a = TREE_CHAIN (a))
+ {
+ if (is_attribute_p ("based", TREE_PURPOSE (a))
+ || is_attribute_p ("tiny", TREE_PURPOSE (a))
+ || is_attribute_p ("near", TREE_PURPOSE (a))
+ || is_attribute_p ("far", TREE_PURPOSE (a))
+ || is_attribute_p ("io", TREE_PURPOSE (a)))
+ count_sections ++;
+ if (check_section_attr)
+ section_attr_count += is_attribute_p ("section", TREE_PURPOSE (a));
+ }
+
+ if (check_section_attr)
+ return section_attr_count;
+ else
+ return count_sections;
+}
+
+#define MEP_ATTRIBUTES(decl) \
+ (TYPE_P (decl)) ? TYPE_ATTRIBUTES (decl) \
+ : DECL_ATTRIBUTES (decl) \
+ ? (DECL_ATTRIBUTES (decl)) \
+ : TYPE_ATTRIBUTES (TREE_TYPE (decl))
+
+static tree
+mep_validate_near_far (tree *node, tree name, tree args,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ if (TREE_CODE (*node) != VAR_DECL
+ && TREE_CODE (*node) != FUNCTION_DECL
+ && TREE_CODE (*node) != METHOD_TYPE
+ && TREE_CODE (*node) != POINTER_TYPE
+ && TREE_CODE (*node) != TYPE_DECL)
+ {
+ warning (0, "%qE attribute only applies to variables and functions",
+ name);
+ *no_add = true;
+ }
+ else if (args == NULL_TREE && TREE_CODE (*node) == VAR_DECL)
+ {
+ if (! (TREE_PUBLIC (*node) || TREE_STATIC (*node)))
+ {
+ warning (0, "address region attributes not allowed with auto storage class");
+ *no_add = true;
+ }
+ /* Ignore storage attribute of pointed to variable: char __far * x; */
+ if (TREE_TYPE (*node) && TREE_CODE (TREE_TYPE (*node)) == POINTER_TYPE)
+ {
+ warning (0, "address region attributes on pointed-to types ignored");
+ *no_add = true;
+ }
+ }
+ else if (mep_multiple_address_regions (MEP_ATTRIBUTES (*node), false) > 0)
+ {
+ warning (0, "duplicate address region attribute %qE in declaration of %qE on line %d",
+ name, DECL_NAME (*node), DECL_SOURCE_LINE (*node));
+ DECL_ATTRIBUTES (*node) = NULL_TREE;
+ }
+ return NULL_TREE;
+}
+
+static tree
+mep_validate_disinterrupt (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ if (TREE_CODE (*node) != FUNCTION_DECL
+ && TREE_CODE (*node) != METHOD_TYPE)
+ {
+ warning (0, "%qE attribute only applies to functions", name);
+ *no_add = true;
+ }
+ return NULL_TREE;
+}
+
+static tree
+mep_validate_interrupt (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ tree function_type;
+
+ if (TREE_CODE (*node) != FUNCTION_DECL)
+ {
+ warning (0, "%qE attribute only applies to functions", name);
+ *no_add = true;
+ return NULL_TREE;
+ }
+
+ if (DECL_DECLARED_INLINE_P (*node))
+ error ("cannot inline interrupt function %qE", DECL_NAME (*node));
+ DECL_UNINLINABLE (*node) = 1;
+
+ function_type = TREE_TYPE (*node);
+
+ if (TREE_TYPE (function_type) != void_type_node)
+ error ("interrupt function must have return type of void");
+
+ if (prototype_p (function_type)
+ && (TREE_VALUE (TYPE_ARG_TYPES (function_type)) != void_type_node
+ || TREE_CHAIN (TYPE_ARG_TYPES (function_type)) != NULL_TREE))
+ error ("interrupt function must have no arguments");
+
+ return NULL_TREE;
+}
+
+static tree
+mep_validate_io_cb (tree *node, tree name, tree args,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ if (TREE_CODE (*node) != VAR_DECL)
+ {
+ warning (0, "%qE attribute only applies to variables", name);
+ *no_add = true;
+ }
+
+ if (args != NULL_TREE)
+ {
+ if (TREE_CODE (TREE_VALUE (args)) == NON_LVALUE_EXPR)
+ TREE_VALUE (args) = TREE_OPERAND (TREE_VALUE (args), 0);
+ if (TREE_CODE (TREE_VALUE (args)) != INTEGER_CST)
+ {
+ warning (0, "%qE attribute allows only an integer constant argument",
+ name);
+ *no_add = true;
+ }
+ }
+
+ if (*no_add == false && !TARGET_IO_NO_VOLATILE)
+ TREE_THIS_VOLATILE (*node) = 1;
+
+ return NULL_TREE;
+}
+
+static tree
+mep_validate_vliw (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED, bool *no_add)
+{
+ if (TREE_CODE (*node) != FUNCTION_TYPE
+ && TREE_CODE (*node) != FUNCTION_DECL
+ && TREE_CODE (*node) != METHOD_TYPE
+ && TREE_CODE (*node) != FIELD_DECL
+ && TREE_CODE (*node) != TYPE_DECL)
+ {
+ static int gave_pointer_note = 0;
+ static int gave_array_note = 0;
+ static const char * given_type = NULL;
+
+ given_type = tree_code_name[TREE_CODE (*node)];
+ if (TREE_CODE (*node) == POINTER_TYPE)
+ given_type = "pointers";
+ if (TREE_CODE (*node) == ARRAY_TYPE)
+ given_type = "arrays";
+
+ if (given_type)
+ warning (0, "%qE attribute only applies to functions, not %s",
+ name, given_type);
+ else
+ warning (0, "%qE attribute only applies to functions",
+ name);
+ *no_add = true;
+
+ if (TREE_CODE (*node) == POINTER_TYPE
+ && !gave_pointer_note)
+ {
+ inform (input_location, "to describe a pointer to a VLIW function, use syntax like this:");
+ inform (input_location, " typedef int (__vliw *vfuncptr) ();");
+ gave_pointer_note = 1;
+ }
+
+ if (TREE_CODE (*node) == ARRAY_TYPE
+ && !gave_array_note)
+ {
+ inform (input_location, "to describe an array of VLIW function pointers, use syntax like this:");
+ inform (input_location, " typedef int (__vliw *vfuncptr[]) ();");
+ gave_array_note = 1;
+ }
+ }
+ if (!TARGET_VLIW)
+ error ("VLIW functions are not allowed without a VLIW configuration");
+ return NULL_TREE;
+}
+
+static const struct attribute_spec mep_attribute_table[11] =
+{
+ /* name min max decl type func handler */
+ { "based", 0, 0, false, false, false, mep_validate_based_tiny },
+ { "tiny", 0, 0, false, false, false, mep_validate_based_tiny },
+ { "near", 0, 0, false, false, false, mep_validate_near_far },
+ { "far", 0, 0, false, false, false, mep_validate_near_far },
+ { "disinterrupt", 0, 0, false, false, false, mep_validate_disinterrupt },
+ { "interrupt", 0, 0, false, false, false, mep_validate_interrupt },
+ { "io", 0, 1, false, false, false, mep_validate_io_cb },
+ { "cb", 0, 1, false, false, false, mep_validate_io_cb },
+ { "vliw", 0, 0, false, true, false, mep_validate_vliw },
+ { NULL, 0, 0, false, false, false, NULL }
+};
+
+static bool
+mep_function_attribute_inlinable_p (const_tree callee)
+{
+ tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (callee));
+ if (!attrs) attrs = DECL_ATTRIBUTES (callee);
+ return (lookup_attribute ("disinterrupt", attrs) == 0
+ && lookup_attribute ("interrupt", attrs) == 0);
+}
+
+static bool
+mep_can_inline_p (tree caller, tree callee)
+{
+ if (TREE_CODE (callee) == ADDR_EXPR)
+ callee = TREE_OPERAND (callee, 0);
+
+ if (!mep_vliw_function_p (caller)
+ && mep_vliw_function_p (callee))
+ {
+ return false;
+ }
+ return true;
+}
+
+#define FUNC_CALL 1
+#define FUNC_DISINTERRUPT 2
+
+
+struct GTY(()) pragma_entry {
+ int used;
+ int flag;
+ const char *funcname;
+};
+typedef struct pragma_entry pragma_entry;
+
+/* Hash table of farcall-tagged sections. */
+static GTY((param_is (pragma_entry))) htab_t pragma_htab;
+
+static int
+pragma_entry_eq (const void *p1, const void *p2)
+{
+ const pragma_entry *old = (const pragma_entry *) p1;
+ const char *new_name = (const char *) p2;
+
+ return strcmp (old->funcname, new_name) == 0;
+}
+
+static hashval_t
+pragma_entry_hash (const void *p)
+{
+ const pragma_entry *old = (const pragma_entry *) p;
+ return htab_hash_string (old->funcname);
+}
+
+static void
+mep_note_pragma_flag (const char *funcname, int flag)
+{
+ pragma_entry **slot;
+
+ if (!pragma_htab)
+ pragma_htab = htab_create_ggc (31, pragma_entry_hash,
+ pragma_entry_eq, NULL);
+
+ slot = (pragma_entry **)
+ htab_find_slot_with_hash (pragma_htab, funcname,
+ htab_hash_string (funcname), INSERT);
+
+ if (!*slot)
+ {
+ *slot = ggc_alloc_pragma_entry ();
+ (*slot)->flag = 0;
+ (*slot)->used = 0;
+ (*slot)->funcname = ggc_strdup (funcname);
+ }
+ (*slot)->flag |= flag;
+}
+
+static bool
+mep_lookup_pragma_flag (const char *funcname, int flag)
+{
+ pragma_entry **slot;
+
+ if (!pragma_htab)
+ return false;
+
+ if (funcname[0] == '@' && funcname[2] == '.')
+ funcname += 3;
+
+ slot = (pragma_entry **)
+ htab_find_slot_with_hash (pragma_htab, funcname,
+ htab_hash_string (funcname), NO_INSERT);
+ if (slot && *slot && ((*slot)->flag & flag))
+ {
+ (*slot)->used |= flag;
+ return true;
+ }
+ return false;
+}
+
+bool
+mep_lookup_pragma_call (const char *funcname)
+{
+ return mep_lookup_pragma_flag (funcname, FUNC_CALL);
+}
+
+void
+mep_note_pragma_call (const char *funcname)
+{
+ mep_note_pragma_flag (funcname, FUNC_CALL);
+}
+
+bool
+mep_lookup_pragma_disinterrupt (const char *funcname)
+{
+ return mep_lookup_pragma_flag (funcname, FUNC_DISINTERRUPT);
+}
+
+void
+mep_note_pragma_disinterrupt (const char *funcname)
+{
+ mep_note_pragma_flag (funcname, FUNC_DISINTERRUPT);
+}
+
+static int
+note_unused_pragma_disinterrupt (void **slot, void *data ATTRIBUTE_UNUSED)
+{
+ const pragma_entry *d = (const pragma_entry *)(*slot);
+
+ if ((d->flag & FUNC_DISINTERRUPT)
+ && !(d->used & FUNC_DISINTERRUPT))
+ warning (0, "\"#pragma disinterrupt %s\" not used", d->funcname);
+ return 1;
+}
+
+void
+mep_file_cleanups (void)
+{
+ if (pragma_htab)
+ htab_traverse (pragma_htab, note_unused_pragma_disinterrupt, NULL);
+}
+
+/* These three functions provide a bridge between the pramgas that
+ affect register classes, and the functions that maintain them. We
+ can't call those functions directly as pragma handling is part of
+ the front end and doesn't have direct access to them. */
+
+void
+mep_save_register_info (void)
+{
+ save_register_info ();
+}
+
+void
+mep_reinit_regs (void)
+{
+ reinit_regs ();
+}
+
+void
+mep_init_regs (void)
+{
+ init_regs ();
+}
+
+
+
+static int
+mep_attrlist_to_encoding (tree list, tree decl)
+{
+ if (mep_multiple_address_regions (list, false) > 1)
+ {
+ warning (0, "duplicate address region attribute %qE in declaration of %qE on line %d",
+ TREE_PURPOSE (TREE_CHAIN (list)),
+ DECL_NAME (decl),
+ DECL_SOURCE_LINE (decl));
+ TREE_CHAIN (list) = NULL_TREE;
+ }
+
+ while (list)
+ {
+ if (is_attribute_p ("based", TREE_PURPOSE (list)))
+ return 'b';
+ if (is_attribute_p ("tiny", TREE_PURPOSE (list)))
+ return 't';
+ if (is_attribute_p ("near", TREE_PURPOSE (list)))
+ return 'n';
+ if (is_attribute_p ("far", TREE_PURPOSE (list)))
+ return 'f';
+ if (is_attribute_p ("io", TREE_PURPOSE (list)))
+ {
+ if (TREE_VALUE (list)
+ && TREE_VALUE (TREE_VALUE (list))
+ && TREE_CODE (TREE_VALUE (TREE_VALUE (list))) == INTEGER_CST)
+ {
+ int location = TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE(list)));
+ if (location >= 0
+ && location <= 0x1000000)
+ return 'i';
+ }
+ return 'I';
+ }
+ if (is_attribute_p ("cb", TREE_PURPOSE (list)))
+ return 'c';
+ list = TREE_CHAIN (list);
+ }
+ if (TARGET_TF
+ && TREE_CODE (decl) == FUNCTION_DECL
+ && DECL_SECTION_NAME (decl) == 0)
+ return 'f';
+ return 0;
+}
+
+static int
+mep_comp_type_attributes (const_tree t1, const_tree t2)
+{
+ int vliw1, vliw2;
+
+ vliw1 = (lookup_attribute ("vliw", TYPE_ATTRIBUTES (t1)) != 0);
+ vliw2 = (lookup_attribute ("vliw", TYPE_ATTRIBUTES (t2)) != 0);
+
+ if (vliw1 != vliw2)
+ return 0;
+
+ return 1;
+}
+
+static void
+mep_insert_attributes (tree decl, tree *attributes)
+{
+ int size;
+ const char *secname = 0;
+ tree attrib, attrlist;
+ char encoding;
+
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ const char *funcname = IDENTIFIER_POINTER (DECL_NAME (decl));
+
+ if (mep_lookup_pragma_disinterrupt (funcname))
+ {
+ attrib = build_tree_list (get_identifier ("disinterrupt"), NULL_TREE);
+ *attributes = chainon (*attributes, attrib);
+ }
+ }
+
+ if (TREE_CODE (decl) != VAR_DECL
+ || ! (TREE_PUBLIC (decl) || TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
+ return;
+
+ if (TREE_READONLY (decl) && TARGET_DC)
+ /* -mdc means that const variables default to the near section,
+ regardless of the size cutoff. */
+ return;
+
+ /* User specified an attribute, so override the default.
+ Ignore storage attribute of pointed to variable. char __far * x; */
+ if (! (TREE_TYPE (decl) && TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE))
+ {
+ if (TYPE_P (decl) && TYPE_ATTRIBUTES (decl) && *attributes)
+ TYPE_ATTRIBUTES (decl) = NULL_TREE;
+ else if (DECL_ATTRIBUTES (decl) && *attributes)
+ DECL_ATTRIBUTES (decl) = NULL_TREE;
+ }
+
+ attrlist = *attributes ? *attributes : DECL_ATTRIBUTES (decl);
+ encoding = mep_attrlist_to_encoding (attrlist, decl);
+ if (!encoding && TYPE_P (TREE_TYPE (decl)))
+ {
+ attrlist = TYPE_ATTRIBUTES (TREE_TYPE (decl));
+ encoding = mep_attrlist_to_encoding (attrlist, decl);
+ }
+ if (encoding)
+ {
+ /* This means that the declaration has a specific section
+ attribute, so we should not apply the default rules. */
+
+ if (encoding == 'i' || encoding == 'I')
+ {
+ tree attr = lookup_attribute ("io", attrlist);
+ if (attr
+ && TREE_VALUE (attr)
+ && TREE_VALUE (TREE_VALUE(attr)))
+ {
+ int location = TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE(attr)));
+ static tree previous_value = 0;
+ static int previous_location = 0;
+ static tree previous_name = 0;
+
+ /* We take advantage of the fact that gcc will reuse the
+ same tree pointer when applying an attribute to a
+ list of decls, but produce a new tree for attributes
+ on separate source lines, even when they're textually
+ identical. This is the behavior we want. */
+ if (TREE_VALUE (attr) == previous_value
+ && location == previous_location)
+ {
+ warning(0, "__io address 0x%x is the same for %qE and %qE",
+ location, previous_name, DECL_NAME (decl));
+ }
+ previous_name = DECL_NAME (decl);
+ previous_location = location;
+ previous_value = TREE_VALUE (attr);
+ }
+ }
+ return;
+ }
+
+
+ /* Declarations of arrays can change size. Don't trust them. */
+ if (TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE)
+ size = 0;
+ else
+ size = int_size_in_bytes (TREE_TYPE (decl));
+
+ if (TARGET_RAND_TPGP && size <= 4 && size > 0)
+ {
+ if (TREE_PUBLIC (decl)
+ || DECL_EXTERNAL (decl)
+ || TREE_STATIC (decl))
+ {
+ const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
+ int key = 0;
+
+ while (*name)
+ key += *name++;
+
+ switch (key & 3)
+ {
+ case 0:
+ secname = "based";
+ break;
+ case 1:
+ secname = "tiny";
+ break;
+ case 2:
+ secname = "far";
+ break;
+ default:
+ ;
+ }
+ }
+ }
+ else
+ {
+ if (size <= mep_based_cutoff && size > 0)
+ secname = "based";
+ else if (size <= mep_tiny_cutoff && size > 0)
+ secname = "tiny";
+ else if (TARGET_L)
+ secname = "far";
+ }
+
+ if (mep_const_section && TREE_READONLY (decl))
+ {
+ if (strcmp (mep_const_section, "tiny") == 0)
+ secname = "tiny";
+ else if (strcmp (mep_const_section, "near") == 0)
+ return;
+ else if (strcmp (mep_const_section, "far") == 0)
+ secname = "far";
+ }
+
+ if (!secname)
+ return;
+
+ if (!mep_multiple_address_regions (*attributes, true)
+ && !mep_multiple_address_regions (DECL_ATTRIBUTES (decl), false))
+ {
+ attrib = build_tree_list (get_identifier (secname), NULL_TREE);
+
+ /* Chain the attribute directly onto the variable's DECL_ATTRIBUTES
+ in order to avoid the POINTER_TYPE bypasses in mep_validate_near_far
+ and mep_validate_based_tiny. */
+ DECL_ATTRIBUTES (decl) = chainon (DECL_ATTRIBUTES (decl), attrib);
+ }
+}
+
+static void
+mep_encode_section_info (tree decl, rtx rtl, int first)
+{
+ rtx rtlname;
+ const char *oldname;
+ const char *secname;
+ char encoding;
+ char *newname;
+ tree idp;
+ int maxsize;
+ tree type;
+ tree mep_attributes;
+
+ if (! first)
+ return;
+
+ if (TREE_CODE (decl) != VAR_DECL
+ && TREE_CODE (decl) != FUNCTION_DECL)
+ return;
+
+ rtlname = XEXP (rtl, 0);
+ if (GET_CODE (rtlname) == SYMBOL_REF)
+ oldname = XSTR (rtlname, 0);
+ else if (GET_CODE (rtlname) == MEM
+ && GET_CODE (XEXP (rtlname, 0)) == SYMBOL_REF)
+ oldname = XSTR (XEXP (rtlname, 0), 0);
+ else
+ gcc_unreachable ();
+
+ type = TREE_TYPE (decl);
+ if (type == error_mark_node)
+ return;
+ mep_attributes = MEP_ATTRIBUTES (decl);
+
+ encoding = mep_attrlist_to_encoding (mep_attributes, decl);
+
+ if (encoding)
+ {
+ newname = (char *) alloca (strlen (oldname) + 4);
+ sprintf (newname, "@%c.%s", encoding, oldname);
+ idp = get_identifier (newname);
+ XEXP (rtl, 0) =
+ gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp));
+ SYMBOL_REF_WEAK (XEXP (rtl, 0)) = DECL_WEAK (decl);
+ SET_SYMBOL_REF_DECL (XEXP (rtl, 0), decl);
+
+ switch (encoding)
+ {
+ case 'b':
+ maxsize = 128;
+ secname = "based";
+ break;
+ case 't':
+ maxsize = 65536;
+ secname = "tiny";
+ break;
+ case 'n':
+ maxsize = 0x1000000;
+ secname = "near";
+ break;
+ default:
+ maxsize = 0;
+ secname = 0;
+ break;
+ }
+ if (maxsize && int_size_in_bytes (TREE_TYPE (decl)) > maxsize)
+ {
+ warning (0, "variable %s (%ld bytes) is too large for the %s section (%d bytes)",
+ oldname,
+ (long) int_size_in_bytes (TREE_TYPE (decl)),
+ secname,
+ maxsize);
+ }
+ }
+}
+
+const char *
+mep_strip_name_encoding (const char *sym)
+{
+ while (1)
+ {
+ if (*sym == '*')
+ sym++;
+ else if (*sym == '@' && sym[2] == '.')
+ sym += 3;
+ else
+ return sym;
+ }
+}
+
+static section *
+mep_select_section (tree decl, int reloc ATTRIBUTE_UNUSED,
+ unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED)
+{
+ int readonly = 1;
+ int encoding;
+
+ switch (TREE_CODE (decl))
+ {
+ case VAR_DECL:
+ if (!TREE_READONLY (decl)
+ || TREE_SIDE_EFFECTS (decl)
+ || !DECL_INITIAL (decl)
+ || (DECL_INITIAL (decl) != error_mark_node
+ && !TREE_CONSTANT (DECL_INITIAL (decl))))
+ readonly = 0;
+ break;
+ case CONSTRUCTOR:
+ if (! TREE_CONSTANT (decl))
+ readonly = 0;
+ break;
+
+ default:
+ break;
+ }
+
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+
+ if (name[0] == '@' && name[2] == '.')
+ encoding = name[1];
+ else
+ encoding = 0;
+
+ if (flag_function_sections || DECL_ONE_ONLY (decl))
+ mep_unique_section (decl, 0);
+ else if (lookup_attribute ("vliw", TYPE_ATTRIBUTES (TREE_TYPE (decl))))
+ {
+ if (encoding == 'f')
+ return vftext_section;
+ else
+ return vtext_section;
+ }
+ else if (encoding == 'f')
+ return ftext_section;
+ else
+ return text_section;
+ }
+
+ if (TREE_CODE (decl) == VAR_DECL)
+ {
+ const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+
+ if (name[0] == '@' && name[2] == '.')
+ switch (name[1])
+ {
+ case 'b':
+ return based_section;
+
+ case 't':
+ if (readonly)
+ return srodata_section;
+ if (DECL_INITIAL (decl))
+ return sdata_section;
+ return tinybss_section;
+
+ case 'f':
+ if (readonly)
+ return frodata_section;
+ return far_section;
+
+ case 'i':
+ case 'I':
+ error_at (DECL_SOURCE_LOCATION (decl),
+ "variable %D of type %<io%> must be uninitialized", decl);
+ return data_section;
+
+ case 'c':
+ error_at (DECL_SOURCE_LOCATION (decl),
+ "variable %D of type %<cb%> must be uninitialized", decl);
+ return data_section;
+ }
+ }
+
+ if (readonly)
+ return readonly_data_section;
+
+ return data_section;
+}
+
+static void
+mep_unique_section (tree decl, int reloc)
+{
+ static const char *prefixes[][2] =
+ {
+ { ".text.", ".gnu.linkonce.t." },
+ { ".rodata.", ".gnu.linkonce.r." },
+ { ".data.", ".gnu.linkonce.d." },
+ { ".based.", ".gnu.linkonce.based." },
+ { ".sdata.", ".gnu.linkonce.s." },
+ { ".far.", ".gnu.linkonce.far." },
+ { ".ftext.", ".gnu.linkonce.ft." },
+ { ".frodata.", ".gnu.linkonce.frd." },
+ { ".srodata.", ".gnu.linkonce.srd." },
+ { ".vtext.", ".gnu.linkonce.v." },
+ { ".vftext.", ".gnu.linkonce.vf." }
+ };
+ int sec = 2; /* .data */
+ int len;
+ const char *name, *prefix;
+ char *string;
+
+ name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+ if (DECL_RTL (decl))
+ name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ if (lookup_attribute ("vliw", TYPE_ATTRIBUTES (TREE_TYPE (decl))))
+ sec = 9; /* .vtext */
+ else
+ sec = 0; /* .text */
+ }
+ else if (decl_readonly_section (decl, reloc))
+ sec = 1; /* .rodata */
+
+ if (name[0] == '@' && name[2] == '.')
+ {
+ switch (name[1])
+ {
+ case 'b':
+ sec = 3; /* .based */
+ break;
+ case 't':
+ if (sec == 1)
+ sec = 8; /* .srodata */
+ else
+ sec = 4; /* .sdata */
+ break;
+ case 'f':
+ if (sec == 0)
+ sec = 6; /* .ftext */
+ else if (sec == 9)
+ sec = 10; /* .vftext */
+ else if (sec == 1)
+ sec = 7; /* .frodata */
+ else
+ sec = 5; /* .far. */
+ break;
+ }
+ name += 3;
+ }
+
+ prefix = prefixes[sec][DECL_ONE_ONLY(decl)];
+ len = strlen (name) + strlen (prefix);
+ string = (char *) alloca (len + 1);
+
+ sprintf (string, "%s%s", prefix, name);
+
+ DECL_SECTION_NAME (decl) = build_string (len, string);
+}
+
+/* Given a decl, a section name, and whether the decl initializer
+ has relocs, choose attributes for the section. */
+
+#define SECTION_MEP_VLIW SECTION_MACH_DEP
+
+static unsigned int
+mep_section_type_flags (tree decl, const char *name, int reloc)
+{
+ unsigned int flags = default_section_type_flags (decl, name, reloc);
+
+ if (decl && TREE_CODE (decl) == FUNCTION_DECL
+ && lookup_attribute ("vliw", TYPE_ATTRIBUTES (TREE_TYPE (decl))))
+ flags |= SECTION_MEP_VLIW;
+
+ return flags;
+}
+
+/* Switch to an arbitrary section NAME with attributes as specified
+ by FLAGS. ALIGN specifies any known alignment requirements for
+ the section; 0 if the default should be used.
+
+ Differs from the standard ELF version only in support of VLIW mode. */
+
+static void
+mep_asm_named_section (const char *name, unsigned int flags, tree decl ATTRIBUTE_UNUSED)
+{
+ char flagchars[8], *f = flagchars;
+ const char *type;
+
+ if (!(flags & SECTION_DEBUG))
+ *f++ = 'a';
+ if (flags & SECTION_WRITE)
+ *f++ = 'w';
+ if (flags & SECTION_CODE)
+ *f++ = 'x';
+ if (flags & SECTION_SMALL)
+ *f++ = 's';
+ if (flags & SECTION_MEP_VLIW)
+ *f++ = 'v';
+ *f = '\0';
+
+ if (flags & SECTION_BSS)
+ type = "nobits";
+ else
+ type = "progbits";
+
+ fprintf (asm_out_file, "\t.section\t%s,\"%s\",@%s\n",
+ name, flagchars, type);
+
+ if (flags & SECTION_CODE)
+ fputs ((flags & SECTION_MEP_VLIW ? "\t.vliw\n" : "\t.core\n"),
+ asm_out_file);
+}
+
+void
+mep_output_aligned_common (FILE *stream, tree decl, const char *name,
+ int size, int align, int global)
+{
+ /* We intentionally don't use mep_section_tag() here. */
+ if (name[0] == '@'
+ && (name[1] == 'i' || name[1] == 'I' || name[1] == 'c')
+ && name[2] == '.')
+ {
+ int location = -1;
+ tree attr = lookup_attribute ((name[1] == 'c' ? "cb" : "io"),
+ DECL_ATTRIBUTES (decl));
+ if (attr
+ && TREE_VALUE (attr)
+ && TREE_VALUE (TREE_VALUE(attr)))
+ location = TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE(attr)));
+ if (location == -1)
+ return;
+ if (global)
+ {
+ fprintf (stream, "\t.globl\t");
+ assemble_name (stream, name);
+ fprintf (stream, "\n");
+ }
+ assemble_name (stream, name);
+ fprintf (stream, " = %d\n", location);
+ return;
+ }
+ if (name[0] == '@' && name[2] == '.')
+ {
+ const char *sec = 0;
+ switch (name[1])
+ {
+ case 'b':
+ switch_to_section (based_section);
+ sec = ".based";
+ break;
+ case 't':
+ switch_to_section (tinybss_section);
+ sec = ".sbss";
+ break;
+ case 'f':
+ switch_to_section (farbss_section);
+ sec = ".farbss";
+ break;
+ }
+ if (sec)
+ {
+ const char *name2;
+ int p2align = 0;
+
+ while (align > BITS_PER_UNIT)
+ {
+ align /= 2;
+ p2align ++;
+ }
+ name2 = targetm.strip_name_encoding (name);
+ if (global)
+ fprintf (stream, "\t.globl\t%s\n", name2);
+ fprintf (stream, "\t.p2align %d\n", p2align);
+ fprintf (stream, "\t.type\t%s,@object\n", name2);
+ fprintf (stream, "\t.size\t%s,%d\n", name2, size);
+ fprintf (stream, "%s:\n\t.zero\t%d\n", name2, size);
+ return;
+ }
+ }
+
+ if (!global)
+ {
+ fprintf (stream, "\t.local\t");
+ assemble_name (stream, name);
+ fprintf (stream, "\n");
+ }
+ fprintf (stream, "\t.comm\t");
+ assemble_name (stream, name);
+ fprintf (stream, ",%u,%u\n", size, align / BITS_PER_UNIT);
+}
+
+/* Trampolines. */
+
+static void
+mep_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain)
+{
+ rtx addr = XEXP (m_tramp, 0);
+ rtx fnaddr = XEXP (DECL_RTL (fndecl), 0);
+
+ emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__mep_trampoline_helper"),
+ LCT_NORMAL, VOIDmode, 3,
+ addr, Pmode,
+ fnaddr, Pmode,
+ static_chain, Pmode);
+}
+
+/* Experimental Reorg. */
+
+static bool
+mep_mentioned_p (rtx in,
+ rtx reg, /* NULL for mem */
+ int modes_too) /* if nonzero, modes must match also. */
+{
+ const char *fmt;
+ int i;
+ enum rtx_code code;
+
+ if (in == 0)
+ return false;
+ if (reg && GET_CODE (reg) != REG)
+ return false;
+
+ if (GET_CODE (in) == LABEL_REF)
+ return (reg == 0);
+
+ code = GET_CODE (in);
+
+ switch (code)
+ {
+ case MEM:
+ if (reg)
+ return mep_mentioned_p (XEXP (in, 0), reg, modes_too);
+ return true;
+
+ case REG:
+ if (!reg)
+ return false;
+ if (modes_too && (GET_MODE (in) != GET_MODE (reg)))
+ return false;
+ return (REGNO (in) == REGNO (reg));
+
+ case SCRATCH:
+ case CC0:
+ case PC:
+ case CONST_INT:
+ case CONST_DOUBLE:
+ return false;
+
+ default:
+ break;
+ }
+
+ /* Set's source should be read-only. */
+ if (code == SET && !reg)
+ return mep_mentioned_p (SET_DEST (in), reg, modes_too);
+
+ fmt = GET_RTX_FORMAT (code);
+
+ for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
+ {
+ if (fmt[i] == 'E')
+ {
+ register int j;
+ for (j = XVECLEN (in, i) - 1; j >= 0; j--)
+ if (mep_mentioned_p (XVECEXP (in, i, j), reg, modes_too))
+ return true;
+ }
+ else if (fmt[i] == 'e'
+ && mep_mentioned_p (XEXP (in, i), reg, modes_too))
+ return true;
+ }
+ return false;
+}
+
+#define EXPERIMENTAL_REGMOVE_REORG 1
+
+#if EXPERIMENTAL_REGMOVE_REORG
+
+static int
+mep_compatible_reg_class (int r1, int r2)
+{
+ if (GR_REGNO_P (r1) && GR_REGNO_P (r2))
+ return 1;
+ if (CR_REGNO_P (r1) && CR_REGNO_P (r2))
+ return 1;
+ return 0;
+}
+
+static void
+mep_reorg_regmove (rtx insns)
+{
+ rtx insn, next, pat, follow, *where;
+ int count = 0, done = 0, replace, before = 0;
+
+ if (dump_file)
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
+ if (GET_CODE (insn) == INSN)
+ before++;
+
+ /* We're looking for (set r2 r1) moves where r1 dies, followed by a
+ set that uses the r2 and r2 dies there. We replace r2 with r1
+ and see if it's still a valid insn. If so, delete the first set.
+ Copied from reorg.c. */
+
+ while (!done)
+ {
+ done = 1;
+ for (insn = insns; insn; insn = next)
+ {
+ next = NEXT_INSN (insn);
+ if (GET_CODE (insn) != INSN)
+ continue;
+ pat = PATTERN (insn);
+
+ replace = 0;
+
+ if (GET_CODE (pat) == SET
+ && GET_CODE (SET_SRC (pat)) == REG
+ && GET_CODE (SET_DEST (pat)) == REG
+ && find_regno_note (insn, REG_DEAD, REGNO (SET_SRC (pat)))
+ && mep_compatible_reg_class (REGNO (SET_SRC (pat)), REGNO (SET_DEST (pat))))
+ {
+ follow = next_nonnote_insn (insn);
+ if (dump_file)
+ fprintf (dump_file, "superfluous moves: considering %d\n", INSN_UID (insn));
+
+ while (follow && GET_CODE (follow) == INSN
+ && GET_CODE (PATTERN (follow)) == SET
+ && !dead_or_set_p (follow, SET_SRC (pat))
+ && !mep_mentioned_p (PATTERN (follow), SET_SRC (pat), 0)
+ && !mep_mentioned_p (PATTERN (follow), SET_DEST (pat), 0))
+ {
+ if (dump_file)
+ fprintf (dump_file, "\tskipping %d\n", INSN_UID (follow));
+ follow = next_nonnote_insn (follow);
+ }
+
+ if (dump_file)
+ fprintf (dump_file, "\tfollow is %d\n", INSN_UID (follow));
+ if (follow && GET_CODE (follow) == INSN
+ && GET_CODE (PATTERN (follow)) == SET
+ && find_regno_note (follow, REG_DEAD, REGNO (SET_DEST (pat))))
+ {
+ if (GET_CODE (SET_DEST (PATTERN (follow))) == REG)
+ {
+ if (mep_mentioned_p (SET_SRC (PATTERN (follow)), SET_DEST (pat), 1))
+ {
+ replace = 1;
+ where = & SET_SRC (PATTERN (follow));
+ }
+ }
+ else if (GET_CODE (SET_DEST (PATTERN (follow))) == MEM)
+ {
+ if (mep_mentioned_p (PATTERN (follow), SET_DEST (pat), 1))
+ {
+ replace = 1;
+ where = & PATTERN (follow);
+ }
+ }
+ }
+ }
+
+ /* If so, follow is the corresponding insn */
+ if (replace)
+ {
+ if (dump_file)
+ {
+ rtx x;
+
+ fprintf (dump_file, "----- Candidate for superfluous move deletion:\n\n");
+ for (x = insn; x ;x = NEXT_INSN (x))
+ {
+ print_rtl_single (dump_file, x);
+ if (x == follow)
+ break;
+ fprintf (dump_file, "\n");
+ }
+ }
+
+ if (validate_replace_rtx_subexp (SET_DEST (pat), SET_SRC (pat),
+ follow, where))
+ {
+ count ++;
+ next = delete_insn (insn);
+ if (dump_file)
+ {
+ fprintf (dump_file, "\n----- Success! new insn:\n\n");
+ print_rtl_single (dump_file, follow);
+ }
+ done = 0;
+ }
+ }
+ }
+ }
+
+ if (dump_file)
+ {
+ fprintf (dump_file, "\n%d insn%s deleted out of %d.\n\n", count, count == 1 ? "" : "s", before);
+ fprintf (dump_file, "=====\n");
+ }
+}
+#endif
+
+
+/* Figure out where to put LABEL, which is the label for a repeat loop.
+ If INCLUDING, LAST_INSN is the last instruction in the loop, otherwise
+ the loop ends just before LAST_INSN. If SHARED, insns other than the
+ "repeat" might use LABEL to jump to the loop's continuation point.
+
+ Return the last instruction in the adjusted loop. */
+
+static rtx
+mep_insert_repeat_label_last (rtx last_insn, rtx label, bool including,
+ bool shared)
+{
+ rtx next, prev;
+ int count = 0, code, icode;
+
+ if (dump_file)
+ fprintf (dump_file, "considering end of repeat loop at insn %d\n",
+ INSN_UID (last_insn));
+
+ /* Set PREV to the last insn in the loop. */
+ prev = last_insn;
+ if (!including)
+ prev = PREV_INSN (prev);
+
+ /* Set NEXT to the next insn after the repeat label. */
+ next = last_insn;
+ if (!shared)
+ while (prev != 0)
+ {
+ code = GET_CODE (prev);
+ if (code == CALL_INSN || code == CODE_LABEL || code == BARRIER)
+ break;
+
+ if (INSN_P (prev))
+ {
+ if (GET_CODE (PATTERN (prev)) == SEQUENCE)
+ prev = XVECEXP (PATTERN (prev), 0, 1);
+
+ /* Other insns that should not be in the last two opcodes. */
+ icode = recog_memoized (prev);
+ if (icode < 0
+ || icode == CODE_FOR_repeat
+ || icode == CODE_FOR_erepeat
+ || get_attr_may_trap (prev) == MAY_TRAP_YES)
+ break;
+
+ /* That leaves JUMP_INSN and INSN. It will have BImode if it
+ is the second instruction in a VLIW bundle. In that case,
+ loop again: if the first instruction also satisfies the
+ conditions above then we will reach here again and put
+ both of them into the repeat epilogue. Otherwise both
+ should remain outside. */
+ if (GET_MODE (prev) != BImode)
+ {
+ count++;
+ next = prev;
+ if (dump_file)
+ print_rtl_single (dump_file, next);
+ if (count == 2)
+ break;
+ }
+ }
+ prev = PREV_INSN (prev);
+ }
+
+ /* See if we're adding the label immediately after the repeat insn.
+ If so, we need to separate them with a nop. */
+ prev = prev_real_insn (next);
+ if (prev)
+ switch (recog_memoized (prev))
+ {
+ case CODE_FOR_repeat:
+ case CODE_FOR_erepeat:
+ if (dump_file)
+ fprintf (dump_file, "Adding nop inside loop\n");
+ emit_insn_before (gen_nop (), next);
+ break;
+
+ default:
+ break;
+ }
+
+ /* Insert the label. */
+ emit_label_before (label, next);
+
+ /* Insert the nops. */
+ if (dump_file && count < 2)
+ fprintf (dump_file, "Adding %d nop%s\n\n",
+ 2 - count, count == 1 ? "" : "s");
+
+ for (; count < 2; count++)
+ if (including)
+ last_insn = emit_insn_after (gen_nop (), last_insn);
+ else
+ emit_insn_before (gen_nop (), last_insn);
+
+ return last_insn;
+}
+
+
+void
+mep_emit_doloop (rtx *operands, int is_end)
+{
+ rtx tag;
+
+ if (cfun->machine->doloop_tags == 0
+ || cfun->machine->doloop_tag_from_end == is_end)
+ {
+ cfun->machine->doloop_tags++;
+ cfun->machine->doloop_tag_from_end = is_end;
+ }
+
+ tag = GEN_INT (cfun->machine->doloop_tags - 1);
+ if (is_end)
+ emit_jump_insn (gen_doloop_end_internal (operands[0], operands[4], tag));
+ else
+ emit_insn (gen_doloop_begin_internal (operands[0], operands[0], tag));
+}
+
+
+/* Code for converting doloop_begins and doloop_ends into valid
+ MeP instructions. A doloop_begin is just a placeholder:
+
+ $count = unspec ($count)
+
+ where $count is initially the number of iterations - 1.
+ doloop_end has the form:
+
+ if ($count-- == 0) goto label
+
+ The counter variable is private to the doloop insns, nothing else
+ relies on its value.
+
+ There are three cases, in decreasing order of preference:
+
+ 1. A loop has exactly one doloop_begin and one doloop_end.
+ The doloop_end branches to the first instruction after
+ the doloop_begin.
+
+ In this case we can replace the doloop_begin with a repeat
+ instruction and remove the doloop_end. I.e.:
+
+ $count1 = unspec ($count1)
+ label:
+ ...
+ insn1
+ insn2
+ if ($count2-- == 0) goto label
+
+ becomes:
+
+ repeat $count1,repeat_label
+ label:
+ ...
+ repeat_label:
+ insn1
+ insn2
+ # end repeat
+
+ 2. As for (1), except there are several doloop_ends. One of them
+ (call it X) falls through to a label L. All the others fall
+ through to branches to L.
+
+ In this case, we remove X and replace the other doloop_ends
+ with branches to the repeat label. For example:
+
+ $count1 = unspec ($count1)
+ start:
+ ...
+ if ($count2-- == 0) goto label
+ end:
+ ...
+ if ($count3-- == 0) goto label
+ goto end
+
+ becomes:
+
+ repeat $count1,repeat_label
+ start:
+ ...
+ repeat_label:
+ nop
+ nop
+ # end repeat
+ end:
+ ...
+ goto repeat_label
+
+ 3. The fallback case. Replace doloop_begins with:
+
+ $count = $count + 1
+
+ Replace doloop_ends with the equivalent of:
+
+ $count = $count - 1
+ if ($count == 0) goto label
+
+ Note that this might need a scratch register if $count
+ is stored in memory. */
+
+/* A structure describing one doloop_begin. */
+struct mep_doloop_begin {
+ /* The next doloop_begin with the same tag. */
+ struct mep_doloop_begin *next;
+
+ /* The instruction itself. */
+ rtx insn;
+
+ /* The initial counter value. This is known to be a general register. */
+ rtx counter;
+};
+
+/* A structure describing a doloop_end. */
+struct mep_doloop_end {
+ /* The next doloop_end with the same loop tag. */
+ struct mep_doloop_end *next;
+
+ /* The instruction itself. */
+ rtx insn;
+
+ /* The first instruction after INSN when the branch isn't taken. */
+ rtx fallthrough;
+
+ /* The location of the counter value. Since doloop_end_internal is a
+ jump instruction, it has to allow the counter to be stored anywhere
+ (any non-fixed register or memory location). */
+ rtx counter;
+
+ /* The target label (the place where the insn branches when the counter
+ isn't zero). */
+ rtx label;
+
+ /* A scratch register. Only available when COUNTER isn't stored
+ in a general register. */
+ rtx scratch;
+};
+
+
+/* One do-while loop. */
+struct mep_doloop {
+ /* All the doloop_begins for this loop (in no particular order). */
+ struct mep_doloop_begin *begin;
+
+ /* All the doloop_ends. When there is more than one, arrange things
+ so that the first one is the most likely to be X in case (2) above. */
+ struct mep_doloop_end *end;
+};
+
+
+/* Return true if LOOP can be converted into repeat/repeat_end form
+ (that is, if it matches cases (1) or (2) above). */
+
+static bool
+mep_repeat_loop_p (struct mep_doloop *loop)
+{
+ struct mep_doloop_end *end;
+ rtx fallthrough;
+
+ /* There must be exactly one doloop_begin and at least one doloop_end. */
+ if (loop->begin == 0 || loop->end == 0 || loop->begin->next != 0)
+ return false;
+
+ /* The first doloop_end (X) must branch back to the insn after
+ the doloop_begin. */
+ if (prev_real_insn (loop->end->label) != loop->begin->insn)
+ return false;
+
+ /* All the other doloop_ends must branch to the same place as X.
+ When the branch isn't taken, they must jump to the instruction
+ after X. */
+ fallthrough = loop->end->fallthrough;
+ for (end = loop->end->next; end != 0; end = end->next)
+ if (end->label != loop->end->label
+ || !simplejump_p (end->fallthrough)
+ || next_real_insn (JUMP_LABEL (end->fallthrough)) != fallthrough)
+ return false;
+
+ return true;
+}
+
+
+/* The main repeat reorg function. See comment above for details. */
+
+static void
+mep_reorg_repeat (rtx insns)
+{
+ rtx insn;
+ struct mep_doloop *loops, *loop;
+ struct mep_doloop_begin *begin;
+ struct mep_doloop_end *end;
+
+ /* Quick exit if we haven't created any loops. */
+ if (cfun->machine->doloop_tags == 0)
+ return;
+
+ /* Create an array of mep_doloop structures. */
+ loops = (struct mep_doloop *) alloca (sizeof (loops[0]) * cfun->machine->doloop_tags);
+ memset (loops, 0, sizeof (loops[0]) * cfun->machine->doloop_tags);
+
+ /* Search the function for do-while insns and group them by loop tag. */
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
+ if (INSN_P (insn))
+ switch (recog_memoized (insn))
+ {
+ case CODE_FOR_doloop_begin_internal:
+ insn_extract (insn);
+ loop = &loops[INTVAL (recog_data.operand[2])];
+
+ begin = (struct mep_doloop_begin *) alloca (sizeof (struct mep_doloop_begin));
+ begin->next = loop->begin;
+ begin->insn = insn;
+ begin->counter = recog_data.operand[0];
+
+ loop->begin = begin;
+ break;
+
+ case CODE_FOR_doloop_end_internal:
+ insn_extract (insn);
+ loop = &loops[INTVAL (recog_data.operand[2])];
+
+ end = (struct mep_doloop_end *) alloca (sizeof (struct mep_doloop_end));
+ end->insn = insn;
+ end->fallthrough = next_real_insn (insn);
+ end->counter = recog_data.operand[0];
+ end->label = recog_data.operand[1];
+ end->scratch = recog_data.operand[3];
+
+ /* If this insn falls through to an unconditional jump,
+ give it a lower priority than the others. */
+ if (loop->end != 0 && simplejump_p (end->fallthrough))
+ {
+ end->next = loop->end->next;
+ loop->end->next = end;
+ }
+ else
+ {
+ end->next = loop->end;
+ loop->end = end;
+ }
+ break;
+ }
+
+ /* Convert the insns for each loop in turn. */
+ for (loop = loops; loop < loops + cfun->machine->doloop_tags; loop++)
+ if (mep_repeat_loop_p (loop))
+ {
+ /* Case (1) or (2). */
+ rtx repeat_label, label_ref;
+
+ /* Create a new label for the repeat insn. */
+ repeat_label = gen_label_rtx ();
+
+ /* Replace the doloop_begin with a repeat. */
+ label_ref = gen_rtx_LABEL_REF (VOIDmode, repeat_label);
+ emit_insn_before (gen_repeat (loop->begin->counter, label_ref),
+ loop->begin->insn);
+ delete_insn (loop->begin->insn);
+
+ /* Insert the repeat label before the first doloop_end.
+ Fill the gap with nops if there are other doloop_ends. */
+ mep_insert_repeat_label_last (loop->end->insn, repeat_label,
+ false, loop->end->next != 0);
+
+ /* Emit a repeat_end (to improve the readability of the output). */
+ emit_insn_before (gen_repeat_end (), loop->end->insn);
+
+ /* Delete the first doloop_end. */
+ delete_insn (loop->end->insn);
+
+ /* Replace the others with branches to REPEAT_LABEL. */
+ for (end = loop->end->next; end != 0; end = end->next)
+ {
+ emit_jump_insn_before (gen_jump (repeat_label), end->insn);
+ delete_insn (end->insn);
+ delete_insn (end->fallthrough);
+ }
+ }
+ else
+ {
+ /* Case (3). First replace all the doloop_begins with increment
+ instructions. */
+ for (begin = loop->begin; begin != 0; begin = begin->next)
+ {
+ emit_insn_before (gen_add3_insn (copy_rtx (begin->counter),
+ begin->counter, const1_rtx),
+ begin->insn);
+ delete_insn (begin->insn);
+ }
+
+ /* Replace all the doloop_ends with decrement-and-branch sequences. */
+ for (end = loop->end; end != 0; end = end->next)
+ {
+ rtx reg;
+
+ start_sequence ();
+
+ /* Load the counter value into a general register. */
+ reg = end->counter;
+ if (!REG_P (reg) || REGNO (reg) > 15)
+ {
+ reg = end->scratch;
+ emit_move_insn (copy_rtx (reg), copy_rtx (end->counter));
+ }
+
+ /* Decrement the counter. */
+ emit_insn (gen_add3_insn (copy_rtx (reg), copy_rtx (reg),
+ constm1_rtx));
+
+ /* Copy it back to its original location. */
+ if (reg != end->counter)
+ emit_move_insn (copy_rtx (end->counter), copy_rtx (reg));
+
+ /* Jump back to the start label. */
+ insn = emit_jump_insn (gen_mep_bne_true (reg, const0_rtx,
+ end->label));
+ JUMP_LABEL (insn) = end->label;
+ LABEL_NUSES (end->label)++;
+
+ /* Emit the whole sequence before the doloop_end. */
+ insn = get_insns ();
+ end_sequence ();
+ emit_insn_before (insn, end->insn);
+
+ /* Delete the doloop_end. */
+ delete_insn (end->insn);
+ }
+ }
+}
+
+
+static bool
+mep_invertable_branch_p (rtx insn)
+{
+ rtx cond, set;
+ enum rtx_code old_code;
+ int i;
+
+ set = PATTERN (insn);
+ if (GET_CODE (set) != SET)
+ return false;
+ if (GET_CODE (XEXP (set, 1)) != IF_THEN_ELSE)
+ return false;
+ cond = XEXP (XEXP (set, 1), 0);
+ old_code = GET_CODE (cond);
+ switch (old_code)
+ {
+ case EQ:
+ PUT_CODE (cond, NE);
+ break;
+ case NE:
+ PUT_CODE (cond, EQ);
+ break;
+ case LT:
+ PUT_CODE (cond, GE);
+ break;
+ case GE:
+ PUT_CODE (cond, LT);
+ break;
+ default:
+ return false;
+ }
+ INSN_CODE (insn) = -1;
+ i = recog_memoized (insn);
+ PUT_CODE (cond, old_code);
+ INSN_CODE (insn) = -1;
+ return i >= 0;
+}
+
+static void
+mep_invert_branch (rtx insn, rtx after)
+{
+ rtx cond, set, label;
+ int i;
+
+ set = PATTERN (insn);
+
+ gcc_assert (GET_CODE (set) == SET);
+ gcc_assert (GET_CODE (XEXP (set, 1)) == IF_THEN_ELSE);
+
+ cond = XEXP (XEXP (set, 1), 0);
+ switch (GET_CODE (cond))
+ {
+ case EQ:
+ PUT_CODE (cond, NE);
+ break;
+ case NE:
+ PUT_CODE (cond, EQ);
+ break;
+ case LT:
+ PUT_CODE (cond, GE);
+ break;
+ case GE:
+ PUT_CODE (cond, LT);
+ break;
+ default:
+ gcc_unreachable ();
+ }
+ label = gen_label_rtx ();
+ emit_label_after (label, after);
+ for (i=1; i<=2; i++)
+ if (GET_CODE (XEXP (XEXP (set, 1), i)) == LABEL_REF)
+ {
+ rtx ref = XEXP (XEXP (set, 1), i);
+ if (LABEL_NUSES (XEXP (ref, 0)) == 1)
+ delete_insn (XEXP (ref, 0));
+ XEXP (ref, 0) = label;
+ LABEL_NUSES (label) ++;
+ JUMP_LABEL (insn) = label;
+ }
+ INSN_CODE (insn) = -1;
+ i = recog_memoized (insn);
+ gcc_assert (i >= 0);
+}
+
+static void
+mep_reorg_erepeat (rtx insns)
+{
+ rtx insn, prev, l, x;
+ int count;
+
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
+ if (JUMP_P (insn)
+ && ! JUMP_TABLE_DATA_P (insn)
+ && mep_invertable_branch_p (insn))
+ {
+ if (dump_file)
+ {
+ fprintf (dump_file, "\n------------------------------\n");
+ fprintf (dump_file, "erepeat: considering this jump:\n");
+ print_rtl_single (dump_file, insn);
+ }
+ count = simplejump_p (insn) ? 0 : 1;
+ for (prev = PREV_INSN (insn); prev; prev = PREV_INSN (prev))
+ {
+ if (GET_CODE (prev) == CALL_INSN
+ || BARRIER_P (prev))
+ break;
+
+ if (prev == JUMP_LABEL (insn))
+ {
+ rtx newlast;
+ if (dump_file)
+ fprintf (dump_file, "found loop top, %d insns\n", count);
+
+ if (LABEL_NUSES (prev) == 1)
+ /* We're the only user, always safe */ ;
+ else if (LABEL_NUSES (prev) == 2)
+ {
+ /* See if there's a barrier before this label. If
+ so, we know nobody inside the loop uses it.
+ But we must be careful to put the erepeat
+ *after* the label. */
+ rtx barrier;
+ for (barrier = PREV_INSN (prev);
+ barrier && GET_CODE (barrier) == NOTE;
+ barrier = PREV_INSN (barrier))
+ ;
+ if (barrier && GET_CODE (barrier) != BARRIER)
+ break;
+ }
+ else
+ {
+ /* We don't know who else, within or without our loop, uses this */
+ if (dump_file)
+ fprintf (dump_file, "... but there are multiple users, too risky.\n");
+ break;
+ }
+
+ /* Generate a label to be used by the erepat insn. */
+ l = gen_label_rtx ();
+
+ /* Insert the erepeat after INSN's target label. */
+ x = gen_erepeat (gen_rtx_LABEL_REF (VOIDmode, l));
+ LABEL_NUSES (l)++;
+ emit_insn_after (x, prev);
+
+ /* Insert the erepeat label. */
+ newlast = (mep_insert_repeat_label_last
+ (insn, l, !simplejump_p (insn), false));
+ if (simplejump_p (insn))
+ {
+ emit_insn_before (gen_erepeat_end (), insn);
+ delete_insn (insn);
+ }
+ else
+ {
+ mep_invert_branch (insn, newlast);
+ emit_insn_after (gen_erepeat_end (), newlast);
+ }
+ break;
+ }
+
+ if (LABEL_P (prev))
+ {
+ /* A label is OK if there is exactly one user, and we
+ can find that user before the next label. */
+ rtx user = 0;
+ int safe = 0;
+ if (LABEL_NUSES (prev) == 1)
+ {
+ for (user = PREV_INSN (prev);
+ user && (INSN_P (user) || GET_CODE (user) == NOTE);
+ user = PREV_INSN (user))
+ if (GET_CODE (user) == JUMP_INSN
+ && JUMP_LABEL (user) == prev)
+ {
+ safe = INSN_UID (user);
+ break;
+ }
+ }
+ if (!safe)
+ break;
+ if (dump_file)
+ fprintf (dump_file, "... ignoring jump from insn %d to %d\n",
+ safe, INSN_UID (prev));
+ }
+
+ if (INSN_P (prev))
+ {
+ count ++;
+ }
+ }
+ }
+ if (dump_file)
+ fprintf (dump_file, "\n==============================\n");
+}
+
+/* Replace a jump to a return, with a copy of the return. GCC doesn't
+ always do this on its own. */
+
+static void
+mep_jmp_return_reorg (rtx insns)
+{
+ rtx insn, label, ret;
+ int ret_code;
+
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
+ if (simplejump_p (insn))
+ {
+ /* Find the fist real insn the jump jumps to. */
+ label = ret = JUMP_LABEL (insn);
+ while (ret
+ && (GET_CODE (ret) == NOTE
+ || GET_CODE (ret) == CODE_LABEL
+ || GET_CODE (PATTERN (ret)) == USE))
+ ret = NEXT_INSN (ret);
+
+ if (ret)
+ {
+ /* Is it a return? */
+ ret_code = recog_memoized (ret);
+ if (ret_code == CODE_FOR_return_internal
+ || ret_code == CODE_FOR_eh_return_internal)
+ {
+ /* It is. Replace the jump with a return. */
+ LABEL_NUSES (label) --;
+ if (LABEL_NUSES (label) == 0)
+ delete_insn (label);
+ PATTERN (insn) = copy_rtx (PATTERN (ret));
+ INSN_CODE (insn) = -1;
+ }
+ }
+ }
+}
+
+
+static void
+mep_reorg_addcombine (rtx insns)
+{
+ rtx i, n;
+
+ for (i = insns; i; i = NEXT_INSN (i))
+ if (INSN_P (i)
+ && INSN_CODE (i) == CODE_FOR_addsi3
+ && GET_CODE (SET_DEST (PATTERN (i))) == REG
+ && GET_CODE (XEXP (SET_SRC (PATTERN (i)), 0)) == REG
+ && REGNO (SET_DEST (PATTERN (i))) == REGNO (XEXP (SET_SRC (PATTERN (i)), 0))
+ && GET_CODE (XEXP (SET_SRC (PATTERN (i)), 1)) == CONST_INT)
+ {
+ n = NEXT_INSN (i);
+ if (INSN_P (n)
+ && INSN_CODE (n) == CODE_FOR_addsi3
+ && GET_CODE (SET_DEST (PATTERN (n))) == REG
+ && GET_CODE (XEXP (SET_SRC (PATTERN (n)), 0)) == REG
+ && REGNO (SET_DEST (PATTERN (n))) == REGNO (XEXP (SET_SRC (PATTERN (n)), 0))
+ && GET_CODE (XEXP (SET_SRC (PATTERN (n)), 1)) == CONST_INT)
+ {
+ int ic = INTVAL (XEXP (SET_SRC (PATTERN (i)), 1));
+ int nc = INTVAL (XEXP (SET_SRC (PATTERN (n)), 1));
+ if (REGNO (SET_DEST (PATTERN (i))) == REGNO (SET_DEST (PATTERN (n)))
+ && ic + nc < 32767
+ && ic + nc > -32768)
+ {
+ XEXP (SET_SRC (PATTERN (i)), 1) = GEN_INT (ic + nc);
+ NEXT_INSN (i) = NEXT_INSN (n);
+ if (NEXT_INSN (i))
+ PREV_INSN (NEXT_INSN (i)) = i;
+ }
+ }
+ }
+}
+
+/* If this insn adjusts the stack, return the adjustment, else return
+ zero. */
+static int
+add_sp_insn_p (rtx insn)
+{
+ rtx pat;
+
+ if (! single_set (insn))
+ return 0;
+ pat = PATTERN (insn);
+ if (GET_CODE (SET_DEST (pat)) != REG)
+ return 0;
+ if (REGNO (SET_DEST (pat)) != SP_REGNO)
+ return 0;
+ if (GET_CODE (SET_SRC (pat)) != PLUS)
+ return 0;
+ if (GET_CODE (XEXP (SET_SRC (pat), 0)) != REG)
+ return 0;
+ if (REGNO (XEXP (SET_SRC (pat), 0)) != SP_REGNO)
+ return 0;
+ if (GET_CODE (XEXP (SET_SRC (pat), 1)) != CONST_INT)
+ return 0;
+ return INTVAL (XEXP (SET_SRC (pat), 1));
+}
+
+/* Check for trivial functions that set up an unneeded stack
+ frame. */
+static void
+mep_reorg_noframe (rtx insns)
+{
+ rtx start_frame_insn;
+ rtx end_frame_insn = 0;
+ int sp_adjust, sp2;
+ rtx sp;
+
+ /* The first insn should be $sp = $sp + N */
+ while (insns && ! INSN_P (insns))
+ insns = NEXT_INSN (insns);
+ if (!insns)
+ return;
+
+ sp_adjust = add_sp_insn_p (insns);
+ if (sp_adjust == 0)
+ return;
+
+ start_frame_insn = insns;
+ sp = SET_DEST (PATTERN (start_frame_insn));
+
+ insns = next_real_insn (insns);
+
+ while (insns)
+ {
+ rtx next = next_real_insn (insns);
+ if (!next)
+ break;
+
+ sp2 = add_sp_insn_p (insns);
+ if (sp2)
+ {
+ if (end_frame_insn)
+ return;
+ end_frame_insn = insns;
+ if (sp2 != -sp_adjust)
+ return;
+ }
+ else if (mep_mentioned_p (insns, sp, 0))
+ return;
+ else if (CALL_P (insns))
+ return;
+
+ insns = next;
+ }
+
+ if (end_frame_insn)
+ {
+ delete_insn (start_frame_insn);
+ delete_insn (end_frame_insn);
+ }
+}
+
+static void
+mep_reorg (void)
+{
+ rtx insns = get_insns ();
+
+ /* We require accurate REG_DEAD notes. */
+ compute_bb_for_insn ();
+ df_note_add_problem ();
+ df_analyze ();
+
+ mep_reorg_addcombine (insns);
+#if EXPERIMENTAL_REGMOVE_REORG
+ /* VLIW packing has been done already, so we can't just delete things. */
+ if (!mep_vliw_function_p (cfun->decl))
+ mep_reorg_regmove (insns);
+#endif
+ mep_jmp_return_reorg (insns);
+ mep_bundle_insns (insns);
+ mep_reorg_repeat (insns);
+ if (optimize
+ && !profile_flag
+ && !profile_arc_flag
+ && TARGET_OPT_REPEAT
+ && (!mep_interrupt_p () || mep_interrupt_saved_reg (RPB_REGNO)))
+ mep_reorg_erepeat (insns);
+
+ /* This may delete *insns so make sure it's last. */
+ mep_reorg_noframe (insns);
+
+ df_finish_pass (false);
+}
+
+
+
+/*----------------------------------------------------------------------*/
+/* Builtins */
+/*----------------------------------------------------------------------*/
+
+/* Element X gives the index into cgen_insns[] of the most general
+ implementation of intrinsic X. Unimplemented intrinsics are
+ mapped to -1. */
+int mep_intrinsic_insn[ARRAY_SIZE (cgen_intrinsics)];
+
+/* Element X gives the index of another instruction that is mapped to
+ the same intrinsic as cgen_insns[X]. It is -1 when there is no other
+ instruction.
+
+ Things are set up so that mep_intrinsic_chain[X] < X. */
+static int mep_intrinsic_chain[ARRAY_SIZE (cgen_insns)];
+
+/* The bitmask for the current ISA. The ISA masks are declared
+ in mep-intrin.h. */
+unsigned int mep_selected_isa;
+
+struct mep_config {
+ const char *config_name;
+ unsigned int isa;
+};
+
+static struct mep_config mep_configs[] = {
+#ifdef COPROC_SELECTION_TABLE
+ COPROC_SELECTION_TABLE,
+#endif
+ { 0, 0 }
+};
+
+/* Initialize the global intrinsics variables above. */
+
+static void
+mep_init_intrinsics (void)
+{
+ size_t i;
+
+ /* Set MEP_SELECTED_ISA to the ISA flag for this configuration. */
+ mep_selected_isa = mep_configs[0].isa;
+ if (mep_config_string != 0)
+ for (i = 0; mep_configs[i].config_name; i++)
+ if (strcmp (mep_config_string, mep_configs[i].config_name) == 0)
+ {
+ mep_selected_isa = mep_configs[i].isa;
+ break;
+ }
+
+ /* Assume all intrinsics are unavailable. */
+ for (i = 0; i < ARRAY_SIZE (mep_intrinsic_insn); i++)
+ mep_intrinsic_insn[i] = -1;
+
+ /* Build up the global intrinsic tables. */
+ for (i = 0; i < ARRAY_SIZE (cgen_insns); i++)
+ if ((cgen_insns[i].isas & mep_selected_isa) != 0)
+ {
+ mep_intrinsic_chain[i] = mep_intrinsic_insn[cgen_insns[i].intrinsic];
+ mep_intrinsic_insn[cgen_insns[i].intrinsic] = i;
+ }
+ /* See whether we can directly move values between one coprocessor
+ register and another. */
+ for (i = 0; i < ARRAY_SIZE (mep_cmov_insns); i++)
+ if (MEP_INTRINSIC_AVAILABLE_P (mep_cmov_insns[i]))
+ mep_have_copro_copro_moves_p = true;
+
+ /* See whether we can directly move values between core and
+ coprocessor registers. */
+ mep_have_core_copro_moves_p = (MEP_INTRINSIC_AVAILABLE_P (mep_cmov1)
+ && MEP_INTRINSIC_AVAILABLE_P (mep_cmov2));
+
+ mep_have_core_copro_moves_p = 1;
+}
+
+/* Declare all available intrinsic functions. Called once only. */
+
+static tree cp_data_bus_int_type_node;
+static tree opaque_vector_type_node;
+static tree v8qi_type_node;
+static tree v4hi_type_node;
+static tree v2si_type_node;
+static tree v8uqi_type_node;
+static tree v4uhi_type_node;
+static tree v2usi_type_node;
+
+static tree
+mep_cgen_regnum_to_type (enum cgen_regnum_operand_type cr)
+{
+ switch (cr)
+ {
+ case cgen_regnum_operand_type_POINTER: return ptr_type_node;
+ case cgen_regnum_operand_type_LONG: return long_integer_type_node;
+ case cgen_regnum_operand_type_ULONG: return long_unsigned_type_node;
+ case cgen_regnum_operand_type_SHORT: return short_integer_type_node;
+ case cgen_regnum_operand_type_USHORT: return short_unsigned_type_node;
+ case cgen_regnum_operand_type_CHAR: return char_type_node;
+ case cgen_regnum_operand_type_UCHAR: return unsigned_char_type_node;
+ case cgen_regnum_operand_type_SI: return intSI_type_node;
+ case cgen_regnum_operand_type_DI: return intDI_type_node;
+ case cgen_regnum_operand_type_VECTOR: return opaque_vector_type_node;
+ case cgen_regnum_operand_type_V8QI: return v8qi_type_node;
+ case cgen_regnum_operand_type_V4HI: return v4hi_type_node;
+ case cgen_regnum_operand_type_V2SI: return v2si_type_node;
+ case cgen_regnum_operand_type_V8UQI: return v8uqi_type_node;
+ case cgen_regnum_operand_type_V4UHI: return v4uhi_type_node;
+ case cgen_regnum_operand_type_V2USI: return v2usi_type_node;
+ case cgen_regnum_operand_type_CP_DATA_BUS_INT: return cp_data_bus_int_type_node;
+ default:
+ return void_type_node;
+ }
+}
+
+static void
+mep_init_builtins (void)
+{
+ size_t i;
+
+ if (TARGET_64BIT_CR_REGS)
+ cp_data_bus_int_type_node = long_long_integer_type_node;
+ else
+ cp_data_bus_int_type_node = long_integer_type_node;
+
+ opaque_vector_type_node = build_opaque_vector_type (intQI_type_node, 8);
+ v8qi_type_node = build_vector_type (intQI_type_node, 8);
+ v4hi_type_node = build_vector_type (intHI_type_node, 4);
+ v2si_type_node = build_vector_type (intSI_type_node, 2);
+ v8uqi_type_node = build_vector_type (unsigned_intQI_type_node, 8);
+ v4uhi_type_node = build_vector_type (unsigned_intHI_type_node, 4);
+ v2usi_type_node = build_vector_type (unsigned_intSI_type_node, 2);
+
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_data_bus_int"),
+ cp_data_bus_int_type_node));
+
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_vector"),
+ opaque_vector_type_node));
+
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v8qi"),
+ v8qi_type_node));
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v4hi"),
+ v4hi_type_node));
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v2si"),
+ v2si_type_node));
+
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v8uqi"),
+ v8uqi_type_node));
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v4uhi"),
+ v4uhi_type_node));
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (BUILTINS_LOCATION, TYPE_DECL, get_identifier ("cp_v2usi"),
+ v2usi_type_node));
+
+ /* Intrinsics like mep_cadd3 are implemented with two groups of
+ instructions, one which uses UNSPECs and one which uses a specific
+ rtl code such as PLUS. Instructions in the latter group belong
+ to GROUP_KNOWN_CODE.
+
+ In such cases, the intrinsic will have two entries in the global
+ tables above. The unspec form is accessed using builtin functions
+ while the specific form is accessed using the mep_* enum in
+ mep-intrin.h.
+
+ The idea is that __cop arithmetic and builtin functions have
+ different optimization requirements. If mep_cadd3() appears in
+ the source code, the user will surely except gcc to use cadd3
+ rather than a work-alike such as add3. However, if the user
+ just writes "a + b", where a or b are __cop variables, it is
+ reasonable for gcc to choose a core instruction rather than
+ cadd3 if it believes that is more optimal. */
+ for (i = 0; i < ARRAY_SIZE (cgen_insns); i++)
+ if ((cgen_insns[i].groups & GROUP_KNOWN_CODE) == 0
+ && mep_intrinsic_insn[cgen_insns[i].intrinsic] >= 0)
+ {
+ tree ret_type = void_type_node;
+ tree bi_type;
+
+ if (i > 0 && cgen_insns[i].intrinsic == cgen_insns[i-1].intrinsic)
+ continue;
+
+ if (cgen_insns[i].cret_p)
+ ret_type = mep_cgen_regnum_to_type (cgen_insns[i].regnums[0].type);
+
+ bi_type = build_function_type (ret_type, 0);
+ add_builtin_function (cgen_intrinsics[cgen_insns[i].intrinsic],
+ bi_type,
+ cgen_insns[i].intrinsic, BUILT_IN_MD, NULL, NULL);
+ }
+}
+
+/* Report the unavailablity of the given intrinsic. */
+
+#if 1
+static void
+mep_intrinsic_unavailable (int intrinsic)
+{
+ static int already_reported_p[ARRAY_SIZE (cgen_intrinsics)];
+
+ if (already_reported_p[intrinsic])
+ return;
+
+ if (mep_intrinsic_insn[intrinsic] < 0)
+ error ("coprocessor intrinsic %qs is not available in this configuration",
+ cgen_intrinsics[intrinsic]);
+ else if (CGEN_CURRENT_GROUP == GROUP_VLIW)
+ error ("%qs is not available in VLIW functions",
+ cgen_intrinsics[intrinsic]);
+ else
+ error ("%qs is not available in non-VLIW functions",
+ cgen_intrinsics[intrinsic]);
+
+ already_reported_p[intrinsic] = 1;
+}
+#endif
+
+
+/* See if any implementation of INTRINSIC is available to the
+ current function. If so, store the most general implementation
+ in *INSN_PTR and return true. Return false otherwise. */
+
+static bool
+mep_get_intrinsic_insn (int intrinsic ATTRIBUTE_UNUSED, const struct cgen_insn **insn_ptr ATTRIBUTE_UNUSED)
+{
+ int i;
+
+ i = mep_intrinsic_insn[intrinsic];
+ while (i >= 0 && !CGEN_ENABLE_INSN_P (i))
+ i = mep_intrinsic_chain[i];
+
+ if (i >= 0)
+ {
+ *insn_ptr = &cgen_insns[i];
+ return true;
+ }
+ return false;
+}
+
+
+/* Like mep_get_intrinsic_insn, but with extra handling for moves.
+ If INTRINSIC is mep_cmov, but there is no pure CR <- CR move insn,
+ try using a work-alike instead. In this case, the returned insn
+ may have three operands rather than two. */
+
+static bool
+mep_get_move_insn (int intrinsic, const struct cgen_insn **cgen_insn)
+{
+ size_t i;
+
+ if (intrinsic == mep_cmov)
+ {
+ for (i = 0; i < ARRAY_SIZE (mep_cmov_insns); i++)
+ if (mep_get_intrinsic_insn (mep_cmov_insns[i], cgen_insn))
+ return true;
+ return false;
+ }
+ return mep_get_intrinsic_insn (intrinsic, cgen_insn);
+}
+
+
+/* If ARG is a register operand that is the same size as MODE, convert it
+ to MODE using a subreg. Otherwise return ARG as-is. */
+
+static rtx
+mep_convert_arg (enum machine_mode mode, rtx arg)
+{
+ if (GET_MODE (arg) != mode
+ && register_operand (arg, VOIDmode)
+ && GET_MODE_SIZE (GET_MODE (arg)) == GET_MODE_SIZE (mode))
+ return simplify_gen_subreg (mode, arg, GET_MODE (arg), 0);
+ return arg;
+}
+
+
+/* Apply regnum conversions to ARG using the description given by REGNUM.
+ Return the new argument on success and null on failure. */
+
+static rtx
+mep_convert_regnum (const struct cgen_regnum_operand *regnum, rtx arg)
+{
+ if (regnum->count == 0)
+ return arg;
+
+ if (GET_CODE (arg) != CONST_INT
+ || INTVAL (arg) < 0
+ || INTVAL (arg) >= regnum->count)
+ return 0;
+
+ return gen_rtx_REG (SImode, INTVAL (arg) + regnum->base);
+}
+
+
+/* Try to make intrinsic argument ARG match the given operand.
+ UNSIGNED_P is true if the argument has an unsigned type. */
+
+static rtx
+mep_legitimize_arg (const struct insn_operand_data *operand, rtx arg,
+ int unsigned_p)
+{
+ if (GET_CODE (arg) == CONST_INT)
+ {
+ /* CONST_INTs can only be bound to integer operands. */
+ if (GET_MODE_CLASS (operand->mode) != MODE_INT)
+ return 0;
+ }
+ else if (GET_CODE (arg) == CONST_DOUBLE)
+ /* These hold vector constants. */;
+ else if (GET_MODE_SIZE (GET_MODE (arg)) != GET_MODE_SIZE (operand->mode))
+ {
+ /* If the argument is a different size from what's expected, we must
+ have a value in the right mode class in order to convert it. */
+ if (GET_MODE_CLASS (operand->mode) != GET_MODE_CLASS (GET_MODE (arg)))
+ return 0;
+
+ /* If the operand is an rvalue, promote or demote it to match the
+ operand's size. This might not need extra instructions when
+ ARG is a register value. */
+ if (operand->constraint[0] != '=')
+ arg = convert_to_mode (operand->mode, arg, unsigned_p);
+ }
+
+ /* If the operand is an lvalue, bind the operand to a new register.
+ The caller will copy this value into ARG after the main
+ instruction. By doing this always, we produce slightly more
+ optimal code. */
+ /* But not for control registers. */
+ if (operand->constraint[0] == '='
+ && (! REG_P (arg)
+ || ! (CONTROL_REGNO_P (REGNO (arg))
+ || CCR_REGNO_P (REGNO (arg))
+ || CR_REGNO_P (REGNO (arg)))
+ ))
+ return gen_reg_rtx (operand->mode);
+
+ /* Try simple mode punning. */
+ arg = mep_convert_arg (operand->mode, arg);
+ if (operand->predicate (arg, operand->mode))
+ return arg;
+
+ /* See if forcing the argument into a register will make it match. */
+ if (GET_CODE (arg) == CONST_INT || GET_CODE (arg) == CONST_DOUBLE)
+ arg = force_reg (operand->mode, arg);
+ else
+ arg = mep_convert_arg (operand->mode, force_reg (GET_MODE (arg), arg));
+ if (operand->predicate (arg, operand->mode))
+ return arg;
+
+ return 0;
+}
+
+
+/* Report that ARG cannot be passed to argument ARGNUM of intrinsic
+ function FNNAME. OPERAND describes the operand to which ARGNUM
+ is mapped. */
+
+static void
+mep_incompatible_arg (const struct insn_operand_data *operand, rtx arg,
+ int argnum, tree fnname)
+{
+ size_t i;
+
+ if (GET_CODE (arg) == CONST_INT)
+ for (i = 0; i < ARRAY_SIZE (cgen_immediate_predicates); i++)
+ if (operand->predicate == cgen_immediate_predicates[i].predicate)
+ {
+ const struct cgen_immediate_predicate *predicate;
+ HOST_WIDE_INT argval;
+
+ predicate = &cgen_immediate_predicates[i];
+ argval = INTVAL (arg);
+ if (argval < predicate->lower || argval >= predicate->upper)
+ error ("argument %d of %qE must be in the range %d...%d",
+ argnum, fnname, predicate->lower, predicate->upper - 1);
+ else
+ error ("argument %d of %qE must be a multiple of %d",
+ argnum, fnname, predicate->align);
+ return;
+ }
+
+ error ("incompatible type for argument %d of %qE", argnum, fnname);
+}
+
+static rtx
+mep_expand_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
+ rtx subtarget ATTRIBUTE_UNUSED,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ int ignore ATTRIBUTE_UNUSED)
+{
+ rtx pat, op[10], arg[10];
+ unsigned int a;
+ int opindex, unsigned_p[10];
+ tree fndecl, args;
+ unsigned int n_args;
+ tree fnname;
+ const struct cgen_insn *cgen_insn;
+ const struct insn_data_d *idata;
+ unsigned int first_arg = 0;
+ unsigned int builtin_n_args;
+
+ fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
+ fnname = DECL_NAME (fndecl);
+
+ /* Find out which instruction we should emit. Note that some coprocessor
+ intrinsics may only be available in VLIW mode, or only in normal mode. */
+ if (!mep_get_intrinsic_insn (DECL_FUNCTION_CODE (fndecl), &cgen_insn))
+ {
+ mep_intrinsic_unavailable (DECL_FUNCTION_CODE (fndecl));
+ return NULL_RTX;
+ }
+ idata = &insn_data[cgen_insn->icode];
+
+ builtin_n_args = cgen_insn->num_args;
+
+ if (cgen_insn->cret_p)
+ {
+ if (cgen_insn->cret_p > 1)
+ builtin_n_args ++;
+ first_arg = 1;
+ mep_cgen_regnum_to_type (cgen_insn->regnums[0].type);
+ builtin_n_args --;
+ }
+
+ /* Evaluate each argument. */
+ n_args = call_expr_nargs (exp);
+
+ if (n_args < builtin_n_args)
+ {
+ error ("too few arguments to %qE", fnname);
+ return NULL_RTX;
+ }
+ if (n_args > builtin_n_args)
+ {
+ error ("too many arguments to %qE", fnname);
+ return NULL_RTX;
+ }
+
+ for (a = first_arg; a < builtin_n_args + first_arg; a++)
+ {
+ tree value;
+
+ args = CALL_EXPR_ARG (exp, a - first_arg);
+
+ value = args;
+
+#if 0
+ if (cgen_insn->regnums[a].reference_p)
+ {
+ if (TREE_CODE (value) != ADDR_EXPR)
+ {
+ debug_tree(value);
+ error ("argument %d of %qE must be an address", a+1, fnname);
+ return NULL_RTX;
+ }
+ value = TREE_OPERAND (value, 0);
+ }
+#endif
+
+ /* If the argument has been promoted to int, get the unpromoted
+ value. This is necessary when sub-int memory values are bound
+ to reference parameters. */
+ if (TREE_CODE (value) == NOP_EXPR
+ && TREE_TYPE (value) == integer_type_node
+ && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0)))
+ && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (value, 0)))
+ < TYPE_PRECISION (TREE_TYPE (value))))
+ value = TREE_OPERAND (value, 0);
+
+ /* If the argument has been promoted to double, get the unpromoted
+ SFmode value. This is necessary for FMAX support, for example. */
+ if (TREE_CODE (value) == NOP_EXPR
+ && SCALAR_FLOAT_TYPE_P (TREE_TYPE (value))
+ && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0)))
+ && TYPE_MODE (TREE_TYPE (value)) == DFmode
+ && TYPE_MODE (TREE_TYPE (TREE_OPERAND (value, 0))) == SFmode)
+ value = TREE_OPERAND (value, 0);
+
+ unsigned_p[a] = TYPE_UNSIGNED (TREE_TYPE (value));
+ arg[a] = expand_expr (value, NULL, VOIDmode, EXPAND_NORMAL);
+ arg[a] = mep_convert_regnum (&cgen_insn->regnums[a], arg[a]);
+ if (cgen_insn->regnums[a].reference_p)
+ {
+ tree pointed_to = TREE_TYPE (TREE_TYPE (value));
+ enum machine_mode pointed_mode = TYPE_MODE (pointed_to);
+
+ arg[a] = gen_rtx_MEM (pointed_mode, arg[a]);
+ }
+ if (arg[a] == 0)
+ {
+ error ("argument %d of %qE must be in the range %d...%d",
+ a + 1, fnname, 0, cgen_insn->regnums[a].count - 1);
+ return NULL_RTX;
+ }
+ }
+
+ for (a = 0; a < first_arg; a++)
+ {
+ if (a == 0 && target && GET_MODE (target) == idata->operand[0].mode)
+ arg[a] = target;
+ else
+ arg[a] = gen_reg_rtx (idata->operand[0].mode);
+ }
+
+ /* Convert the arguments into a form suitable for the intrinsic.
+ Report an error if this isn't possible. */
+ for (opindex = 0; opindex < idata->n_operands; opindex++)
+ {
+ a = cgen_insn->op_mapping[opindex];
+ op[opindex] = mep_legitimize_arg (&idata->operand[opindex],
+ arg[a], unsigned_p[a]);
+ if (op[opindex] == 0)
+ {
+ mep_incompatible_arg (&idata->operand[opindex],
+ arg[a], a + 1 - first_arg, fnname);
+ return NULL_RTX;
+ }
+ }
+
+ /* Emit the instruction. */
+ pat = idata->genfun (op[0], op[1], op[2], op[3], op[4],
+ op[5], op[6], op[7], op[8], op[9]);
+
+ if (GET_CODE (pat) == SET
+ && GET_CODE (SET_DEST (pat)) == PC
+ && GET_CODE (SET_SRC (pat)) == IF_THEN_ELSE)
+ emit_jump_insn (pat);
+ else
+ emit_insn (pat);
+
+ /* Copy lvalues back to their final locations. */
+ for (opindex = 0; opindex < idata->n_operands; opindex++)
+ if (idata->operand[opindex].constraint[0] == '=')
+ {
+ a = cgen_insn->op_mapping[opindex];
+ if (a >= first_arg)
+ {
+ if (GET_MODE_CLASS (GET_MODE (arg[a]))
+ != GET_MODE_CLASS (GET_MODE (op[opindex])))
+ emit_move_insn (arg[a], gen_lowpart (GET_MODE (arg[a]),
+ op[opindex]));
+ else
+ {
+ /* First convert the operand to the right mode, then copy it
+ into the destination. Doing the conversion as a separate
+ step (rather than using convert_move) means that we can
+ avoid creating no-op moves when ARG[A] and OP[OPINDEX]
+ refer to the same register. */
+ op[opindex] = convert_to_mode (GET_MODE (arg[a]),
+ op[opindex], unsigned_p[a]);
+ if (!rtx_equal_p (arg[a], op[opindex]))
+ emit_move_insn (arg[a], op[opindex]);
+ }
+ }
+ }
+
+ if (first_arg > 0 && target && target != op[0])
+ {
+ emit_move_insn (target, op[0]);
+ }
+
+ return target;
+}
+
+static bool
+mep_vector_mode_supported_p (enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+
+/* A subroutine of global_reg_mentioned_p, returns 1 if *LOC mentions
+ a global register. */
+
+static int
+global_reg_mentioned_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED)
+{
+ int regno;
+ rtx x = *loc;
+
+ if (! x)
+ return 0;
+
+ switch (GET_CODE (x))
+ {
+ case SUBREG:
+ if (REG_P (SUBREG_REG (x)))
+ {
+ if (REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER
+ && global_regs[subreg_regno (x)])
+ return 1;
+ return 0;
+ }
+ break;
+
+ case REG:
+ regno = REGNO (x);
+ if (regno < FIRST_PSEUDO_REGISTER && global_regs[regno])
+ return 1;
+ return 0;
+
+ case SCRATCH:
+ case PC:
+ case CC0:
+ case CONST_INT:
+ case CONST_DOUBLE:
+ case CONST:
+ case LABEL_REF:
+ return 0;
+
+ case CALL:
+ /* A non-constant call might use a global register. */
+ return 1;
+
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+/* Returns nonzero if X mentions a global register. */
+
+static int
+global_reg_mentioned_p (rtx x)
+{
+ if (INSN_P (x))
+ {
+ if (CALL_P (x))
+ {
+ if (! RTL_CONST_OR_PURE_CALL_P (x))
+ return 1;
+ x = CALL_INSN_FUNCTION_USAGE (x);
+ if (x == 0)
+ return 0;
+ }
+ else
+ x = PATTERN (x);
+ }
+
+ return for_each_rtx (&x, global_reg_mentioned_p_1, NULL);
+}
+/* Scheduling hooks for VLIW mode.
+
+ Conceptually this is very simple: we have a two-pack architecture
+ that takes one core insn and one coprocessor insn to make up either
+ a 32- or 64-bit instruction word (depending on the option bit set in
+ the chip). I.e. in VL32 mode, we can pack one 16-bit core insn and
+ one 16-bit cop insn; in VL64 mode we can pack one 16-bit core insn
+ and one 48-bit cop insn or two 32-bit core/cop insns.
+
+ In practice, instruction selection will be a bear. Consider in
+ VL64 mode the following insns
+
+ add $1, 1
+ cmov $cr0, $0
+
+ these cannot pack, since the add is a 16-bit core insn and cmov
+ is a 32-bit cop insn. However,
+
+ add3 $1, $1, 1
+ cmov $cr0, $0
+
+ packs just fine. For good VLIW code generation in VL64 mode, we
+ will have to have 32-bit alternatives for many of the common core
+ insns. Not implemented. */
+
+static int
+mep_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
+{
+ int cost_specified;
+
+ if (REG_NOTE_KIND (link) != 0)
+ {
+ /* See whether INSN and DEP_INSN are intrinsics that set the same
+ hard register. If so, it is more important to free up DEP_INSN
+ than it is to free up INSN.
+
+ Note that intrinsics like mep_mulr are handled differently from
+ the equivalent mep.md patterns. In mep.md, if we don't care
+ about the value of $lo and $hi, the pattern will just clobber
+ the registers, not set them. Since clobbers don't count as
+ output dependencies, it is often possible to reorder two mulrs,
+ even after reload.
+
+ In contrast, mep_mulr() sets both $lo and $hi to specific values,
+ so any pair of mep_mulr()s will be inter-dependent. We should
+ therefore give the first mep_mulr() a higher priority. */
+ if (REG_NOTE_KIND (link) == REG_DEP_OUTPUT
+ && global_reg_mentioned_p (PATTERN (insn))
+ && global_reg_mentioned_p (PATTERN (dep_insn)))
+ return 1;
+
+ /* If the dependence is an anti or output dependence, assume it
+ has no cost. */
+ return 0;
+ }
+
+ /* If we can't recognize the insns, we can't really do anything. */
+ if (recog_memoized (dep_insn) < 0)
+ return cost;
+
+ /* The latency attribute doesn't apply to MeP-h1: we use the stall
+ attribute instead. */
+ if (!TARGET_H1)
+ {
+ cost_specified = get_attr_latency (dep_insn);
+ if (cost_specified != 0)
+ return cost_specified;
+ }
+
+ return cost;
+}
+
+/* ??? We don't properly compute the length of a load/store insn,
+ taking into account the addressing mode. */
+
+static int
+mep_issue_rate (void)
+{
+ return TARGET_IVC2 ? 3 : 2;
+}
+
+/* Return true if function DECL was declared with the vliw attribute. */
+
+bool
+mep_vliw_function_p (tree decl)
+{
+ return lookup_attribute ("vliw", TYPE_ATTRIBUTES (TREE_TYPE (decl))) != 0;
+}
+
+static rtx
+mep_find_ready_insn (rtx *ready, int nready, enum attr_slot slot, int length)
+{
+ int i;
+
+ for (i = nready - 1; i >= 0; --i)
+ {
+ rtx insn = ready[i];
+ if (recog_memoized (insn) >= 0
+ && get_attr_slot (insn) == slot
+ && get_attr_length (insn) == length)
+ return insn;
+ }
+
+ return NULL_RTX;
+}
+
+static void
+mep_move_ready_insn (rtx *ready, int nready, rtx insn)
+{
+ int i;
+
+ for (i = 0; i < nready; ++i)
+ if (ready[i] == insn)
+ {
+ for (; i < nready - 1; ++i)
+ ready[i] = ready[i + 1];
+ ready[i] = insn;
+ return;
+ }
+
+ gcc_unreachable ();
+}
+
+static void
+mep_print_sched_insn (FILE *dump, rtx insn)
+{
+ const char *slots = "none";
+ const char *name = NULL;
+ int code;
+ char buf[30];
+
+ if (GET_CODE (PATTERN (insn)) == SET
+ || GET_CODE (PATTERN (insn)) == PARALLEL)
+ {
+ switch (get_attr_slots (insn))
+ {
+ case SLOTS_CORE: slots = "core"; break;
+ case SLOTS_C3: slots = "c3"; break;
+ case SLOTS_P0: slots = "p0"; break;
+ case SLOTS_P0_P0S: slots = "p0,p0s"; break;
+ case SLOTS_P0_P1: slots = "p0,p1"; break;
+ case SLOTS_P0S: slots = "p0s"; break;
+ case SLOTS_P0S_P1: slots = "p0s,p1"; break;
+ case SLOTS_P1: slots = "p1"; break;
+ default:
+ sprintf(buf, "%d", get_attr_slots (insn));
+ slots = buf;
+ break;
+ }
+ }
+ if (GET_CODE (PATTERN (insn)) == USE)
+ slots = "use";
+
+ code = INSN_CODE (insn);
+ if (code >= 0)
+ name = get_insn_name (code);
+ if (!name)
+ name = "{unknown}";
+
+ fprintf (dump,
+ "insn %4d %4d %8s %s\n",
+ code,
+ INSN_UID (insn),
+ name,
+ slots);
+}
+
+static int
+mep_sched_reorder (FILE *dump ATTRIBUTE_UNUSED,
+ int sched_verbose ATTRIBUTE_UNUSED, rtx *ready,
+ int *pnready, int clock ATTRIBUTE_UNUSED)
+{
+ int nready = *pnready;
+ rtx core_insn, cop_insn;
+ int i;
+
+ if (dump && sched_verbose > 1)
+ {
+ fprintf (dump, "\nsched_reorder: clock %d nready %d\n", clock, nready);
+ for (i=0; i<nready; i++)
+ mep_print_sched_insn (dump, ready[i]);
+ fprintf (dump, "\n");
+ }
+
+ if (!mep_vliw_function_p (cfun->decl))
+ return 1;
+ if (nready < 2)
+ return 1;
+
+ /* IVC2 uses a DFA to determine what's ready and what's not. */
+ if (TARGET_IVC2)
+ return nready;
+
+ /* We can issue either a core or coprocessor instruction.
+ Look for a matched pair of insns to reorder. If we don't
+ find any, don't second-guess the scheduler's priorities. */
+
+ if ((core_insn = mep_find_ready_insn (ready, nready, SLOT_CORE, 2))
+ && (cop_insn = mep_find_ready_insn (ready, nready, SLOT_COP,
+ TARGET_OPT_VL64 ? 6 : 2)))
+ ;
+ else if (TARGET_OPT_VL64
+ && (core_insn = mep_find_ready_insn (ready, nready, SLOT_CORE, 4))
+ && (cop_insn = mep_find_ready_insn (ready, nready, SLOT_COP, 4)))
+ ;
+ else
+ /* We didn't find a pair. Issue the single insn at the head
+ of the ready list. */
+ return 1;
+
+ /* Reorder the two insns first. */
+ mep_move_ready_insn (ready, nready, core_insn);
+ mep_move_ready_insn (ready, nready - 1, cop_insn);
+ return 2;
+}
+
+/* A for_each_rtx callback. Return true if *X is a register that is
+ set by insn PREV. */
+
+static int
+mep_store_find_set (rtx *x, void *prev)
+{
+ return REG_P (*x) && reg_set_p (*x, (const_rtx) prev);
+}
+
+/* Like mep_store_bypass_p, but takes a pattern as the second argument,
+ not the containing insn. */
+
+static bool
+mep_store_data_bypass_1 (rtx prev, rtx pat)
+{
+ /* Cope with intrinsics like swcpa. */
+ if (GET_CODE (pat) == PARALLEL)
+ {
+ int i;
+
+ for (i = 0; i < XVECLEN (pat, 0); i++)
+ if (mep_store_data_bypass_p (prev, XVECEXP (pat, 0, i)))
+ return true;
+
+ return false;
+ }
+
+ /* Check for some sort of store. */
+ if (GET_CODE (pat) != SET
+ || GET_CODE (SET_DEST (pat)) != MEM)
+ return false;
+
+ /* Intrinsics use patterns of the form (set (mem (scratch)) (unspec ...)).
+ The first operand to the unspec is the store data and the other operands
+ are used to calculate the address. */
+ if (GET_CODE (SET_SRC (pat)) == UNSPEC)
+ {
+ rtx src;
+ int i;
+
+ src = SET_SRC (pat);
+ for (i = 1; i < XVECLEN (src, 0); i++)
+ if (for_each_rtx (&XVECEXP (src, 0, i), mep_store_find_set, prev))
+ return false;
+
+ return true;
+ }
+
+ /* Otherwise just check that PREV doesn't modify any register mentioned
+ in the memory destination. */
+ return !for_each_rtx (&SET_DEST (pat), mep_store_find_set, prev);
+}
+
+/* Return true if INSN is a store instruction and if the store address
+ has no true dependence on PREV. */
+
+bool
+mep_store_data_bypass_p (rtx prev, rtx insn)
+{
+ return INSN_P (insn) ? mep_store_data_bypass_1 (prev, PATTERN (insn)) : false;
+}
+
+/* A for_each_rtx subroutine of mep_mul_hilo_bypass_p. Return 1 if *X
+ is a register other than LO or HI and if PREV sets *X. */
+
+static int
+mep_mul_hilo_bypass_1 (rtx *x, void *prev)
+{
+ return (REG_P (*x)
+ && REGNO (*x) != LO_REGNO
+ && REGNO (*x) != HI_REGNO
+ && reg_set_p (*x, (const_rtx) prev));
+}
+
+/* Return true if, apart from HI/LO, there are no true dependencies
+ between multiplication instructions PREV and INSN. */
+
+bool
+mep_mul_hilo_bypass_p (rtx prev, rtx insn)
+{
+ rtx pat;
+
+ pat = PATTERN (insn);
+ if (GET_CODE (pat) == PARALLEL)
+ pat = XVECEXP (pat, 0, 0);
+ return (GET_CODE (pat) == SET
+ && !for_each_rtx (&SET_SRC (pat), mep_mul_hilo_bypass_1, prev));
+}
+
+/* Return true if INSN is an ldc instruction that issues to the
+ MeP-h1 integer pipeline. This is true for instructions that
+ read from PSW, LP, SAR, HI and LO. */
+
+bool
+mep_ipipe_ldc_p (rtx insn)
+{
+ rtx pat, src;
+
+ pat = PATTERN (insn);
+
+ /* Cope with instrinsics that set both a hard register and its shadow.
+ The set of the hard register comes first. */
+ if (GET_CODE (pat) == PARALLEL)
+ pat = XVECEXP (pat, 0, 0);
+
+ if (GET_CODE (pat) == SET)
+ {
+ src = SET_SRC (pat);
+
+ /* Cope with intrinsics. The first operand to the unspec is
+ the source register. */
+ if (GET_CODE (src) == UNSPEC || GET_CODE (src) == UNSPEC_VOLATILE)
+ src = XVECEXP (src, 0, 0);
+
+ if (REG_P (src))
+ switch (REGNO (src))
+ {
+ case PSW_REGNO:
+ case LP_REGNO:
+ case SAR_REGNO:
+ case HI_REGNO:
+ case LO_REGNO:
+ return true;
+ }
+ }
+ return false;
+}
+
+/* Create a VLIW bundle from core instruction CORE and coprocessor
+ instruction COP. COP always satisfies INSN_P, but CORE can be
+ either a new pattern or an existing instruction.
+
+ Emit the bundle in place of COP and return it. */
+
+static rtx
+mep_make_bundle (rtx core, rtx cop)
+{
+ rtx insn;
+
+ /* If CORE is an existing instruction, remove it, otherwise put
+ the new pattern in an INSN harness. */
+ if (INSN_P (core))
+ remove_insn (core);
+ else
+ core = make_insn_raw (core);
+
+ /* Generate the bundle sequence and replace COP with it. */
+ insn = gen_rtx_SEQUENCE (VOIDmode, gen_rtvec (2, core, cop));
+ insn = emit_insn_after (insn, cop);
+ remove_insn (cop);
+
+ /* Set up the links of the insns inside the SEQUENCE. */
+ PREV_INSN (core) = PREV_INSN (insn);
+ NEXT_INSN (core) = cop;
+ PREV_INSN (cop) = core;
+ NEXT_INSN (cop) = NEXT_INSN (insn);
+
+ /* Set the VLIW flag for the coprocessor instruction. */
+ PUT_MODE (core, VOIDmode);
+ PUT_MODE (cop, BImode);
+
+ /* Derive a location for the bundle. Individual instructions cannot
+ have their own location because there can be no assembler labels
+ between CORE and COP. */
+ INSN_LOCATOR (insn) = INSN_LOCATOR (INSN_LOCATOR (core) ? core : cop);
+ INSN_LOCATOR (core) = 0;
+ INSN_LOCATOR (cop) = 0;
+
+ return insn;
+}
+
+/* A helper routine for ms1_insn_dependent_p called through note_stores. */
+
+static void
+mep_insn_dependent_p_1 (rtx x, const_rtx pat ATTRIBUTE_UNUSED, void *data)
+{
+ rtx * pinsn = (rtx *) data;
+
+ if (*pinsn && reg_mentioned_p (x, *pinsn))
+ *pinsn = NULL_RTX;
+}
+
+/* Return true if anything in insn X is (anti,output,true) dependent on
+ anything in insn Y. */
+
+static int
+mep_insn_dependent_p (rtx x, rtx y)
+{
+ rtx tmp;
+
+ gcc_assert (INSN_P (x));
+ gcc_assert (INSN_P (y));
+
+ tmp = PATTERN (y);
+ note_stores (PATTERN (x), mep_insn_dependent_p_1, &tmp);
+ if (tmp == NULL_RTX)
+ return 1;
+
+ tmp = PATTERN (x);
+ note_stores (PATTERN (y), mep_insn_dependent_p_1, &tmp);
+ if (tmp == NULL_RTX)
+ return 1;
+
+ return 0;
+}
+
+static int
+core_insn_p (rtx insn)
+{
+ if (GET_CODE (PATTERN (insn)) == USE)
+ return 0;
+ if (get_attr_slot (insn) == SLOT_CORE)
+ return 1;
+ return 0;
+}
+
+/* Mark coprocessor instructions that can be bundled together with
+ the immediately preceeding core instruction. This is later used
+ to emit the "+" that tells the assembler to create a VLIW insn.
+
+ For unbundled insns, the assembler will automatically add coprocessor
+ nops, and 16-bit core nops. Due to an apparent oversight in the
+ spec, the assembler will _not_ automatically add 32-bit core nops,
+ so we have to emit those here.
+
+ Called from mep_insn_reorg. */
+
+static void
+mep_bundle_insns (rtx insns)
+{
+ rtx insn, last = NULL_RTX, first = NULL_RTX;
+ int saw_scheduling = 0;
+
+ /* Only do bundling if we're in vliw mode. */
+ if (!mep_vliw_function_p (cfun->decl))
+ return;
+
+ /* The first insn in a bundle are TImode, the remainder are
+ VOIDmode. After this function, the first has VOIDmode and the
+ rest have BImode. */
+
+ /* Note: this doesn't appear to be true for JUMP_INSNs. */
+
+ /* First, move any NOTEs that are within a bundle, to the beginning
+ of the bundle. */
+ for (insn = insns; insn ; insn = NEXT_INSN (insn))
+ {
+ if (NOTE_P (insn) && first)
+ /* Don't clear FIRST. */;
+
+ else if (NONJUMP_INSN_P (insn) && GET_MODE (insn) == TImode)
+ first = insn;
+
+ else if (NONJUMP_INSN_P (insn) && GET_MODE (insn) == VOIDmode && first)
+ {
+ rtx note, prev;
+
+ /* INSN is part of a bundle; FIRST is the first insn in that
+ bundle. Move all intervening notes out of the bundle.
+ In addition, since the debug pass may insert a label
+ whenever the current line changes, set the location info
+ for INSN to match FIRST. */
+
+ INSN_LOCATOR (insn) = INSN_LOCATOR (first);
+
+ note = PREV_INSN (insn);
+ while (note && note != first)
+ {
+ prev = PREV_INSN (note);
+
+ if (NOTE_P (note))
+ {
+ /* Remove NOTE from here... */
+ PREV_INSN (NEXT_INSN (note)) = PREV_INSN (note);
+ NEXT_INSN (PREV_INSN (note)) = NEXT_INSN (note);
+ /* ...and put it in here. */
+ NEXT_INSN (note) = first;
+ PREV_INSN (note) = PREV_INSN (first);
+ NEXT_INSN (PREV_INSN (note)) = note;
+ PREV_INSN (NEXT_INSN (note)) = note;
+ }
+
+ note = prev;
+ }
+ }
+
+ else if (!NONJUMP_INSN_P (insn))
+ first = 0;
+ }
+
+ /* Now fix up the bundles. */
+ for (insn = insns; insn ; insn = NEXT_INSN (insn))
+ {
+ if (NOTE_P (insn))
+ continue;
+
+ if (!NONJUMP_INSN_P (insn))
+ {
+ last = 0;
+ continue;
+ }
+
+ /* If we're not optimizing enough, there won't be scheduling
+ info. We detect that here. */
+ if (GET_MODE (insn) == TImode)
+ saw_scheduling = 1;
+ if (!saw_scheduling)
+ continue;
+
+ if (TARGET_IVC2)
+ {
+ rtx core_insn = NULL_RTX;
+
+ /* IVC2 slots are scheduled by DFA, so we just accept
+ whatever the scheduler gives us. However, we must make
+ sure the core insn (if any) is the first in the bundle.
+ The IVC2 assembler can insert whatever NOPs are needed,
+ and allows a COP insn to be first. */
+
+ if (NONJUMP_INSN_P (insn)
+ && GET_CODE (PATTERN (insn)) != USE
+ && GET_MODE (insn) == TImode)
+ {
+ for (last = insn;
+ NEXT_INSN (last)
+ && GET_MODE (NEXT_INSN (last)) == VOIDmode
+ && NONJUMP_INSN_P (NEXT_INSN (last));
+ last = NEXT_INSN (last))
+ {
+ if (core_insn_p (last))
+ core_insn = last;
+ }
+ if (core_insn_p (last))
+ core_insn = last;
+
+ if (core_insn && core_insn != insn)
+ {
+ /* Swap core insn to first in the bundle. */
+
+ /* Remove core insn. */
+ if (PREV_INSN (core_insn))
+ NEXT_INSN (PREV_INSN (core_insn)) = NEXT_INSN (core_insn);
+ if (NEXT_INSN (core_insn))
+ PREV_INSN (NEXT_INSN (core_insn)) = PREV_INSN (core_insn);
+
+ /* Re-insert core insn. */
+ PREV_INSN (core_insn) = PREV_INSN (insn);
+ NEXT_INSN (core_insn) = insn;
+
+ if (PREV_INSN (core_insn))
+ NEXT_INSN (PREV_INSN (core_insn)) = core_insn;
+ PREV_INSN (insn) = core_insn;
+
+ PUT_MODE (core_insn, TImode);
+ PUT_MODE (insn, VOIDmode);
+ }
+ }
+
+ /* The first insn has TImode, the rest have VOIDmode */
+ if (GET_MODE (insn) == TImode)
+ PUT_MODE (insn, VOIDmode);
+ else
+ PUT_MODE (insn, BImode);
+ continue;
+ }
+
+ PUT_MODE (insn, VOIDmode);
+ if (recog_memoized (insn) >= 0
+ && get_attr_slot (insn) == SLOT_COP)
+ {
+ if (GET_CODE (insn) == JUMP_INSN
+ || ! last
+ || recog_memoized (last) < 0
+ || get_attr_slot (last) != SLOT_CORE
+ || (get_attr_length (insn)
+ != (TARGET_OPT_VL64 ? 8 : 4) - get_attr_length (last))
+ || mep_insn_dependent_p (insn, last))
+ {
+ switch (get_attr_length (insn))
+ {
+ case 8:
+ break;
+ case 6:
+ insn = mep_make_bundle (gen_nop (), insn);
+ break;
+ case 4:
+ if (TARGET_OPT_VL64)
+ insn = mep_make_bundle (gen_nop32 (), insn);
+ break;
+ case 2:
+ if (TARGET_OPT_VL64)
+ error ("2 byte cop instructions are"
+ " not allowed in 64-bit VLIW mode");
+ else
+ insn = mep_make_bundle (gen_nop (), insn);
+ break;
+ default:
+ error ("unexpected %d byte cop instruction",
+ get_attr_length (insn));
+ break;
+ }
+ }
+ else
+ insn = mep_make_bundle (last, insn);
+ }
+
+ last = insn;
+ }
+}
+
+
+/* Try to instantiate INTRINSIC with the operands given in OPERANDS.
+ Return true on success. This function can fail if the intrinsic
+ is unavailable or if the operands don't satisfy their predicates. */
+
+bool
+mep_emit_intrinsic (int intrinsic, const rtx *operands)
+{
+ const struct cgen_insn *cgen_insn;
+ const struct insn_data_d *idata;
+ rtx newop[10];
+ int i;
+
+ if (!mep_get_intrinsic_insn (intrinsic, &cgen_insn))
+ return false;
+
+ idata = &insn_data[cgen_insn->icode];
+ for (i = 0; i < idata->n_operands; i++)
+ {
+ newop[i] = mep_convert_arg (idata->operand[i].mode, operands[i]);
+ if (!idata->operand[i].predicate (newop[i], idata->operand[i].mode))
+ return false;
+ }
+
+ emit_insn (idata->genfun (newop[0], newop[1], newop[2],
+ newop[3], newop[4], newop[5],
+ newop[6], newop[7], newop[8]));
+
+ return true;
+}
+
+
+/* Apply the given unary intrinsic to OPERANDS[1] and store it on
+ OPERANDS[0]. Report an error if the instruction could not
+ be synthesized. OPERANDS[1] is a register_operand. For sign
+ and zero extensions, it may be smaller than SImode. */
+
+bool
+mep_expand_unary_intrinsic (int ATTRIBUTE_UNUSED intrinsic,
+ rtx * operands ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+
+
+/* Likewise, but apply a binary operation to OPERANDS[1] and
+ OPERANDS[2]. OPERANDS[1] is a register_operand, OPERANDS[2]
+ can be a general_operand.
+
+ IMMEDIATE and IMMEDIATE3 are intrinsics that take an immediate
+ third operand. REG and REG3 take register operands only. */
+
+bool
+mep_expand_binary_intrinsic (int ATTRIBUTE_UNUSED immediate,
+ int ATTRIBUTE_UNUSED immediate3,
+ int ATTRIBUTE_UNUSED reg,
+ int ATTRIBUTE_UNUSED reg3,
+ rtx * operands ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+
+static bool
+mep_rtx_cost (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, int *total, bool ATTRIBUTE_UNUSED speed_t)
+{
+ switch (code)
+ {
+ case CONST_INT:
+ if (INTVAL (x) >= -128 && INTVAL (x) < 127)
+ *total = 0;
+ else if (INTVAL (x) >= -32768 && INTVAL (x) < 65536)
+ *total = 1;
+ else
+ *total = 3;
+ return true;
+
+ case SYMBOL_REF:
+ *total = optimize_size ? COSTS_N_INSNS (0) : COSTS_N_INSNS (1);
+ return true;
+
+ case MULT:
+ *total = (GET_CODE (XEXP (x, 1)) == CONST_INT
+ ? COSTS_N_INSNS (3)
+ : COSTS_N_INSNS (2));
+ return true;
+ }
+ return false;
+}
+
+static int
+mep_address_cost (rtx addr ATTRIBUTE_UNUSED, bool ATTRIBUTE_UNUSED speed_p)
+{
+ return 1;
+}
+
+static bool
+mep_handle_option (size_t code,
+ const char *arg ATTRIBUTE_UNUSED,
+ int value ATTRIBUTE_UNUSED)
+{
+ int i;
+
+ switch (code)
+ {
+ case OPT_mall_opts:
+ target_flags |= MEP_ALL_OPTS;
+ break;
+
+ case OPT_mno_opts:
+ target_flags &= ~ MEP_ALL_OPTS;
+ break;
+
+ case OPT_mcop64:
+ target_flags |= MASK_COP;
+ target_flags |= MASK_64BIT_CR_REGS;
+ break;
+
+ case OPT_mtiny_:
+ option_mtiny_specified = 1;
+
+ case OPT_mivc2:
+ target_flags |= MASK_COP;
+ target_flags |= MASK_64BIT_CR_REGS;
+ target_flags |= MASK_VLIW;
+ target_flags |= MASK_OPT_VL64;
+ target_flags |= MASK_IVC2;
+
+ for (i=0; i<32; i++)
+ fixed_regs[i+48] = 0;
+ for (i=0; i<32; i++)
+ call_used_regs[i+48] = 1;
+ for (i=6; i<8; i++)
+ call_used_regs[i+48] = 0;
+
+#define RN(n,s) reg_names[FIRST_CCR_REGNO + n] = s
+ RN (0, "$csar0");
+ RN (1, "$cc");
+ RN (4, "$cofr0");
+ RN (5, "$cofr1");
+ RN (6, "$cofa0");
+ RN (7, "$cofa1");
+ RN (15, "$csar1");
+
+ RN (16, "$acc0_0");
+ RN (17, "$acc0_1");
+ RN (18, "$acc0_2");
+ RN (19, "$acc0_3");
+ RN (20, "$acc0_4");
+ RN (21, "$acc0_5");
+ RN (22, "$acc0_6");
+ RN (23, "$acc0_7");
+
+ RN (24, "$acc1_0");
+ RN (25, "$acc1_1");
+ RN (26, "$acc1_2");
+ RN (27, "$acc1_3");
+ RN (28, "$acc1_4");
+ RN (29, "$acc1_5");
+ RN (30, "$acc1_6");
+ RN (31, "$acc1_7");
+#undef RN
+
+ break;
+
+ default:
+ break;
+ }
+ return TRUE;
+}
+
+static void
+mep_asm_init_sections (void)
+{
+ based_section
+ = get_unnamed_section (SECTION_WRITE, output_section_asm_op,
+ "\t.section .based,\"aw\"");
+
+ tinybss_section
+ = get_unnamed_section (SECTION_WRITE | SECTION_BSS, output_section_asm_op,
+ "\t.section .sbss,\"aw\"");
+
+ sdata_section
+ = get_unnamed_section (SECTION_WRITE, output_section_asm_op,
+ "\t.section .sdata,\"aw\",@progbits");
+
+ far_section
+ = get_unnamed_section (SECTION_WRITE, output_section_asm_op,
+ "\t.section .far,\"aw\"");
+
+ farbss_section
+ = get_unnamed_section (SECTION_WRITE | SECTION_BSS, output_section_asm_op,
+ "\t.section .farbss,\"aw\"");
+
+ frodata_section
+ = get_unnamed_section (0, output_section_asm_op,
+ "\t.section .frodata,\"a\"");
+
+ srodata_section
+ = get_unnamed_section (0, output_section_asm_op,
+ "\t.section .srodata,\"a\"");
+
+ vtext_section
+ = get_unnamed_section (SECTION_CODE | SECTION_MEP_VLIW, output_section_asm_op,
+ "\t.section .vtext,\"axv\"\n\t.vliw");
+
+ vftext_section
+ = get_unnamed_section (SECTION_CODE | SECTION_MEP_VLIW, output_section_asm_op,
+ "\t.section .vftext,\"axv\"\n\t.vliw");
+
+ ftext_section
+ = get_unnamed_section (SECTION_CODE, output_section_asm_op,
+ "\t.section .ftext,\"ax\"\n\t.core");
+
+}
+
+/* Initialize the GCC target structure. */
+
+#undef TARGET_ASM_FUNCTION_PROLOGUE
+#define TARGET_ASM_FUNCTION_PROLOGUE mep_start_function
+#undef TARGET_ATTRIBUTE_TABLE
+#define TARGET_ATTRIBUTE_TABLE mep_attribute_table
+#undef TARGET_COMP_TYPE_ATTRIBUTES
+#define TARGET_COMP_TYPE_ATTRIBUTES mep_comp_type_attributes
+#undef TARGET_INSERT_ATTRIBUTES
+#define TARGET_INSERT_ATTRIBUTES mep_insert_attributes
+#undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
+#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P mep_function_attribute_inlinable_p
+#undef TARGET_CAN_INLINE_P
+#define TARGET_CAN_INLINE_P mep_can_inline_p
+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS mep_section_type_flags
+#undef TARGET_ASM_NAMED_SECTION
+#define TARGET_ASM_NAMED_SECTION mep_asm_named_section
+#undef TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS mep_init_builtins
+#undef TARGET_EXPAND_BUILTIN
+#define TARGET_EXPAND_BUILTIN mep_expand_builtin
+#undef TARGET_SCHED_ADJUST_COST
+#define TARGET_SCHED_ADJUST_COST mep_adjust_cost
+#undef TARGET_SCHED_ISSUE_RATE
+#define TARGET_SCHED_ISSUE_RATE mep_issue_rate
+#undef TARGET_SCHED_REORDER
+#define TARGET_SCHED_REORDER mep_sched_reorder
+#undef TARGET_STRIP_NAME_ENCODING
+#define TARGET_STRIP_NAME_ENCODING mep_strip_name_encoding
+#undef TARGET_ASM_SELECT_SECTION
+#define TARGET_ASM_SELECT_SECTION mep_select_section
+#undef TARGET_ASM_UNIQUE_SECTION
+#define TARGET_ASM_UNIQUE_SECTION mep_unique_section
+#undef TARGET_ENCODE_SECTION_INFO
+#define TARGET_ENCODE_SECTION_INFO mep_encode_section_info
+#undef TARGET_FUNCTION_OK_FOR_SIBCALL
+#define TARGET_FUNCTION_OK_FOR_SIBCALL mep_function_ok_for_sibcall
+#undef TARGET_RTX_COSTS
+#define TARGET_RTX_COSTS mep_rtx_cost
+#undef TARGET_ADDRESS_COST
+#define TARGET_ADDRESS_COST mep_address_cost
+#undef TARGET_MACHINE_DEPENDENT_REORG
+#define TARGET_MACHINE_DEPENDENT_REORG mep_reorg
+#undef TARGET_SETUP_INCOMING_VARARGS
+#define TARGET_SETUP_INCOMING_VARARGS mep_setup_incoming_varargs
+#undef TARGET_PASS_BY_REFERENCE
+#define TARGET_PASS_BY_REFERENCE mep_pass_by_reference
+#undef TARGET_FUNCTION_ARG
+#define TARGET_FUNCTION_ARG mep_function_arg
+#undef TARGET_FUNCTION_ARG_ADVANCE
+#define TARGET_FUNCTION_ARG_ADVANCE mep_function_arg_advance
+#undef TARGET_VECTOR_MODE_SUPPORTED_P
+#define TARGET_VECTOR_MODE_SUPPORTED_P mep_vector_mode_supported_p
+#undef TARGET_HANDLE_OPTION
+#define TARGET_HANDLE_OPTION mep_handle_option
+#undef TARGET_OPTION_OVERRIDE
+#define TARGET_OPTION_OVERRIDE mep_option_override
+#undef TARGET_OPTION_OPTIMIZATION_TABLE
+#define TARGET_OPTION_OPTIMIZATION_TABLE mep_option_optimization_table
+#undef TARGET_DEFAULT_TARGET_FLAGS
+#define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
+#undef TARGET_ALLOCATE_INITIAL_VALUE
+#define TARGET_ALLOCATE_INITIAL_VALUE mep_allocate_initial_value
+#undef TARGET_ASM_INIT_SECTIONS
+#define TARGET_ASM_INIT_SECTIONS mep_asm_init_sections
+#undef TARGET_RETURN_IN_MEMORY
+#define TARGET_RETURN_IN_MEMORY mep_return_in_memory
+#undef TARGET_NARROW_VOLATILE_BITFIELD
+#define TARGET_NARROW_VOLATILE_BITFIELD mep_narrow_volatile_bitfield
+#undef TARGET_EXPAND_BUILTIN_SAVEREGS
+#define TARGET_EXPAND_BUILTIN_SAVEREGS mep_expand_builtin_saveregs
+#undef TARGET_BUILD_BUILTIN_VA_LIST
+#define TARGET_BUILD_BUILTIN_VA_LIST mep_build_builtin_va_list
+#undef TARGET_EXPAND_BUILTIN_VA_START
+#define TARGET_EXPAND_BUILTIN_VA_START mep_expand_va_start
+#undef TARGET_GIMPLIFY_VA_ARG_EXPR
+#define TARGET_GIMPLIFY_VA_ARG_EXPR mep_gimplify_va_arg_expr
+#undef TARGET_CAN_ELIMINATE
+#define TARGET_CAN_ELIMINATE mep_can_eliminate
+#undef TARGET_CONDITIONAL_REGISTER_USAGE
+#define TARGET_CONDITIONAL_REGISTER_USAGE mep_conditional_register_usage
+#undef TARGET_TRAMPOLINE_INIT
+#define TARGET_TRAMPOLINE_INIT mep_trampoline_init
+
+struct gcc_target targetm = TARGET_INITIALIZER;
+
+#include "gt-mep.h"
diff --git a/gcc/config/mep/mep.cpu b/gcc/config/mep/mep.cpu
new file mode 100644
index 000000000..c87c5d1b6
--- /dev/null
+++ b/gcc/config/mep/mep.cpu
@@ -0,0 +1,21 @@
+; Toshiba MeP Media Engine description. -*- Scheme -*-
+; Copyright (C) 2009 Free Software Foundation, Inc.
+; Contributed by Red Hat, Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>.
+
+(include "mep-default.cpu")
diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h
new file mode 100644
index 000000000..5244bb38a
--- /dev/null
+++ b/gcc/config/mep/mep.h
@@ -0,0 +1,824 @@
+/* Definitions for Toshiba Media Processor
+ Copyright (C) 2001, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
+ Contributed by Red Hat, Inc.
+
+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
+<http://www.gnu.org/licenses/>. */
+
+
+#undef CPP_SPEC
+#define CPP_SPEC "\
+-D__MEP__ -D__MeP__ \
+-D__section(_x)=__attribute__((section(_x))) \
+-D__align(_x)=__attribute__((aligned(_x))) \
+-D__io(_x)=__attribute__((io(_x))) \
+-D__cb(_x)=__attribute__((cb(_x))) \
+-D__based=__attribute__((based)) \
+-D__tiny=__attribute__((tiny)) \
+-D__near=__attribute__((near)) \
+-D__far=__attribute__((far)) \
+-D__vliw=__attribute__((vliw)) \
+-D__interrupt=__attribute__((interrupt)) \
+-D__disinterrupt=__attribute__((disinterrupt)) \
+%{!meb:%{!mel:-D__BIG_ENDIAN__}} \
+%{meb:-U__LITTLE_ENDIAN__ -D__BIG_ENDIAN__} \
+%{mel:-U__BIG_ENDIAN__ -D__LITTLE_ENDIAN__} \
+%{mconfig=*:-D__MEP_CONFIG_%*} \
+%{mivc2:-D__MEP_CONFIG_CP_DATA_BUS_WIDTH=64} \
+"
+
+#undef CC1_SPEC
+#define CC1_SPEC "%{!mlibrary:%(config_cc_spec)} \
+%{!.cc:%{O2:%{!funroll*:--param max-completely-peeled-insns=6 \
+ --param max-unrolled-insns=6 -funroll-loops}}}"
+
+#undef CC1PLUS_SPEC
+#define CC1PLUS_SPEC "%{!mlibrary:%(config_cc_spec)}"
+
+#undef ASM_SPEC
+#define ASM_SPEC "%{mconfig=*} %{meb:-EB} %{mel:-EL} \
+%{mno-satur} %{msatur} %{mno-clip} %{mclip} %{mno-minmax} %{mminmax} \
+%{mno-absdiff} %{mabsdiff} %{mno-leadz} %{mleadz} %{mno-bitops} %{mbitops} \
+%{mno-div} %{mdiv} %{mno-mult} %{mmult} %{mno-average} %{maverage} \
+%{mcop32} %{mno-debug} %{mdebug} %{mlibrary}"
+
+/* The MeP config tool will edit this spec. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "%{msdram:%{msim:simsdram-crt0.o%s}} \
+%{mno-sdram:%{msim:sim-crt0.o%s}} \
+%{msdram:%{!msim*:sdram-crt0.o%s}} \
+%{mno-sdram:%{!msim*:crt0.o%s}} \
+%(config_start_spec) \
+%{msimnovec:simnovec-crt0.o%s} \
+crtbegin.o%s"
+
+#undef LIB_SPEC
+#define LIB_SPEC "-( -lc %{msim*:-lsim}%{!msim*:-lnosys} -) %(config_link_spec)"
+
+#undef LINK_SPEC
+#define LINK_SPEC "%{meb:-EB} %{mel:-EL}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "crtend.o%s %{msim*:sim-crtn.o%s}%{!msim*:crtn.o%s}"
+
+/* The MeP config tool will edit this spec. */
+#define CONFIG_CC_SPEC "\
+%{mconfig=default: -mbitops -mleadz -mabsdiff -maverage -mminmax -mclip -msatur -mvl64 -mvliw -mcop64 -D__MEP_CONFIG_CP_DATA_BUS_WIDTH=64 -mivc2}\
+"
+/* end-config-cc-spec */
+
+/* The MeP config tool will edit this spec. */
+#define CONFIG_LINK_SPEC "\
+%{mconfig=default: %{!T*:-Tdefault.ld}}\
+"
+/* end-config-link-spec */
+
+/* The MeP config tool will edit this spec. */
+#define CONFIG_START_SPEC "\
+%{!msdram:%{!mno-sdram:%{!msim*:crt0.o%s}}} \
+%{!msdram:%{!mno-sdram:%{msim:sim-crt0.o%s}}} \
+"
+/* end-config-start-spec */
+
+#define EXTRA_SPECS \
+ { "config_cc_spec", CONFIG_CC_SPEC }, \
+ { "config_link_spec", CONFIG_LINK_SPEC }, \
+ { "config_start_spec", CONFIG_START_SPEC },
+
+
+#define TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define_std ("mep"); \
+ builtin_assert ("machine=mep"); \
+ } \
+ while (0)
+
+/* Controlled by MeP-Integrator. */
+#define TARGET_H1 0
+
+#define MEP_ALL_OPTS (MASK_OPT_AVERAGE \
+ | MASK_OPT_MULT \
+ | MASK_OPT_DIV \
+ | MASK_OPT_BITOPS \
+ | MASK_OPT_LEADZ \
+ | MASK_OPT_ABSDIFF \
+ | MASK_OPT_MINMAX \
+ | MASK_OPT_CLIP \
+ | MASK_OPT_SATUR )
+
+#define TARGET_DEFAULT (MASK_IO_VOLATILE | MASK_OPT_REPEAT | MEP_ALL_OPTS | MASK_LITTLE_ENDIAN)
+
+#define TARGET_IO_NO_VOLATILE (! (target_flags & MASK_IO_VOLATILE))
+#define TARGET_OPT_NOREPEAT (! (target_flags & MASK_OPT_REPEAT))
+#define TARGET_32BIT_CR_REGS (! (target_flags & MASK_64BIT_CR_REGS))
+#define TARGET_BIG_ENDIAN (! (target_flags & MASK_LITTLE_ENDIAN))
+
+#define TARGET_COPRO_MULT 0
+
+#define TARGET_VERSION fprintf (stderr, " (Toshiba Media Processor (MeP))");
+
+/* The MeP config tool will replace this as appropriate. */
+#define DEFAULT_ENDIAN_SPEC "%{!meb: -mel}"
+
+/* The MeP config tool will replace this with an -mconfig= switch. */
+#define LIBRARY_CONFIG_SPEC "-mconfig=default"
+
+/* Don't add an endian option when building the libraries. */
+#define DRIVER_SELF_SPECS \
+ "%{!mlibrary:" DEFAULT_ENDIAN_SPEC "}", \
+ "%{mlibrary: " LIBRARY_CONFIG_SPEC " %{!mel:-meb}}", \
+ "%{mall-opts:-maverage -mmult -mdiv -mbitops -mleadz \
+ -mabsdiff -mminmax -mclip -msatur -mdebug} %<mall-opts", \
+ "%{mno-opts:-mno-average -mno-mult -mno-div -mno-bitops -mno-leadz \
+ -mno-absdiff -mno-minmax -mno-clip -mno-satur -mno-debug} %<mno-opts", \
+ "%{mfar:-ml -mtf -mc=far} %<mfar", \
+ "%{mconfig=default:-mmult -mdiv -D__MEP_CONFIG_ISA=1}"
+
+/* The MeP config tool will add COPROC_SELECTION_TABLE here. */
+/* start-coproc-selection-table */
+#define COPROC_SELECTION_TABLE \
+{"default", ISA_EXT1}
+/* end-coproc-selection-table */
+
+
+#define BITS_BIG_ENDIAN 0
+#define BYTES_BIG_ENDIAN (TARGET_LITTLE_ENDIAN ? 0 : 1)
+#define WORDS_BIG_ENDIAN (TARGET_LITTLE_ENDIAN ? 0 : 1)
+
+#define UNITS_PER_WORD 4
+
+#define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \
+ do \
+ { \
+ if (GET_MODE_CLASS (MODE) == MODE_INT \
+ && GET_MODE_SIZE (MODE) < 4) \
+ (MODE) = SImode; \
+ } \
+ while (0)
+
+#define PARM_BOUNDARY 32
+#define STACK_BOUNDARY 32
+#define PREFERRED_STACK_BOUNDARY 64
+#define FUNCTION_BOUNDARY 16
+#define BIGGEST_ALIGNMENT 64
+
+#define DATA_ALIGNMENT(TYPE, ALIGN) \
+ (TREE_CODE (TYPE) == ARRAY_TYPE \
+ && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \
+ && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
+
+#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
+ (TREE_CODE (EXP) == STRING_CST \
+ && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
+
+#define STRICT_ALIGNMENT 1
+
+#define PCC_BITFIELD_TYPE_MATTERS 1
+
+#define DEFAULT_VTABLE_THUNKS 1
+
+
+#define INT_TYPE_SIZE 32
+#define SHORT_TYPE_SIZE 16
+#define LONG_TYPE_SIZE 32
+#define LONG_LONG_TYPE_SIZE 64
+#define CHAR_TYPE_SIZE 8
+#define FLOAT_TYPE_SIZE 32
+#define DOUBLE_TYPE_SIZE 64
+#define LONG_DOUBLE_TYPE_SIZE 64
+#define DEFAULT_SIGNED_CHAR 1
+
+#undef SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "long int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE BITS_PER_WORD
+
+/* Register numbers:
+ 0..15 core registers
+ 16..47 control registers
+ 48..79 coprocessor registers
+ 80..111 coprocessor control registers
+ 112 virtual arg pointer register */
+
+#define FIRST_PSEUDO_REGISTER (LAST_SHADOW_REGISTER + 1)
+
+ /* R12 is optionally FP. R13 is TP, R14 is GP, R15 is SP. */
+ /* hi and lo can be used as general registers. Others have
+ immutable bits. */
+/* A "1" here means the register is generally not available to gcc,
+ and is assumed to remain unchanged or unused throughout. */
+#define FIXED_REGISTERS { \
+ /* core registers */ \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+ /* control registers */ \
+ 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, \
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+ /* coprocessor 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, 1, 1, \
+ /* coprocessor control 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, 1, 1, \
+ /* virtual arg pointer */ \
+ 1, FIXED_SHADOW_REGISTERS \
+ }
+
+/* This is a call-clobbered reg not used for args or return value,
+ that we use as a temp for saving control registers in the prolog
+ and restoring them in the epilog. */
+#define REGSAVE_CONTROL_TEMP 11
+
+/* A "1" here means a register may be changed by a function without
+ needing to preserve its previous value. */
+#define CALL_USED_REGISTERS { \
+ /* core registers */ \
+ 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, \
+ /* control 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, 1, 1, \
+ /* coprocessor 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, 1, 1, \
+ /* coprocessor control 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, 1, 1, \
+ /* virtual arg pointer */ \
+ 1, CALL_USED_SHADOW_REGISTERS \
+ }
+
+#define REG_ALLOC_ORDER { \
+ /* core registers */ \
+ 3, 2, 1, 0, 9, 10, 11, 12, 4, 5, 6, 7, 8, 13, 14, 15, \
+ /* control registers */ \
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, \
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \
+ /* coprocessor registers */ \
+ /* Prefer to use the non-loadable registers when looking for a \
+ member of CR_REGS (as opposed to LOADABLE_CR_REGS). */ \
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 48, 49, 50, 51, 52, 58, \
+ 59, 60, 61, 62, 63, 53, 54, 55, 56, 57, 74, 75, 76, 77, 78, 79, \
+ /* coprocessor control registers */ \
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, \
+ /* virtual arg pointer */ \
+ 112, SHADOW_REG_ALLOC_ORDER \
+ }
+
+/* We must somehow disable register remapping for interrupt functions. */
+extern char mep_leaf_registers[];
+#define LEAF_REGISTERS mep_leaf_registers
+#define LEAF_REG_REMAP(REG) (REG)
+
+
+#define FIRST_GR_REGNO 0
+#define FIRST_CONTROL_REGNO (FIRST_GR_REGNO + 16)
+#define FIRST_CR_REGNO (FIRST_CONTROL_REGNO + 32)
+#define FIRST_CCR_REGNO (FIRST_CR_REGNO + 32)
+
+#define GR_REGNO_P(REGNO) \
+ ((unsigned) ((REGNO) - FIRST_GR_REGNO) < 16)
+
+#define CONTROL_REGNO_P(REGNO) \
+ ((unsigned) ((REGNO) - FIRST_CONTROL_REGNO) < 32)
+
+#define LOADABLE_CR_REGNO_P(REGNO) \
+ ((unsigned) ((REGNO) - FIRST_CR_REGNO) < 16)
+
+#define CR_REGNO_P(REGNO) \
+ ((unsigned) ((REGNO) - FIRST_CR_REGNO) < 32)
+
+#define CCR_REGNO_P(REGNO) \
+ ((unsigned) ((REGNO) - FIRST_CCR_REGNO) < 32)
+
+#define ANY_CONTROL_REGNO_P(REGNO) \
+ (CONTROL_REGNO_P (REGNO) || CCR_REGNO_P (REGNO))
+
+#define HARD_REGNO_NREGS(REGNO, MODE) \
+ ((CR_REGNO_P (REGNO) && TARGET_64BIT_CR_REGS) \
+ ? (GET_MODE_SIZE (MODE) + 8 - 1) / 8 \
+ : (GET_MODE_SIZE (MODE) + 4 - 1) / 4)
+
+#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
+
+#define MODES_TIEABLE_P(MODE1, MODE2) 1
+
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ mep_cannot_change_mode_class (FROM, TO, CLASS)
+
+enum reg_class
+{
+ NO_REGS,
+ SP_REGS,
+ TP_REGS,
+ GP_REGS,
+ R0_REGS,
+ RPC_REGS,
+ HI_REGS,
+ LO_REGS,
+ HILO_REGS,
+ TPREL_REGS,
+ GENERAL_NOT_R0_REGS,
+ GENERAL_REGS,
+ CONTROL_REGS,
+ CONTROL_OR_GENERAL_REGS,
+ USER0_REGS,
+ USER1_REGS,
+ USER2_REGS,
+ USER3_REGS,
+ LOADABLE_CR_REGS,
+ CR_REGS,
+ CCR_REGS,
+ ALL_REGS,
+ LIM_REG_CLASSES
+};
+
+#define N_REG_CLASSES ((int) LIM_REG_CLASSES)
+
+#define REG_CLASS_NAMES { \
+ "NO_REGS", \
+ "SP_REGS", \
+ "TP_REGS", \
+ "GP_REGS", \
+ "R0_REGS", \
+ "RPC_REGS", \
+ "HI_REGS", \
+ "LO_REGS", \
+ "HILO_REGS", \
+ "TPREL_REGS", \
+ "GENERAL_NOT_R0_REGS", \
+ "GENERAL_REGS", \
+ "CONTROL_REGS", \
+ "CONTROL_OR_GENERAL_REGS", \
+ "USER0_REGS", \
+ "USER1_REGS", \
+ "USER2_REGS", \
+ "USER3_REGS", \
+ "LOADABLE_CR_REGS", \
+ "CR_REGS", \
+ "CCR_REGS", \
+ "ALL_REGS" }
+
+#define REG_CLASS_CONTENTS { \
+ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \
+ { 0x00008000, 0x00000000, 0x00000000, 0x00000000 }, /* SP_REGS */ \
+ { 0x00002000, 0x00000000, 0x00000000, 0x00000000 }, /* TP_REGS */ \
+ { 0x00004000, 0x00000000, 0x00000000, 0x00000000 }, /* GP_REGS */ \
+ { 0x00000001, 0x00000000, 0x00000000, 0x00000000 }, /* R0_REGS */ \
+ { 0x00400000, 0x00000000, 0x00000000, 0x00000000 }, /* RPC_REGS */ \
+ { 0x00800000, 0x00000000, 0x00000000, 0x00000000 }, /* HI_REGS */ \
+ { 0x01000000, 0x00000000, 0x00000000, 0x00000000 }, /* LO_REGS */ \
+ { 0x01800000, 0x00000000, 0x00000000, 0x00000000 }, /* HILO_REGS */ \
+ { 0x000000ff, 0x00000000, 0x00000000, 0x00000000 }, /* TPREL_REGS */ \
+ { 0x0000fffe, 0x00000000, 0x00000000, 0x00000000 }, /* GENERAL_NOT_R0_REGS */ \
+ { 0x0000ffff, 0x00000000, 0x00000000, 0x00010000 }, /* GENERAL_REGS */ \
+ { 0xffff0000, 0x0000ffff, 0x00000000, 0x00000000 }, /* CONTROL_REGS */ \
+ { 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000 }, /* CONTROL_OR_GENERAL_REGS */ \
+ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, /* USER0_REGS */ \
+ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, /* USER1_REGS */ \
+ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, /* USER2_REGS */ \
+ { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, /* USER3_REGS */ \
+ { 0x00000000, 0xffff0000, 0x00000000, 0x00000000 }, /* LOADABLE_CR_REGS */ \
+ { 0x00000000, 0xffff0000, 0x0000ffff, 0x00000000 }, /* CR_REGS */ \
+ { 0x00000000, 0x00000000, 0xffff0000, 0x0000ffff }, /* CCR_REGS */ \
+ { 0xffffffff, 0xffffffff, 0xffffffff, 0x0001ffff }, /* ALL_REGS */ \
+ }
+
+#define REGNO_REG_CLASS(REGNO) (enum reg_class) mep_regno_reg_class (REGNO)
+
+#define IRA_COVER_CLASSES { GENERAL_REGS, CONTROL_REGS, CR_REGS, CCR_REGS, LIM_REG_CLASSES }
+
+#define BASE_REG_CLASS GENERAL_REGS
+#define INDEX_REG_CLASS GENERAL_REGS
+
+#if 0
+#define REG_CLASS_FROM_CONSTRAINT(CHAR, STRING) \
+ mep_reg_class_from_constraint (CHAR, STRING)
+#endif
+
+#define REGNO_OK_FOR_BASE_P(NUM) (GR_REGNO_P (NUM) \
+ || (NUM) == ARG_POINTER_REGNUM \
+ || (NUM) >= FIRST_PSEUDO_REGISTER)
+
+#define REGNO_OK_FOR_INDEX_P(NUM) REGNO_OK_FOR_BASE_P (NUM)
+
+#define PREFERRED_RELOAD_CLASS(X, CLASS) mep_preferred_reload_class (X, CLASS)
+
+#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
+ mep_secondary_input_reload_class (CLASS, MODE, X)
+#define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) \
+ mep_secondary_output_reload_class (CLASS, MODE, X)
+#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
+ mep_secondary_memory_needed (CLASS1, CLASS2, MODE)
+
+#define CLASS_MAX_NREGS(CLASS, MODE) \
+ ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
+
+#if 0
+#define CONST_OK_FOR_LETTER_P(VALUE, C) mep_const_ok_for_letter_p (VALUE, C)
+
+#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0
+
+#define CONSTRAINT_LEN(C, STR) \
+ ((C) == 'e' ? 2 : DEFAULT_CONSTRAINT_LEN (C, STR))
+#define EXTRA_CONSTRAINT(VALUE, C) mep_extra_constraint (VALUE, C)
+#endif
+
+#define WANT_GCC_DECLARATIONS
+#include "mep-intrin.h"
+#undef WANT_GCC_DECLARATIONS
+
+extern int mep_intrinsic_insn[];
+extern unsigned int mep_selected_isa;
+
+/* True if intrinsic X is available. X is a mep_* value declared
+ in mep-intrin.h. */
+#define MEP_INTRINSIC_AVAILABLE_P(X) (mep_intrinsic_insn[X] >= 0)
+
+/* Used to define CGEN_ENABLE_INTRINSIC_P in mep-intrin.h. */
+#define CGEN_CURRENT_ISAS mep_selected_isa
+#define CGEN_CURRENT_GROUP \
+ (mep_vliw_function_p (cfun->decl) ? GROUP_VLIW : GROUP_NORMAL)
+
+
+
+#define STACK_GROWS_DOWNWARD 1
+#define FRAME_GROWS_DOWNWARD 1
+#define STARTING_FRAME_OFFSET 0
+#define FIRST_PARM_OFFSET(FUNDECL) 0
+#define INCOMING_FRAME_SP_OFFSET 0
+
+#define RETURN_ADDR_RTX(COUNT, FRAMEADDR) mep_return_addr_rtx (COUNT)
+#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (SImode, LP_REGNO)
+#define DWARF_FRAME_RETURN_COLUMN LP_REGNO
+
+#define STACK_POINTER_REGNUM 15
+#define FRAME_POINTER_REGNUM 8
+#define ARG_POINTER_REGNUM 112
+#define RETURN_ADDRESS_POINTER_REGNUM 17
+#define STATIC_CHAIN_REGNUM 0
+
+
+
+#define ELIMINABLE_REGS \
+{ \
+ {ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
+ {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
+ {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} \
+}
+
+#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
+ (OFFSET) = mep_elimination_offset (FROM, TO)
+
+#define ACCUMULATE_OUTGOING_ARGS 1
+
+
+
+#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 1
+
+typedef struct
+{
+ int nregs;
+ int vliw;
+} CUMULATIVE_ARGS;
+
+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
+ mep_init_cumulative_args (& (CUM), FNTYPE, LIBNAME, FNDECL)
+
+#define FUNCTION_ARG_REGNO_P(REGNO) \
+ (((REGNO) >= 1 && (REGNO) <= 4) \
+ || ((REGNO) >= FIRST_CR_REGNO + 1 \
+ && (REGNO) <= FIRST_CR_REGNO + 4 \
+ && TARGET_COP))
+
+#define RETURN_VALUE_REGNUM 0
+
+#define FUNCTION_VALUE(VALTYPE, FUNC) mep_function_value (VALTYPE, FUNC)
+#define LIBCALL_VALUE(MODE) mep_libcall_value (MODE)
+
+#define FUNCTION_VALUE_REGNO_P(REGNO) \
+ ((REGNO) == RETURN_VALUE_REGNUM)
+
+#define DEFAULT_PCC_STRUCT_RETURN 0
+
+#define STRUCT_VALUE 0
+
+#define FUNCTION_OK_FOR_SIBCALL(DECL) mep_function_ok_for_sibcall(DECL)
+
+/* Prologue and epilogues are all handled via RTL. */
+
+#define EXIT_IGNORE_STACK 1
+
+#define EPILOGUE_USES(REGNO) mep_epilogue_uses (REGNO)
+
+/* Profiling is supported. */
+
+#define FUNCTION_PROFILER(FILE, LABELNO) mep_function_profiler (FILE);
+#undef TARGET_HAS_F_SETLKW
+#define NO_PROFILE_COUNTERS 1
+
+/* Trampolines are built at run-time. The cache is invalidated at
+ run-time also. */
+
+#define TRAMPOLINE_SIZE 20
+
+
+#define MAX_REGS_PER_ADDRESS 1
+
+#ifdef REG_OK_STRICT
+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \
+ if (mep_legitimate_address ((MODE), (X), 1)) goto LABEL
+#else
+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \
+ if (mep_legitimate_address ((MODE), (X), 0)) goto LABEL
+#endif
+
+#ifdef REG_OK_STRICT
+#define REG_OK_FOR_BASE_P(X) GR_REGNO_P (REGNO (X))
+#else
+#define REG_OK_FOR_BASE_P(X) (GR_REGNO_P (REGNO (X)) \
+ || REGNO (X) == ARG_POINTER_REGNUM \
+ || REGNO (X) >= FIRST_PSEUDO_REGISTER)
+#endif
+
+#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
+
+#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, IND_LEVELS, WIN) \
+ if (mep_legitimize_reload_address (&(X), (MODE), (OPNUM), (TYPE), (IND_LEVELS))) \
+ goto WIN
+
+#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)
+
+#define LEGITIMATE_CONSTANT_P(X) \
+ mep_legitimate_constant_p(X)
+
+#define SELECT_CC_MODE(OP, X, Y) CCmode
+
+
+/* Moves between control regs need a scratch. */
+#define REGISTER_MOVE_COST(MODE, FROM, TO) mep_register_move_cost (MODE, FROM, TO)
+
+#define SLOW_BYTE_ACCESS 1
+
+/* Define this macro if it is as good or better to call a constant function
+ address than to call an address kept in a register. */
+#define NO_FUNCTION_CSE
+
+
+#define TEXT_SECTION_ASM_OP "\t.text\n\t.core"
+#define DATA_SECTION_ASM_OP "\t.data"
+#define BSS_SECTION_ASM_OP ".bss"
+
+#define USE_SELECT_SECTION_FOR_FUNCTIONS 1
+
+#define JUMP_TABLES_IN_TEXT_SECTION 1
+
+#define TARGET_ASM_FILE_END mep_file_cleanups
+
+#define ASM_APP_ON "#APP\n"
+#define ASM_APP_OFF "#NO_APP\n"
+
+#define ASM_OUTPUT_DOUBLE(FILE, VALUE) \
+ do \
+ { \
+ long l[2]; \
+ \
+ REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
+ fprintf (FILE, "\t.long\t0x%lx,0x%lx\n", l[0], l[1]); \
+ } \
+ while (0)
+
+#define ASM_OUTPUT_FLOAT(FILE, VALUE) \
+ do \
+ { \
+ long l; \
+ \
+ REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
+ fprintf ((FILE), "\t.long\t0x%lx\n", l); \
+ } \
+ while (0)
+
+#define ASM_OUTPUT_CHAR(FILE, VALUE) \
+ do \
+ { \
+ fprintf (FILE, "\t.byte\t"); \
+ output_addr_const (FILE, (VALUE)); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
+
+#define ASM_OUTPUT_SHORT(FILE, VALUE) \
+ do \
+ { \
+ fprintf (FILE, "\t.hword\t"); \
+ output_addr_const (FILE, (VALUE)); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
+
+#define ASM_OUTPUT_INT(FILE, VALUE) \
+ do \
+ { \
+ fprintf (FILE, "\t.word\t"); \
+ output_addr_const (FILE, (VALUE)); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
+
+#define ASM_OUTPUT_BYTE(STREAM, VALUE) \
+ fprintf (STREAM, "\t%s\t0x%x\n", ASM_BYTE_OP, (VALUE))
+
+/* Most of these are here to support based/tiny/far/io attributes. */
+
+#define ASM_OUTPUT_ALIGNED_DECL_COMMON(STREAM, DECL, NAME, SIZE, ALIGNMENT) \
+ mep_output_aligned_common (STREAM, DECL, NAME, SIZE, ALIGNMENT, 1)
+
+#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(STREAM, DECL, NAME, SIZE, ALIGNMENT) \
+ mep_output_aligned_common (STREAM, DECL, NAME, SIZE, ALIGNMENT, 0)
+
+#define ASM_OUTPUT_LABEL(STREAM, NAME) \
+ do \
+ { \
+ assemble_name (STREAM, NAME); \
+ fputs (":\n", STREAM); \
+ } \
+ while (0)
+
+/* Globalizing directive for a label. */
+#define GLOBAL_ASM_OP "\t.globl "
+
+#define ASM_OUTPUT_LABELREF(STREAM, NAME) \
+ asm_fprintf ((STREAM), "%U%s", mep_strip_name_encoding (NAME))
+
+#define ASM_FORMAT_PRIVATE_NAME(OUTVAR, NAME, NUMBER) \
+ do \
+ { \
+ (OUTVAR) = (char *) alloca (strlen ((NAME)) + 12); \
+ sprintf ((OUTVAR), "%s.%ld", (NAME), (long)(NUMBER)); \
+ } \
+ while (0)
+
+
+#define REGISTER_NAMES \
+{ \
+ /* Core registers. */ \
+ "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7", \
+ "$8", "$9", "$10", "$11", "$12", "$tp", "$gp", "$sp", \
+ /* Control registers. */ \
+ "$pc", "$lp", "$sar", "3", "$rpb", "$rpe", "$rpc", "$hi", \
+ "$lo", "9", "10", "11", "$mb0", "$me0", "$mb1", "$me1", \
+ "$psw", "$id", "$tmp", "$epc", "$exc", "$cfg", "22", "$npc", \
+ "$dbg", "$depc", "$opt", "$rcfg", "$ccfg", "29", "30", "31", \
+ /* Coprocessor registers. */ \
+ "$c0", "$c1", "$c2", "$c3", "$c4", "$c5", "$c6", "$c7", \
+ "$c8", "$c9", "$c10", "$c11", "$c12", "$c13", "$c14", "$c15", \
+ "$c16", "$c17", "$c18", "$c19", "$c20", "$c21", "$c22", "$c23", \
+ "$c24", "$c25", "$c26", "$c27", "$c28", "$c29", "$c30", "$c31", \
+ /* Coprocessor control registers. */ \
+ "$ccr0", "$ccr1", "$ccr2", "$ccr3", "$ccr4", "$ccr5", "$ccr6", \
+ "$ccr7", "$ccr8", "$ccr9", "$ccr10", "$ccr11", "$ccr12", "$ccr13", \
+ "$ccr14", "$ccr15", "$ccr16", "$ccr17", "$ccr18", "$ccr19", "$ccr20", \
+ "$ccr21", "$ccr22", "$ccr23", "$ccr24", "$ccr25", "$ccr26", "$ccr27", \
+ "$ccr28", "$ccr29", "$ccr30", "$ccr31", \
+ /* Virtual arg pointer. */ \
+ "$argp", SHADOW_REGISTER_NAMES \
+}
+
+/* We duplicate some of the above because we twiddle the above
+ according to *how* the registers are used. Likewise, we include
+ the standard names for coprocessor control registers so that
+ coprocessor options can rename them in the default table. Note
+ that these are compared to stripped names (see REGISTER_PREFIX
+ below). */
+#define ADDITIONAL_REGISTER_NAMES \
+{ \
+ { "8", 8 }, { "fp", 8 }, \
+ { "13", 13 }, { "tp", 13 }, \
+ { "14", 14 }, { "gp", 14 }, \
+ { "15", 15 }, { "sp", 15 }, \
+ { "ccr0", FIRST_CCR_REGNO + 0 }, \
+ { "ccr1", FIRST_CCR_REGNO + 1 }, \
+ { "ccr2", FIRST_CCR_REGNO + 2 }, \
+ { "ccr3", FIRST_CCR_REGNO + 3 }, \
+ { "ccr4", FIRST_CCR_REGNO + 4 }, \
+ { "ccr5", FIRST_CCR_REGNO + 5 }, \
+ { "ccr6", FIRST_CCR_REGNO + 6 }, \
+ { "ccr7", FIRST_CCR_REGNO + 7 }, \
+ { "ccr8", FIRST_CCR_REGNO + 8 }, \
+ { "ccr9", FIRST_CCR_REGNO + 9 }, \
+ { "ccr10", FIRST_CCR_REGNO + 10 }, \
+ { "ccr11", FIRST_CCR_REGNO + 11 }, \
+ { "ccr12", FIRST_CCR_REGNO + 12 }, \
+ { "ccr13", FIRST_CCR_REGNO + 13 }, \
+ { "ccr14", FIRST_CCR_REGNO + 14 }, \
+ { "ccr15", FIRST_CCR_REGNO + 15 }, \
+ { "ccr16", FIRST_CCR_REGNO + 16 }, \
+ { "ccr17", FIRST_CCR_REGNO + 17 }, \
+ { "ccr18", FIRST_CCR_REGNO + 18 }, \
+ { "ccr19", FIRST_CCR_REGNO + 19 }, \
+ { "ccr20", FIRST_CCR_REGNO + 20 }, \
+ { "ccr21", FIRST_CCR_REGNO + 21 }, \
+ { "ccr22", FIRST_CCR_REGNO + 22 }, \
+ { "ccr23", FIRST_CCR_REGNO + 23 }, \
+ { "ccr24", FIRST_CCR_REGNO + 24 }, \
+ { "ccr25", FIRST_CCR_REGNO + 25 }, \
+ { "ccr26", FIRST_CCR_REGNO + 26 }, \
+ { "ccr27", FIRST_CCR_REGNO + 27 }, \
+ { "ccr28", FIRST_CCR_REGNO + 28 }, \
+ { "ccr29", FIRST_CCR_REGNO + 29 }, \
+ { "ccr30", FIRST_CCR_REGNO + 30 }, \
+ { "ccr31", FIRST_CCR_REGNO + 31 } \
+}
+
+/* We watch for pipeline hazards with these */
+#define ASM_OUTPUT_OPCODE(STREAM, PTR) mep_asm_output_opcode (STREAM, PTR)
+#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) mep_final_prescan_insn (INSN, OPVEC, NOPERANDS)
+
+#define PRINT_OPERAND(STREAM, X, CODE) mep_print_operand (STREAM, X, CODE)
+
+#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '!' || (CODE) == '<')
+
+#define PRINT_OPERAND_ADDRESS(STREAM, X) mep_print_operand_address (STREAM, X)
+
+#define REGISTER_PREFIX "$"
+#define LOCAL_LABEL_PREFIX "."
+#define USER_LABEL_PREFIX ""
+#define IMMEDIATE_PREFIX ""
+
+
+
+#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
+ fprintf (STREAM, "\t.word .L%d\n", VALUE)
+
+
+
+#undef PREFERRED_DEBUGGING_TYPE
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+#define DWARF2_DEBUGGING_INFO 1
+#define DWARF2_UNWIND_INFO 1
+
+#define EH_RETURN_DATA_REGNO(N) ((N) < 2 ? (N) + 10 : INVALID_REGNUM)
+
+#define EH_RETURN_STACKADJ_RTX mep_return_stackadj_rtx ()
+#define EH_RETURN_HANDLER_RTX mep_return_handler_rtx ()
+
+#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
+
+
+
+#define ASM_OUTPUT_ALIGN(STREAM, POWER) \
+ fprintf ((STREAM), "\t.p2align %d\n", (POWER))
+
+
+
+#define CASE_VECTOR_MODE SImode
+
+#define WORD_REGISTER_OPERATIONS
+#define LOAD_EXTEND_OP(MODE) SIGN_EXTEND
+
+#define SHORT_IMMEDIATES_SIGN_EXTEND
+
+#define MOVE_MAX 4
+
+#define SHIFT_COUNT_TRUNCATED 1
+
+#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
+
+#define STORE_FLAG_VALUE 1
+
+#define Pmode SImode
+
+#define FUNCTION_MODE SImode
+
+#define REGISTER_TARGET_PRAGMAS() mep_register_pragmas ()
+
+/* If defined, a C expression to determine the base term of address X.
+ This macro is used in only one place: `find_base_term' in alias.c.
+
+ It is always safe for this macro to not be defined. It exists so
+ that alias analysis can understand machine-dependent addresses.
+
+ The typical use of this macro is to handle addresses containing
+ a label_ref or symbol_ref within an UNSPEC. */
+#define FIND_BASE_TERM(X) mep_find_base_term (X)
diff --git a/gcc/config/mep/mep.md b/gcc/config/mep/mep.md
new file mode 100644
index 000000000..773a9a0aa
--- /dev/null
+++ b/gcc/config/mep/mep.md
@@ -0,0 +1,2266 @@
+;; Toshiba Media Processor Machine description template
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 Free
+;; Software Foundation, Inc.
+;; Contributed by Red Hat Inc
+;;
+;; 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
+;; <http://www.gnu.org/licenses/>. */
+
+
+
+;; Constraints:
+;;
+;; a $sp
+;; b $tp
+;; c control regs
+;; h $hi ($23)
+;; l $lo ($24)
+;; d $hi/$lo pair (DImode)
+;; j $rpc ($22)
+;; r $0..$15
+;; t $0..$7
+;; v $gp
+;; x $c0..$c31
+;; ex coprocessor registers that can be moved to other coprocessor registers
+;; er coprocessor registers that can be moved to and from core registers
+;; em coprocessor registers that can be moves to and from memory
+;; y $ccr0..$ccr31
+;; z $0
+;;
+;; I sign imm16 mov/add
+;; J zero imm16 mov/add
+;; K zero imm24 mov
+;; L sign imm6 add
+;; M zero imm5 slt,shifts
+;; N zero imm4 bCC
+;; O high imm16 mov
+;;
+;; R near symbol
+;; S sign imm8 mov
+;; T tp or gp relative symbol
+;; U non-absolute memory
+;; W %hi(sym)
+;; Y (Rn)
+;; Z Control Bus Symbol
+;;
+;; Modifiers:
+;;
+;; b print unique bit in mask
+;; B print bits required for value (for clip)
+;; h print decimal >> 16.
+;; I print decimal, with hex comment if more than 8 bits
+;; J print unsigned hex
+;; L print set, clr or not (for bitops)
+;; P print memory as a post-inc with no increment
+;; U print bits required for value (for clipu)
+;; x print unsigned decimal or hex, depending on where set bits are
+
+(define_constants [
+ (REGSAVE_CONTROL_TEMP 11)
+ (FP_REGNO 8)
+ (TP_REGNO 13)
+ (GP_REGNO 14)
+ (SP_REGNO 15)
+ (PSW_REGNO 16)
+ (LP_REGNO 17)
+ (SAR_REGNO 18)
+ (RPB_REGNO 20)
+ (RPE_REGNO 21)
+ (RPC_REGNO 22)
+ (HI_REGNO 23)
+ (LO_REGNO 24)
+ (CBCR_REGNO 81)
+ ])
+
+(define_constants [
+ (UNS_BLOCKAGE 0)
+ (UNS_TPREL 2)
+ (UNS_GPREL 3)
+ (UNS_REPEAT_BEG 4)
+ (UNS_REPEAT_END 5)
+ (UNS_EH_EPILOGUE 6)
+ (UNS_EREPEAT_BEG 7)
+ (UNS_EREPEAT_END 8)
+ (UNS_BB_TRACE_RET 9)
+ (UNS_DISABLE_INT 10)
+ (UNS_ENABLE_INT 11)
+ (UNS_RETI 12)
+ ])
+
+;; This attribute determines the VLIW packing mechanism. The IVC2
+;; coprocessor has two pipelines (P0 and P1), and a MeP+IVC2 can issue
+;; up to three insns at a time. Most IVC2 insns can run on either
+;; pipeline, however, scheduling some insns on P0 precludes packing a
+;; core insn with it, and only 16-bit core insns can pack with any P0
+;; insn.
+(define_attr "vliw" "basic,ivc2"
+ (const (symbol_ref "TARGET_IVC2")))
+
+;; This attribute describes the kind of memory operand present in the
+;; instruction. This is used to compute the length of the insn based
+;; on the addressing mode used.
+(define_attr "memop" "none,core0,core1,cop0,cop1"
+ (const_string "none"))
+
+(define_attr "intrinsic" "none,cmov,cmov1,cmov2,cmovc1,cmovc2,cmovh1,cmovh2"
+ (const_string "none"))
+
+;; This attribute describes how the instruction may be bundled in a
+;; VLIW instruction. Type MULTI is assumed to use both slots.
+(define_attr "slot" "core,cop,multi"
+ (cond [(eq_attr "intrinsic" "!none")
+ (const_string "cop")]
+ (const_string "core")))
+
+;; This attribute describes the latency of the opcode (ready delay).
+;; The 0 is used to indicate "unspecified". An instruction that
+;; completes immediately with no potential stalls would have a value
+;; of 1, a one cycle stall would be 2, etc.
+(define_attr "latency" ""
+ (const_int 0))
+
+(define_attr "shiftop" "none,operand2"
+ (const_string "none"))
+
+;; This attribute describes the size of the instruction in bytes.
+;; This *must* be exact unless the pattern is SLOT_MULTI, as this
+;; is used by the VLIW bundling code.
+(define_attr "length" ""
+ (cond [(eq_attr "memop" "core0")
+ (symbol_ref "mep_core_address_length (insn, 0)")
+ (eq_attr "memop" "core1")
+ (symbol_ref "mep_core_address_length (insn, 1)")
+ (eq_attr "memop" "cop0")
+ (symbol_ref "mep_cop_address_length (insn, 0)")
+ (eq_attr "memop" "cop1")
+ (symbol_ref "mep_cop_address_length (insn, 1)")
+ ]
+ ; Catch patterns that don't define the length properly.
+ (symbol_ref "(abort (), 0)")))
+
+;; This attribute describes a pipeline hazard seen in the insn.
+(define_attr "stall" "none,int2,ssarb,load,store,ldc,stc,ldcb,stcb,ssrab,fsft,ret,advck,mul,mulr,div"
+ (cond [(and (eq_attr "shiftop" "operand2")
+ (not (match_operand:SI 2 "mep_single_shift_operand" "")))
+ (const_string "int2")]
+ (const_string "none")))
+
+(define_attr "may_trap" "no,yes"
+ (const_string "no"))
+
+;; Describe a user's asm statement.
+(define_asm_attributes
+ [(set_attr "length" "4")
+ (set_attr "slot" "multi")])
+
+;; Each IVC2 instruction uses one of these two pipelines. P0S insns
+;; use P0; C3 insns use P1.
+(define_automaton "mep_ivc2")
+(define_cpu_unit "ivc2_core,ivc2_p0,ivc2_p1" "mep_ivc2")
+
+;; Each core or IVC2 instruction is bundled into one of these slots.
+;; Supported bundlings:
+;;
+;; Core mode:
+;;
+;; C1 [-----core-----]
+;; C2 [-------------core-------------]
+;; C3 [--------------c3--------------]
+;;
+;; VLIW mode:
+;;
+;; V1 [-----core-----][--------p0s-------][------------p1------------]
+;; V2 [-------------core-------------]xxxx[------------p1------------]
+;; V3 1111[--p0--]0111[--------p0--------][------------p1------------]
+
+(define_attr "slots" "core,c3,p0,p0_p0s,p0_p1,p0s,p0s_p1,p1" (const_string "core"))
+
+(define_cpu_unit "ivc2_slot_c16,ivc2_slot_c32,ivc2_slot_c3,ivc2_slot_p0s,ivc2_slot_p0,ivc2_slot_p1" "mep_ivc2")
+
+(define_insn_reservation "ivc2_insn_core16" 1
+ (and (eq_attr "vliw" "ivc2")
+ (and (eq (symbol_ref "get_attr_length(insn)") (const_int 2))
+ (and (eq_attr "intrinsic" "none")
+ (eq_attr "slot" "!cop"))))
+ "ivc2_core+ivc2_slot_c16")
+
+(define_insn_reservation "ivc2_insn_core32" 1
+ (and (eq_attr "vliw" "ivc2")
+ (and (eq (symbol_ref "get_attr_length(insn)") (const_int 4))
+ (and (eq_attr "intrinsic" "none")
+ (eq_attr "slot" "!cop"))))
+ "ivc2_core+ivc2_slot_c32")
+
+;; These shouldn't happen when in VLIW mode.
+(define_insn_reservation "ivc2_insn_c3" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "c3"))
+ "ivc2_p1+ivc2_slot_c3")
+
+(define_insn_reservation "ivc2_insn_p0" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p0"))
+ "ivc2_p0+ivc2_slot_p0")
+
+(define_insn_reservation "ivc2_insn_p0_p0s" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p0_p0s"))
+ "ivc2_p0+ivc2_slot_p0|ivc2_p0+ivc2_slot_p0s")
+
+(define_insn_reservation "ivc2_insn_p0_p1" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p0_p1"))
+ "ivc2_p0+ivc2_slot_p0|ivc2_p1+ivc2_slot_p1")
+
+(define_insn_reservation "ivc2_insn_p0s" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p0s"))
+ "ivc2_p0+ivc2_slot_p0s")
+
+(define_insn_reservation "ivc2_insn_p0s_p1" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p0s_p1"))
+ "ivc2_p0+ivc2_slot_p0s|ivc2_p1+ivc2_slot_p1")
+
+(define_insn_reservation "ivc2_insn_p1" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "slots" "p1"))
+ "ivc2_p1+ivc2_slot_p1")
+
+;; these run in C3 also, but when we're doing VLIW scheduling, they
+;; only run in P0.
+(define_insn_reservation "ivc2_insn_cmov" 1
+ (and (eq_attr "vliw" "ivc2")
+ (eq_attr "intrinsic" "!none"))
+ "ivc2_p0+ivc2_slot_p0")
+
+
+(exclusion_set "ivc2_slot_c32"
+ "ivc2_slot_p0,ivc2_slot_p0s")
+(exclusion_set "ivc2_slot_p0"
+ "ivc2_slot_p0s")
+(exclusion_set "ivc2_slot_c16"
+ "ivc2_slot_p0")
+(exclusion_set "ivc2_slot_c16"
+ "ivc2_slot_c32")
+
+;; Non-IVC2 scheduling.
+(define_automaton "mep")
+(define_cpu_unit "core,cop" "mep")
+
+;; Latencies are the time between one insn entering the second pipeline
+;; stage (E2, LD, A2 or V2) and the next instruction entering the same
+;; stage. When an instruction assigns to general registers, the default
+;; latencies are for when the next instruction receives the register
+;; through bypass 1.
+
+;; Arithmetic instructions that execute in a single stage.
+(define_insn_reservation "h1_int1" 2
+ (and (eq_attr "slot" "!cop")
+ (eq_attr "stall" "none"))
+ "core")
+(define_bypass 1 "h1_int1" "h1_int1,h1_ssarb")
+(define_bypass 1 "h1_int1" "h1_store" "mep_store_data_bypass_p")
+
+;; $sar can be read by an immediately following fsft or ldc.
+(define_insn_reservation "h1_ssarb" 1
+ (eq_attr "stall" "ssarb")
+ "core")
+
+;; Arithmetic instructions that execute in two stages.
+(define_insn_reservation "h1_int2" 2
+ (eq_attr "stall" "int2,fsft")
+ "core")
+(define_bypass 1 "h1_int2" "h1_int1,h1_ssarb")
+(define_bypass 1 "h1_int2" "h1_store" "mep_store_data_bypass_p")
+
+(define_insn_reservation "h1_load" 4
+ (eq_attr "stall" "load")
+ "core")
+(define_bypass 3 "h1_load" "h1_int1,h1_ssarb")
+(define_bypass 3 "h1_load" "h1_store" "mep_store_data_bypass_p")
+
+(define_insn_reservation "h1_store" 1
+ (eq_attr "stall" "store")
+ "core")
+
+(define_insn_reservation "h1_ipipe_ldc" 2
+ (and (eq_attr "stall" "ldc")
+ (ne (symbol_ref "mep_ipipe_ldc_p(insn)") (const_int 0)))
+ "core")
+(define_bypass 1 "h1_ipipe_ldc" "h1_int1,h1_ssarb")
+(define_bypass 1 "h1_ipipe_ldc" "h1_store" "mep_store_data_bypass_p")
+
+(define_insn_reservation "h1_apipe_ldc" 2
+ (and (eq_attr "stall" "ldc")
+ (eq (symbol_ref "mep_ipipe_ldc_p(insn)") (const_int 0)))
+ "core")
+
+;; 2 is correct for stc->ret and stc->fsft. The most important remaining
+;; case is stc->madd, which induces no stall.
+(define_insn_reservation "h1_stc" 2
+ (eq_attr "stall" "stc")
+ "core")
+(define_bypass 1 "h1_stc" "h1_mul")
+
+;; ??? Parameterised latency.
+(define_insn_reservation "h1_ldcb" 5
+ (eq_attr "stall" "ldcb")
+ "core")
+
+(define_insn_reservation "h1_stcb" 1
+ (eq_attr "stall" "stcb")
+ "core")
+
+(define_insn_reservation "h1_advck" 6
+ (eq_attr "stall" "advck")
+ "core")
+
+(define_insn_reservation "h1_mul" 5
+ (eq_attr "stall" "mul,mulr")
+ "core")
+(define_bypass 4 "h1_mul" "h1_int1,h1_ssarb")
+(define_bypass 4 "h1_mul" "h1_store" "mep_store_data_bypass_p")
+(define_bypass 1 "h1_mul" "h1_mul" "mep_mul_hilo_bypass_p")
+
+(define_insn_reservation "h1_div" 36
+ (eq_attr "stall" "div")
+ "core")
+
+(define_insn_reservation "h1_cop" 1
+ (eq_attr "slot" "cop")
+ "cop")
+
+(include "predicates.md")
+(include "constraints.md")
+(include "intrinsics.md")
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Moves
+;; ::
+;; ::::::::::::::::::::
+
+(define_expand "movqi"
+ [(set (match_operand:QI 0 "general_operand" "")
+ (match_operand:QI 1 "general_operand" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, QImode))
+ DONE;
+}")
+
+;; The Idea here is to prefer the 16-bit tp-relative load, but to fall back
+;; to the general 32-bit load rather than do silly things with spill regs.
+(define_insn "*movqi_tprel_load"
+ [(set (match_operand:QI 0 "mep_tprel_operand" "=t,*r")
+ (mem:QI (plus:SI (match_operand:SI 1 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 2
+ "symbolic_operand" "s,s")]
+ UNS_TPREL)))))]
+ ""
+ "lb\\t%0, %%tpoff(%2)(%1)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "load")])
+
+(define_insn "*movqi_tprel_store"
+ [(set (mem:QI (plus:SI (match_operand:SI 0 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 1
+ "symbolic_operand" "s,s")]
+ UNS_TPREL))))
+ (match_operand:QI 2 "mep_tprel_operand" "t,*r"))]
+ ""
+ "sb\\t%2, %%tpoff(%1)(%0)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "store")])
+
+(define_insn "*movqi_internal"
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r, r,m,r,c,r,y,r,er,ex,em,Y")
+ (match_operand:QI 1 "general_operand" " r,n,rm,r,c,r,y,r,er,r,ex,Y,em"))]
+ "mep_mov_ok (operands, QImode)"
+ "@
+ mov\\t%0, %1
+ mov\\t%0, %1
+ lb\\t%0, %1
+ sb\\t%1, %0
+ ldc\\t%0, %1
+ stc\\t%1, %0
+ cmovc\\t%0, %1
+ cmovc\\t%0, %1
+ cmov\\t%0, %1
+ cmov\\t%0, %1
+ %<\\t%0, %M1
+ lbcpa\\t%0, %P1
+ sbcpa\\t%1, %P0"
+ [(set_attr "length" "2,2,*,*,2,2,4,4,4,4,*,4,4")
+ (set_attr "intrinsic" "*,*,*,*,*,*,cmovc2,cmovc1,cmov2,cmov1,cmov,*,*")
+ (set_attr "stall" "*,*,load,store,ldc,stc,*,*,*,*,*,load,store")
+ (set_attr "memop" "*,*,core1,core0,*,*,*,*,*,*,*,*,*")])
+
+(define_expand "movhi"
+ [(set (match_operand:HI 0 "general_operand" "")
+ (match_operand:HI 1 "general_operand" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, HImode))
+ DONE;
+}")
+
+(define_insn "*movhi_tprel_load"
+ [(set (match_operand:HI 0 "mep_tprel_operand" "=t,*r")
+ (mem:HI (plus:SI (match_operand:SI 1 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 2
+ "symbolic_operand" "s,s")]
+ UNS_TPREL)))))]
+ ""
+ "lh\\t%0, %%tpoff(%2)(%1)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "load")])
+
+(define_insn "*movhi_tprel_store"
+ [(set (mem:HI (plus:SI (match_operand:SI 0 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 1
+ "symbolic_operand" "s,s")]
+ UNS_TPREL))))
+ (match_operand:HI 2 "mep_tprel_operand" "t,*r"))]
+ ""
+ "sh\\t%2, %%tpoff(%1)(%0)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "store")])
+
+(define_insn "*movhi_internal"
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,r,m,r,c,r,y,r,er,ex,em,Y")
+ (match_operand:HI 1 "general_operand" " r,S,n,m,r,c,r,y,r,er,r,ex,Y,em"))]
+ "mep_mov_ok (operands, HImode)"
+ "@
+ mov\\t%0, %1
+ mov\\t%0, %I1
+ mov\\t%0, %I1
+ lh\\t%0, %1
+ sh\\t%1, %0
+ ldc\\t%0, %1
+ stc\\t%1, %0
+ cmovc\\t%0, %1
+ cmovc\\t%0, %1
+ cmov\\t%0, %1
+ cmov\\t%0, %1
+ %<\\t%0, %M1
+ lhcpa\\t%0, %P1
+ shcpa\\t%1, %P0"
+ [(set_attr "length" "2,2,4,*,*,2,2,4,4,4,4,*,4,4")
+ (set_attr "intrinsic" "*,*,*,*,*,*,*,cmovc2,cmovc1,cmov2,cmov1,cmov,*,*")
+ (set_attr "stall" "*,*,*,load,store,ldc,stc,*,*,*,*,*,load,store")
+ (set_attr "memop" "*,*,*,core1,core0,*,*,*,*,*,*,*,*,*")])
+
+(define_expand "movsi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "")
+ (match_operand:SI 1 "general_operand" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, SImode))
+ DONE;
+}")
+
+(define_insn "*movsi_tprel_load"
+ [(set (match_operand:SI 0 "mep_tprel_operand" "=t,*r")
+ (mem:SI (plus:SI (match_operand:SI 1 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 2
+ "symbolic_operand" "s,s")]
+ UNS_TPREL)))))]
+ ""
+ "lw\\t%0, %%tpoff(%2)(%1)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "load")])
+
+(define_insn "*movsi_tprel_store"
+ [(set (mem:SI (plus:SI (match_operand:SI 0 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 1
+ "symbolic_operand" "s,s")]
+ UNS_TPREL))))
+ (match_operand:SI 2 "mep_tprel_operand" "t,*r"))]
+ ""
+ "sw\\t%2, %%tpoff(%1)(%0)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "store")])
+
+(define_insn "movsi_topsym_s"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (high:SI (match_operand:SI 1 "symbolic_operand" "s")))]
+ ""
+ "movh\\t%0, %%hi(%1)"
+ [(set_attr "length" "4")])
+
+(define_insn "movsi_botsym_s"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (lo_sum:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "symbolic_operand" "s")))]
+ ""
+ "add3\\t%0, %1, %%lo(%2)"
+ [(set_attr "length" "4")])
+
+
+
+(define_insn "cmovh_getsub"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (subreg:SI (match_operand:DI 1 "register_operand" "er") 4))]
+ "0 && TARGET_64BIT_CR_REGS"
+ "cmovh\\t%0, %1"
+ [(set_attr "intrinsic" "cmovh2")
+ (set_attr "length" "4")])
+
+(define_insn "*movsi_internal"
+ [(set (match_operand:SI 0 "mep_movdest_operand"
+ "=r,r,r,r,r, t,t,r,r,r,Z,m,r,c,r,y,r, er,ex,em,U ")
+ (match_operand:SI 1 "general_operand"
+ " r,S,I,J,OW,K,s,i,Z,m,r,r,c,r,y,r,er,r, ex,U, em"))]
+ "mep_mov_ok (operands, SImode)"
+ "@
+ mov\\t%0, %1
+ mov\\t%0, %I1
+ mov\\t%0, %I1
+ movu\\t%0, %J1
+ movh\\t%0, %h1
+ movu\\t%0, %x1
+ movu\\t%0, %1
+ #
+ ldcb\\t%0, %1
+ lw\\t%0, %1
+ stcb\\t%1, %0
+ sw\\t%1, %0
+ ldc\\t%0, %1
+ stc\\t%1, %0
+ cmovc\\t%0, %1
+ cmovc\\t%0, %1
+ cmov\\t%0, %1
+ cmov\\t%0, %1
+ %<\\t%0, %M1
+ lwcp\\t%0, %1
+ swcp\\t%1, %0"
+ [(set_attr "length" "2,2,4,4,4,4,4,*,4,*,4,*,2,2,4,4,4,4,4,*,*")
+ (set_attr "intrinsic" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,cmovc2,cmovc1,cmov2,cmov1,cmov,*,*")
+ (set_attr "stall" "*,*,*,*,*,*,*,*,ldcb,load,stcb,store,ldc,stc,*,*,*,*,*,load,store")
+ (set_attr "memop" "*,*,*,*,*,*,*,*,*,core1,*,core0,*,*,*,*,*,*,*,cop1,cop0")
+ (set_attr "slot" "*,*,*,*,*,*,*,multi,*,*,*,*,*,*,*,*,*,*,*,*,*")])
+
+(define_split
+ [(set (match_operand:SI 0 "register_operand" "")
+ (match_operand:SI 1 "const_int_operand" ""))]
+ "mep_split_mov (operands, 0)"
+ [(set (match_dup 0) (match_dup 2))
+ (set (match_dup 0) (ior:SI (match_dup 0) (match_dup 3)))]
+ "
+{
+ HOST_WIDE_INT value;
+ int lo, hi;
+
+ value = INTVAL (operands[1]);
+
+ lo = value & 0xffff;
+ hi = trunc_int_for_mode (value & 0xffff0000, SImode);
+
+ operands[2] = GEN_INT (hi);
+ operands[3] = GEN_INT (lo);
+}")
+
+(define_split
+ [(set (match_operand:SI 0 "register_operand" "")
+ (match_operand:SI 1 "immediate_operand" ""))]
+ "mep_split_mov (operands, 1)"
+ [(set (match_dup 0) (high:SI (match_dup 1)))
+ (set (match_dup 0) (lo_sum:SI (match_dup 0) (match_dup 1)))]
+ "")
+
+;; ??? What purpose do these two serve that high+lo_sum do not?
+(define_insn "movsi_topsym_u"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (and:SI (match_operand:SI 1 "symbolic_operand" "s")
+ (const_int -65536)))]
+ ""
+ "movh\\t%0, %%uhi(%1)"
+ [(set_attr "length" "4")])
+
+(define_insn "movsi_botsym_u"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (ior:SI (match_operand:SI 1 "register_operand" "0")
+ (and:SI (match_operand:SI 2 "symbolic_operand" "s")
+ (const_int 65535))))]
+ ""
+ "or3\\t%0, %1, %%lo(%2)"
+ [(set_attr "length" "4")])
+
+(define_expand "movdi"
+ [(set (match_operand:DI 0 "" "")
+ (match_operand:DI 1 "" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, DImode))
+ DONE;
+}")
+
+(define_insn "*movdi_internal_32"
+ [(set (match_operand:DI 0 "mep_movdest_operand" "= r,m,r,c,r,er,ex,em,U")
+ (match_operand:DI 1 "general_operand" "rim,r,c,r,er,r,ex,U,em"))]
+ "TARGET_32BIT_CR_REGS && mep_mov_ok (operands, DImode)"
+ "#"
+ [(set_attr "slot" "multi")])
+
+(define_insn "*movdi_internal_64"
+ [(set (match_operand:DI 0 "mep_movdest_operand" "=r,r,m,r,c,r,er,ex,em,U")
+ (match_operand:DI 1 "general_operand" "r,im,r,c,r,er,r,ex,U,em"))]
+ "TARGET_64BIT_CR_REGS && mep_mov_ok (operands, DImode)"
+ "@
+ #
+ #
+ #
+ #
+ #
+ #
+ #
+ %<\\t%0, %M1
+ lmcp\\t%0, %1
+ smcp\\t%1, %0"
+ [(set_attr "slot" "multi,multi,multi,multi,multi,multi,multi,*,*,*")
+ (set_attr "intrinsic" "*,*,*,*,*,*,*,cmov,*,*")
+ (set_attr "memop" "*,*,*,*,*,*,*,cop0,cop1,cop0")
+ (set_attr "stall" "*,*,*,*,*,*,*,*,load,store")])
+
+(define_insn "*movdi_cop_postinc"
+ [(parallel [(set (match_operand:DI 0 "register_operand" "=em")
+ (mem:DI (reg:SI SP_REGNO)))
+ (set (reg:SI SP_REGNO)
+ (plus:SI (reg:SI SP_REGNO)
+ (const_int 8)))
+ ]
+ )]
+ "TARGET_COP"
+ "lmcpi\\t%0,($sp+)"
+ [(set_attr "length" "2")])
+
+(define_insn "*movdi_cop_postinc"
+ [(parallel [(set (match_operand:DI 0 "register_operand" "=em")
+ (mem:DI (match_operand:SI 2 "register_operand" "r")))
+ (set (match_operand:SI 1 "register_operand" "=0")
+ (plus:SI (match_operand:SI 3 "register_operand" "0")
+ (const_int 8)))
+ ]
+ )]
+ "TARGET_COP"
+ "lmcpi\\t%0,(%1+)"
+ [(set_attr "length" "2")])
+
+(define_insn "*cmovh_set"
+ [(set (zero_extract:SI (match_operand:DI 0 "register_operand" "+er")
+ (const_int 32)
+ (const_int 32))
+ (match_operand:SI 1 "register_operand" "r"))]
+ "TARGET_64BIT_CR_REGS"
+ "cmovh\\t%0, %1"
+ [(set_attr "intrinsic" "cmovh1")
+ (set_attr "length" "4")])
+
+(define_insn "cmovh_get"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (zero_extract:SI (match_operand:DI 1 "register_operand" "er")
+ (const_int 32)
+ (const_int 32)))]
+ "TARGET_64BIT_CR_REGS"
+ "cmovh\\t%0, %1"
+ [(set_attr "intrinsic" "cmovh2")
+ (set_attr "length" "4")])
+
+(define_split
+ [(set (match_operand:DI 0 "mep_movdest_operand" "")
+ (match_operand:DI 1 "general_operand" ""))]
+ "reload_completed && mep_multi_slot (insn)"
+ [(set (match_dup 2) (match_dup 3))
+ (set (match_dup 4) (match_dup 5))]
+ "mep_split_wide_move (operands, DImode);")
+
+;; Floating Point Moves
+
+(define_expand "movsf"
+ [(set (match_operand:SF 0 "nonimmediate_operand" "")
+ (match_operand:SF 1 "general_operand" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, SFmode))
+ DONE;
+}")
+
+(define_insn "*movsf_tprel_load"
+ [(set (match_operand:SF 0 "mep_tprel_operand" "=t,*r")
+ (mem:SF (plus:SI (match_operand:SI 1 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 2
+ "symbolic_operand" "s,s")]
+ UNS_TPREL)))))]
+ ""
+ "lw\\t%0, %%tpoff(%2)(%1)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "load")])
+
+(define_insn "*movsf_tprel_store"
+ [(set (mem:SF (plus:SI (match_operand:SI 0 "mep_tp_operand" "b,*r")
+ (const:SI (unspec:SI [(match_operand:SI 1
+ "symbolic_operand" "s,s")]
+ UNS_TPREL))))
+ (match_operand:SF 2 "mep_tprel_operand" "t,*r"))]
+ ""
+ "sw\\t%2, %%tpoff(%1)(%0)"
+ [(set_attr "length" "2,4")
+ (set_attr "stall" "store")])
+
+(define_insn "*movsf_internal"
+ [(set (match_operand:SF 0 "mep_movdest_operand"
+ "=r,r,r,r,Z,m,r,c,r,y,r,er,ex,em,U")
+ (match_operand:SF 1 "general_operand"
+ " r,F,Z,m,r,r,c,r,y,r,er,r,ex,U,em"))]
+ "mep_mov_ok (operands, SFmode)"
+ "@
+ mov\\t%0, %1
+ #
+ ldcb\\t%0, %1
+ lw\\t%0, %1
+ stcb\\t%1, %0
+ sw\\t%1, %0
+ ldc\\t%0, %1
+ stc\\t%1, %0
+ cmovc\\t%0, %1
+ cmovc\\t%0, %1
+ cmov\\t%0, %1
+ cmov\\t%0, %1
+ %<\\t%0, %M1
+ lwcp\\t%0, %1
+ swcp\\t%1, %0"
+ [(set_attr "length" "2,*,2,*,2,*,2,2,*,*,4,4,*,*,*")
+ (set_attr "intrinsic" "*,*,*,*,*,*,*,*,cmovc2,cmovc1,cmov2,cmov1,cmov,*,*")
+ (set_attr "stall" "*,*,ldcb,load,stcb,store,ldc,stc,*,*,*,*,*,load,store")
+ (set_attr "memop" "*,*,*,core1,*,core0,*,*,*,*,*,*,*,cop1,cop0")])
+
+(define_split
+ [(set (match_operand:SF 0 "register_operand" "")
+ (match_operand:SF 1 "const_double_operand" ""))]
+ "reload_completed"
+ [(const_int 0)]
+ "
+{
+ REAL_VALUE_TYPE rv;
+ HOST_WIDE_INT value;
+ HOST_WIDE_INT lo, hi;
+ rtx out;
+
+ REAL_VALUE_FROM_CONST_DOUBLE (rv, operands[1]);
+ REAL_VALUE_TO_TARGET_SINGLE (rv, value);
+
+ lo = value & 0xffff;
+ hi = trunc_int_for_mode (value & 0xffff0000, SImode);
+
+ out = gen_rtx_REG (SImode, REGNO (operands[0]));
+ emit_move_insn (out, GEN_INT (hi));
+ if (lo != 0)
+ emit_insn (gen_iorsi3 (out, out, GEN_INT (lo)));
+ DONE;
+}")
+
+(define_expand "movdf"
+ [(set (match_operand:DF 0 "" "")
+ (match_operand:DF 1 "" ""))]
+ ""
+ "
+{
+ if (mep_expand_mov (operands, DFmode))
+ DONE;
+}")
+
+(define_insn "*movdf_internal_32"
+ [(set (match_operand:DF 0 "mep_movdest_operand" "= r,m,r,c,r,er,ex,em,U")
+ (match_operand:DF 1 "general_operand" "rFm,r,c,r,er,r,ex,U,em"))]
+ "TARGET_32BIT_CR_REGS && mep_mov_ok (operands, DFmode)"
+ "#"
+ [(set_attr "slot" "multi")])
+
+(define_insn "*movdf_internal_64"
+ [(set (match_operand:DF 0 "mep_movdest_operand" "= r,m,r,c,r,er,ex,em,U")
+ (match_operand:DF 1 "general_operand" "rFm,r,c,r,er,r,ex,U,em"))]
+ "TARGET_64BIT_CR_REGS && mep_mov_ok (operands, DFmode)"
+ "@
+ #
+ #
+ #
+ #
+ #
+ #
+ %<\\t%0, %M1
+ lmcp\\t%0, %1
+ smcp\\t%1, %0"
+ [(set_attr "slot" "multi,multi,multi,multi,multi,multi,*,*,*")
+ (set_attr "intrinsic" "*,*,*,*,*,*,cmov,*,*")
+ (set_attr "memop" "*,*,*,*,*,*,*,cop1,cop0")
+ (set_attr "stall" "*,*,*,*,*,*,*,load,store")])
+
+(define_split
+ [(set (match_operand:DF 0 "mep_movdest_operand" "")
+ (match_operand:DF 1 "general_operand" ""))]
+ "reload_completed && mep_multi_slot (insn)"
+ [(set (match_dup 2) (match_dup 3))
+ (set (match_dup 4) (match_dup 5))]
+ "mep_split_wide_move (operands, DFmode);")
+
+
+(define_insn "*lbcpa"
+ [(set (match_operand:SI 0 "register_operand" "=em")
+ (sign_extend:SI (mem:QI (match_operand:SI 2 "register_operand" "1"))))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (plus:SI (match_dup 2)
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "lbcpa\t%0, (%1+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "load")])
+
+(define_insn "*sbcpa"
+ [(set (mem:QI (match_operand:SI 1 "register_operand" "0"))
+ (match_operand:QI 2 "register_operand" "em"))
+ (set (match_operand:SI 0 "register_operand" "=r")
+ (plus:SI (match_dup 1)
+ (match_operand:SI 3 "cgen_h_sint_8a1_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "sbcpa\t%2, (%0+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "store")])
+
+(define_insn "*lhcpa"
+ [(set (match_operand:SI 0 "register_operand" "=em")
+ (sign_extend:SI (mem:HI (match_operand:SI 2 "register_operand" "1"))))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (plus:SI (match_dup 2)
+ (match_operand:SI 3 "cgen_h_sint_7a2_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "lhcpa\t%0, (%1+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "load")])
+
+(define_insn "*shcpa"
+ [(set (mem:HI (match_operand:SI 1 "register_operand" "0"))
+ (match_operand:HI 2 "register_operand" "em"))
+ (set (match_operand:SI 0 "register_operand" "=r")
+ (plus:SI (match_dup 1)
+ (match_operand:SI 3 "cgen_h_sint_7a2_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "shcpa\t%2, (%0+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "store")])
+
+(define_insn "*lwcpi"
+ [(set (match_operand:SI 0 "register_operand" "=em")
+ (mem:SI (match_operand:SI 2 "register_operand" "1")))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (plus:SI (match_dup 2)
+ (const_int 4)))]
+ "TARGET_COP && reload_completed"
+ "lwcpi\t%0, (%1+)"
+ [(set_attr "length" "2")
+ (set_attr "stall" "load")])
+
+(define_insn "*lwcpa"
+ [(set (match_operand:SI 0 "register_operand" "=em")
+ (mem:SI (match_operand:SI 2 "register_operand" "1")))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (plus:SI (match_dup 2)
+ (match_operand:SI 3 "cgen_h_sint_6a4_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "lwcpa\t%0, (%1+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "load")])
+
+(define_insn "*swcpi"
+ [(set (mem:SI (match_operand:SI 1 "register_operand" "0"))
+ (match_operand:SI 2 "register_operand" "em"))
+ (set (match_operand:SI 0 "register_operand" "=r")
+ (plus:SI (match_dup 1)
+ (const_int 4)))]
+ "TARGET_COP && reload_completed"
+ "swcpi\t%2, (%0+)"
+ [(set_attr "length" "2")
+ (set_attr "stall" "store")])
+
+(define_insn "*swcpa"
+ [(set (mem:SI (match_operand:SI 1 "register_operand" "0"))
+ (match_operand:SI 2 "register_operand" "em"))
+ (set (match_operand:SI 0 "register_operand" "=r")
+ (plus:SI (match_dup 1)
+ (match_operand:SI 3 "cgen_h_sint_6a4_immediate" "")))]
+ "TARGET_COP && reload_completed"
+ "swcpa\t%2, (%0+), %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "store")])
+
+(define_peephole2
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (match_dup 0)
+ (match_operand:SI 1 "cgen_h_sint_8a1_immediate" "")))]
+ "TARGET_COP && mep_use_post_modify_p (insn, operands[0], operands[1])"
+ [(const_int 0)]
+{
+ emit_note (NOTE_INSN_DELETED);
+ DONE;
+})
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Reloads
+;; ::
+;; ::::::::::::::::::::
+
+(define_expand "reload_insi"
+ [(set (match_operand:SI 0 "mep_reload_operand" "")
+ (match_operand:SI 1 "mep_reload_operand" "r"))
+ (clobber (match_operand:SI 2 "register_operand" "=&r"))]
+ ""
+ "
+{
+ mep_expand_reload (operands, SImode);
+ DONE;
+}")
+
+(define_expand "reload_outsi"
+ [(set (match_operand:SI 0 "mep_reload_operand" "=r")
+ (match_operand:SI 1 "mep_reload_operand" ""))
+ (clobber (match_operand:SI 2 "register_operand" "=&r"))]
+ ""
+ "
+{
+ mep_expand_reload (operands, SImode);
+ DONE;
+}")
+
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Conversions
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "extendqisi2"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,em")
+ (sign_extend:SI
+ (match_operand:QI 1 "nonimmediate_operand" "0,m,Y")))]
+ ""
+ "@
+ extb\\t%0
+ lb\\t%0, %1
+ lbcpa\\t%0, %P1"
+ [(set_attr "length" "2,*,*")
+ (set_attr "stall" "*,load,load")
+ (set_attr "memop" "*,core1,cop1")])
+
+(define_insn "extendhisi2"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,em")
+ (sign_extend:SI
+ (match_operand:HI 1 "nonimmediate_operand" "0,m,Y")))]
+ ""
+ "@
+ exth\\t%0
+ lh\\t%0, %1
+ lhcpa\\t%0, %P1"
+ [(set_attr "length" "2,*,*")
+ (set_attr "stall" "*,load,load")
+ (set_attr "memop" "*,core1,cop1")])
+
+(define_insn "zero_extendqisi2"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r")
+ (zero_extend:SI
+ (match_operand:QI 1 "nonimmediate_operand" "0,r,m")))]
+ ""
+ "@
+ extub\\t%0
+ and3\\t%0, %1, 255
+ lbu\\t%0, %1"
+ [(set_attr "length" "2,4,*")
+ (set_attr "stall" "*,*,load")
+ (set_attr "memop" "*,*,core1")])
+
+(define_insn "zero_extendhisi2"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r")
+ (zero_extend:SI
+ (match_operand:HI 1 "nonimmediate_operand" "0,r,m")))]
+ ""
+ "@
+ extuh\\t%0
+ and3\\t%0, %1, 65535
+ lhu\\t%0, %1"
+ [(set_attr "length" "2,4,*")
+ (set_attr "stall" "*,*,load")
+ (set_attr "memop" "*,*,core1")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: 32 bit Integer arithmetic
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "addsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r")
+ (plus:SI (match_operand:SI 1 "register_operand" "%r,0,r")
+ (match_operand:SI 2 "mep_add_operand" "r,L,IT")))]
+ ""
+ "@
+ add3\\t%0, %1, %2
+ add\\t%0, %2
+ add3\\t%0, %1, %I2"
+ [(set (attr "length")
+ (if_then_else (eq_attr "alternative" "2")
+ (if_then_else (and (match_operand:SI 1 "mep_sp_operand" "")
+ (match_operand:SI 2 "mep_imm7a4_operand" ""))
+ (const_int 2)
+ (const_int 4))
+ (const_int 2)))])
+
+;; The intention here is to combine the 16-bit add with the 16-bit
+;; move to create a 32-bit add. It's the same size, but takes one
+;; less machine cycle. It will happen to match a 32-bit add with a
+;; 16-bit move also, but gcc shouldn't be doing that ;)
+(define_peephole2
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "immediate_operand" "")))
+ (set (match_operand:SI 3 "register_operand" "")
+ (match_operand:SI 4 "register_operand" ""))]
+ "REGNO (operands[0]) == REGNO (operands[1])
+ && REGNO (operands[0]) == REGNO (operands[4])
+ && GR_REGNO_P (REGNO (operands[3]))
+ && dead_or_set_p (peep2_next_insn (1), operands[4])"
+ [(set (match_dup 3)
+ (plus:SI (match_dup 1)
+ (match_dup 2)))]
+ "")
+
+(define_insn "subsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (minus:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "register_operand" "r")))]
+ ""
+ "sub\\t%0, %2"
+ [(set_attr "length" "2")])
+
+(define_expand "mulsi3"
+ [(set (match_operand:SI 0 "register_operand" "")
+ (mult:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "register_operand" "")))]
+ "TARGET_OPT_MULT || TARGET_COPRO_MULT"
+{
+ emit_insn (gen_mulsi3_1 (operands[0], operands[1], operands[2]));
+ DONE;
+})
+
+;; Generated by mep_reuse_lo_p when no GPR destination is needed.
+(define_insn "mulsi3_lo"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (mult:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")))
+ (clobber (match_scratch:SI 3 "=h"))]
+ "TARGET_OPT_MULT && reload_completed"
+ "mul\\t%1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mul")])
+
+;; Generated by mep_reuse_lo_p when both destinations of a mulr
+;; are needed.
+(define_insn "mulsi3r"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (mult:SI (match_operand:SI 2 "register_operand" "1")
+ (match_operand:SI 3 "register_operand" "r")))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (mult:SI (match_dup 2)
+ (match_dup 3)))
+ (clobber (match_scratch:SI 4 "=h"))]
+ "TARGET_OPT_MULT && reload_completed"
+ "mulr\\t%2, %3"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mulr")])
+
+(define_insn "mulsi3_1"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (mult:SI (match_operand:SI 1 "register_operand" "%0")
+ (match_operand:SI 2 "register_operand" "r")))
+ (clobber (match_scratch:SI 3 "=l"))
+ (clobber (match_scratch:SI 4 "=h"))]
+ "TARGET_OPT_MULT"
+ "mulr\\t%1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mulr")])
+
+(define_expand "mulsidi3"
+ [(set (match_operand:DI 0 "register_operand" "")
+ (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
+ (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
+ "TARGET_OPT_MULT"
+ "
+{
+ rtx hi = gen_reg_rtx (SImode);
+ rtx lo = gen_reg_rtx (SImode);
+
+ emit_insn (gen_mulsidi3_i (hi, lo, operands[1], operands[2]));
+ emit_move_insn (gen_lowpart (SImode, operands[0]), lo);
+ emit_move_insn (gen_highpart (SImode, operands[0]), hi);
+ DONE;
+}")
+
+(define_insn "mulsidi3_i"
+ [(set (match_operand:SI 0 "mep_hi_operand" "=h")
+ (truncate:SI
+ (lshiftrt:DI
+ (mult:DI (sign_extend:DI
+ (match_operand:SI 2 "register_operand" "r"))
+ (sign_extend:DI
+ (match_operand:SI 3 "register_operand" "r")))
+ (const_int 32))))
+ (set (match_operand:SI 1 "mep_lo_operand" "=l")
+ (mult:SI (match_dup 2)
+ (match_dup 3)))]
+ "TARGET_OPT_MULT"
+ "mul\\t%2, %3"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mul")])
+
+(define_insn "smulsi3_highpart"
+ [(set (match_operand:SI 0 "mep_hi_operand" "=h")
+ (truncate:SI
+ (lshiftrt:DI
+ (mult:DI (sign_extend:DI
+ (match_operand:SI 1 "register_operand" "r"))
+ (sign_extend:DI
+ (match_operand:SI 2 "register_operand" "r")))
+ (const_int 32))))
+ (clobber (reg:SI LO_REGNO))]
+ "TARGET_OPT_MULT"
+ "mul\\t%1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mul")])
+
+(define_expand "umulsidi3"
+ [(set (match_operand:DI 0 "mep_hi_operand" "")
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
+ (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
+ "TARGET_OPT_MULT"
+ "
+{
+ rtx hi = gen_reg_rtx (SImode);
+ rtx lo = gen_reg_rtx (SImode);
+
+ emit_insn (gen_umulsidi3_i (hi, lo, operands[1], operands[2]));
+ emit_move_insn (gen_lowpart (SImode, operands[0]), lo);
+ emit_move_insn (gen_highpart (SImode, operands[0]), hi);
+ DONE;
+}")
+
+(define_insn "umulsidi3_i"
+ [(set (match_operand:SI 0 "mep_hi_operand" "=h")
+ (truncate:SI
+ (lshiftrt:DI
+ (mult:DI (zero_extend:DI
+ (match_operand:SI 2 "register_operand" "r"))
+ (zero_extend:DI
+ (match_operand:SI 3 "register_operand" "r")))
+ (const_int 32))))
+ (set (match_operand:SI 1 "mep_lo_operand" "=l")
+ (mult:SI (match_dup 2)
+ (match_dup 3)))]
+ "TARGET_OPT_MULT"
+ "mulu\\t%2, %3"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mul")])
+
+(define_insn "umulsi3_highpart"
+ [(set (match_operand:SI 0 "mep_hi_operand" "=h")
+ (truncate:SI
+ (lshiftrt:DI
+ (mult:DI (zero_extend:DI
+ (match_operand:SI 1 "register_operand" "r"))
+ (zero_extend:DI
+ (match_operand:SI 2 "register_operand" "r")))
+ (const_int 32))))
+ (clobber (reg:SI LO_REGNO))]
+ "TARGET_OPT_MULT"
+ "mulu %1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "mul")])
+
+;; These two don't currently match because we don't have an adddi3 pattern.
+(define_insn "*smultdi_and_add"
+ [(set (match_operand:DI 0 "mep_hi_operand" "=d")
+ (plus:DI (mult:DI (zero_extend:DI
+ (match_operand:SI 1 "register_operand" "r"))
+ (zero_extend:DI
+ (match_operand:SI 2 "register_operand" "r")))
+ (match_operand:DI 3 "mep_hi_operand" "0")))]
+ "TARGET_OPT_MULT && TARGET_BIG_ENDIAN"
+ "maddu\\t%1, %2"
+ [(set_attr "length" "4")
+ (set_attr "stall" "mul")])
+
+(define_insn "*umultdi_and_add"
+ [(set (match_operand:DI 0 "mep_hi_operand" "=d")
+ (plus:DI (mult:DI (sign_extend:DI
+ (match_operand:SI 1 "register_operand" "r"))
+ (sign_extend:DI
+ (match_operand:SI 2 "register_operand" "r")))
+ (match_operand:DI 3 "mep_hi_operand" "0")))]
+ "TARGET_OPT_MULT && TARGET_BIG_ENDIAN"
+ "madd\\t%1, %2"
+ [(set_attr "length" "4")
+ (set_attr "stall" "mul")])
+
+;; A pattern for 'r1 = r2 * r3 + r4'. There are three possible
+;; implementations:
+;;
+;; (1) 'mulr;add3'. This is usually the best choice if the instruction
+;; is not part of a natural multiply-accumulate chain. It has the
+;; same latency as 'stc;maddr' but doesn't tie up $lo for as long.
+;;
+;; (2) 'madd'. This is the best choice if the instruction is in the
+;; middle of a natural multiply-accumulate chain. r4 will already
+;; be in $lo and r1 will also be needed in $lo.
+;;
+;; (3) 'maddr'. This is the best choice if the instruction is at the
+;; end of a natural multiply-accumulate chain. r4 will be in $lo
+;; but r1 will be needed in a GPR.
+;;
+;; In theory, we could put all the alternatives into a single pattern and
+;; leave the register allocator to choose between them. However, this can
+;; sometimes produce poor results in practice.
+;;
+;; This pattern therefore describes a general GPR-to-GPR operation that
+;; has a slight preference for cases in which operands 0 and 1 are tied.
+;; After reload, we try to rewrite the patterns using peephole2s (if
+;; enabled), falling back on define_splits if that fails. See also
+;; mep_reuse_lo_p.
+(define_insn "maddsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "%0,r")
+ (match_operand:SI 2 "register_operand" "r,r"))
+ (match_operand:SI 3 "register_operand" "r,r")))
+ (clobber (match_scratch:SI 4 "=l,l"))
+ (clobber (match_scratch:SI 5 "=h,h"))]
+ "TARGET_OPT_MULT"
+ "#"
+ [(set_attr "length" "8")
+ (set_attr "stall" "mulr")])
+
+;; Implement maddsi3s using maddr if operand 3 is already available in $lo.
+(define_peephole2
+ [(parallel
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "register_operand" ""))
+ (match_operand:SI 3 "register_operand" "")))
+ (clobber (match_scratch:SI 4 ""))
+ (clobber (match_scratch:SI 5 ""))])]
+ "TARGET_OPT_MULT
+ && reload_completed
+ && mep_reuse_lo_p (operands[4], operands[3], insn,
+ !rtx_equal_p (operands[1], operands[3])
+ && !rtx_equal_p (operands[2], operands[3])
+ && (rtx_equal_p (operands[0], operands[3])
+ || peep2_reg_dead_p (1, operands[3])))"
+ [(parallel
+ [(set (match_dup 4)
+ (plus:SI (mult:SI (match_dup 0)
+ (match_dup 2))
+ (match_dup 4)))
+ (set (match_dup 0)
+ (plus:SI (mult:SI (match_dup 0)
+ (match_dup 2))
+ (match_dup 4)))
+ (clobber (match_dup 5))])]
+ "operands[2] = mep_mulr_source (0, operands[0], operands[1], operands[2]);")
+
+;; This splitter implements maddsi3 as "mulr;add3". It only works if
+;; operands 0 and 3 are distinct, since operand 0 is clobbered before
+;; operand 3 is used.
+(define_split
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "register_operand" ""))
+ (match_operand:SI 3 "register_operand" "")))
+ (clobber (match_scratch:SI 4 ""))
+ (clobber (match_scratch:SI 5 ""))]
+ "TARGET_OPT_MULT
+ && reload_completed
+ && !rtx_equal_p (operands[0], operands[3])"
+ [(parallel [(set (match_dup 0)
+ (mult:SI (match_dup 0)
+ (match_dup 2)))
+ (clobber (match_dup 4))
+ (clobber (match_dup 5))])
+ (set (match_dup 0)
+ (plus:SI (match_dup 0)
+ (match_dup 3)))]
+ "operands[2] = mep_mulr_source (0, operands[0], operands[1], operands[2]);")
+
+;; This is the fallback splitter for maddsi3. It moves operand 3 into
+;; $lo and then uses maddr.
+(define_split
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "register_operand" ""))
+ (match_operand:SI 3 "register_operand" "")))
+ (clobber (match_scratch:SI 4 ""))
+ (clobber (match_scratch:SI 5 ""))]
+ "TARGET_OPT_MULT
+ && reload_completed"
+ [(parallel [(set (match_dup 4)
+ (plus:SI (mult:SI (match_dup 0)
+ (match_dup 2))
+ (match_dup 4)))
+ (set (match_dup 0)
+ (plus:SI (mult:SI (match_dup 0)
+ (match_dup 2))
+ (match_dup 4)))
+ (clobber (match_dup 5))])]
+{
+ emit_move_insn (operands[4], operands[3]);
+ operands[2] = mep_mulr_source (0, operands[0], operands[1], operands[2]);
+})
+
+;; Remove unnecessary stcs to $lo. This cleans up the moves generated
+;; by earlier calls to mep_reuse_lo_p.
+(define_peephole2
+ [(set (match_operand:SI 0 "mep_lo_operand" "")
+ (match_operand:SI 1 "register_operand" ""))]
+ "TARGET_OPT_MULT
+ && mep_reuse_lo_p (operands[0], operands[1], insn,
+ peep2_reg_dead_p (1, operands[1]))"
+ [(const_int 0)]
+{
+ emit_note (NOTE_INSN_DELETED);
+ DONE;
+})
+
+(define_insn "maddsi3_lo"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r"))
+ (match_operand:SI 3 "mep_lo_operand" "0")))
+ (clobber (match_scratch:SI 4 "=h"))]
+ "TARGET_OPT_MULT && reload_completed"
+ "madd\\t%1, %2"
+ [(set_attr "length" "4")
+ (set_attr "stall" "mul")])
+
+(define_insn "maddsi3r"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (plus:SI (mult:SI (match_operand:SI 2 "register_operand" "1")
+ (match_operand:SI 3 "register_operand" "r"))
+ (match_operand:SI 4 "register_operand" "0")))
+ (set (match_operand:SI 1 "register_operand" "=r")
+ (plus:SI (mult:SI (match_dup 2)
+ (match_dup 3))
+ (match_dup 4)))
+ (clobber (match_scratch:SI 5 "=h"))]
+ "TARGET_OPT_MULT && reload_completed"
+ "maddr\\t%2, %3"
+ [(set_attr "length" "4")
+ (set_attr "stall" "mulr")])
+
+(define_insn "*shift_1_or_2_and_add"
+ [(set (match_operand:SI 0 "mep_r0_operand" "=z")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "mep_slad_operand" "n"))
+ (match_operand:SI 3 "register_operand" "r")))]
+ ""
+ "sl%b2ad3\\t%0, %1, %3"
+ [(set_attr "length" "2")
+ (set_attr "stall" "int2")])
+
+(define_insn "divmodsi4"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (div:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")))
+ (set (match_operand:SI 3 "mep_hi_operand" "=h")
+ (mod:SI (match_dup 1)
+ (match_dup 2)))]
+ "TARGET_OPT_DIV"
+ "div\\t%1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "div")
+ (set_attr "may_trap" "yes")])
+
+(define_insn "udivmodsi4"
+ [(set (match_operand:SI 0 "mep_lo_operand" "=l")
+ (udiv:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")))
+ (set (match_operand:SI 3 "mep_hi_operand" "=h")
+ (umod:SI (match_dup 1)
+ (match_dup 2)))]
+ "TARGET_OPT_DIV"
+ "divu\\t%1, %2"
+ [(set_attr "length" "2")
+ (set_attr "stall" "div")
+ (set_attr "may_trap" "yes")])
+
+(define_insn "negsi2"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (neg:SI (match_operand:SI 1 "register_operand" "r")))]
+ ""
+ "neg\\t%0, %1"
+ [(set_attr "length" "2")])
+
+;; We have "absolute difference between two regs" which isn't quite
+;; what gcc is expecting.
+(define_expand "abssi2"
+ [(set (match_dup 2) (const_int 0))
+ (set (match_operand:SI 0 "register_operand" "")
+ (abs:SI (minus:SI (match_operand:SI 1 "register_operand" "")
+ (match_dup 2))
+ ))]
+ "TARGET_OPT_ABSDIFF"
+ "operands[2] = gen_reg_rtx (SImode);")
+
+(define_insn "*absdiff"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (abs:SI (minus:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "register_operand" "r"))))]
+ "TARGET_OPT_ABSDIFF"
+ "abs\\t%0, %2"
+ [(set_attr "length" "4")])
+
+(define_split
+ [(set (match_operand:SI 0 "register_operand" "")
+ (abs:SI (plus:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "immediate_operand" ""))))
+ (clobber (match_operand:SI 3 "register_operand" ""))]
+ "!reload_completed"
+ [(set (match_dup 3)
+ (match_dup 4))
+ (set (match_operand:SI 0 "register_operand" "")
+ (abs:SI (minus:SI (match_operand:SI 1 "register_operand" "")
+ (match_dup 3))))]
+ "operands[4] = GEN_INT (-INTVAL (operands[2]));")
+
+(define_insn "sminsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smin:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "r")))]
+ "TARGET_OPT_MINMAX"
+ "min\\t%0, %2"
+ [(set_attr "length" "4")])
+
+(define_insn "smaxsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smax:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "r")))]
+ "TARGET_OPT_MINMAX"
+ "max\\t%0, %2"
+ [(set_attr "length" "4")])
+
+(define_insn "uminsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (umin:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "r")))]
+ "TARGET_OPT_MINMAX"
+ "minu\\t%0, %2"
+ [(set_attr "length" "4")])
+
+(define_insn "umaxsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (umax:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "r")))]
+ "TARGET_OPT_MINMAX"
+ "maxu\\t%0, %2"
+ [(set_attr "length" "4")])
+
+;; Average: a = (b+c+1)>>1
+(define_insn "*averagesi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (ashiftrt:SI (plus:SI (plus:SI
+ (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "register_operand" "r"))
+ (const_int 1))
+ (const_int 1)))]
+ "TARGET_OPT_AVERAGE"
+ "ave\\t%0, %2"
+ [(set_attr "length" "4")])
+
+;; clip support
+
+(define_insn "clip_maxmin"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smax:SI (smin:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "immediate_operand" "n"))
+ (match_operand:SI 3 "immediate_operand" "n")))]
+ "mep_allow_clip (operands[2], operands[3], 1)"
+ "clip\\t%0, %B2"
+ [(set_attr "length" "4")])
+
+(define_insn "clip_minmax"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smin:SI (smax:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "immediate_operand" "n"))
+ (match_operand:SI 3 "immediate_operand" "n")))]
+ "mep_allow_clip (operands[3], operands[2], 1)"
+ "clip\\t%0, %B3"
+ [(set_attr "length" "4")])
+
+(define_insn "clipu_maxmin"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smax:SI (smin:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "immediate_operand" "n"))
+ (match_operand:SI 3 "immediate_operand" "n")))]
+ "mep_allow_clip (operands[2], operands[3], 0)"
+ "clipu\\t%0, %U2"
+ [(set_attr "length" "4")])
+
+(define_insn "clipu_minmax"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (smin:SI (smax:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "immediate_operand" "n"))
+ (match_operand:SI 3 "immediate_operand" "n")))]
+ "mep_allow_clip (operands[3], operands[2], 0)"
+ "clipu\\t%0, %U3"
+ [(set_attr "length" "4")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: 32 bit Integer Shifts and Rotates
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "ashlsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,z")
+ (ashift:SI (match_operand:SI 1 "register_operand" "0,r")
+ (match_operand:SI 2 "nonmemory_operand" "rM,M")))]
+ ""
+ "@
+ sll\\t%0, %2
+ sll3\\t%0, %1, %2"
+ [(set_attr "length" "2,2")
+ (set_attr "shiftop" "operand2")])
+
+(define_insn "ashrsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (ashiftrt:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "rM")))]
+ ""
+ "sra\\t%0, %2"
+ [(set_attr "length" "2")
+ (set_attr "shiftop" "operand2")])
+
+(define_insn "lshrsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (lshiftrt:SI (match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "nonmemory_operand" "rM")))]
+ ""
+ "srl\\t%0, %2"
+ [(set_attr "length" "2")
+ (set_attr "shiftop" "operand2")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: 32 Bit Integer Logical operations
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "andsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r")
+ (and:SI (match_operand:SI 1 "register_operand" "%0,r")
+ (match_operand:SI 2 "nonmemory_operand" "r,J")))]
+ ""
+ "@
+ and\\t%0, %2
+ and3\\t%0, %1, %J2"
+ [(set_attr "length" "2,4")])
+
+(define_insn "iorsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r")
+ (ior:SI (match_operand:SI 1 "register_operand" "%0,r")
+ (match_operand:SI 2 "nonmemory_operand" "r,J")))]
+ ""
+ "@
+ or\\t%0, %2
+ or3\\t%0, %1, %J2"
+ [(set_attr "length" "2,4")])
+
+(define_insn "xorsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r")
+ (xor:SI (match_operand:SI 1 "register_operand" "%0,r")
+ (match_operand:SI 2 "nonmemory_operand" "r,J")))]
+ ""
+ "@
+ xor\\t%0, %2
+ xor3\\t%0, %1, %J2"
+ [(set_attr "length" "2,4")])
+
+(define_expand "one_cmplsi2"
+ [(set (match_operand:SI 0 "register_operand" "")
+ (not:SI (match_operand:SI 1 "register_operand" "")))]
+ ""
+ "operands[2] = operands[1];
+ ")
+
+;; No separate insn for this; use NOR
+(define_insn "*one_cmplsi3_internal"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (not:SI (match_operand:SI 1 "register_operand" "0")))]
+ ""
+ "nor\\t%0, %0"
+ [(set_attr "length" "2")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Bit Manipulation
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "*bitop_be"
+ [(set (match_operand:QI 0 "mep_Y_operand" "=Y")
+ (subreg:QI (match_operator:SI 3 "mep_bit_operator"
+ [(subreg:SI (match_operand:QI 1 "mep_Y_operand" "0") 0)
+ (match_operand 2 "immediate_operand" "n")])
+ 3)
+ )]
+ "TARGET_BIG_ENDIAN && TARGET_OPT_BITOPS
+ && rtx_equal_p (operands[0], operands[1])"
+ "b%L3m\\t%0, %b2"
+ [(set_attr "length" "2")])
+
+(define_insn "*bitop_le"
+ [(set (match_operand:QI 0 "mep_Y_operand" "=Y")
+ (subreg:QI (match_operator:SI 3 "mep_bit_operator"
+ [(subreg:SI (match_operand:QI 1 "mep_Y_operand" "0") 0)
+ (match_operand 2 "immediate_operand" "n")])
+ 0)
+ )]
+ "!TARGET_BIG_ENDIAN && TARGET_OPT_BITOPS
+ && rtx_equal_p (operands[0], operands[1])"
+ "b%L3m\\t%0, %b2"
+ [(set_attr "length" "2")])
+
+(define_insn "btstm"
+ [(set (match_operand:SI 0 "mep_r0_operand" "=z")
+ (and:SI (subreg:SI (match_operand:QI 1 "mep_Y_operand" "Y") 0)
+ (match_operand 2 "immediate_operand" "n"))
+ )]
+ "TARGET_OPT_BITOPS && mep_bit_position_p (operands[2], 1)"
+ "btstm\\t%0, %1, %b2"
+ [(set_attr "length" "2")])
+
+(define_insn "tas"
+ [(parallel [(set (match_operand:SI 0 "mep_r0_operand" "=z")
+ (zero_extend:SI (match_operand:QI 1 "mep_Y_operand" "+Y")))
+ (set (match_dup 1)
+ (const_int 1))
+ ]
+ )]
+ "TARGET_OPT_BITOPS"
+ "tas\\t%0, %1"
+ [(set_attr "length" "2")])
+
+(define_peephole2
+ [(set (match_operand:SI 0 "mep_r0_operand" "")
+ (zero_extend:SI (match_operand:QI 1 "mep_Y_operand" "")))
+ (set (match_operand:QI 2 "register_operand" "")
+ (const_int 1))
+ (set (match_dup 1)
+ (match_dup 2))
+ ]
+ "TARGET_OPT_BITOPS"
+ [(parallel [(set (match_dup 0)
+ (zero_extend:SI (match_dup 1)))
+ (set (match_dup 1)
+ (const_int 1))
+ ])]
+ "")
+
+(define_peephole2
+ [(set (match_operand:SI 0 "mep_r0_operand" "")
+ (sign_extend:SI (match_operand:QI 1 "mep_Y_operand" "")))
+ (set (match_operand:QI 2 "register_operand" "")
+ (const_int 1))
+ (set (match_dup 1)
+ (match_dup 2))
+ ]
+ "TARGET_OPT_BITOPS"
+ [(parallel [(set (match_dup 0)
+ (zero_extend:SI (match_dup 1)))
+ (set (match_dup 1)
+ (const_int 1))
+ ])
+ (set (match_dup 0)
+ (sign_extend:SI (match_dup 3)))]
+ "operands[3] = gen_lowpart (QImode, operands[0]);")
+
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Conditional branches and stores
+;; ::
+;; ::::::::::::::::::::
+
+(define_expand "cbranchsi4"
+ [(set (pc)
+ (if_then_else (match_operator 0 "ordered_comparison_operator"
+ [(match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "nonmemory_operand" "")])
+ (label_ref (match_operand 3 "" ""))
+ (pc)))]
+ ""
+ "emit_jump_insn (gen_branch_true (operands[3],
+ mep_expand_cbranch (operands)));
+ DONE;")
+
+(define_expand "branch_true"
+ [(set (pc)
+ (if_then_else (match_operand 1 "" "")
+ (label_ref (match_operand 0 "" ""))
+ (pc)))]
+ ""
+ "")
+
+(define_expand "cstoresi4"
+ [(set (match_operand:SI 0 "register_operand" "")
+ (match_operator:SI 1 "ordered_comparison_operator"
+ [(match_operand:SI 2 "register_operand" "")
+ (match_operand:SI 3 "nonmemory_operand" "")]))]
+ ""
+ "if (mep_expand_setcc (operands)) DONE; else FAIL;")
+
+;; ------------------------------------------------------------
+
+(define_insn "*slt"
+ [(set (match_operand:SI 0 "register_operand" "=z,z,r")
+ (lt:SI (match_operand:SI 1 "register_operand" "r,r,r")
+ (match_operand:SI 2 "nonmemory_operand" "r,M,I")))]
+ ""
+ "slt3\\t%0, %1, %2"
+ [(set_attr "length" "2,2,4")])
+
+(define_insn "*sltu"
+ [(set (match_operand:SI 0 "register_operand" "=z,z,r")
+ (ltu:SI (match_operand:SI 1 "register_operand" "r,r,r")
+ (match_operand:SI 2 "nonmemory_operand" "r,M,J")))]
+ ""
+ "sltu3\\t%0, %1, %2"
+ [(set_attr "length" "2,2,4")])
+
+(define_insn "*bcpeq_true"
+ [(set (pc)
+ (if_then_else (eq:SI (reg:SI CBCR_REGNO)
+ (const_int 0))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))]
+ ""
+ "bcpeq\t0, %l0"
+ [(set_attr "length" "4")])
+
+(define_insn "*bcpeq_false"
+ [(set (pc)
+ (if_then_else (eq:SI (reg:SI CBCR_REGNO)
+ (const_int 0))
+ (pc)
+ (label_ref (match_operand 0 "" ""))))]
+ ""
+ "bcpne\t0, %l0"
+ [(set_attr "length" "4")])
+
+(define_insn "*bcpne_true"
+ [(set (pc)
+ (if_then_else (ne:SI (reg:SI CBCR_REGNO)
+ (const_int 0))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))]
+ ""
+ "bcpne\t0, %l0"
+ [(set_attr "length" "4")])
+
+(define_insn "*bcpne_false"
+ [(set (pc)
+ (if_then_else (ne:SI (reg:SI CBCR_REGNO)
+ (const_int 0))
+ (pc)
+ (label_ref (match_operand 0 "" ""))))]
+ ""
+ "bcpeq\t0, %l0"
+ [(set_attr "length" "4")])
+
+;; ??? The lengths here aren't correct, since no attempt it made to
+;; find "beqz" in the 256-byte range. However, this should not affect
+;; bundling, since we never run core branches in parallel.
+
+(define_insn "mep_beq_true"
+ [(set (pc)
+ (if_then_else (eq (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_reg_or_imm4_operand" "rN"))
+ (label_ref (match_operand 2 "" ""))
+ (pc)))]
+ ""
+ "* return mep_emit_cbranch (operands, 0);"
+ [(set_attr "length" "4")] )
+
+(define_insn "*beq_false"
+ [(set (pc)
+ (if_then_else (eq (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_reg_or_imm4_operand" "rN"))
+ (pc)
+ (label_ref (match_operand 2 "" ""))))]
+ ""
+ "* return mep_emit_cbranch (operands, 1);"
+ [(set_attr "length" "4")])
+
+(define_insn "mep_bne_true"
+ [(set (pc)
+ (if_then_else (ne (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_reg_or_imm4_operand" "rN"))
+ (label_ref (match_operand 2 "" ""))
+ (pc)))]
+ ""
+ "* return mep_emit_cbranch (operands, 1); "
+ [(set_attr "length" "4")])
+
+(define_insn "*bne_false"
+ [(set (pc)
+ (if_then_else (ne (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_reg_or_imm4_operand" "rN"))
+ (pc)
+ (label_ref (match_operand 2 "" ""))))]
+ ""
+ "* return mep_emit_cbranch (operands, 0); "
+ [(set_attr "length" "4")])
+
+(define_insn "mep_blti"
+ [(set (pc)
+ (if_then_else (lt (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_imm4_operand" "N"))
+ (label_ref (match_operand 2 "" ""))
+ (pc)))]
+ ""
+ "blti\\t%0, %1, %l2"
+ [(set_attr "length" "4")])
+
+(define_insn "*bgei"
+ [(set (pc)
+ (if_then_else (ge (match_operand:SI 0 "register_operand" "r")
+ (match_operand:SI 1 "mep_imm4_operand" "N"))
+ (label_ref (match_operand 2 "" ""))
+ (pc)))]
+ ""
+ "bgei\\t%0, %1, %l2"
+ [(set_attr "length" "4")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Call and branch instructions
+;; ::
+;; ::::::::::::::::::::
+
+(define_expand "call"
+ [(parallel [(call (match_operand:QI 0 "" "")
+ (match_operand:SI 1 "" ""))
+ (use (match_operand:SI 2 "" ""))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ])]
+ ""
+ "
+{
+ mep_expand_call (operands, 0);
+ DONE;
+}")
+
+(define_insn "call_internal"
+ [(call (mem (match_operand:SI 0 "mep_call_address_operand" "R,r"))
+ (match_operand:SI 1 "" ""))
+ (use (match_operand:SI 2 "const_int_operand" ""))
+ (use (match_operand:SI 3 "mep_tp_operand" "b,b"))
+ (use (match_operand:SI 4 "mep_gp_operand" "v,v"))
+ (clobber (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ]
+ ""
+{
+ static char const pattern[2][2][8] =
+ {
+ { "bsrv\t%0", "jsrv\t%0" },
+ { "bsr\t%0", "jsr\t%0" }
+ };
+
+ return pattern[mep_vliw_mode_match (operands[2])][which_alternative];
+}
+ [(set_attr "length" "4,2")])
+
+(define_expand "sibcall"
+ [(parallel [(call (match_operand:QI 0 "" "")
+ (match_operand:SI 1 "" ""))
+ (use (match_operand:SI 2 "" ""))
+ (use (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ])]
+ ""
+ "")
+
+(define_insn "*sibcall_internal"
+ [(call (mem (match_operand:SI 0 "mep_nearsym_operand" "s"))
+ (match_operand:SI 1 "" ""))
+ (use (match_operand:SI 2 "const_int_operand" ""))
+ (use (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ]
+ "SIBLING_CALL_P (insn)"
+{
+ if (mep_vliw_jmp_match (operands[2]))
+ return "jmp\t%0";
+ else if (mep_vliw_mode_match (operands[2]))
+ return
+ "movu $0, %0\n\
+ jmp $0";
+ else
+ return
+ "ldc $12, $lp\n\
+ movh $11, %%hi(%0)\n\
+ xor3 $12, $12, 1\n\
+ add3 $11, $11, %%lo(%0+1)\n\
+ stc $12, $lp\n\
+ jmp $11";
+}
+ [(set_attr "length" "48")
+ (set_attr "slot" "multi")])
+
+(define_expand "call_value"
+ [(parallel [(set (match_operand 0 "" "")
+ (call (match_operand:QI 1 "" "")
+ (match_operand:SI 2 "" "")))
+ (use (match_operand:SI 3 "" ""))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ])]
+ ""
+ "
+{
+ mep_expand_call (operands, 1);
+ DONE;
+}")
+
+(define_insn "call_value_internal"
+ [(set (match_operand 0 "register_operand" "=rx,rx")
+ (call (mem:SI (match_operand:SI 1 "mep_call_address_operand" "R,r"))
+ (match_operand:SI 2 "" "")))
+ (use (match_operand:SI 3 "const_int_operand" ""))
+ (use (match_operand:SI 4 "mep_tp_operand" "b,b"))
+ (use (match_operand:SI 5 "mep_gp_operand" "v,v"))
+ (clobber (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ]
+ ""
+{
+ static char const pattern[2][2][8] =
+ {
+ { "bsrv\t%1", "jsrv\t%1" },
+ { "bsr\t%1", "jsr\t%1" }
+ };
+
+ return pattern[mep_vliw_mode_match (operands[3])][which_alternative];
+}
+ [(set_attr "length" "4,2")])
+
+(define_expand "sibcall_value"
+ [(parallel [(set (match_operand 0 "" "")
+ (call (match_operand:QI 1 "" "")
+ (match_operand:SI 2 "" "")))
+ (use (match_operand:SI 3 "" ""))
+ (use (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ])]
+ ""
+ "")
+
+(define_insn "*sibcall_value_internal"
+ [(set (match_operand 0 "register_operand" "=rx")
+ (call (mem (match_operand:SI 1 "mep_nearsym_operand" "s"))
+ (match_operand:SI 2 "" "")))
+ (use (match_operand:SI 3 "const_int_operand" ""))
+ (use (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ]
+ "SIBLING_CALL_P (insn)"
+{
+ if (mep_vliw_jmp_match (operands[3]))
+ return "jmp\t%1";
+ else if (mep_vliw_mode_match (operands[3]))
+ return
+ "movu $0, %1\n\
+ jmp $0";
+ else
+ return
+ "ldc $12, $lp\n\
+ movh $11, %%hi(%1)\n\
+ xor3 $12, $12, 1\n\
+ add3 $11, $11, %%lo(%1+1)\n\
+ stc $12, $lp\n\
+ jmp $11";
+}
+ [(set_attr "length" "48")
+ (set_attr "slot" "multi")])
+
+(define_insn "return_internal"
+ [(return)
+ (use (match_operand:SI 0 "register_operand" ""))]
+ ""
+ "* return (REGNO (operands[0]) == LP_REGNO) ? \"ret\" : \"jmp\\t%0\";"
+ [(set_attr "length" "2")
+ (set_attr "stall" "ret")])
+
+(define_insn "eh_return_internal"
+ [(return)
+ (use (reg:SI 10))
+ (use (reg:SI 11))
+ (use (reg:SI LP_REGNO))
+ (clobber (reg:SI REGSAVE_CONTROL_TEMP))
+ ]
+ ""
+ "ret"
+ [(set_attr "length" "2")
+ (set_attr "stall" "ret")])
+
+;; The assembler replaces short jumps with long jumps as needed.
+(define_insn "jump"
+ [(set (pc) (label_ref (match_operand 0 "" "")))]
+ ""
+ "bra\\t%l0"
+ [(set_attr "length" "4")])
+
+(define_insn "indirect_jump"
+ [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
+ ""
+ "jmp\\t%0"
+ [(set_attr "length" "2")])
+
+(define_insn "tablejump"
+ [(set (pc) (match_operand:SI 0 "register_operand" "r"))
+ (use (label_ref (match_operand 1 "" "")))]
+ ""
+ "jmp\\t%0"
+ [(set_attr "length" "2")])
+
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Low Overhead Looping
+;; ::
+;; ::::::::::::::::::::
+
+;; This insn is volatile because we'd like it to stay in its original
+;; position, just before the loop header. If it stays there, we might
+;; be able to convert it into a "repeat" insn.
+(define_insn "doloop_begin_internal"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec_volatile:SI
+ [(match_operand:SI 1 "register_operand" "0")
+ (match_operand 2 "const_int_operand" "")] UNS_REPEAT_BEG))]
+ ""
+ { gcc_unreachable (); }
+ [(set_attr "length" "4")])
+
+(define_expand "doloop_begin"
+ [(use (match_operand 0 "register_operand" ""))
+ (use (match_operand:QI 1 "const_int_operand" ""))
+ (use (match_operand:QI 2 "const_int_operand" ""))
+ (use (match_operand:QI 3 "const_int_operand" ""))]
+ "!profile_arc_flag && TARGET_OPT_REPEAT"
+ "if (INTVAL (operands[3]) > 1)
+ FAIL;
+ mep_emit_doloop (operands, 0);
+ DONE;
+ ")
+
+(define_insn "doloop_end_internal"
+ [(set (pc)
+ (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+r,cxy,*m")
+ (const_int 0))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:SI (match_dup 0)
+ (const_int -1)))
+ (unspec [(match_operand 2 "const_int_operand" "")] UNS_REPEAT_END)
+ (clobber (match_scratch:SI 3 "=X,&r,&r"))]
+ ""
+ { gcc_unreachable (); }
+ ;; Worst case length:
+ ;;
+ ;; lw <op3>,<op0> 4
+ ;; add <op3>,-1 2
+ ;; sw <op3>,<op0> 4
+ ;; jmp <op1> 4
+ ;; 1f:
+ [(set_attr "length" "14")
+ (set_attr "slot" "multi")])
+
+(define_expand "doloop_end"
+ [(use (match_operand 0 "nonimmediate_operand" ""))
+ (use (match_operand:QI 1 "const_int_operand" ""))
+ (use (match_operand:QI 2 "const_int_operand" ""))
+ (use (match_operand:QI 3 "const_int_operand" ""))
+ (use (label_ref (match_operand 4 "" "")))]
+ "!profile_arc_flag && TARGET_OPT_REPEAT"
+ "if (INTVAL (operands[3]) > 1)
+ FAIL;
+ if (GET_CODE (operands[0]) == REG && GET_MODE (operands[0]) != SImode)
+ FAIL;
+ mep_emit_doloop (operands, 1);
+ DONE;
+ ")
+
+(define_insn "repeat"
+ [(set (reg:SI RPC_REGNO)
+ (unspec:SI [(match_operand:SI 0 "mep_r0_15_operand" "r")
+ (match_operand:SI 1 "" "")]
+ UNS_REPEAT_BEG))]
+ ""
+ "repeat\\t%0,%l1"
+ [(set_attr "length" "4")])
+
+(define_insn "repeat_end"
+ [(unspec [(const_int 0)] UNS_REPEAT_END)]
+ ""
+ "# repeat end"
+ [(set_attr "length" "0")])
+
+(define_insn "erepeat"
+ [(unspec [(match_operand 0 "" "")] UNS_EREPEAT_BEG)]
+ ""
+ "erepeat\\t%l0"
+ [(set_attr "length" "4")])
+
+(define_insn "erepeat_end"
+ [(unspec [(const_int 0)] UNS_EREPEAT_END)]
+ ""
+ "# erepeat end"
+ [(set_attr "length" "0")
+ (set_attr "slot" "multi")])
+
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Prologue and Epilogue instructions
+;; ::
+;; ::::::::::::::::::::
+
+(define_expand "prologue"
+ [(const_int 1)]
+ ""
+ "
+{
+ mep_expand_prologue ();
+ DONE;
+}")
+
+(define_expand "epilogue"
+ [(return)]
+ ""
+ "
+{
+ mep_expand_epilogue ();
+ DONE;
+}")
+
+(define_expand "eh_return"
+ [(use (match_operand:SI 0 "register_operand" "r"))]
+ ""
+ "
+{
+ mep_expand_eh_return (operands);
+ DONE;
+}")
+
+(define_insn_and_split "eh_epilogue"
+ [(unspec [(match_operand:SI 0 "register_operand" "r")] UNS_EH_EPILOGUE)
+ (use (reg:SI LP_REGNO))]
+ ""
+ "#"
+ "epilogue_completed"
+ [(const_int 1)]
+ "mep_emit_eh_epilogue (operands); DONE;"
+ [(set_attr "slot" "multi")])
+
+(define_expand "sibcall_epilogue"
+ [(const_int 0)]
+ ""
+ "
+{
+ mep_expand_sibcall_epilogue ();
+ DONE;
+}")
+
+(define_insn "mep_bb_trace_ret"
+ [(unspec_volatile [(const_int 0)] UNS_BB_TRACE_RET)]
+ ""
+ "* return mep_emit_bb_trace_ret ();"
+ [(set_attr "slot" "multi")])
+
+(define_insn "mep_disable_int"
+ [(unspec_volatile [(const_int 0)] UNS_DISABLE_INT)]
+ ""
+ "di"
+ [(set_attr "length" "2")])
+
+(define_insn "mep_enable_int"
+ [(unspec_volatile [(const_int 0)] UNS_ENABLE_INT)]
+ ""
+ "ei"
+ [(set_attr "length" "2")])
+
+(define_insn "mep_reti"
+ [(return)
+ (unspec_volatile [(const_int 0)] UNS_RETI)]
+ ""
+ "reti"
+ [(set_attr "length" "2")])
+
+;; ::::::::::::::::::::
+;; ::
+;; :: Miscellaneous instructions
+;; ::
+;; ::::::::::::::::::::
+
+(define_insn "nop"
+ [(const_int 0)]
+ ""
+ "nop"
+ [(set_attr "length" "2")])
+
+(define_insn "nop32"
+ [(const_int 1)]
+ ""
+ "or3\\t$0, $0, 0"
+ [(set_attr "length" "4")])
+
+(define_insn "blockage"
+ [(unspec_volatile [(const_int 0)] UNS_BLOCKAGE)]
+ ""
+ ""
+ [(set_attr "length" "0")
+ (set_attr "slot" "multi")])
+
+
+(define_insn "djmark"
+ [(unspec_volatile [(const_int 0)] 999)]
+ ""
+ "# dj"
+ [(set_attr "length" "0")
+ (set_attr "slot" "multi")])
+
diff --git a/gcc/config/mep/mep.opt b/gcc/config/mep/mep.opt
new file mode 100644
index 000000000..9670d3b4f
--- /dev/null
+++ b/gcc/config/mep/mep.opt
@@ -0,0 +1,162 @@
+; Target specific command line options for the MEP port of the compiler.
+; Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+; Contributed by Red Hat Inc.
+;
+; 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
+; <http://www.gnu.org/licenses/>. */
+
+mabsdiff
+Target Mask(OPT_ABSDIFF)
+Enable absolute difference instructions
+
+mall-opts
+Target RejectNegative
+Enable all optional instructions
+
+maverage
+Target Mask(OPT_AVERAGE)
+Enable average instructions
+
+mbased=
+Target Joined Var(mep_based_cutoff) RejectNegative UInteger Init(0)
+Variables this size and smaller go in the based section. (default 0)
+
+mbitops
+Target Mask(OPT_BITOPS)
+Enable bit manipulation instructions
+
+mc=
+Target Joined Var(mep_const_section) RejectNegative
+Section to put all const variables in (tiny, near, far) (no default)
+
+mclip
+Target Mask(OPT_CLIP)
+Enable clip instructions
+
+mconfig=
+Target Joined Var(mep_config_string) RejectNegative
+Configuration name
+
+mcop
+Target Mask(COP)
+Enable MeP Coprocessor
+
+mcop32
+Target Mask(COP) MaskExists RejectNegative
+Enable MeP Coprocessor with 32-bit registers
+
+mcop64
+Target Mask(64BIT_CR_REGS) RejectNegative
+Enable MeP Coprocessor with 64-bit registers
+
+mivc2
+Target Mask(IVC2) RejectNegative
+Enable IVC2 scheduling
+
+mdc
+Target Mask(DC) RejectNegative
+Const variables default to the near section
+
+mdebug
+Target Disabled Undocumented
+
+mdiv
+Target Mask(OPT_DIV)
+Enable 32-bit divide instructions
+
+meb
+Target InverseMask(LITTLE_ENDIAN) RejectNegative
+Use big-endian byte order
+
+mel
+Target Mask(LITTLE_ENDIAN) RejectNegative
+Use little-endian byte order
+
+mfar
+Driver RejectNegative
+
+mio-volatile
+Target Mask(IO_VOLATILE)
+__io vars are volatile by default
+
+ml
+Target Mask(L) RejectNegative
+All variables default to the far section
+
+mleadz
+Target Mask(OPT_LEADZ)
+Enable leading zero instructions
+
+mlibrary
+Target Mask(LIBRARY) RejectNegative Undocumented
+
+mm
+Target Mask(M) RejectNegative
+All variables default to the near section
+
+mminmax
+Target Mask(OPT_MINMAX)
+Enable min/max instructions
+
+mmult
+Target Mask(OPT_MULT)
+Enable 32-bit multiply instructions
+
+mno-opts
+Target RejectNegative
+Disable all optional instructions
+
+mrand-tpgp
+Target Mask(RAND_TPGP) RejectNegative Undocumented
+
+mrepeat
+Target Mask(OPT_REPEAT)
+Allow gcc to use the repeat/erepeat instructions
+
+ms
+Target Mask(S) RejectNegative
+All variables default to the tiny section
+
+msatur
+Target Mask(OPT_SATUR)
+Enable saturation instructions
+
+msdram
+Target
+Use sdram version of runtime
+
+msim
+Target RejectNegative
+Use simulator runtime
+
+msimnovec
+Target RejectNegative
+Use simulator runtime without vectors
+
+mtf
+Target Mask(TF) RejectNegative
+All functions default to the far section
+
+mtiny=
+Target Joined Var(mep_tiny_cutoff) RejectNegative UInteger Init(4)
+Variables this size and smaller go in the tiny section. (default 4)
+
+mvl32
+Target InverseMask(OPT_VL64) Undocumented RejectNegative
+
+mvl64
+Target Mask(OPT_VL64) Undocumented RejectNegative
+
+mvliw
+Target Mask(VLIW) Undocumented
diff --git a/gcc/config/mep/predicates.md b/gcc/config/mep/predicates.md
new file mode 100644
index 000000000..4ba3a6b82
--- /dev/null
+++ b/gcc/config/mep/predicates.md
@@ -0,0 +1,184 @@
+;; Toshiba Media Processor Machine predicates
+;; Copyright (C) 2009 Free Software Foundation, Inc.
+;; Contributed by Red Hat Inc.
+
+;; 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
+;; <http://www.gnu.org/licenses/>. */
+
+;; (define_predicate "cgen_h_uint_7a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_6a2_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_22a4_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_sint_2a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_24a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_sint_6a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_5a4_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_2a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_16a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_3a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_5a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_sint_16a1_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_sint_5a8_immediate"
+;; (match_code "const_int"))
+;; (define_predicate "cgen_h_uint_4a1_immediate"
+;; (match_code "const_int"))
+
+(define_predicate "cgen_h_sint_7a2_immediate"
+ (match_code "const_int")
+ { int i = INTVAL (op);
+ return ((i & 1) == 0 && i >= -128 && i < 128);
+ })
+
+(define_predicate "cgen_h_sint_6a4_immediate"
+ (match_code "const_int")
+ { int i = INTVAL (op);
+ return ((i & 3) == 0 && i >= -256 && i < 256);
+ })
+
+;; This is used below, to simplify things.
+(define_predicate "mep_subreg_operand"
+ (ior
+ (and (and (and (match_code "subreg")
+ (match_code "reg" "0"))
+ (match_test "REGNO (SUBREG_REG (op)) >= FIRST_PSEUDO_REGISTER"))
+ (match_test "!(reload_completed || reload_in_progress)"))
+ (and (match_code "reg")
+ (match_test "REGNO (op) >= FIRST_PSEUDO_REGISTER"))))
+
+(define_predicate "symbolic_operand"
+ (match_code "const,symbol_ref,label_ref"))
+
+(define_predicate "mep_farsym_operand"
+ (and (match_code "const,symbol_ref")
+ (match_test "mep_section_tag (op) == 'f'")))
+
+(define_predicate "mep_nearsym_operand"
+ (and (match_code "const,symbol_ref,label_ref")
+ (match_test "mep_section_tag (op) != 'f'")))
+
+(define_predicate "mep_movdest_operand"
+ (and (match_test "mep_section_tag (op) != 'f'")
+ (match_operand 0 "nonimmediate_operand")))
+
+(define_predicate "mep_r0_15_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "GR_REGNO_P (REGNO (op))"))))
+
+(define_predicate "mep_r0_operand"
+ (and (match_code "reg")
+ (ior (match_test "REGNO (op) == 0")
+ (match_test "!(reload_completed || reload_in_progress)
+ && REGNO (op) >= FIRST_PSEUDO_REGISTER"))))
+
+(define_predicate "mep_hi_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "REGNO (op) == HI_REGNO"))))
+
+(define_predicate "mep_lo_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "REGNO (op) == LO_REGNO"))))
+
+(define_predicate "mep_tp_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "REGNO (op) == TP_REGNO"))))
+
+(define_predicate "mep_gp_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "REGNO (op) == GP_REGNO"))))
+
+(define_predicate "mep_sp_operand"
+ (match_test "op == stack_pointer_rtx"))
+
+(define_predicate "mep_tprel_operand"
+ (ior (match_operand 0 "mep_subreg_operand")
+ (and (match_code "reg")
+ (match_test "REGNO (op) < 8"))))
+
+(define_predicate "mep_call_address_operand"
+ (and (match_test "mep_section_tag (op) != 'f'")
+ (and (ior (not (match_code "symbol_ref"))
+ (match_test "mep_section_tag (DECL_RTL (cfun->decl)) != 'f'
+ && !mep_lookup_pragma_call (XSTR (op, 0))"))
+ (match_code "symbol_ref,reg"))))
+
+(define_predicate "mep_Y_operand"
+ (and (match_code "mem")
+ (match_code "reg" "0")))
+
+(define_predicate "mep_imm4_operand"
+ (and (match_code "const_int")
+ (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 15")))
+
+(define_predicate "mep_reg_or_imm4_operand"
+ (ior (match_code "reg")
+ (and (match_code "const_int")
+ (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 15"))))
+
+(define_predicate "mep_imm7a4_operand"
+ (and (match_code "const_int")
+ (match_test "INTVAL (op) >= 0 && INTVAL (op) < 128 && INTVAL (op) % 4 == 0")))
+
+(define_predicate "mep_slad_operand"
+ (and (match_code "const_int")
+ (match_test "INTVAL (op) == 2 || INTVAL (op) == 4")))
+
+(define_predicate "mep_add_operand"
+ (ior (and (match_code "const")
+ (and (match_operand 0 "symbolic_operand")
+ (and (match_test "mep_section_tag(op) == 'b' || mep_section_tag(op) == 't'")
+ (ior (match_code "unspec" "0")
+ (and (match_code "plus" "0")
+ (match_code "unspec" "00"))))))
+ (match_code "const_int,reg")))
+
+;; Return true if OP is an integer in the range 0..7 inclusive.
+;; On the MeP-h1, shifts by such constants execute in a single stage
+;; and shifts by larger values execute in two.
+(define_predicate "mep_single_shift_operand"
+ (and (match_code "const_int")
+ (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 7")))
+
+;; Return true if OP is an operation that can be performed using bsetm,
+;; bclrm or bnotm. The possibilities are:
+
+;; bsetm: (ior X Y), Y has one bit set
+;; bclrm: (and X Y), Y has one bit clear
+;; bnotm: (xor X Y), Y has one bit set.
+(define_predicate "mep_bit_operator"
+ (and (match_code "and,ior,xor")
+ (match_test "mep_bit_position_p (XEXP (op, 1), GET_CODE (op) != AND)")))
+
+(define_predicate "mep_reload_operand"
+ (ior (and (match_code "reg")
+ (match_test "!ANY_CONTROL_REGNO_P (REGNO (op))"))
+ (and (match_code "mem,symbol_ref")
+ (match_test "mep_section_tag (op) != 'f'"))))
diff --git a/gcc/config/mep/t-mep b/gcc/config/mep/t-mep
new file mode 100644
index 000000000..fac6dad42
--- /dev/null
+++ b/gcc/config/mep/t-mep
@@ -0,0 +1,105 @@
+# -*- makefile -*-
+# GCC makefile fragment for MeP
+# Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009, 2010
+# Free Software Foundation, Inc.
+# Contributed by Red Hat Inc
+#
+# 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
+# <http://www.gnu.org/licenses/>. */
+
+# Force genpreds to be rebuilt in case MeP-Integrator changed the predicates
+
+GTM_H = tm.h $(tm_file_list) $(srcdir)/config/mep/mep-intrin.h insn-constants.h
+
+# Use -O0 instead of -O2 so we don't get complex relocations
+
+CRTSTUFF_CFLAGS = -O0 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline-functions -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-unit-at-a-time
+
+TCFLAGS = -mlibrary
+
+mep-pragma.o: $(srcdir)/config/mep/mep-pragma.c $(CONFIG_H) $(SYSTEM_H) \
+ coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(C_PRAGMA_H) \
+ $(CPPLIB_H) hard-reg-set.h output.h $(srcdir)/config/mep/mep-protos.h \
+ function.h insn-config.h reload.h $(TARGET_H)
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
+
+# profiling support
+
+LIB1ASMSRC = mep/mep-lib1.asm
+
+LIB1ASMFUNCS = _mep_profile \
+ _mep_bb_init_trace \
+ _mep_bb_init \
+ _mep_bb_trace \
+ _mep_bb_increment
+
+# multiply and divide routines
+
+LIB2FUNCS_EXTRA = \
+ $(srcdir)/config/mep/mep-lib2.c \
+ $(srcdir)/config/mep/mep-tramp.c
+
+# floating point emulation libraries
+
+FPBIT = fp-bit.c
+DPBIT = dp-bit.c
+
+fp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#define FLOAT' > fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+dp-bit.c: $(srcdir)/config/fp-bit.c
+ cat $(srcdir)/config/fp-bit.c > dp-bit.c
+
+MULTILIB_OPTIONS = mel mall-opts mfar
+MULTILIB_DIRNAMES = el allopt far
+
+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
+
+MD_INCLUDES = \
+ $(srcdir)/config/mep/intrinsics.md \
+ $(srcdir)/config/mep/predicates.md \
+ $(srcdir)/config/mep/constraints.md
+
+mep.o : $(srcdir)/config/mep/mep-intrin.h
+
+# begin-isas
+MEP_CORE = ext_core1
+MEP_COPRO = ext_cop1_16,ext_cop1_32,ext_cop1_48,ext_cop1_64
+# end-isas
+
+# To use this, you must have cgen and cgen/cpu in the same source tree as
+# gcc.
+cgen-maint :
+ S=`cd $(srcdir); pwd`; \
+ cd $$S/config/mep && \
+ guile -s $$S/../cgen/cgen-intrinsics.scm \
+ -s $$S/../cgen \
+ $(CGENFLAGS) \
+ -a $$S/../cgen/cpu/mep.cpu \
+ -m mep,c5 \
+ -i mep,$(MEP_CORE),$(MEP_COPRO) \
+ -K mep,$(MEP_CORE),$(MEP_COPRO) \
+ -M intrinsics.md \
+ -N mep-intrin.h \
+ -P intrinsics.h
+
+# start-extra-headers
+EXTRA_HEADERS = $(srcdir)/config/mep/intrinsics.h \
+ $(srcdir)/config/mep/default.h
+# end-extra-headers